1、基本查询
select 列名1,列名2......
from 表名 as 别名
where 条件表达式
group by 列名
having 条件表达式
order by 列名 asc(升序)/desc(降序)
1. select 列名1,列名2...... from 表名
(显示表中列名1,列名2…的数据)
2. select * from 表名
(显示表中所有数据)
3. select top 3 * from 表名
(显示表中前三列的数据)
4. select top 50 percent * from 表名
(显示表中前50%的数据,若表中的数据量乘以50%不为整数,则补全小数位取整。
例如:有7条数据,显示前50%, 则显示四条数据)
5. select * from 表名 order by 列名1 asc(升序)/desc(降序)
(对表中的列名1进行升序或者降序排列)
6. select distinct 列名 from 表名
(去除表中列名重复的行)
2.模糊查询
like 通配符 %(0个或多个字符) _(一个字符) [0-9] (范围) 例如:
select 列名1,列名2… from 表名 where 列名1 like ‘_2%’
(查找表中列名1中第二个字符为2的所有数据)
3.聚合函数
count(*) 统计元组个数
count(列名) 统计列中值的个数
sum(列名) 计算列中值的总和(此列必须是数值型)
avg(列名) 计算列中值的平均值(此列必须是数值型)
max(列名) 求列中的最大值
min(列名) 求列中的最小值
4.连接查询
1.内连接
会显示外键表所有的数据,主键表匹配的部分
select 列名
from 表名1
inner join 表名2
on 连接条件
inner join 表名3
on 连接条件
......
2.左外连接
1.把内连接的数据显示出来
2.看左表有没有与之匹配的,若有元表列出,右表用null补齐。
select * from 表名1 as 别名
left join 表名2
on 连接条件
3.右外连接
select * from 表名1 as 别名
right join 表名2
on 连接条件
4.交叉连接
select * from 表名1, 表名2
5.子查询(嵌套查询)
一个查询的结果等于另一个查询的条件。例如:
select 列名
from 表名1
where 列名 in
(select 列名
from 表名2
where 条件表达式)
6.集合查询
参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同
1.并操作:union
select * from 表名1
where 条件表达式1
union
select * from 表名1
where 条件表达式2
2.交操作:intersect
select * from 表名1
where 条件表达式1
intersect
select * from 表名1
where 条件表达式2
等同于:
select * from 表名1
where 条件表达式1 add 条件表达式2
3.差操作:except
select * from 表名1
where 条件表达式1
except
select * from 表名1
where 条件表达式2
等同于:
select * from 表名1
where 条件表达式1 add 条件表达式-2(条件与上面的相反)