目录
1.基本查询语句
2.显示表结构
运算符
1.算术运算符
2.比较运算符
3.逻辑运算符
排序与分页
1.排序顺序
2.分页
多表查询
查询语法
多表查询分类
SQL99语法实现多表查询
UNION的使用
1.基本查询语句
- 选择全部列
select *
FROM table;
- 选择指定列
select column1,column2
FROM table;
select column1,column2
FROM table
where 过滤条件;
- 去重重复行
在select语句中使用关键字DISTINCT去除重复行
- 空值参与运算
所有运算符或列值遇到null值,运算结果都为null
2.显示表结构
使用DESC或DESCRIBE
运算符
1.算术运算符
运算符 | 名称 |
+ / - | 加法 / 减法 |
* | 乘法 |
/或DIV | 除法 |
%或MOD | 求模(取余) |
2.比较运算符
= 、 <=> 、!= 、 ......
- 非符号类型的运算符
运算符 | 名称 | 作用 |
IS NOT NULL | 不为空运算符 | 判断值、字符串或表达式是否不为空 |
LEAST | 最小值运算符 | 在多个值中返回最小值 |
GREATEST | 最大值运算符 | 在多个值中返回最大值 |
BETWEEN AND | 两值之间 | 判断一个值是否在两个值之间 |
ISNULL | 为空 | 判断值、字符串或表达式是否为空 |
IN | 属于 | 判断一个值是否为列表中任意一个值 |
NOT IN | 不属于 | 。。。不是。。 |
LIKE | 模糊匹配 |
LIKE运算符:
“%”:匹配0个或多个字符。 “_”:只能匹配一个字符。
ESCAPE:转义符
3.逻辑运算符
运算符 | 作用 |
NOT 或 ! | 逻辑非 |
AND 或 && | 逻辑与 |
OR 或 || | 逻辑或 |
XOR | 逻辑异或 |
排序与分页
1.排序顺序
- 使用ORDER BY字句排序
- ASC:升序
- DESC:降序
- ORDER BY子句在SELECT语句的结尾
2.分页
- 格式
LIMIT (位置偏移量,) 行数
- 举例
--前10条记录:
SELECT * FROM 表名 LIMIT 0,10;
或者
SELECT * FROM 表名 LIMIT 10;
--第11至20条记录:
SELECT * FROM 表名 LIMIT 10,10;
--第21至30条记录:
SELECT * FROM 表名 LIMIT 20,10;
SELECT * FROM table
LIMIT(PageNo - 1)*PageSize,PageSize;
分页显式公式:(当前页数-1)*每页条数,每页条数
LIMIT 子句必须放在整个SELECT语句的最后!
多表查询
查询语法
select table1.column,table2.column
from table1,table2
where table1.column1 = table2.column2; #连接条件
多表查询分类
- 分类1:等值连接vs非等值连接
- 分类2:自连接vs非自连接
SQL99语法实现多表查询
- 使用JOIN...ON子句创建连接的语法结构:
select table1.column,table2.column,table3.column
from table1
JOIN table2 ON table1
JOIN table3 ON table2
- 内连接(INNER JOIN)的实现
select 字段列表
FROM A表 INNER JOIN B表 #INNER可省略
ON 关联条件
where 等其他语句;
- 外连接(OUTER JOIN)的实现
- 左外连接(LEFT OUTER JOIN)
#实现查询结果是A
select 字段列表
FROM A表 LEFT JOIN B表
ON 关联条件
WHERE 等其他语句;
- 右外连接(RIGHT OUTER JOIN)
- 满外连接(FULL OUTER JOIN)
UNION的使用
合并查询结果利用UNOIN关键词
select column,... FROM table1
UNOIN [ALL]
SELECT column,... FROM table2
UNION操作符返回两个查询结果集的并集,并除重复元素
UNION ALL操作符不去重