SQL查询语句
SELECT * FROM t_emp;# 查询表中的所有字段
SELECT ename, job, sal FROM t_emp; # 查询表中的指定字段
重命名结果的列名
SELECT empno, sal*12 AS "income" FROM t_emp; # 使用AS重命名查询结果的列名
语句执行顺序: FROM -> SELECT.
数据分页
SELECT empno,ename FROM t_emp LIMIT 0, 8; # 取前八条数据
SELECT empno,ename FROM t_emp LIMIT 8; # 默认从0开始
语句执行顺序: FROM -> SELECT -> LIMIT.
结果集排序
# 默认为升序排序
SELECT empno, ename, hiredate, sal, deptno FROM t_emp ORDER BY empno;
# 可以用多个条件进行排序, 当第一个条件相同时, 用第二个条件进行排序, 当所有条件相同时使用主键进行排序
SELECT empno, ename, hiredate, sal, deptno FROM t_emp ORDER BY ename ASC, hiredate DESC;
# 排序和LIMIT组合使用,只取排序好的前五条数据
SELECT empno, ename, hiredate, sal, deptno FROM t_emp ORDER BY hiredate, sal DESC LIMIT 0, 5;
语句执行顺序: FROM -> SELECT -> ORDER BY -> LIMIT.
去除结果集中的重复记录
SELECT DISTINCT deptno FROM t_emp; # DISTINCT关键字位置是固定的并且每次查询只能使用一次
条件查询
使用WHERE关键字。
运算符
数学运算符:
改变结果集中的NULL值(数据表中不变: IFNULL (字段名, 0) ,把字段中的NULL值变为0,也可以改为其他数据值。
显示当前时间: NOW () 。
日期之间相差多少天: DATEDIFF (日期一,日期二)。
比较运算符:
LIKE关键字的用法:可以使用"A%"表示开头为A的字符串, “%A” 表示以A为结尾的字符串, "%A%“表示字符串中带有A的字符串。”_abc"表示第一位为任意字符,后面为abc的字符串。
SELECT * FROM t_emp WHERE comm IS NULL AND sal BETWEEN 1000 AND 3000 AND DATEDIFF(NOW(), hiredate)/365 > 10 AND ename LIKE '%A%';
逻辑运算符:
按位运算符:
语句执行顺序: FROM -> WHERE -> SELECT -> ORDER BY -> LIMIT.
MySQL常用函数:
IFNULL (字段名, 0): 改变结果集中的NULL值(数据表中不变), 把字段中的NULL值变为0,也可以改为其他数据值。
NOW (): 显示当前时间。
DATEDIFF (日期一,日期二): 日期之间相差多少天。