简单查询:
一、查询表名和列名
select *from 表名
select 列1,列2···from 表名
select distinct 列名 from表名 去重只能是一列
二、筛选
select top 3* from 表名 查询表的前三行
select top 3 列名 from 表名 where age >22 查询年龄大于22 岁的的前三行
1、等值与不等值
select *from 表名 where 列名=(!= ,>,<,>=,<=)值
2、多条件与范围
select*from 表名 where 条件 1 and或or 条件2
select*from 表名where between····and···
select*from 表名 where 列 in(值)
三、排序
select *from 表名 order by 列名 asc/ desc 把一列进行升序或者降序排列
select*from 表名 where age<25 order by age asc ,code desc 把小于年龄25岁的按照升序排列,如果有相同年龄的,再把相同年龄的按照降序排列
四、分组
聚合函数
count(),max(), min(),sum(),avg()
select count(*) from 表名 where 列名 统计总行数
select count(列名)from 表名 只统计这一列中的非空值,如果有一格为空,会少统计一行
select min(列名) from 表名 找这一列的最小值
select avg(列名)from 表名 算这一列的平均分
group by....having.....
1、group by后面跟的是列名
2、一旦使用group by分组了,则select 和from中间就不能用星号,只能包含两类东西,一类是 group by后面的列名,另一类是统计函数
select 列名,avg(列名) from 表名 group by 列名
having 后面一般跟的统计函数,根据分组后的结果进行进一步筛选
select 列名 from 表名 group by 列名 having count(*)>1 可以把重复的找出来,并且显示有几个相同的
子查询(嵌套查询)
使用查询语句查询一列数据出来,然后作为其他查询的查询条件中的参数来使用
内连接: select*from 表 1
join 表2 on 表1列=表2列
join 表3 on表2列=表3列
外连接:左连接和右连接
合并数据
select sname,ssex, sbirthdy from student
union
select Tname,Tsex,Tbirthday from Teacher
1、union中的所有选择列表必须具有相同的列数,相似的数据类型和相同的顺序
2、结果集中的列名来自第一个select语句
连接查询是列的扩展
联合查询是行的扩展