1 --1 2 SELECT STUNO,STUNAME 3 FROM Student 4 WHERE STUNO='00000001' 5 --2 6 SELECT * 7 FROM Course 8 --3 9 SELECT KIND 10 FROM Course 11 --4 12 SELECT DISTINCT KIND 13 FROM Course 14 --5 15 SELECT TOP 6 * FROM Student 16 --6 17 SELECT Course.CouNo,Course.CouName,Course.Teacher,Course.SchoolTime,Course.LimitNum,Course.WillNum 18 FROM Course 19 --7 20 SELECT Course.CouName AS '课程名称','课程编号为:',Course.CouNo AS '课程编号' 21 FROM Course 22 --8 23 SELECT * 24 FROM Course 25 WHERE Course.Kind='信息技术' AND Course.Credit='2' 26 --9 27 SELECT Course.CouName,Course.WillNum/Course.LimitNum 28 FROM Course 29 --10 30 SELECT MIN(Course.WillNum),MAX(Course.WillNum),AVG(Course.WillNum) 31 FROM Course 32 --11 33 SELECT * ,Course.WillNum/Course.LimitNum 34 FROM Course 35 ORDER BY Course.WillNum 36 --12 37 SELECT Course.Teacher,Course.CouNo,Course.CouName 38 FROM Course 39 ORDER BY Course.Teacher DESC,Course.CouNo ASC 40 --13 41 SELECT * 42 FROM Course 43 WHERE Course.CouNo='004' OR Course.CouNo='007' OR Course.CouNo='013' 44 --14 45 SELECT * 46 FROM Course 47 WHERE Course.CouNo NOT IN( 48 '004','007','013' 49 ) 50 --15 51 SELECT * 52 FROM Course 53 WHERE Course.CouName LIKE 'D%' 54 --16 55 SELECT * 56 FROM Course 57 WHERE Course.CouName LIKE '%制作' 58 --17 59 SELECT * 60 FROM Student 61 WHERE Student.StuName LIKE '_宝%' 62 --18 63 SELECT * 64 FROM Course 65 WHERE Course.Teacher=NULL 66 --19 67 SELECT * 68 FROM Student 69 WHERE Student.StuName NOT LIKE '刘%' 70 --20 71 SELECT * 72 FROM Course 73 WHERE Course.WillNum < '15' 74 --21 75 SELECT * 76 FROM Course 77 WHERE Course.WillNum > '15' AND Course.WillNum < '25' 78 --22 79 SELECT * 80 FROM Course 81 WHERE Course.WillNum >= '15' AND Course.WillNum <= '25' 82 ORDER BY Course.WillNum DESC 83 --23 84 SELECT * 85 FROM Course 86 WHERE Course.WillNum > 25 OR Course.WillNum < 15 87 ORDER BY Course.WillNum DESC 88 --24 89 CREATE INDEX SEARCH 90 ON Student (StuName) 91 --25 92 SELECT Course.Kind,SUM(Course.WillNum) 93 FROM Course 94 GROUP BY Course.Kind 95 --26 96 SELECT AVG(Course.WillNum) 97 FROM Course 98 WHERE Course.Kind='信息技术' 99 --27(1) 100 SELECT * 101 FROM Course 102 WHERE Course.Kind='信息技术' 103 COMPUTE AVG(COURSE.WILLNUM) 104 --27(2) 105 SELECT * 106 FROM Course 107 ORDER BY Course.Kind 108 COMPUTE AVG(COURSE.WILLNUM) BY COURSE.KIND 109 --28 110 SELECT * 111 FROM Course 112 WHERE WillNum >( 113 SELECT AVG(WillNum) 114 FROM Course 115 ) 116 --29 117 SELECT Class.ClassName 118 FROM Class 119 UNION 120 SELECT Department.DepartName 121 FROM Department 122 ORDER BY Class.ClassName DESC 123 --30 124 SELECT Class.ClassNo,Class.ClassName,Department.DepartNo,Department.DepartName 125 FROM Class,Department 126 WHERE Class.DepartNo=Department.DepartNo 127 --31 128 SELECT Student.*,Class.ClassName 129 FROM Student,Class 130 WHERE STUDENT.ClassNo=Class.ClassNo 131 --32 132 SELECT Student.StuName,Course.CouName,StuCou.CouNo 133 FROM Student,Course,StuCou 134 WHERE Student.StuNo=StuCou.StuNo AND Course.CouNo=StuCou.CouNo 135 ORDER BY Course.CouName,StuCou.CouNo 136 --33 137 SELECT Student.StuName,Course.CouName,Course.Teacher 138 FROM Student,Course,StuCou 139 WHERE StuCou.CouNo=Course.CouNo AND Student.StuNo =Student.StuNo AND Course.CouNo IN( 140 SELECT Course.CouNo 141 FROM Course,Department 142 WHERE Course.DepartNo=Department.DepartNo AND Department.DepartName='计算机应用工程系' 143 ) 144 --34 145 SELECT Class.ClassName,Course.CouName,Course.Kind,Course.Credit,Course.Teacher,Course.SchoolTime,Course.WillNum 146 FROM Class,Course 147 WHERE Course.DepartNo<>Class.DepartNo 148 --35 149 SELECT DISTINCT C1.CouNo , C1.CouName , C1.Kind ,C1.DepartNo 150 FROM Course C1,Course C2 151 WHERE C1.Kind=C2.Kind AND C1.DepartNo<>C2.DepartNo 152 ORDER BY C1.CouNo 153 --36 154 SELECT StuCou.StuNo,Course.CouNo,Course.CouName 155 FROM Course LEFT JOIN StuCou 156 ON StuCou.CouNo=Course.CouNo 157 --37 158 SELECT StuCou.StuNo,Course.CouNo,Course.CouName 159 FROM Course RIGHT JOIN StuCou 160 ON StuCou.CouNo=Course.CouNo 161 --38 162 SELECT StuCou.StuNo,Course.CouNo,Course.CouName 163 FROM StuCou,Course 164 WHERE StuCou.CouNo=Course.CouNo 165 --39 166 SELECT Student.StuName,Course.CouName,StuCou.CouNo 167 FROM Student,Course,StuCou 168 WHERE Student.StuNo=StuCou.StuNo AND Course.CouNo=StuCou.CouNo 169 ORDER BY StuCou.CouNo,Student.StuName 170 --40 171 CREATE INDEX SCH 172 ON Course (CouName) 173 --41 174 --DROP INDEX StuCou.PK_StuCou 175 CREATE UNIQUE CLUSTERED 176 INDEX IX_StuNoCouNo 177 ON StuCou(StuNo,CouNo) 178 --42 179 DROP INDEX StuCou.IX_StuNoCouNo 180 --43 181 --ALTER INDEX SCno RENAME TO SCSno 182 --44 183 CREATE DATABASE EXERCISE 184 CREATE TABLE S( 185 SNO CHAR (10)PRIMARY KEY, 186 SNAME CHAR(20), 187 STATUS CHAR(10), 188 CITY CHAR(20) 189 ); 190 INSERT INTO S VALUES('S1','精益','20','天津'); 191 INSERT INTO S VALUES('S2','盛锡','10','北京'); 192 INSERT INTO S VALUES('S3','东方红','30','北京'); 193 INSERT INTO S VALUES('S4','丰泰盛','20','天津'); 194 INSERT INTO S VALUES('S5','为民','20','上海'); 195 SELECT * FROM S; 196 197 CREATE TABLE P( 198 PNO CHAR (10)PRIMARY KEY, 199 PNAME CHAR(20), 200 COLOR CHAR(10), 201 WEIGHT CHAR(10) 202 ); 203 INSERT INTO P VALUES('P1','螺母','红','12'); 204 INSERT INTO P VALUES('P2','螺栓','绿','17'); 205 INSERT INTO P VALUES('P3','螺丝刀','蓝','14'); 206 INSERT INTO P VALUES('P4','螺丝刀','红','14'); 207 INSERT INTO P VALUES('P5','凸轮','蓝','40'); 208 INSERT INTO P VALUES('P6','齿轮 ','红','30'); 209 SELECT * FROM P; 210 211 CREATE TABLE J( 212 JNO CHAR (10)PRIMARY KEY, 213 JNAME CHAR(20), 214 CITY CHAR(20), 215 ); 216 INSERT INTO J VALUES('J1','三建','北京'); 217 INSERT INTO J VALUES('J2','一汽','长春'); 218 INSERT INTO J VALUES('J3','弹簧厂','天津'); 219 INSERT INTO J VALUES('J4','造船厂','天津'); 220 INSERT INTO J VALUES('J5','机车厂','唐山'); 221 INSERT INTO J VALUES('J6','无线电厂','常州'); 222 INSERT INTO J VALUES('J7','半导体厂','南京'); 223 SELECT * FROM J; 224 225 CREATE TABLE SPJ( 226 SNO CHAR (10), 227 PNO CHAR (10), 228 JNO CHAR (10), 229 QTY CHAR (10) 230 ); 231 INSERT INTO SPJ VALUES('S1','P1','J1','200'); 232 INSERT INTO SPJ VALUES('S1','P1','J3','100'); 233 INSERT INTO SPJ VALUES('S1','P1','J4','700'); 234 INSERT INTO SPJ VALUES('S1','P2','J2','100'); 235 INSERT INTO SPJ VALUES('S2','P3','J1','400'); 236 INSERT INTO SPJ VALUES('S2','P3','J2','200'); 237 INSERT INTO SPJ VALUES('S2','P3','J4','500'); 238 INSERT INTO SPJ VALUES('S2','P3','J5','400'); 239 INSERT INTO SPJ VALUES('S2','P5','J1','400'); 240 INSERT INTO SPJ VALUES('S2','P5','J2','100'); 241 INSERT INTO SPJ VALUES('S3','P1','J1','200'); 242 INSERT INTO SPJ VALUES('S3','P3','J1','200'); 243 INSERT INTO SPJ VALUES('S4','P5','J1','100'); 244 INSERT INTO SPJ VALUES('S4','P6','J3','300'); 245 INSERT INTO SPJ VALUES('S4','P6','J4','200'); 246 INSERT INTO SPJ VALUES('S5','P2','J4','100'); 247 INSERT INTO SPJ VALUES('S5','P3','J1','200'); 248 INSERT INTO SPJ VALUES('S5','P6','J2','200'); 249 INSERT INTO SPJ VALUES('S5','P6','J4','500'); 250 SELECT * FROM SPJ; 251 252 SELECT DISTINCT SNO 253 FROM SPJ 254 WHERE JNO='J1' 255 256 SELECT DISTINCT SNO 257 FROM SPJ 258 WHERE JNO='J1' AND PNO='P1' 259 260 SELECT DISTINCT SNO 261 FROM SPJ,P 262 WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' 263 264 SELECT SPJ.JNO 265 FROM SPJ 266 WHERE SPJ.JNO NOT IN( 267 SELECT DISTINCT SPJ.JNO 268 FROM SPJ,P,J 269 WHERE CITY='天津' AND COLOR='红' 270 ); 271 SELECT SUM(SPJ.QTY),AVG(SPJ.QTY) 272 FROM SPJ 273 GROUP BY SPJ.SNO 274 -- 275 SELECT JNO,SUM(QTY) 276 FROM SPJ 277 GROUP BY JNO 278 HAVING SUM(QTY) > 500 279 --45 280 SELECT DISTINCT SNAME,CITY 281 FROM S 282 283 SELECT PNAME,COLOR,WEIGHT 284 FROM P 285 286 SELECT DISTINCT JNO 287 FROM SPJ 288 WHERE SNO='S1' 289 290 SELECT PNAME,QTY 291 FROM SPJ,P 292 WHERE JNO='J2' AND SPJ.PNO=P.PNO 293 294 SELECT DISTINCT P.PNO 295 FROM S,SPJ,P 296 WHERE CITY='上海' AND S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO 297 298 SELECT DISTINCT JNAME 299 FROM S,SPJ,J 300 WHERE S.CITY='上海' AND S.SNO=SPJ.SNO AND SPJ.JNO=J.JNO 301 302 SELECT DISTINCT JNO 303 FROM SPJ 304 WHERE SNO NOT IN( 305 SELECT SNO 306 FROM S 307 WHERE CITY='天津' 308 ); 309 310 UPDATE P 311 SET COLOR='蓝' 312 WHERE COLOR='红' 313 SELECT * FROM P; 314 315 update SPJ 316 SET SNO='S3' 317 WHERE SNO='S5' AND JNO='J4' AND PNO='P6' 318 SELECT * FROM SPJ; 319 320 DELETE 321 FROM S 322 WHERE SNO='S2' 323 SELECT * FROM S 324 325 DELETE 326 FROM SPJ 327 WHERE SNO='S2' 328 SELECT * FROM SPJ 329 330 INSERT INTO SPJ VALUES('S2','J6','P4','200'); 331 SELECT * FROM SPJ 332 --46 333 GO 334 CREATE VIEW NIHAO 335 AS 336 SELECT SNO,PNO,QTY 337 FROM SPJ 338 GO 339 --47 340 CREATE TRIGGER T_sc1 341 ON stucou 342 FOR INSERT 343 AS 344 PRINT('记录已添加!') 345 INSERT INTO STUCOU VALUES('00000007','001',3,'报名','NULL') 346 --48 347 go 348 CREATE TRIGGER T_stu 349 on course 350 for delete 351 as 352 select * from deleted 353 GO 354 DELETE 355 FROM Course 356 WHERE Teacher='李力' 357 --49 358 go 359 create trigger T_course 360 on course 361 for update 362 as 363 if update(Kind) 364 print('课程类别已修改') 365 GO 366 UPDATE Course 367 SET Kind='修改' 368 WHERE Kind='人文' 369 --50 370 GO 371 CREATE TRIGGER T_stcour 372 ON StuCou 373 FOR INSERT, UPDATE, DELETE 374 AS 375 UPDATE Course SET WillNum=WillNum+1 WHERE CouNo=(SELECT CouNo FROM INSERTED) 376 UPDATE Course SET WillNum=WillNum-1 WHERE CouNo=(SELECT CouNo FROM DELETED) 377 GO 378 SELECT * FROM Course WHERE CouNo='005' 379 INSERT INTO StuCou VALUES('00000007','001',4,'报名','NULL') 380 INSERT INTO StuCou VALUES('00134144','015',2,'报名',Null) 381 select * 382 from StuCou 383 where StuNo='00000007' 384 --where StuNo='01000037' and CouNo='014' and WillOrder=3 385 go 386 DELETE 387 FROM StuCou 388 WHERE StuNo='00000001' AND WillOrder=5 389 --51 390 -------------- 391 -------------- 392 -------------- 393 -------------- 394 -------------- 395 -------------- 396 -------------- 397 -------------- 398 -------------- 399 -------------- 400 -------------- 401 -------------- 402 -------------- 403 -------------- 404 -------------- 405 -------------- 406 --52 407 GO 408 CREATE TRIGGER T_sc2 409 ON stucou 410 FOR INSERT 411 AS 412 PRINT('记录添加二次触发') 413 INSERT INTO STUCOU VALUES('000000005','005',5,'报名','NULL') 414 INSERT INTO STUCOU VALUES('000000009','003',4,'报名',Null) 415 --53 416 --CREATE DATABASE SON 417 --CREATE DATABASE FATHER 418 --CREATE TABLE FATHER.dbo.Class( 419 -- CHAR CNO(2) 420 --) 421 --insert into SON.dbo.Class select * from FATHER.dbo.Class 422 --54 423 GO 424 CREATE VIEW V_elec 425 AS 426 SELECT DepartName 427 from Department 428 --55 429 --56 430 GO 431 GRANT SELECT 432 ON V_elec 433 TO user1 434 GO 435 CREATE ROLE USER2 436 REVOKE SELECT ON V_elec FROM user1
数据库实验练习题
1. 从Student表中查询学号为“000000001”同学的学号和姓名。
2. 从课程表中查询所有的课程信息。
3. 从课程表中查询课程类别的信息。
4. 从课程表中查询课程类别,要求消除值相同的那些行。
5. 从学生表中查询所有的信息,要求只显示查询结果的前6行数据。
6. 查询课程表中课程编号、课程名称、教师、上课时间、限制选课人数和报名人数。
7. 查询课程表的信息,要求给出查询结果为:
课程名称 课程编号
SQL Server实用技术 课程编号为: 001
……
8. 在课程表中查询课程类别为“信息技术”而且学分为2的课程信息。
9. 查询课程表的课程、报告人数与限选人数之比。
10. 查询课程表中最小的报名人数、最大的报名人数以及平均报名人数。
11. 查询课程信息、报名人数与限选人数之比。要求查询结果按照报名人数升序排序
12. 查询课程表的教师名、课程编号、课程名,要求查询结果首先按照教师名降序排序,教师名相同时,则按照课程编号升序排序。
13. 查询课程编号为“004”、“007”、“013”的课程信息。
14. 查询课程表号不为“004”、“007”、“013”的课程信息和课程名称。
15. 查询课程名以字母D开始的课程信息。
16. 查询课程名以“制作”两字结尾的课程信息。
17. 查询姓名第二字为“宝”的学生信息。
18. 查询不姓“刘”的学生信息。
19. 查询课程表中教师姓名未定的课程信息。
20. 查询报告人数少于15人的课程信息。
21. 查询报名人数少于25并且多于15人的课程信息。
22. 查询报名人数小于等于25并且大于等于15人的课程信息,要求查询结果按照报名人数降序排序。
23. 查询报名人数多于25或者少于15人的课程信息。要求查询结果按照报名人数降序排序。
24. 用户需按照学生姓名查询信息,希望提高查询速度,请建立查询。
25. 按课程类别分组统计各类课程的报名人数。
26. 查询“信息技术”类课程的平均报名人数。
27. 请在Sql server 系统中查询 compute 、compute by的用法并完成以下查询:
(1) 查询课程表中“信息技术”类课程信息,并计算平均报名人数。
(2) 按类别显示课程信息,并计算各类课程的平均人数。
28. 查询报名人数大于平均人数的课程信息
29. 从班级表中查询班级名,从系部表中查询系部名,合并后显示结果。并按降序显示。
30. 查询班级信息,要求显示班级编号,班级名称,班级所在的系部编号和系部名称。
31. 查询学生的信息显示信息包括学生基本信息和班级名称。
32. 查询学生选课信息,要求显示姓名,课程名称,志愿号并按姓名和志愿号排序。
33. 查询学生报名“计算机应用工程系”开设的选修课程情况,显示信息包括学生姓名,课程名称和授课老师。
34. 查询每个班级可以选修的、不是自己所在系部开设的选课的信息,显示信息包括班级、课程名、课程类别、学分、老师、上课时间和报名人数。
35. 查询课程类别相同但开课系部不同的课程信息,要求显示课程号、课程名称、课程类别他系部编号,并按照课程编号升序排序查询结果。
36. 查询所有学生报名选课课程的详细情况,要求包括已报名选修课程的学生,也包括未报名选修课程的学生情况,显示内容为学号、课程编号和课程名称。
37. 使用右连接查询学生已报名和未报名的课程信息(课程编号、课程名称、学号)
38. 使用全连接查询学生报名信息(课程编号、课程名称、学号)
39. 查询学生选课信息,要求显示姓名、课程名称、志愿号,并按志愿号和姓名显示。
40. 在表Course中的课程名称列上建立唯一索引
41. 在StuCou表上创建名为IX_StuNoCouNo的聚集、唯一的复合索引,该索引基于StuNo列和CouNo列创建
42. 删除StuCou表中的IX_StuNoCouNo索引,练习删除student中的主键索引,然后再回复主键。
43. 请学习使用显示索引信息
sp_helpindex table_name
重命名索引
sp_rename table_name.old_index_name, new_index_name
44. 如果你的数据库中已建立了P70页第6的表P,表J,表S和表SPJ,可省略第一小题。
(1) 用命令创建表P,表J,表S和表SPJ, 并用primary key 定义主键,用foreign key reference 定义表SPJ的外键。
(2) 用insert命令向各表添加数据,注意数据添加的顺序。表SPJ应最后添加。
(3) 查询每个供应商供应零件的总量和平均量。
(4) 查询项目零件供应总量大于500的项目号,零件供应总量。
(5) 请完成本题1-5的查询。
45. 请完成P130页第5题的查询。
46. 请完成P130页第9题的视图的建立。
47. 创建一个触发器T_sc1,要求每当在stucou表中插入数据时,向客户端显示一条“记录已添加!”的消息。
48. 创建一个触发器T_stu,要求每当用户删除student表的记录时,自动显示被删除记录的内容
49. 利用IF UPDATE建立一个触发器T_course,在course表上修改课程类别时,显示信息“课程类别已修改”。
50. 创建触发器T_stcour,实现当插入、更新和删除stucou表的选课数据行时,能同时更新Course表中相应的选课人数WillNum.
51. 若批量插入、更新和删除stucou表的选课数据行时,修改上题的触发器
52. 创建一个触发器T_sc2,要求每当在stucou表中插入数据时,向客户端显示一条“记录添加二次触发”的消息。(知识点:多个触发器)
53. 创建一个数据库stuxk,将XK数据库中的表导入其中。
54. 为某个系创建一个视图V_elec.
55. 为数据库stuxk创建三个用户user1,user2和user3
56. 将视图V_elec的查询权限给用户user2和user3.
57. 现有几个EXECL表,如下:
供应商:
供应商代码 | 姓名 | 所在城市 | 联系电话 |
S1 | 北京供应商 | 北京 | 0108888888 |
S2 | 天津供应商 | 天津 | 0228888888 |
S3 | 重庆供应商 | 重庆 | 0238888888 |
S4 | 上海供应商1 | 上海 | 0218888888 |
S5 | 广州供应商 | 广州 | 0208888888 |
S6 | 上海供应商2 | 上海 | 0216666666 |
工程:
工程代码 | 工程名 | 负责人 | 预算 |
J1 | 工程1 | 丁一 | 200000 |
J2 | 工程2 | 赵二 | 60000 |
J3 | 工程3 | 张三 | 70000 |
J4 | 工程4 | 李四 | 80000 |
J5 | 工程5 | 王五 | 150000 |
零件:
零件代码 | 零件名 | 规格 | 产地 | 颜色 |
P1 | 螺丝 | 中 | 济南 | 红色 |
P2 | 主板 | 集成 | 深圳 | 绿色 |
P3 | 显卡 | 独立 | 香港 | 蓝色 |
P4 | 声卡 | 集成 | 天津 | 红色 |
P5 | 网卡 | 100M | 上海 | 黑色 |
P6 | 鼠标 | 无线 | 上海 | 黑色 |
供应零件:
供应商代码 | 工程代码 | 零件代码 | 数量 |
S1 | J2 | P4 | 50 |
S1 | J3 | P5 | 100 |
S2 | J2 | P6 | 500 |
S4 | J1 | P3 | 150 |
S4 | J5 | P1 | 200 |
S5 | J4 | P6 | 100 |
S6 | J4 | P2 | 90 |
将这几个表导入到SQL SERVER数据库中。
58. 请下载PowerDesign软件,创建57题的概念模型图(CDM图)
59. 将58题的概念模型图转换为物理模型图
60. 将59题物理模型图导出SQL SERVER或MYSQL 或其他的数据库语句创建代码。
数据库实验练习题
1. 从Student表中查询学号为“000000001”同学的学号和姓名。
2. 从课程表中查询所有的课程信息。
3. 从课程表中查询课程类别的信息。
4. 从课程表中查询课程类别,要求消除值相同的那些行。
5. 从学生表中查询所有的信息,要求只显示查询结果的前6行数据。
6. 查询课程表中课程编号、课程名称、教师、上课时间、限制选课人数和报名人数。
7. 查询课程表的信息,要求给出查询结果为:
课程名称 课程编号
SQL Server实用技术 课程编号为: 001
……
8. 在课程表中查询课程类别为“信息技术”而且学分为2的课程信息。
9. 查询课程表的课程、报告人数与限选人数之比。
10. 查询课程表中最小的报名人数、最大的报名人数以及平均报名人数。
11. 查询课程信息、报名人数与限选人数之比。要求查询结果按照报名人数升序排序
12. 查询课程表的教师名、课程编号、课程名,要求查询结果首先按照教师名降序排序,教师名相同时,则按照课程编号升序排序。
13. 查询课程编号为“004”、“007”、“013”的课程信息。
14. 查询课程表号不为“004”、“007”、“013”的课程信息和课程名称。
15. 查询课程名以字母D开始的课程信息。
16. 查询课程名以“制作”两字结尾的课程信息。
17. 查询姓名第二字为“宝”的学生信息。
18. 查询不姓“刘”的学生信息。
19. 查询课程表中教师姓名未定的课程信息。
20. 查询报告人数少于15人的课程信息。
21. 查询报名人数少于25并且多于15人的课程信息。
22. 查询报名人数小于等于25并且大于等于15人的课程信息,要求查询结果按照报名人数降序排序。
23. 查询报名人数多于25或者少于15人的课程信息。要求查询结果按照报名人数降序排序。
24. 用户需按照学生姓名查询信息,希望提高查询速度,请建立查询。
25. 按课程类别分组统计各类课程的报名人数。
26. 查询“信息技术”类课程的平均报名人数。
27. 请在Sql server 系统中查询 compute 、compute by的用法并完成以下查询:
(1) 查询课程表中“信息技术”类课程信息,并计算平均报名人数。
(2) 按类别显示课程信息,并计算各类课程的平均人数。
28. 查询报名人数大于平均人数的课程信息
29. 从班级表中查询班级名,从系部表中查询系部名,合并后显示结果。并按降序显示。
30. 查询班级信息,要求显示班级编号,班级名称,班级所在的系部编号和系部名称。
31. 查询学生的信息显示信息包括学生基本信息和班级名称。
32. 查询学生选课信息,要求显示姓名,课程名称,志愿号并按姓名和志愿号排序。
33. 查询学生报名“计算机应用工程系”开设的选修课程情况,显示信息包括学生姓名,课程名称和授课老师。
34. 查询每个班级可以选修的、不是自己所在系部开设的选课的信息,显示信息包括班级、课程名、课程类别、学分、老师、上课时间和报名人数。
35. 查询课程类别相同但开课系部不同的课程信息,要求显示课程号、课程名称、课程类别他系部编号,并按照课程编号升序排序查询结果。
36. 查询所有学生报名选课课程的详细情况,要求包括已报名选修课程的学生,也包括未报名选修课程的学生情况,显示内容为学号、课程编号和课程名称。
37. 使用右连接查询学生已报名和未报名的课程信息(课程编号、课程名称、学号)
38. 使用全连接查询学生报名信息(课程编号、课程名称、学号)
39. 查询学生选课信息,要求显示姓名、课程名称、志愿号,并按志愿号和姓名显示。
40. 在表Course中的课程名称列上建立唯一索引
41. 在StuCou表上创建名为IX_StuNoCouNo的聚集、唯一的复合索引,该索引基于StuNo列和CouNo列创建
42. 删除StuCou表中的IX_StuNoCouNo索引,练习删除student中的主键索引,然后再回复主键。
43. 请学习使用显示索引信息
sp_helpindex table_name
重命名索引
sp_rename table_name.old_index_name, new_index_name
44. 如果你的数据库中已建立了P70页第6的表P,表J,表S和表SPJ,可省略第一小题。
(1) 用命令创建表P,表J,表S和表SPJ, 并用primary key 定义主键,用foreign key reference 定义表SPJ的外键。
(2) 用insert命令向各表添加数据,注意数据添加的顺序。表SPJ应最后添加。
(3) 查询每个供应商供应零件的总量和平均量。
(4) 查询项目零件供应总量大于500的项目号,零件供应总量。
(5) 请完成本题1-5的查询。
45. 请完成P130页第5题的查询。
46. 请完成P130页第9题的视图的建立。
47. 创建一个触发器T_sc1,要求每当在stucou表中插入数据时,向客户端显示一条“记录已添加!”的消息。
48. 创建一个触发器T_stu,要求每当用户删除student表的记录时,自动显示被删除记录的内容
49. 利用IF UPDATE建立一个触发器T_course,在course表上修改课程类别时,显示信息“课程类别已修改”。
50. 创建触发器T_stcour,实现当插入、更新和删除stucou表的选课数据行时,能同时更新Course表中相应的选课人数WillNum.
51. 若批量插入、更新和删除stucou表的选课数据行时,修改上题的触发器
52. 创建一个触发器T_sc2,要求每当在stucou表中插入数据时,向客户端显示一条“记录添加二次触发”的消息。(知识点:多个触发器)
53. 创建一个数据库stuxk,将XK数据库中的表导入其中。
54. 为某个系创建一个视图V_elec.
55. 为数据库stuxk创建三个用户user1,user2和user3
56. 将视图V_elec的查询权限给用户user2和user3.
57. 现有几个EXECL表,如下:
供应商:
供应商代码 | 姓名 | 所在城市 | 联系电话 |
S1 | 北京供应商 | 北京 | 0108888888 |
S2 | 天津供应商 | 天津 | 0228888888 |
S3 | 重庆供应商 | 重庆 | 0238888888 |
S4 | 上海供应商1 | 上海 | 0218888888 |
S5 | 广州供应商 | 广州 | 0208888888 |
S6 | 上海供应商2 | 上海 | 0216666666 |
工程:
工程代码 | 工程名 | 负责人 | 预算 |
J1 | 工程1 | 丁一 | 200000 |
J2 | 工程2 | 赵二 | 60000 |
J3 | 工程3 | 张三 | 70000 |
J4 | 工程4 | 李四 | 80000 |
J5 | 工程5 | 王五 | 150000 |
零件:
零件代码 | 零件名 | 规格 | 产地 | 颜色 |
P1 | 螺丝 | 中 | 济南 | 红色 |
P2 | 主板 | 集成 | 深圳 | 绿色 |
P3 | 显卡 | 独立 | 香港 | 蓝色 |
P4 | 声卡 | 集成 | 天津 | 红色 |
P5 | 网卡 | 100M | 上海 | 黑色 |
P6 | 鼠标 | 无线 | 上海 | 黑色 |
供应零件:
供应商代码 | 工程代码 | 零件代码 | 数量 |
S1 | J2 | P4 | 50 |
S1 | J3 | P5 | 100 |
S2 | J2 | P6 | 500 |
S4 | J1 | P3 | 150 |
S4 | J5 | P1 | 200 |
S5 | J4 | P6 | 100 |
S6 | J4 | P2 | 90 |
将这几个表导入到SQL SERVER数据库中。
58. 请下载PowerDesign软件,创建57题的概念模型图(CDM图)
59. 将58题的概念模型图转换为物理模型图
60. 将59题物理模型图导出SQL SERVER或MYSQL 或其他的数据库语句创建代码。