数据库视频总结(四)——T-sql语句

T-sql语句

分类:
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 ..else语句

语法格式:

If boolean_expression
语句块
Else
语句块

举例:

declare @num int      
select @num=avg(成绩)
from 成绩信息
where 考试编号='0802' and 课程编号='2'
if @num>40
begin
print'这门课老师教课非常成功!'
end
else
print'这门课老师还需要继续努力!'

IF…ELSe语句嵌套

举例:对成绩进行分析

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语句

语法格式:

Case input_表达式
When 情况一 then  执行语句块
[…n]
Else 
End

Case 语句示例

select 姓名,所任职位, 员工职称=
case 所任职位 
when '经理' then '高级职称'
when '主管' then '中级职称'
when '职员' then '初级职称'
else 
 from 员工信息

WHILE语句

语法格式:
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

While语句中使用其他语句

举例:求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延迟语句

语法格式:

WAITFOR
{
Delay time
|time
}

举例:延迟5秒钟

waitfor delay'00:00:05'
exec sp_help

Try…catch错误处理语句

语法格式:

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

猜你喜欢

转载自blog.csdn.net/huihui1314_/article/details/82287432