单表查询语法

SELECT DISTINCT 字段1,字段2... FROM 表名
WHERE 条件
GROUP BY field
HAVING 筛选
ORDER BY field
LIMIT 限制条数

关键字执行的优先级

from
where
group by
select
having
distinct
order by
limit

  

1.找到表:from

2.拿着where指定的约束条件,去文件/表中取出一条条记录

3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

4.执行select(去重)

5.将分组的结果进行having过滤

6.将结果按条件排序:order by

7.限制结果的显示条数

where约束

where字句中可以使用:

1. 比较运算符:> < >= <= <> !=
2. between 80 and 100 值在80到100之间
3. in(80,90,100) 值是80或90或100
4. like 'e%'
通配符可以是%或_,
%表示任意多字符
_表示一个字符
5. 逻辑运算符:在多个条件直接可以使用逻辑运算符 and or not

  

group by

单独使用GROUP BY关键字分组
SELECT post FROM employee GROUP BY post;
注意:我们按照post字段分组,那么select查询的字段只能是post,想要获取组内的其他相关信息,需要借助函数 GROUP BY关键字和GROUP_CONCAT()函数一起使用
SELECT post,GROUP_CONCAT(emp_name) FROM employee GROUP BY post;#按照岗位分组,并查看组内成员名
SELECT post,GROUP_CONCAT(emp_name) as emp_members FROM employee GROUP BY post; GROUP BY与聚合函数一起使用
select post,count(id) as count from employee group by post;#按照岗位分组,并查看每个组有多少人

聚合函数

#强调:聚合函数聚合的是组的内容,若是没有分组,则默认一组

示例:
SELECT COUNT(*) FROM employee;
SELECT COUNT(*) FROM employee WHERE depart_id=1;
SELECT MAX(salary) FROM employee;
SELECT MIN(salary) FROM employee;
SELECT AVG(salary) FROM employee;
SELECT SUM(salary) FROM employee;
SELECT SUM(salary) FROM employee WHERE depart_id=3;

HAVING过滤

HAVING与WHERE不一样的地方在于!!!!!!

ORDER BY 查询排序

按单列排序
SELECT * FROM employee ORDER BY salary;
SELECT * FROM employee ORDER BY salary ASC;
SELECT * FROM employee ORDER BY salary DESC; 按多列排序:先按照age排序,如果年纪相同,则按照薪资排序
SELECT * from employee
ORDER BY age,
salary DESC;

LIMIT 限制查询的记录数

示例:
SELECT * FROM employee ORDER BY salary DESC
LIMIT 3; #默认初始位置为0 SELECT * FROM employee ORDER BY salary DESC
LIMIT 0,5; #从第0开始,即先查询出第一条,然后包含这一条在内往后查5条 SELECT * FROM employee ORDER BY salary DESC
LIMIT 5,5; #从第5开始,即先查询出第6条,然后包含这一条在内往后查5条

使用正则表达式查询

SELECT * FROM employee WHERE emp_name REGEXP '^ale';

SELECT * FROM employee WHERE emp_name REGEXP 'on$';

SELECT * FROM employee WHERE emp_name REGEXP 'm{2}';

小结:对字符串匹配的方式
WHERE emp_name = 'egon';
WHERE emp_name LIKE 'yua%';
WHERE emp_name REGEXP 'on$';

最新文章

  1. 关于JS事件的几点总结
  2. 【Swift学习】Swift编程之旅---函数(十)
  3. 9月20日上午JavaScript函数
  4. MySQL性能优化总结(转)https://yq.aliyun.com/articles/24249
  5. spring扫描classpath下特定package,并加载具有特定注解的接口
  6. http协议学习系列
  7. ASP.NET MVC4中用 BundleCollection使用问题手记
  8. java 与 R 相互调用
  9. poj1942 Paths on a Grid
  10. Case When Exists SQL
  11. How to use Mac Terminal
  12. jquery 的小角落
  13. MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions -(亲测可用)
  14. CDN概念+作用+特点+原理
  15. tomcat中session在两个webapp中实现共享
  16. C# 另一种提交表单
  17. CSS 背景图像 填充整个页面示例
  18. 洛谷P3389 【模板】高斯消元法
  19. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
  20. 【题解】Luogu P2763 试题库问题

热门文章

  1. unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计
  2. Eclipse 主题(Theme)配置
  3. Spring Bean的一生
  4. uvm_mem_mam——寄存器模型(十三)
  5. 数据库之游标过程-- 基于MySQL
  6. AutoIt上传非input控件方式的文件脚本
  7. PostgreSQL数据类型
  8. 51nod 1489 蜥蜴和地下室
  9. [学习笔记] C++ 历年试题解析(一)--判断题
  10. 文件 MD5 SHA1 SHA256 SHA512 校验码生成工具 V1.3