SQL基本语法入门?看这一篇就够啦

基本查询语句

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();

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200729A0JZXG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券