一、模糊查询
1、采用“_”、“%”通配符进行查询
select * from Students where stu_name like '张_';--一个‘_’表示一个字符
select * from Students where stu_name like '张__'
select * from Students where stu_name like '_三';
select * from Students where stu_name like '张%';--%表示零个至多个字符
select * from Students where stu_name like '%三';
2、采用“[]”通配符进行查询
select stu_name from Students where stu_age like '1[0-9]';
select stu_name from Students where stu_age like '1[^7-9]';--不是7-9的
select stu_name from students where stu_name like '[^张]%';--查找不是姓张的学生的姓名
3、复杂模糊查询
select
学生姓名,年龄,性别,家庭住址
from
Students
where
学生姓名 like '张%'
and 年龄 like '2[2-7]'
and 家庭住址 like '河南%';
二、时间日期操作
1、判断是否是日期IsDate函数
select 学生编号,学生姓名,
case when IsDate(出生年月)=1 then '是日期信息'
else '不是日期信息'
end
as 生日字段是否是日期格式
from Students;
2、将日期类型数据转换为字符串
select 出生年月,
Substring(Convert(varchar(20),出生年月),6,5)
as 月日
from Students;
3、查询指定时间段的数据
select stu_name from students where stu_birthday between '1990-4-19' and '1991-05-03';
4、按年、月、日查询数据 Year Month Day
select 书号,书名,销售数量,日期 from tb_Book where Year(日期)='' and Month(日期)='' and Day(日期)=''
5、返回当前日期时间及对应的日期
select Getdate() as 当前日期时间,DATENAME(WEEKDAY,GETDATE()) as 星期;
6、查询指定时间间隔的数据
select 学生姓名,出生年月,Datediff(Year,出生年月,GetDate()) as 学生年龄 from tb_Student;
7、Not和谓词进行组合条件的查询
select * from Students where stu_math not Between 70 and 80;
8、Having子句:聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
select count(书号) as 记录条数,书号,书名,作者 from tb_Book Group By 书号,书名,作者 Having count(书号)>1;