MySQL数据库之单表查询

来源:互联网 发布:网络专题报道策划 编辑:程序博客网 时间:2024/06/05 02:43

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;

0 0
原创粉丝点击