??xml version="1.0" encoding="utf-8" standalone="yes"?>
数学函数
select ABS(-9)
select CEILING(9.00001)
select FLOOR(9.9)
select PI()
select POWER(2,3)
select SORT(9)
select SIGN(0)
select ROUND(892.35,1,7)
select ROUND(892.35,1,0)
select 1+FLOOR(LOG10(48901))
select FLOOR(RAND()*10)
字符串函?br />
select LEFT('aaaaaa',2)
select RIGHT('123456',2)
select LEN('1')
select LOWER('aaBN')
select UPPER('aaBN')
select rtrim(LTRIM('aaa'))+'**'-trim().Itrim()
select SUBSTRING('abcdefg',2,3)
select REPLACE('aba','a','ccc')
select STUFF('aaaaa',1,2,'bbbbbb')
日期旉
select GETDATE()
select YEAR(GETDATE())
select MONTH(GETDATE())
select DAY(GETDATE())
select DATEADD(mm,100,'1990-10-10')
select DATEDIFF(yy,'1988-8-8',getdate())
查询老师的年?br />
select teacher_name , DATEDIFF(yy,出生日期Qgetdate())
from dbo.teacher
转换函数
select cast('666' as int )+100
select convert(varchar(13),999)+'***'
insert into用法
1.向教师表中加入一个记录,字段的顺序与数目和表中的一?br />
insert into teacher values()
2.字段的数目与序自己指定
insert into teacher(name , sex_id) values('张三',1)
3.从select索中插入成批记录
insert into dbo.student
select teacher
from dbo.teacher
delete from dbo.student ming like'?'
update用法
1.更新一个字D?br />
Update teacher
set teacher_name='里斯'
where teacher_id=2
2.教师的基本工资上?%
Update teacjer
set 基本工资=基本工资*(1.05)
3.多字D|斎ͼ每一个用Q隔开
Update teacher
set teacher_name='李四' ,
teacjer_id = 1
where teacher_id=3
]]>
1.group by通常与集合函?avg,sum,count,max,min)配合使用
查询教师表中男女教师的h?br />
select count(*) as renshu
from dbo.teacher
group by sex_id
2.针对多字D늚分组
每个pȝ男女生的人数
select count(*) as renshu
from dbo.student
group by sex_id , p_id
3.多表查询中的分组应用
select count(*) as rs
from dbo.student xs inner join dbo.p?xi
on xs.p_id = xi.p_id
group by pd
4.对于计算字段的分l应?br />
查询机pd生数和其他系的学生数
select count(*)
(
case
when p_id =1 then 'jsjx'
else 'qt'
end
)
from dbo.student
group by
(
case
when p_id =1 then 'jsjx'
else 'qt'
end
)
5.分组条ghaving的用?br />
pMh数在10Z上的p?br />
select count(*) as shu p_id
from dbo.student
group by p_id
having count(*) > 10
或写?br />
select *
from (
select count(*) as shu,p_id
from dbo.student
group by p_id
)linshi
where linshi.shu > 10
order by 集锦
1.对单个字D늚排序(asc升序可省?desc降序)
select teacher_id
from dbo.teacher
order by teacher_name
2.多字D|?先按W一个字D|序,如果相同再按W二个排?
select *
from dbo.teacher
order by 性别_id , p_id
3.按笔L?br />
select teacher_id
from dbo.teacher
order by teacher_name Collate Chinese_PRC_Stroke_ci_as desc
4.order by 可按l定的表辑ּ计算l果排序
按教师年龄大降序排?br />
select teacher_name
from dbo.teacher
order by DATEDIFF(yy,出生日期,getdate()) desc
本q入学的新生排在前面老生排在后面
select student_id,?br />
(
case
when ?2006 then 1
else 0
end
)
from dbo.student
order by
(
case
when ?= 2006 then 1
else 0
end
) desc
其他Q?br />
union合ƈQ?br />
本校学生和老师的名字全部查询出来(L重复Q?br />
select teacher_name
from dbo.teacher
union
select student_name
from dbo.student
本校学生和老师的名字全部查询出来(不去掉重复)
select teacher_name
from dbo.teacher
union all
select student_name
from dbo.student
]]>
1.从一个表中检?br />
select *
from dbo.teacher
2.从一个检索结果中再检索即从时表中检?br />
select *
from (
select teacher_id , teacher_name
from dbo.teacher
) te
where te.teacher_id <4
3.从多表中索,构成W卡积(效率?
select dbo.teacher.* , pd
from dbo.teacher , dbo.p?br />
where dbo.teacher.p_id = dbo.p?p_id
4.多表的链接查询(重左表Q?br />
select *
from dbo.p?left join dbo.teacher
on dbo.p?p_id = dbo.teacher.pid
(重双)
select *
from dbo.p?right join dbo.teacher
on dbo.p?p_id = dbo.teacher.p_id
(内连?都不重)
select *
from dbo.p?/span> inner join dbo.教师
on dbo.p?/span>.p?/span>_ID=dbo.教师.p?/span>_ID inner join dbo.教师认课
on dbo.教师.教师_ID=dbo.教师认课.教师_ID
(全链?都尊?
select *
from dbo.p?all join dbo.teacher
on dbo.p?p_id = dbo.teacher.p_id
5.l被索表起别?nbsp; 注意Qv了别名就一定要用别名来引用字段
错误?br />
select dbo.teacher.teacher_id
from dbo.teacher js
正确?br />
select js.teacher_id
from dbo.teacher js
where 集锦
1.常规关系q算W?strong> >?/span> >=?/span> <?/span> <=?/span> !=?/span> <>?/span> =
select 教师_ID
from dbo.教师
where 教师_ID<>1
2.常规逻辑q算W?not , and ,or
select teacher_id
from dbo.teacher
where not (teacher_id>=1 and teacher_id<=8)
3.区间
teacher_id >=1 q且 teacher_id<=8
select teacher_id
from dbo.teacher
where teacher_id between 1 and 8
4.索null?br />
select teacher_id
from dbo.teacher
where teacher_date is null
5.关于字符的模p查?br />
(1)姓张的所有老师
select teacher_id
from dbo.teacher
where teacher_name like '?'
(2)姓张的但是名字只有两个字的老师
select teacher_id
from dbo.teacher
where teacher_name like '?'
(3)名字含有国字的所有老师
select teacher_id
from dbo.teacher
where teacher_name like '%?'
(4)老师的第一个名字在a-m之间的老师
select teacher_id
from dbo.teacher
where teacher_name like '[a-m]%'
(5)老师名字的第一个字母不在a-m之间的老师
select teacher_id
from dbo.teacher
where teacher_name like '[^a-m]%'
(6)老师的名字第一个字母是a或者b或者m的老师
select teacher_id
from dbo.teacher
where teacher_name like '[a,b,m]%'
(7)教师名字W一个字母在a到k之间或o到x之间的老师
select teacher_id
from dbo.teacher
where teacher_name like '[a-k,o-x]%'
6.关于in的用?br />
(1)枚D?br />
select *
from dbo.teacher
where teacher_id in (1,3,5)
select*
from dbo.teacher
where teacher_id not in(1,3,5)
(2)嵌套子查?br />
有课上的老师
select *
from dbo.teacher
where teahcer_id in (
select teacherid
from dbo.教师任课
)
7.exists判断子查询是否有l果Q强调有无,不关心具体是什么)
select *
from dbo.教师
where exists --存在
(
select *
from dbo.教师认课
where dbo.教师认课.教师_ID=dbo.教师.教师_ID
)
8.any其中一?br />
教师ID大于所有教师ID中Q意一个的教师Q相当于大于最ID的教师)
select *
from dbo.teahcer
where teahcer_id > any
( select teacher_id
from dbo.teacher
)
9.all全部
相当于大于最大max
select *
from dbo.teacher
where teacher_id > all(
select teacher_id
from dbo.teacher\
)