数据库视频第八章

看完第七章,虽然第八章有35集,但是只要努力就会有收获,所以我就努力看啊。。。。

Transact—SQL概述

结构化查询语言(SQL)

由美国国家标准协会(ANSI,American National Standards Instiute)和国际标准化组织(ISO,International Standards Organization)定义的标准。

Transsact_SQL

结构化查询语言(SQL)的增强版,与多种ANSISQL标准兼容,而且在标准的基础上还进行了许多扩展。Transact_SQL代码已成为SQL Server的核心。

功能和类型

这里写图片描述

变量和常量

注意:常量是不需要声明的,但是变量是需要声明的!

局部变量声明语法

DECLARE 
{@local_variable[AS]data_type 
|@cursor_variable_nameCURSOR
}[,..n]

局部变量的赋值

SET @loacl_variable=expression
SELECT @local_variable=expression[,...n]

举例

declare @name nvarchar(50) ‘定义变量
set @name ='李明'’给变量赋值
select @name ='王文'‘给变量赋值
select @name’查询结果

运算符

这里写图片描述
注意:
算术运算符:
“/” 除法运算:如果两个表达式值都是整数,那么结果只取整数值,小数值将略去。
“%”取模运算:返回两数相除后的余数

位运算符
&”位与逻辑运算:“从两个表达式中取对应的位。当且仅当输入表达式中两个位的值都位1时,结果中的位才被设置位1,否则结果中的位被设置为0.
“|” 位或逻辑运算:从两个表达式中取对应的位。如果输入表达式中两个位数只要有一个值位1时,结果位就被设置为1,只有当两个位的值都为0时,结果中的为才被设置为0
“^” 位异或运算 : 从两个表达式中取对应的为,如果输入表达式中两个位只有一个的值为1时,结果中的位就被设置位1;只有当两个位的值都为1或1时,结果中的位才被设置位0

逻辑运算符
ALL如果一组的比较都为TRUE,则比较结果为TRUE
AND如果两个布尔表达式都为TRUE,则结果为TRUE;如果其中表达式为FALSE,则结果为FALSE.
ANY如果一组的比较中任何一个都为TRUE,则结果为TRUE
BETWEEN如果操作数在某个范围之内,那么结果为TRUE
EXISTS如果子查询中包含了一些行,那么结果为TRUE
IN如果操作数等于表达式列表中的一个,那么结果为TRUE
LIKE如果操作数与某种模式相匹配,那么结果为TRUE
NOT对任何其他布尔运算符的结果值取反
OR如果两个布尔表达式中的任何一个为TRUE,那么结果为TRUE
SOME如果在一组比较中,有些比较为TRUE,那么结果为TRUE.

表达式

举例:

declare @str nvarchar(50)‘定义变量
select @str='姓名:'+student_Name+'性别:' +student_Sex   from student_Info  where student_ID ='1'’表达式举例
select @str ‘查询内容

注释

注释时程序代码中不被执行的文本字符串,对于代码进行说明或暂时用来进行诊断的部分语句。一般地,注释主要描述程序名称、作者名称、变量说明、代码更改日期、算法描述等。

支持的两种注释方式:
1、双连字符:(–)
2、正斜杠星号(/…../)

IF …ELSE 语句

语法格式:

IF Bollean_expression
{sql_statement|statement_block}
ELSE
{sql_statement|statement_block}

举例:

declare @num float
select @num =avg(result)
from result_Info 
where result='2000期中'
if @num>80 
begin 
    print '很6'
end 
else 
    print '需要加油'

IF…ELSE语句嵌套
举例:

declare @NUM int 
SELECT AVG(result)
from result_Info 
where class_No='1'

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_expression
WHEN when_expression THEN result_expression
[...n]
[ELSE else_result_expression]
END 

举例:

select student_name ,别名=

case student_name 
when '汤普森' then'后卫'
when '杜兰特' then '大前锋'
when '保罗' then '组织后卫'
else '其他'
end

from student1_Info  

While 语句

语法格式:

WHILE Boolean_expression
{sql_statement|statement_block}
[BREAK]
{sql_statement|statement_block}
[CONTINUE]
{sql_statement|statement_block}

举例:

declare @i int , @num int 
set @i=1 
set @num=1
while @i<=9
begin 
    set @num=@num *@i
    set @i =@i+1
end 
print @num

WAITFOR延迟语句

语法格式:

WAITFOR
{
DELAY time
|TIME time
}

GOTO语句

举例:

declare @Counter int 
set @Counter =1
while @Counter <10
begin 
    print @counter 
    set @Counter =@Counter +1
    if @Counter =4 goto branch_one --jumps to the first branch
    if @Counter =5 goto branch_two -- this will never execute
end 
branch_one:
    print 'jumping to Branch_one,'
    goto branch_three -- This will prevent Branch_two from executing 
branch_two:
    print 'jumping to branch_one '
branch_three:
    print 'jumping to branch_three'

TRY…CATCH错误处理语句

语法格式:

BEGIN TRY
{sql_statement | statement_block}
END TRY
BEGIN CATCH
{sql_statement | statement_block}
END CATCH

感谢您的阅读,欢迎下次访问!

猜你喜欢

转载自blog.csdn.net/qizhi666/article/details/81413628