普通查询
记录查询
-
最基本的查询语句是由SELECT和FROM关键字组成的
-
SELECT*FROM t_emp;#所有的字段
SELECT empno,ename,sal FROM t_emp;#规定的字段
-
SELECT语句屏蔽了物理层的操作,用户不必关心数据的真实存储,交由数据库高效的查找数据
使用列别名
通常情况下, SELECT子句中使用了表达式,那么这列的名字就默认为表达式,因此需要一种对列名重命名的机制
SELECT
empno ,
sal*12 AS "income"
FROM t_emp ;
查询语句的子句执行顺序
数据分页
比如我们查看朋友圈,只会加载少量部分信息,不用一次性加载全部朋友圈,那样只会浪费CPU时间、内存和网络带宽
如果结果集的记录很多,则可以使用LIMIT关键字限定结果集数量。
SELECT......FROM......LIMIT 起始位置,偏移量;
SELECT empno,ename FROM t_emp LIMIT 0,20;
数据分页的简写用法
如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0
SELECT empno, ename FROM t emp LIMIT 10;#取前多少条数据的意思
SELECT empno, ename FROM t emp LIMIT 0, 10;
子句执行的顺序
FROM-> SELECT-> LIMIT
结果集排序
如果没有设置,查询语句不会对结果集进行排序。也就是说,如果想让结果集按照某种顺序排列,就必须使用ORDER BY子句。
SELECT FROM.... ORDER BY列名[ ASC | DESC ];
SELECT ename, sal FROM t_emp ORDER BY sal ;
排序关键字
ASC代表升序(默认),DESC代表降序
如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按照日期大小排序,如果是字符串就按照字符集序号排序。
SELECT ename, sal FROM t emp ORDER BY hi redate DESC;
排序字段内容相同的情况
排序字段内容相同,MYSQL会按照主键大小来排序两条数据
SELECT empno, ename, sal, hi redate
FROM t_ emp
ORDER BY sal DESC, hiredate ASC;
排序+分页
ORDER BY子句书写的时候放在LIMIT子句的前面
FROM -> SELECT -> ORDER BY ->LIMIT
去除重复记录
如果我们需要去除重复的数据,可以使用DISTINCT关键字来实现
SELECT DISTINCT 字段 FROM
SELECT DISTINCT job FROM t_emp;
注意事项
使用DISTINCT的SELECT子句中只能查询一列数据,如果查询多列,去除重复记录就会失效。
SELECT DISTINCT job, ename FROM t_emp ;
DISTINCT关键字只能在SELECT子句中使用一次