TSQL语句练习 下载本文

内容发布更新时间 : 2024/6/3 11:24:05星期一 下面是文章的全部内容请认真阅读。

【例5.1】 创建局部变量@var1、@var2并赋值,然后输出变量的值。 新建一个查询,在“查询分析器”窗口输入并执行如下脚本: DECLARE @var1 char(10) ,@var2 char(30) SET @var1='中国' /*一个SET语句只能给一个变量赋值*/ SET @var2=@var1+'是一个伟大的国家' SELECT @var1, @var2 GO

【例5.2】 创建一个名为sex的局部变量,并在SELECT语句中使用该局部变量查找表XSB中所有女同学的学号、姓名。 USE PXSCJ GO

DECLARE @sex bit SET @sex=0

SELECT 学号, 姓名 FROM XSB WHERE 性别=@sex

【例5.3】 使用查询给变量赋值。 DECLARE @student char(8)

SET @student=(SELECT 姓名 FROM XSB WHERE 学号= '081101') SELECT @student

【例5.4】 使用SELECT给局部变量赋值。 DECLARE @var1 nvarchar(30) SELECT @var1 ='刘丰'

SELECT @var1 AS 'NAME'

【例5.5】 给局部变量赋空值。 DECLARE @var1 nvarchar(30) SELECT @var1 = '刘丰' SELECT @var1 = ( SELECT 姓名 FROM XSB WHERE 学号= '089999' )

SELECT @var1 AS 'NAME'

【例5.6】 使用游标变量。 USE PXSCJ GO

1 / 7

DECLARE @CursorVar CURSOR /*定义游标变量*/

SET @CursorVar = CURSOR SCROLL DYNAMIC /*给游标变量赋值*/ FOR SELECT 学号, 姓名 FROM XSB WHERE 姓名 LIKE '王%'

OPEN @CursorVar /*打开游标*/ FETCH NEXT FROM @CursorVar FETCH NEXT FROM @CursorVar /*通过游标读行记录*/ CLOSE @CursorVar

DEALLOCATE @CursorVar /*删除对游标的引用*/

【例5.7】 在master数据库中,建立表bitop,并插入一行,然后将a字段和 b字段列上值进行按位与运算。 USE master GO

CREATE TABLE bitop ( a int NOT NULL, b int NOT NULL )

INSERT bitop VALUES (168, 73) SELECT a & b, a | b, a ^ b FROM bitop GO

【例5.8】 查询成绩高于“林一帆”最高成绩的学生姓名、课程名及成绩。 USE PXSCJ GO

SELECT 姓名, 课程名, 成绩 FROM XSB, CJB, KCB WHERE 成绩> ALL ( SELECT b.成绩 FROM XSB a, CJB b WHERE a.学号= b.学号 AND a.姓名= '林一帆' ) AND XSB.学号=CJB.学号 AND KCB.课程号=CJB.课程号 AND 姓名<>'林一帆'

【例5.9】 查询总学分在 40~50的学生学号和姓名。 SELECT 学号, 姓名, 总学分 FROM XSB

2 / 7

WHERE 总学分 BETWEEN 40 AND 50

使用 >= 和 <=代替 BETWEEN实现与上例相同的功能: SELECT 学号, 姓名, 总学分 FROM XSB WHERE 总学分>= 40 AND 总学分<=50

【例5.10】 查询总学分在范围40~50之外的所有学生的学号和姓名。 SELECT 学号, 姓名, 总学分 FROM XSB WHERE 总学分 NOT BETWEEN 40 AND 50

【例5.11】 查询课程名以“计”或C开头的情况。 SELECT * FROM KCB WHERE 课程名 LIKE '[计C]%'

【例5.12】 查询所有选课学生的姓名。 SELECT DISTINCT 姓名 FROM XSB WHERE EXISTS ( SELECT * FROM CJB WHERE XSB.学号= CJB.学号 )

使用IN子句实现上述子查询: SELECT DISTINCT姓名 FROM XSB WHERE 学号 IN ( SELECT 学号 FROM CJB )

【例5.13】 多个字符串的联接。

SELECT (学号+ ',' + 姓名) AS 学号及姓名 FROM XSB WHERE 学号= '081101'

【例5.17】 使用第一种格式的CASE语句根据性别值输出“男”或“女”。 SELECT 学号, 姓名, 专业, SEX= CASE 性别

3 / 7