1.select语句
select [distinct] * | {字段1,字段2,字段3,、、、}
from 表名
[where 条件表达式1]
[group by 字段名 [having 条件表达式2]]
[order by 字段名 [asc|desc]]
[limit [OFFSET] 记录数]
2.按条件查询
2.1带IN关键字的查询
IN关键字用于判断某个字段的值是否在指定的集合中,如果在集合中则满足条件,就可以被查出来。
2.2查询student表中ID值为1、2、3的记录
Select ID,grade,name,gender from studentwhere id IN (1,2,3);
如果查询不在则加NOT: Select ID,grade,name,gender fromstudent where id NOT IN(1,2,3);
2.2between and的使用:student表中学生ID在1~5之间的学生记录:Select ID,grade,name,gender from student where idbetween 1 and 5;
2.3空值查询:查询student表中gender为空的记录:Select ID,grade,name,gender from student where genderIS [NOT] NULL;
2.4 distinct关键字查询:过滤查询结果的重复数据,比如中是性别
Select distinctgender from student;
Select distinctgender name from student;只有同时满足gender和name重复时才当做重复处理。
2.5 like关键字查询:Select distinct gender from student where name like“s%”;
其中通配符%匹配任意长的字符串,包括空字符串。所以上句是查询学生表中名字开头为s的学生记录;where name like “w%g”,表示查询名字以w开头,g结尾的学生记录;where name like “%g%”;查询名字中有g的学生。
下划线“_”通配符:只能匹配单个字符,如:”c_ _g”之间包含两个字符,而且下划线之间不能有空格,如:”M_ _QL”只能匹配字符串“My SQL”,而不是”MySQL”。
通配符特殊含义:用”\%”表示‘%’,用‘\_’表示’_’。
3.高级查询:聚合函数count(),sum(),avg(),max(),min()
Select count(*) from student;
Select sum(grade) from student;
Select avg(grade) from student;
Select max(grade) from student;
Select min(grade) from student;
对查询结果进行排序: Select * from student order by grade asc|desc;
4.分组查询:group by一般和聚合函数一起使用,可以统计出某些字段在一个分组中的最大值、最小值等。
Selete count(*),gender fromstudent group by gender;
安照gender字段值进行分组查询,计算出每一个分组中有多少名学生。
5.group by 和having一起使用:having和where作用相同,对查询结果进行过滤,group by 和having一起使用,用于对分组后的结果进行过滤。
Select sum(grade) ,gender fromstudent group by gender having sum(grade)<300;
先按照gender分组查询,查询出grade之和小于300的分组。
6.limit限制查询结果的数量:
select 字段1,字段2,、、、
from 表名
limit [OFFSET] 记录数
offset表示偏移量,为0则从查询结果的第一个记录开始,为1则从第二个开始,默认为0.“记录数”表示返回查询记录的条数。
Select * from student limit 4;所以一个返回4条记录。
7.为表和字段去别名:
Select * fromstudent AS s where s.gender=’女’;
Select name ASstu_name,gender AS stu_gender from student;