SELECT 字段名1,字段名2,... FROM 表名
select * from 表名 where 条件;
- like
- _代表一个任意字符
- %代表多个任意字符
查询姓李的学生:SELECT * from student WHERE name like '李%';
in,代表是否在这个集合中
查询身高为165,170的学生:SELECT * from student WHERE height in (165,170);
update 表名 set 字段名=值
delete
DELETE FROM 表名 WHERE 字段名 = 值
truncate
truncate 表名(删除所有班级数据,则可以这样写)
drop(删表)
drop 表1名,表2名,...;
简单来说:
drop用于删表(表中数据会全部删除,无法回滚),
delete和truncate用于删除表中的数据(delete也可删表)。
通过delete删除的数据可以回滚,而truncate删除的则不能。他们的级别为:drop>truncate>delete
delete操作不会减少表或索引所占用的空间,truncate会将占用的恢复至初始大小。
举个例子:如果设置了自增id,有id为1、2、3的三条数据,如果通过delete全部删除后,下次插入的数据如果没有指定id的话,那它的id会为4
如果通过truncate删除这三条数据的话,那它的id会为1
INSERT INTO 表名 (列名1 , … 列名n) VALUES ("值1",...) ;
查询两个值之间的数据
语法:select * from 表名 where 字段名 between 值 and 值;
查询体重在65-70的学生:
select * FROM student WHERE weight BETWEEN 65 AND 70;
为字段名指定别名
语法:select 字段名1 AS 别名,字段名2 AS 别名,.... from 表名
将字段名name改为别名学生名称显示:
select name AS '学生名称' FROM student
查询时忽略重复值
语法:SELECT DISTINCT 字段名 FROM 表名
查询学生所在的班级有哪些:
select DISTINCT class_id FROM student
求和
语法:select SUM(字段名) from 表名;
查询学生总身高:
select SUM(height) AS '学生总身高' FROM student;
count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加,最后返回累计值。
返回匹配指定条件的行数。
语法:select COUNT(字段名) from 表名;
查询有多少学生:
select count(*) FROM student;
计算平均值
语法:select AVG(字段名) from 表名;
计算学生平均身高:
select AVG(height) AS '学生平均身高' FROM student;
根据一或多个字段对查询结果集进行分组
语法:select 字段名 关键字(字段名) from 表名 group by 字段名;
查询男生、女生各有多少:
SELECT gender,count(id) FROM student GROUP BY gender
对结果集进行排序
语法:select 字段名 from 表名 order by 字段名 升/降序关键字;
对学生身高降序排列(由高到矮): 倒叙 desc
SELECT * FROM student ORDER BY height desc;
对学生体重升序排列(由轻到重): 升序 asc
SELECT * FROM student ORDER BY weight asc;
返回查询结果的数目
语法:select 字段名 from 表名 limit 开始条数,结尾条数;
返回前三条学生信息:
SELECT * FROM student LIMIT 1,3;
当我们用到聚合函数(sum、count等),又需要筛选条件时,having就派上用场了,因为WHERE是在聚合前筛选记录的,having和group by是组合一起再聚合后使用
语法:没有固定语法
查班级人数大于等于3的班级:
SELECT count(*) FROM student GROUP BY class_id HAVING COUNT(id)>=3;
SELECT MAX(column_name) FROM table_name;
MAX() 函数返回指定列的最大值
column_name:列名
table_name:表名
SELECT MIN(column_name) FROM table_name;
MIN() 函数返回指定列的最大值
column_name:列名
table_name:表名
说明:返回左表中的所有记录和右表中与连接字段相等的记录,如果右表没有匹配的记录,那么就以空(Null)代替显示
语法:select 字段 from 左表表名 左表的变量名(自定义) LEFT JOIN 右表表名 右表的变量名(自定义)on 左表变量名.左表字段=右表变量名.右表字段
说明:与左连接相反:返回右表中的所有记录和左表中与连接字段相等的记录,如果左表没有匹配的记录,那么就以空(Null)代替显示。
说明:只返回两个表都与连接字段相等的记录
举例:
1)还是以查询学生及其所在的班级信息:
SELECT * FROM student a INNER JOIN class b on a.class_id=b.id;
说明:连接查询还可以与where条件联用
举例:
1)查询性别为男的学生及其所在的班级信息:
SELECT * FROM student a LEFT JOIN class b on a.class_id=b.id WHERE a.gender='male';
- 等于 =
- 小于 <
- 大于 >
- 大于等于 >=
- 小于等于 <=
- 不等于 !=或者<>