数据库练习_T-SQL程序_S_VARIABLE_CONTROL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库练习_T-SQL编程
一、变量
(1)创建局部变量@var1、@var2并赋值,然后输出变量的值。
【强化练习】
(1)创建局部变量@var1、@var2并赋值,然后输出变量的值。
DECLARE @var1 char(10) ,@var2 char(30)
SET @var1='中国' /*一个SET语句只能给一个变量赋值*/
SET @var2=@var1+'是一个伟大的国家'
SELECT @var1, @var2
GO
执行结果如下所示:
(2)创建一个名为sex的局部变量,并在SELECT语句中使用该局部变量查找PXSCJ数据库的表XSB中所有女同学的学号、姓名。
USE PXSCJ
GO
DECLARE @sex bit
SET @sex=0
SELECT XH, XM
FROM XSB
WHERE XB=@sex
(3)将学号为081101的学生的姓名赋给局部变量@student。
DECLARE @student char(8)
SET @student=(SELECT XM FROM XSB WHERE XH= '081101') SELECT @student AS 姓名
(4)使用SELECT给局部变量@var1赋值。
DECLARE @var1 nvarchar(30)
SELECT @var1='刘丰'
SELECT @var1 AS 'NAME'
(5)给局部变量@var1赋空值。
DECLARE @var1 varchar(8)
SELECT @var1 =XM FROM XSB WHERE XH= '089999'
SELECT @var1 AS 'NAME'
(6)显示试图登录SQL Server的次数。
SELECT GETDATE() AS '当前的日期和时间',@@CONNECTIONS AS '试图登陆的次数'
(7)显示当前SQL Server的版本号
执行sql语句:
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productl evel'), SERVERPROPERTY ('edition')
(8)编程实现将pxscj数据库中xsb表的记录个数存入到局部变量,并通过局部变量显示出来。
USE PXSCJ
GO
DECLARE @RowsReturn int
SET @RowsReturn =(SELECT COUNT(*)FROM XSB)
SELECT @RowsReturn AS'SELECT返回的记录数'
(9)编程实现将pxscj数据库中cjb表中的分数的最大值和最小值分别存入到两个局部变量,并通过局部变量显示出来。
二、运算符
使用字符串联接运算符将PXSCJ数据库中081101学生的学号与姓名连接。USE PXSCJ
GO
SELECT (XH+ ',' + XM) AS 学号及姓名
FROM XSB
WHERE XH= '081101'
三、流控语言
(1)在PXSCJ数据库中,如果“计算机基础”课程的平均成绩高于75分,则显示“平均成绩高于75分”。
USE PXSCJ
GO
IF
(
SELECT A VG(CJ)
FROM XSB, CJB, KCB
WHERE XSB.XH= CJB.XH
AND CJB.KCH=KCB.KCH
AND KCB.KCM='计算机基础'
) <75
SELECT '平均成绩低于75'
ELSE
SELECT '平均成绩高于75'
(2)输出PXSCJ数据库中总学分大于48的学生信息,性别信息根据XB列的值输出“男”或“女”。
USE PXSCJ
GO
SELECT XH, XM, ZY, SEX=
CASE XB
WHEN 1 THEN '男'
WHEN 0 THEN '女'
ELSE '无'
END
FROM XSB
WHERE ZXF>48
(3)将学号为081101的学生的总学分使用循环修改到60,每次只加2,并判断循环了多少次。
DECLARE @num int
SET @num=0
WHILE (SELECT 总学分FROM XSB WHERE 学号='081101')<60
BEGIN
UPDATE XSB SET 总学分=总学分+2 WHERE 学号= '081101'
SET @num=@num+1
ENDUSE PXSCJ
GO
SELECT @num AS 循环次数
(4)编程实现10的阶乘.
declare @i int
declare @j int
set @i=1
set @j=1
while (@i <=10)
begin
set @j=@i*@j
set @i=@i+1
end
print @j;
(5)根据CJB表中的考试成绩,查询0811班学生课程号为206的课程的平均成绩,若平均成绩大于75,显示“成绩较理想”,否则显示“成绩不理想”。利用if语句编写程序实现以上功能。
(6)根据CJB表中0811班的考试成绩,并根据考试分数输出考试等级。当分数大于等于90分,输出“优”;当分数在80-90之间,输出“良”;当分数在70至80之间,输出“中”;当分数在60至70之间,输出“及格”;当分数在60分以下,输出“不及格”。利用case语句编写程序实现以上功能。