SQL Server 2008 實驗報告 - 第四次實驗報告
阿新 • • 發佈:2018-11-03
按要求寫出命令
- 定義區域性變數a、b、c、s1、s2並賦初值5、4、4.0、‘abc’、‘def’,分別求a與b的積、商、餘數、按位與、按位或、按位異或,a與c的商,s1與s2的串連。(注意比較a與b的商和a與c的商有何不同。):
DECLARE @a INT, @b INT, @c FLOAT, @s1 CHAR(5), @s2 CHAR(5);
SELECT @a = 5, @b = 4, @c = 4.0, @s1 = 'abc', @s2 = 'def';
SELECt @a * @b, @a / @b, @a % @b, @a & @b, @a | @b, @a ^ @b;
PRINT @a / @c;
PRINT @s1 +@ s2;
- 輸出當前SQL Server的版本資訊,輸出執行上一條T-SQL語句所返回的錯誤程式碼:
PRINT @@VERSION;
PRINT @@ERROR;
DECLARE @sno_select CHAR(5), @sname_select CHRA(10);
SET @sno_select = '107';
SELECT @sname_select = sname FROM student WHERE sno = '@sno_select';
PRINT @sname_select;
- 對score表,將某個課程號賦給某個變數,然後查詢課程號為該變數的選課人數和最高成績分別賦給另外兩個變數並輸出其值:
DECLARE @cno_select CHAR(5),@s_num int, @max_degree float;
SET @cno_select = '3-105';
SELECT @s_num = COUNT(*), @max_degree = MAX(degree) FROM score WHERE cno = @cno_select;
PRINT @s_num;
PRINT @max_degree;
編寫程式
- 輸出每位教師的教師號、姓名和職稱級別。(職稱級別:教授和副教授為高階職稱;講師為中級職稱,助教為初級職稱:
SELECT tno, tname, 職稱級別 =
CASE prof
WHEN '教授' THEN '高階職稱'
WHEN '副教授' THEN '高階職稱'
WHEN '講師' THEN '中級職稱'
WHEN '助教' THEN '初級職稱'
END
FROM teacher;
- 按優、良、中、及格、不及格五級成績等級輸出學生的姓名、課程名和成績等級,輸出結果先按課程號升序排再按姓名升序排:
SELECT sname, cname, 成績等級 =
CASE
WHEN degree >= 90 THEN '優'
WHEN degree >= 80 AND degree < 90 THEN '良'
WHEN degree >= 70 AND degree < 80 THEN '中'
WHEN degree >= 60 AND degree < 70 THEN '幾個'
ELSE '不及格'
END
FROM student, cousce, score WHERE student.sno = score.sno AND course.cno = score.cno ORDER BY course.cno, sname;
DECLATE @avg_boy float, @avg_girl float, @rate float;
SELECT @avg_boy = AVG(degree) FROM student, score WHERE student.sno = score.sno AND ssex = '男';
SELECT @avg_girl = AVG(degree) FROM student, score WHERE student.sno = score.sno AND ssex = '女';
SET @rate = @avg_boy / @ avg_girl;
IF(@rate > 1.3)
PRINT '男生比女生成績高多了'
ELSE IF(@rate < 0.8)
PRINT '女生比男生成績高多了'
ELSE
PRINT '男生與女生成績差不多'
create table xsrq
(spno char(4) default('3741'),
spname char(20) default('蘋果MacBook Pro '),
scrq date)
DECLARE @i INT;
WHILE @i < 20
BEGIN
INSERT INTO xsrq (scrq) VALUES (DATEADD("DAY", @i, GETDATE()));
SET @i = @i +1;
END
SELECT * FROM sxsrq; # 顯示插入資料