网站建设系统分析包括哪些,微信 网站设计模板,如何做书签网站,阿里巴巴官网app目录 一、简单查询二、高级查询2.1 分页2.3 结果集排序2.4 去重 三、条件查询3.1 算术运算符3.2 比较运算符3.3 逻辑运算符3.4 按位运算符3.5 WHERE子句的注意事项 一、简单查询
# 查询t_emp表的所有字段
SELECT * FROM t_emp;# 查询t_emp表的指定字段
SELECT ename, empno FR… 目录 一、简单查询二、高级查询2.1 分页2.3 结果集排序2.4 去重 三、条件查询3.1 算术运算符3.2 比较运算符3.3 逻辑运算符3.4 按位运算符3.5 WHERE子句的注意事项 一、简单查询
# 查询t_emp表的所有字段
SELECT * FROM t_emp;# 查询t_emp表的指定字段
SELECT ename, empno FROM t_emp;# 为sal*12列名起一个名字叫incom
SELECT empno, sal*12 AS incom FROM t_emp;执行顺序 词法分析与优化-FROM-SELECT
二、高级查询
2.1 分页 看朋友圈只会加载少量的部分的信息不用一次性加载全部的朋友圈那样会浪费CPU、时间内存和网络带宽 如果结果集很多则可以使用LIMIT关键字限定结果集的数量。 # 分页处理
# SELECT ... FROM ... LIMIT 起始位置,偏移量;
# 起始位置不写默认是0
SELECT empno, ename FROM t_emp LIMIT 0, 5;执行顺序 FROM-SELECT-LIMIT
2.3 结果集排序
# 查出来的结果排序, ORDER BY 字段名称默认升序
SELECT empno, ename, sal, deptno FROM t_emp ORDER BY sal;
# 降序排列 DESC 升序ASC
SELECT empno, ename, sal, deptno FROM t_emp ORDER BY sal DESC;多字段排序
# 当指定的排序字段一致时默认再按照主键的升序排序
# 但是可以指定多关键字排序
SELECT empno, ename, sal, hiredate FROM t_emp ORDER BY sal DESC, hiredate ASC;排序分页
# 例子查出公司工资前5的员工
SELECT empno, ename, sal FROM t_emp ORDER BY sal DESC LIMIT 0, 5;执行顺序 FROM-SELECT-ORDER BY-LIMIT
2.4 去重
DISTINCT的使用 结果集中的重复记录 ——去除重复记录
DISTINCT只能有一个字段当查询有多个字段时DISTINCT会失效DISTINCT关键字只能在SELECT子句中使用一次DISTINCT关键字必须加在第一关键字前面也只能有一个关键字 例子 想要看看员工一共有哪几种工作这时要求不重复显示 SELECT DISTINCT job FROM t_emp; 三、条件查询
SELECT empno, ename, sal FROM t_emp WHERE (deptno10 OR deptno20) AND sal 2000;例子找出部门为10 年收入(salcomm)超过15000并且工龄超过20年的员工 SELECT empno, ename, sal, hiredate
FROM t_emp
WHERE deptno10 AND (sal IFNULL(comm,0))*1215000 AND DATEDIFF(NOW(),hiredate)/36520;注意 任何值与NULL加减乘除之后依然时NULL IFNULL()函数如果第一个参数为NULL返回第二个参数 DATEDIFF()两个日期参数返回天数 NOW()函数返回当前的日期和时间
3.1 算术运算符 - * / %
3.2 比较运算符
, , , , , !, IN
IN为包含
表达式意义例子IS NULL为空comm IS NULLIS NOT NULL不为空comm IS NOT NULLBETWEEN AND范围sal BETWEEN 2000 AND 3000LIKE模糊查询ename LIKE “A%”REGEXP正则表达式ename REGEXP “[a-zA-Z]{4}”
注释 LIKE“A%” 指的是以A开头“%A”表示以A结尾“%A%”表示字段中包含A
# 在部门102030中查找工作不是销售入职日期在1985-01-10之前的
SELECT empno, ename, sal, deptno, hiredate
FROM t_emp
WHERE deptno IN(10, 20, 30) AND job ! SALESMAN AND hiredate1985-01-10;例子 查找佣金不为空的员工,并且底薪是2000到3000,并且名字以A开头的员工
SELECT ename, comm, sal
FROM t_emp
WHERE comm IS NOT NULL
AND sal BETWEEN 2000 AND 3000
AND ename LIKE A%;3.3 逻辑运算符
AND, OR, NOT, XOR
例子 查询不在1020部门的员工
SELECT ename, deptno
FROM t_emp
WHERE NOT deptno IN(10, 20);3.4 按位运算符 二进制运算 | ~ ^
3.5 WHERE子句的注意事项
WHERE子句中条件执行的顺序是从左到右的。所以应该把索引条件或者筛选掉最多的条件写在最左侧条件优先级索引条件、筛选掉最多的记录的条件、普通检索条件
执行顺序 FROM-WHERE-SELECT- ORDER BY-LIMIT