您的位置:首页 > 数据库

SQL编程

2016-03-05 17:14 363 查看
一:本章目标

1:掌握如何定义变量并赋值

2:如何输出显示数据

3:数据类型转换 cast()和convert()函数

4:掌握逻辑控制语句:

顺序结构控制语句:begin-end语句

分支结构控制语句:if-else语句和case-end语句

循环结构控制语句:while语句

5:使用批处理指令完成多语句批量处理(GO指令)

二:变量

定义:变量是存储数据的容器

变量分为局部变量和全局变量

局部变量的使用是先申明再赋值。而全局变量由系统定义和维护,可以直接使用,但一般不自定义全局变量

1:局部变量:

局部变量的名称必须以标记@作为前缀

声明局部变量的语句如下:

declare @variable name(局部变量名称) DataType(数据类型)

局部变量赋值有两种方法:使用Set语句或Select语句

例子:

整型:

declare @num int
set @num=10
print 'num的值是:'+convert(nvarchar(32),@num)


字符串类型:(char varchar nvarchar)

declare @name nvarchar(32)
set @name='赵六'
print @name


小数类型(float decimal numeric(18,0))

declare @number decimal(18,2)
set @number=1.3
print @number


日期类型(datetime))

declare @mydate datetime
set @mydate=GETDATE()
print convert(nvarchar(32),@mydate,120)


2:全局变量

SqlServer中的所有全局变量都使用两个@符号作为前缀

常用的几个全局变量:

@@error(重点)上一条SQL错误号
@@identity最后一次插入的标识值
@@rowcount受上一个SQL语句影响的行数
@@serviceName该计算机上的SQL服务名称
@@VersionSQLServer的版本信息
  

 

  

注:程序员不能自己定义全局变量,不能给全局变量赋值

三:select语句和set语句区别

SetSelect
同时对多个变量赋值不支持支持
表达式返回多个值时出错将返回的最后一个值赋给变量
表达式未返回值时变量将赋值为NULL变量保持原值
eg:

注:被赋值的变量的数据来源于数据表的时候,不要用set,选用select

Declare @stuName nvarchar(32)
Select @stuName=studentname from student
Where studentno=23


  

四:数据类型转换

cast()与convert()函数

基本语法:

cast(表达式 as 数据类型)

convert(数据类型[(长度)],表达式[,样式])

二者在本质上无任何区别 唯一不同之处是:在将日期时间类型的数据转换为字符串数据时,convert()函数可以通过第三个参数指定转换后字符数据的显示格式不同。

五:逻辑控制语句

1:顺序结构控制语句

begin

语句或语句块

end

类似于C#语言的“{}”表示语句块的开始和结束

2:If-else条件语句

金典案例:

统计并显示2013-08-09 的oop考试平均分

如果平均分在70以上,显示“考试成绩优秀”,并显示前三名学生的考试信息

如果在70分以下,显示“考试成绩较差”,并显示后三名学生的考试信息



3:while循环语句

注:在SQL 中,只有while一种循环,没有do-while和for循环

经典案例:

检查学生“oop”课最近一次考试是否有不及格(60分及格)的学生。

如有,每人加2分,高于95分的学生不再加分,直至所有学生这次考试成绩均及格





4:case多分支语句

case-end语句计算一组条件表达式,并返回其中一个符合条件的结果

基本语法:

case

when 条件1 then 结果1

when 条件2 then 结果2

[ else 其他结果]

end

经典案例:

ABCDE五级打分制显示学生oop课最近一次考试成绩(姓名和等级)

A级: 90分以上,B级:80-分,C级: 70-分,D级:60-分,E级:60分以下



五:批处理

GO指令:GO关键字标志着批处理的结束,它是一条或多条SQL语句的集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: