数据的简单查询
本文章通过慕课网python全栈学习所得
基本查询最基本的查询是由SELECT和From关键字组成的
SELECT * FROM t_emp;
SELECT empno,ename ,sal
From t_emp;
例子
SSELECT empno,sal*12 as income From t_emp;
数据分页
SELECT …… FROM …… LIMIT 起始位置,偏移量;
//例子
SELECT empno,ename FROM t_emp LIMIT 0,20;
// 0到20条数据
SELECT empno,ename FROM t_emp LIMIT 10,5;
// 第10条到第五条数据
如果LIMIT子句只有一个参数,她表示的是偏移量,起始值默认为0
SELECT empno,ename FROM t_emp LIMIT 10;
排列 ORDER BY
ASC 代表升序(默认) ,DESC代表降序
如果排序列是数字类型,数据库就按照数字大小排序, 如果是日期类型就按照日期大小排序,如果是字符串就按照字符集序号排序。
#若干例子
SELECT empno ,ename ,sal ,deptno FROM t_emp ORDER BY sal DESC;
SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY ename ASC;
SELECT empno,ename,sal,hiredate 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 DISTINCT job,ename From t_emp;
// 错误语法
DISTINCT关键字只能在SELECT子句中使用一次
SELECT job,DISTINCT ename FROM t_emp;
//错误语法
条件查询使用
where关键字实现对数据的筛选
SELECT …… FROM …… WHERE 条件 [AND|OR] 条件 ……;
//例子
SELECT
empno,name ,sal
FROM t_emp
WHERE deptno = 10 AND sal >= 2000;
算术运算符
IFNULL()函数:
IFNULL() 函数用于判断第一个表达是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
DATEDIFF()函数:
用于返回两个日期之间的天数
//计算工龄大于20年员工的工资例子
SELECT FROM
t_emp
WHERE deptno = 10 AND (sal+IFNULL(comm,0))*12>=15000
AND DATEDIFF(NOW(),hiredate)/365 >=20;
获取当前日期
SELECT NOW();
比较运算符
了解一下
// 查询入职日期在“1985-01-01”的员工信息
SELECT
empno,ename,sal,deptno,hiredate
FROM t_emp
WHERE deptno IN(10,20,30) AND job!="SALESMAN"
AND hiredate<"1985-01-01";
// 例子
SELECT
ENAME,COMM,SAL
FROM t_emp WHERE comm IS NULL
AND sal BETWEEN 2000 AND 3000
AND ename LIKE "_LAKE";
逻辑运算符
SELECT
ename,deptno
FROM t_emp
WHERE NOT deptno IN(10,20);