普通查询
记录查询
SELECT * FROM 表名;
SELECT 列1,列2,列3 FROM 表名;
SELECT语句屏蔽了物理层的操作,用户不必关心数据的真实存储,交由数据库高效的查找数据。
使用列别名
SELECT id, sal*12 AS “income” FROM t_emp;
查询语句的子句执行顺序
数据分页
SELECT … FROM … LIMIT 起始位置,偏移量;
如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0。
执行顺序
FROM -> SELECT -> LIMIT
排序
SELECT … FROM … ORDER BY 列名 [ACS|DESC];
ASC代表升序(默认), DESC代表降序
如果排序列是数字类型,数据库就按照数字大小排序,如果是日期类型就按照日期大小排序,如果是字符串就按照字符集序号排序。
多个排序字段
我们可以使用ORDER BY规定首要排序条件和次要排序条件。数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启动次要排序条件接着排序。
SELECT … FROM … ORDER BY 列名1 ACS,列2 DESC;
执行顺序
FROM -> SELECT -> ORDER BY -> LIMIT
去除重复记录
SELECT DISTINCT job FROM t_emp;
使用DISTINCT的SELECT子句中只能查询一列数据,如果查询多列,去除重复记录就会失效。
DISTINCT关键字只能在SELECT子句中使用一次。
条件查询
四类运算符
算术运算符:
注:
数字和null加减乘除运算结果还是null。
IFNULL(字段, 0)//mysql函数,字段为空时用0来代替。
DATEDIFF(time1, time2)//计算两个日期相差的天数
NOW()//获取当前日期
比较运算符:
注:
在LIKE表达式里%表示多个字符,_表示单个字符。
逻辑运算符:
按位运算符:
WHERE子句的注意事项
WHERE子句中,条件执行的顺序是从左到右的。所以我们应该把索引条件,或者筛选掉记录最多的条件写在最左侧。
执行顺序
FROM -> WHERE -> SELECT -> ORDER BY -> LIMIT