目录

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操作符不去重