看完第七章,虽然第八章有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
感谢您的阅读,欢迎下次访问!