当前位置:文档之家› 实验10 T-SQL语言编程基础

实验10 T-SQL语言编程基础

实验十 T-SQL语言编程基础
姓名:学号:
专业:网络工程班级:
同组人:无实验日期:2012-4-19【实验目的与要求】
1.熟练掌握变量的定义和赋值。

2.熟练掌握各种运算符。

3.熟练掌握流程控制语句,尤其是条件语句和循环语句。

【实验内容与步骤】
10.1. 变量的定义与输出
1.变量的定义和赋值
1) 局部变量的声明:
DECLARE @variable_name DataType
例如:
declare @stuname varchar(20)--声明一个存放学员姓名的变量stuname.
declare @stuseat int--声明一个存放学员座位号的变量stuseat
2) 局部变量的赋值:
局部变量的赋值有两种方法:
a) 使用Set语句
Set @variable_name=value
b) 使用Select语句
Select @variable_name=value
实验:
运行以下程序段,理解变量的使用。

--局部变量的赋值与使用
declare @customer_name varchar(20)--声明变量用来存放客户名称
set @ customer_name ='家电市场'--使用SET语句给变量赋值
select*
from xss
where客户名称=@customer_name --通过局部变理向sql语句传递数据
请给出运行结果:
练习:
创建一名为 Product_name的局部变量,并在SELECT语句中使用该变量查找“冰箱”的”价格”和”库存量”。

给出相应的语句
declare @Product_name varchar(20)
set @Product_name ='冰箱'
select价格,库存量
from CP
where产品名称= @Product_name
请给出运行测试结果:
2.两种输出语句:
1) Print 输出单个的局部变量或字符串表达式. 如:PRINT '价
格合理';
2) Select 局部变量 as 自定义别名。

3.全局变量:
1) SQL Server2005中的所有全局变量都使用两个@@标志作为
前缀.
常见全局变量
变量含义
@@ERROR 最后一个T-SQL错误的错误号
@@IDENTITY最后一次插入的标识值@@LANGUAGE当前使用的语言的名称
@@MAX_CONNECTIONS 可以创建的同时连接的最大数目
@@ROWCOUNT 受上一个SQL语句影响的行数
@@SERVERNAME本地服务器的名称
@@SERVICENAME 此计算机上的SQL服务的名称
@@TRANSCOUNT当前连接打开的事务数@@VERSION SQL Server的版本信息
@@TIMETICKS 当前计算机上的每刻度的微秒数
2) 全局变量的使用
运行以下程序段,理解全局变量的使用。

use cpxs
go
select*from cp
insert into cp values('0221055','爱多
VCD',2326,12)
select当前的错误号=@@error
--0
update CP set库存量=120 where产品编号
='0221055'
print'当前的错误
号'+convert(varchar(20),@@error)
--当前的错误号
select更新的产品编号=@@identity
--6
select当前使用的语言的名称=@@language
--简体中文
select本地服务器的名称=@@servername
--DEMONSTRATOR
select此计算机上SQL服务的名称=@@servicename
--MSSQLSERVER
select SQLServer的版本信息=@@version 给出运行结果:
10.2. 条件结构
1. 在查询分析器中执行下面的语句,体会IF...ELSE...结构
DECLARE @Price float
SELECT @Price =价格 FROM CP WHERE 产品编号='100002' IF @Price >=3000
PRINT '价格偏高'
ELSE
PRINT '价格合理'
PRINT '价格为:'+CONVERT(CHAR(5),@Price)
给出运行结果:
2.练习:自己编写一段程序判断CP表中价格与平均值的比较,将低于平均值的数据行输出来。

给出相应的语句段和运行结果:
declare @Avg_price float
select @Avg_price =avg(价格)from CP
select产品均价=@Avg_price
print'产品均价是:'+convert(char(20),@Avg_price)
select*
from CP
where价格<@Avg_price
10.3. 循环结构
1.下面是计算1~100和的循环结构,执行之,体会循环结构程序。

(注意语句块标志BEGIN...END)
DECLARE @SUM INT,@I INT
SELECT @I=1,@SUM=0
WHILE @I<=100
BEGIN
SELECT @SUM=@SUM+@I
SELECT @I=@I+1
END
PRINT '1...100的和为:'+CONVERT(CHAR(4),@SUM)
给出运行结果:
2.练习:编写一个程序用于计算10的阶乘
给出相应的程序和运行结果:
DECLARE @SUM INT,@I INT
SELECT @I=1,@SUM=1
WHILE @I<=10
BEGIN
SELECT @SUM=@SUM * @I
SELECT @I=@I+1
END
PRINT'10的阶乘为:'+CONVERT(CHAR(20),@SUM)
10.4. 完成以下T-SQL语言编程
(1)用T-SQL语言编程输出3~300之间能被7整除的数。

给出相应的程序和运行结果:
DECLARE @I INT
SELECT @I=3
WHILE @I<=300
BEGIN
if(@I%7=0)
print''+convert(char(4),@I)
SELECT @I=@I+1
END
(2)用T-SQL语言编程输出3~100之内的素数。

给出相应的程序和运行结果:
declare @a int,@b int,@c int
set @a=3
set @b=2
while(@a<100)
begin
set @c=sqrt(@a)
while(@b<=@c)
begin
if(@a%@b=0)
break
if(@b=@c)
print'素数:'+convert(char(4),@a) set @b=@b+1
end
set @a=@a+1
end
(3)在CP表中查找名为”长虹彩电”的产品,如果存在,则显示该产
品的信息;否则,显示”查无此产品”。

给出相应的程序和运行结果:
declare @x nchar(30)
set @x='长虹彩电'
if exists(select*
from CP
where产品名称=@x
)
select*
from CP
where产品名称=@x
else
print'查无此产品'
(4)查看有无客户编号为”000004”的销售记录,如果有,则显示“有”,并查询显示该客户销售的产品信息。

给出相应的程序和运行结果:
declare @kh nchar(10),@cpb char(10)
set @kh='000004'
if exists(select产品编号
from CPXSB
where客户编号=@kh
)
print'有'
select @cpb=产品编号
from CPXSB
where客户编号=@kh
select*
from CP
where产品编号=@cpb。

相关主题