基本查询语句
SELECT语句是最常用的查询语句,它的使用方式有些复杂,但功能是相当强大的。
select selection_list // 要查询的内容,选择哪些列
from 数据表名 // 指定数据表
where primary_constraint //查询时需要满足的条件,行必须满足的条件
group by grouping_columns //如何对结果进行分组
order by sorting_cloumns //如何对结果进行排序
having secondary_constraint //查询时满足的第二条件
limit count //限定输出的查询结果
单表查询
1.查询所有字段
SELECT * FROM 表名;
2. 查询指定字段
SELECT 字段名 FROM 表名;
3. 查询指定数据
例:应用WHERE子句查询tb_login表,条件是user(用户名)为mr select * from tb_login where user = 'mr';
4. 查询指定数据
例:应用WHERE子句查询computer_stu表,条件是score(成绩)为85 select * from computer_stu where score = 85;
5. 查询指定数据
例:应用WHERE子句查询computer_stu表,条件是score(成绩)大于85 select * from computer_stu where score > 85;
6. 带IN关键字的查询
例:应用IN关键字查询tb_login表中user字段为mr和lx的记录 SELECT * FROM tb_login WHERE user IN('mr','lx');
7. 带BETWEEN AND的范围查询
SELECT * FROM 表名 WHERE 条件 [NOT] BETWEEN 取值1 AND 取值2;
例:查询computer_stu表中成绩在65-85之间的记录 SELECT * FROM computer_stu WHERE score BETWEEN 65 AND 85;
8. 带LIKE的字符匹配查询
例:查询tb_login表中user字段中包含mr字符的数据 select * from tb_login where user like '%mr%';
9. 用IS NULL关键字查询空值
IS [NOT] NULL
例:使用关键字IS NULL查询 tb_book表中name字段的值为空的记录 SELECT books,row FROM tb_book WHERE row IS NULL;
10. 带AND的多条件查询
select * from 数据表名 where 条件1 and 条件2 […AND 条件表达式n];
例:查询数据表tb_login中user字段值为mr,并且section字段值为PHP的记录 select * from tb_login where user='mr' and section='php';
11. 带OR的多条件查询
select * from 数据表名 where 条件1 OR 条件2 […OR 条件表达式n];
例:查询tb_login表中section字段的值为“PHP”或者“程序开发”的记录 select * from tb_login where section='php' or section='程序开发';
12. 用DISTINCT关键字去除结果中的重复行
select distinct 字段名 from 表名;
例:使用关键字DISTINCT去除 tb_login表中name字段中的重复记录 select distinct name from tb_login;
13. 用ORDER BY关键字对查询结果排序
ORDER BY 字段名 [ASC|DESC];
例:查询tb_login表中的所有信息,按照id序号进行降序排列 select * from tb_login order by id desc;
14. 用GROUP BY关键字分组查询
使用关键字GROUP BY来分组
关键字GROUP BY与GROUP_CONCAT()函数一起使用,group_concat()函 数能将group by产生的同一个分组中的值连接起来,返回一个字符串结果
按多个字段进行分组
15. 用GROUP BY关键字分组查询
例:使用关键字GROUP BY对tb_book表中talk字段进行分组查询 select id,books,talk from tb_book GROUP BY talk;
例:使用关键字GROUP BY和GROUP_CONCAT()函数对tb_book表中的talk字 段进行分组查询 use db_database08; SELECT author,GROUP_CONCAT(bookname) FROM tb_bookinfo GROUP BY author;
例:对数据表tb_book表中user字段和talk字段进行分组,分组过程中,先按照 user字段进行分组,当user字段的值相等时,再按照talk字段进行分组 select id,books,talk,user from tb_book GROUP BY user,talk;
16. Having子句
例:在school库的school表中,按照班级对学生进行分组,并查询出每个班级的学 生数,学生的平均身高,最低年龄身高 SELECT class,COUNT(class),AVG(height),MIN(height) FROM school GROUP BY class;
例:查询出存在身高低于160的班级及班级人数 SELECT class,COUNT(class),AVG(height),MIN(height) FROM school GROUP BY class HAVING MIN(height)
17. 用LIMIT限制查询结果的数量
例:查询数据表tb_login中,按照id编号进行升序排列,显示前3条记录 select * from tb_login order by id asc limit 3;
例:查询tb_login表中,按照id编号进行升序排列,从编号1开始,查询两条记录 select * from tb_login where id order by id asc limit 1,2;
18. COUNT()函数
例:使用count()函数统计数据表 tb_login中的记录数 select count(*) from tb_login;
19. SUM()函数
SUM()函数可以求出表中某个字段取值的总和。
例:使用sum()函数统计数据表 tb_book中图书的访问量字段(row)的总和 select row from tb_book; select sum(row) from tb_book;
20. AVG()函数
例:使用AVG()函数求数据表tb_book中row字段值的平均值 select AVG(row) from tb_book;
21. MAX()函数
例:使用MAX()函数查询数据表tb_book中row字段的最大值 select MAX(row) from tb_book;
22. MIN()函数
例:使用MIN()函数查询数据表tb_book中row字段的最小值 select MIN(row) from tb_book;
23. 日期和时间函数
CURDATE()和CURRENT_DATE()函数
CURTME()和CURRENT_TIME()函数
NOW()函数
24. CURDATE()函数和CURRENT_DATE()函数
CURDATE()和CURRENT_DATE()函数获取当前日期。
25. CURTIME()函数和CURRENT_TIME()函数
CURTIME()和CURRENT_TIME()函数获取当前时间。
26. NOW()函数
NOW()函数获取当前日期和时间。还有URRENT_TIMESTAMP()函数、 LOCALTIME()函数、SYSDATE()函数和LOCALTIMESTAMP()函数也同样 可以获取当前日期和时间。
select NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE();
领取专属 10元无门槛券
私享最新 技术干货