3-1-2 MySQL基础-数据库的基本查询
普通查询
最基本的查询是由SELECT和FROM关键字组成的
1 SELECT * FROM t_teacher;
使用列别名
1 SELECT 2 e.ename AS '名称' 3 FROM t_emp e
查询语句的子句执行顺序
1.语法分析与优化:读取SQL语句
2.FROM:选择数据来源
3.SELECT:选择输出内容
数据分页
如果结果集的记录很多,可以使用LIMIT关键字限定结果集数量
语法:
SELECT ... FROM ... LIMIT 起始位置,偏移量;
1 SELECT empno,ename FROM t_emp LIMIT 0,5;
如果LIMIT子句只有一个参数,他表示的是偏移量,起始值默认为0
1 SELECT empno,ename FROM t_emp LIMIT 5;
查询语句的子句执行顺序
FROM -> SELECT -> LIMIT
结果集排序
使用ORDER BY 对结果集排序
SELECT ... FROM .. ORDER BY 列名 [ASC][DESC];
1 SELECT * FROM t_salgrade ORDER BY losal;
ASC代表升序(默认),DESC代表降序
如果排序列是数字类型,数据库按照数字大小排序,如果是日期类型就按照日期大小排序,如果是字符串就按照字符集序号排序.
排序字段内容相同的情况
如果排序字段内容相同,MySQL会按照主键大小排序.
多个字段排序
我们可以使用ORDER BY规定首要排序条件和次要排序条件.
数据库会首先按照首要排序条件排序,如果遇到相同排序内容,那么将启用次要条件接着排序
排序+分页执行顺序
ORDER BY子句书写的时候放在LIMIT子句的前面
FROM -> SELECT -> ORDER BY ->LIMIT
去除重复记录
SELECT DISTINCT 字段 FROM 表名;
1 SELECT DISTINCT job FROM t_emp;
注意
使用DISTINCT的SELECT语句只能查询一列数据,如果查询多列,去除重复记录就会失效
1 SELECT DISTINCT job, ename FROM t_emp;
DISTINCT关键字只能在SELECT子句中使用一次
1 SELECT DISTINCT job, DISTINCT ename FROM t_emp;
条件查询
SELECT 字段 FROM 表名 WHERE 条件 [AND][OR] 条件 ...;
四类运算符
WHERE语句中的条件会用到以下四种运算符
1.算术运算符
| 序号 | 表达式 | 意义 | 例子 |
| 1 | + | 加法 | 1+2+3 |
| 2 | - | 减法 | 1-2-3 |
| 3 | * | 乘法 | 5*35 |
| 4 | / | 除法 | 231/15 |
| 5 | % | 求模 | 10%3 |
2.比较运算符
| 序号 | 表达式 | 意义 | 例子 |
| 1 | > | 大于 | age>18 |
| 2 | >= | 大于等于 | age>=18 |
| 3 | < | 小于 | age<18 |
| 4 | <= | 小于等于 | age<=18 |
| 5 | = | 等于 | age=18 |
| 6 | != | 不等于 | age!=18 |
| 7 | IN | 包含 | age IN (18,19,20) |
3.逻辑运算符
| 序号 | 表达式 | 意义 | 例子 |
| 1 | AND | 与 | age>18 AND sex='男' |
| 2 | OR | 或 | empno = 8000 OR deptno = 20 |
| 3 | NOT | 非 | NOT deptno = 20 |
| 4 | XOR | 异或 | age>18 XOR sex='男' |
4.按位运算符
| 序号 | 表达式 | 意义 | 例子 |
| 1 | & | 位与 | 3&7 |
| 2 | | | 位或 | 3|7 |
| 3 | ~ | 位取反 | ~10 |
| 4 | ^ | 为异或 | 3^7 |
| 5 | << | 左移 | 10<<1 |
| 6 | >> | 右移 | 10>>1 |
WHERE子句的注意事项
WHERE子句中,条件执行的顺序是从左到右的.所以应该把索引条件或者筛选掉记录最多的条件写在最左侧
各种子句的执行顺序
FROM -> WHERE -> SELECT -> ORDER BY -> LIMIT

浙公网安备 33010602011771号