分类:
1、 数据定义语言
2、 数据操纵语言
3、数据控制语言
其他常用类型:
1、事务管理语言
2、流程控制语言
3、附加的语言元素
常量与变量:
何如声明变量
语法格式:
DECLARE
{@名称 as 类型
|@
给变量赋值可以使用SET或SECECT
SET @变量名=表达式
Select @名称=表达式
方法一:使用set进行赋值
declare @name nvarchar(50)
set @name=’李明’
方法二:使用select进行赋值
declare @name nvarchar(50)
set @name=’李明’
select @name=’王文华’
select @name
declare @str nvarchar(50)
select @str='姓名:'+ 姓名 +'性别:'+ 性别 from 学生信息 where 学号='123456'
select @str
方法:用双连字符–和正斜杠注释/*/
语法格式:
If boolean_expression
语句块
Else
语句块
举例:
declare @num int
select @num=avg(成绩)
from 成绩信息
where 考试编号='0802' and 课程编号='2'
if @num>40
begin
print'这门课老师教课非常成功!'
end
else
print'这门课老师还需要继续努力!'
举例:对成绩进行分析
declare @num int
select @num=avg(成绩)
from 成绩信息
where 考试编号='0802' and 课程编号='2'
if @num>60
begin
if @num<70
print'成绩刚刚及格,还要继续努力'
else if @num <80
print'成绩中等'
else if @num <90
print'成绩良好'
else
print'成绩优秀,希望把经验与大家分享!'
end
else
print'这个老师教学方法需要改进!'
语法格式:
Case input_表达式
When 情况一 then 执行语句块
[…n]
Else
End
select 姓名,所任职位, 员工职称=
case 所任职位
when '经理' then '高级职称'
when '主管' then '中级职称'
when '职员' then '初级职称'
else
from 员工信息
语法格式:
While 表达式
执行语句
Break
跳出循环
Continue
跳出本次循环
举例:求10的阶乘
declare @i int,@num int
set @i=1
set @num=1
while @i<=10
begin
set @num=@num*@i
set @i=@i+1
end
print @num
举例:求3到100的素数
declare @i int
declare @j int
set @i=3
while @i<=100
begin
declare @bol int
set @bol=1
set @j=2
while @j<=sqrt(@i)
begin
if @i%@j=0
begin
set @bol=0
break
end
set @j=@j+1
end
if @bol=1 print @i
set @i=@i+1
end
语法格式:
WAITFOR
{
Delay time
|time
}
举例:延迟5秒钟
waitfor delay'00:00:05'
exec sp_help
语法格式:
BEGIN TRY
{不出错执行结果
End try
Begin catch
错误处理语句
End catch
举例:
begin try
declare @num int
set @num=1/0
select @num
end try
begin catch
select ERROR_LINE() as '错误行数',ERROR_MESSAGE() '错误消息'
end catch
declare @i float,@j int,@a decimal(18,2)
set @i=-12.2324
set @j=100
print abs(round(@i,2))
1、获取h的ascii编码
declare @str nvarchar(50)
set @str='hellow world!'
print ascii('h')
2、返回hellow
declare @str nvarchar(50)
set @str='hellow world!'
print left(@str,5)
3、截取word
declare @str nvarchar(50)
set @str='hellow world!'
print substring(@str,7,11)
CHARINDEX()
返回字符串中某个制定的子串出现的开始位置
函数不能用于TEXT和IMAGE数据类型
PATINDEX()
返回字符串中某个制定的子串出现的位置,可以使用通配符
举例:
declare @str1 nvarchar(20),
@str2 nvarchar(20),
@str3 nvarchar(20),
@str4 nvarchar(20),
@str5 nvarchar(20)
set @str1='上海分公司经理'
set @str2='北京分公司经理'
set @str3='天津分公司经理'
set @str4='上海分公司财务经理'
set @str5='天津分公司财务经理'
print(charindex('分公司',@str4))
print(right(@str4,len(@str4)-patindex('分公司%经理',@str4)+1))
聚合函数:AVG\COUNT\MAX\MIN\SUM
select avg(成绩) as 平均成绩,count(成绩) as 考试人数,sum(成绩) as 总体分数
from 成绩信息
where 考试编号='0801'and 课程编号='2'
print year(getdate())
print month(getdate())
print day(getdate())
效果如下:
2018
8
25
获取年份
print datepart(yy,getdate())
增加一天
print dateadd(dd,1,getdate())
语法格式:
Create 函数名称
(参数)
Returns +类型
With 创建表值函数是否加密
As
Begin
Return+表达式
End
表值函数
Create function
Returns table
With 语句
As
Return