查询记录
最基本的查询语句是由SELECT和FROM关键字组成的
SELECT * FROM t_emp;
SELECT empno,ename,sal FROM t_emp;
SELECT语句屏蔽了物理层的操作,用户不必关心数据的真实存储,交由数据库高效的查找数据。
使用列别名
通常情况下,SELECT子句中使用了表达式,那么这列的名字就是认为表达式,因此需要一种对列名重命名的机制。
SELECT
empno,
sal*12 AS “income” as可省略
FROM t_emp;
子语句执行顺序:1、词法分析与优化;2、选择数据源;3、选择输出内容
数据分页
只加载少量部分信息。
SELECT ....FROM ...LIMIT 起始位置,偏移量
如果limit子句只能有一个参数时,表示偏移量,起始默认值0
结果集排序
SELECT ..... FROM ....... ORDER BY 列名 [ASC|DESC]
如果两条数据排序内容相同时,根据主键排序。多个排序根据首要和次要条件
SELECT * FROM t_emp ORDER BY sal DESC LIMIT 0,20
结果集中的重复记录
结果集存在重复记录。去除重复记录用DISTINCT关键字来实现。
SELECT DISTINCT job FROM t_emp;
如果SELECT子句中如果查询多列 ,去重复记录失效。且在一个子句中只能使用一次。
条件查询
SELECT...FROM .... WHERE 条件 [AND|OR] 条件 ......;
四类运算符
算术运算符 与 null运算的结果都为 null
SELECT IFNULL(null,0)
DTAEDIFF(date1,date2)两个日期的差值
比较运算符 < > ........ in IS NULL IS NOT NULL BETWEEN AND LIKE REGEXP
%匹配任意字符 _匹配一个字符
REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";
逻辑运算符 AND OR NOT XOR
二进制按位运算 & | ~ ^ << >>
Where 子句注意事项
执行顺序从左到右,所以应该吧索引条件,或者赛选掉记录多的条件写在最左侧
子句执行顺序 FROM ->WHERE->SELECT->ORDER BY-> LIMIT