1、单表查询 2、模糊查询 3、范围查询 4、聚合函数 5、分组查询
1、查询所有数据
select * from userinfos
2、查询表的部分数据
select userid,username,age from userinfos
3、给列取别名
-- 列名 as 别名 列名 别名 别名=列名
select userid as 用户编号,username 用户名,年龄=age
from userinfos
4、排序 desc 降序 asc 升序
select userid、username、age from userinfos
order by age asc
--1、% 匹配0个或多个
select * from userinfos where username like '%ad%' --查询所有包含ad的
select * from userinfos where username like '%d(a%)' --查询以什么开头或什么结尾
--2、_ 匹配单个字符,限制表达式的字符长度
select * from userinfos where like '_dmin' --查询长度为5,后四位为dmin的数据
select * from userinfos where like '_____'
--3、[]范围匹配,括号中字符中的一个
select * from userinfos where like 'ad[mnp]in'
select * from userinfos where like 'ad[m|n|p]in'
select * from userinfos where like 'ad[m-p]in'
--4、[^]不在括号范围之内的单个字符
select * from userinfos where like 'ad[^abc]in'
--select * from test where 子句 条件--给定范围
--比较运算符 > < >= <= <>
select * from userinfos where age>30
--in、not in
select * from userinfos where age in(30,23,34)
select * from userinfos
where deptid in
(
select deptid from deptinfos --子查询
)
--between and 等价于 >= and <= betweent and 效率更高
select * from userinfos
where age between 20 and 31 --age>=20 and age<=31
--查询前面多少条,百分比
select top 10 * from userinfos
select 100 percnet * from userinfos
--聚合函数:对一组值执行计算并返回单一的值
count 记录数 计算null值 经常与select语句中的group by 结合使用 count(1)比count(*)效率高
--五种聚合函数
count 记录个数
sum 求和
avg 平均值
max 最大值
min 最小值
--count
select count(1) record from userinfos
--sum
select sum(age) from userinfos
--age
select avg(age) from userinfos
--max
select max(age) from userinfos
--min
select min(age) from userinfos
--分组查询
select ...
where ...
group by
--统计各个部门的用户数
select deptid,count(1) 用户数 from userinfos
group by deptid
select deptid,count(1) 用户数 from userinfos
where age>30
group by deptid
having deptid>1 --分组后刷选
order by deptid
--注意:select之后出现的列必须要包含在聚合函数之中或group by之后,
--只针对出现group by 的情况,不然会报错