ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:181KB ,
资源ID:4764067      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4764067.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(SQL实验与练习题参考答案.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

SQL实验与练习题参考答案.doc

1、精选 实验1 数据库操作 1.创建数据库: 操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。 参考答案: create database Test ON primary ( name = test_data, filename = 'd:\test\test_data.mdf', size = 5MB, maxsize

2、 = unlimited, filegrowth = 1MB ) LOG ON ( name = test_log, filename = 'd:\test\test_log.ldf', size = 1MB, maxsize = 5MB, filegrowth = 10% ) GO 2.查看数据库属性: 操作1.2:使用T-SQL语句查看数据库test属性 参考答案: EXEC sp_helpdb test 3.删除数据库: 操作1.3:使用T-SQL语句删除数据库test 参考答案: drop database Test . 精

3、选 实验2 表操作 1.创建表: 操作2.1:创建学生表: 表名:student 说明:学生基本信息表 属性列 数据类型 长度 空值 列约束 说明 st_id nVarChar 9 Not Null PK 学生学号 st_nm nVarChar 8 Not Null 学生姓名 st_sex nVarChar 2 Null 学生性别 st_birth datetime Null 出生日期 st_score int Null 入学成绩 st_date datetime Null 入学日

4、期 st_from nChar 20 Null 学生来源 st_dpid nVarChar 2 Null 所在系编号 st_mnt tinyint Null 学生职务 参考答案: USE test GO CREATE TABLE student ( st_id nVarChar(9) primary key NOT NULL , st_nm nVarChar(8) NOT NULL , st_sex nVarChar(2) NULL , st_birth datetime NULL , st_sco

5、re int NULL , st_date datetime NULL , st_ from nVarChar(20) NULL , st_dpid nVarChar(2) NULL , st_ mnt tinyint NULL ) GO 操作2.2:创建课程信息表: . 精选 表名:couse 说明:课程信息表 属性列 数据类型 长度 空值 列约束 说明 cs_id nVarChar 4 Not Null PK 课程编号 cs_nm nVarChar 20 Not Null 课程名称 cs_t

6、m int Null 课程学时 cs_sc int Null 课程学分 参考答案: USE test GO CREATE TABLE couse ( cs_id nVarChar(4) primary key NOT NULL , cs_nm nVarChar(20) NOT NULL , cs_tm int NULL , cs_sc int NULL ) GO 操作2.3:创建选课表: 表名:slt_couse 说明:选课表 属性列 数据类型 长度 空值 列约束 说明 cs_id n

7、VarChar 4 Not Null FK 课程编号 st_id nVarChar 9 Not Null FK 学生编号 score int Null 课程成绩 sltdate datetime Null 选课日期 参考答案: USE test GO CREATE TABLE couse ( cs_id nVarChar(4) NOT NULL contraint fk_xxx reference 课程信息表(cs.id), st_id nVarChar(9) NOT NULL , score int N

8、ULL , . 精选 sltdate datetime NULL ) GO 操作2.4:创建院系信息表: 表名:dept 说明:院系信息表 属性列 数据类型 长度 空值 列约束 说明 dp_id nVarChar 2 Not Null 系编号 dp_nm nVarChar 20 Not Null 院系名称 dp_drt nVarChar 8 Null 院系主任 dt_tel nVarChar 12 Null 联系电话 参考答案: USE test GO CREATE TABLE dept

9、 dp_id nVarChar(2) NOT NULL , dp_nm nVarChar(20) NOT NULL , dp_drt nVarChar(8) NULL , dp_tel nVarChar(12) NULL ) GO 2.修改表结构: (1)向表中添加列: 操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空) 参考答案: ALTER TABLE dept ADD dp_count nvarchar(3) NULL (2)修改列数据类型: 操作2.6:修改“dept”表的“dp_coun

10、t”列数据类型为int 参考答案: ALTER TABLE dept ALTER COLUMN dp_count int NULL (3)删除表中指定列: 操作2.7:删除“dept”表的“dp_count”列 参考答案: ALTER TABLE dept DROP COLUMN dp_count . 精选 3.删除表 操作2.8:删除“dept”表 参考答案: DROP TABLE student 4.向表中输入数据记录 操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录 实验3 数据完整性 1

11、.空值约束( NULL ) 操作3.1:将student表中的st_sex列属性更改为NOT NULL 参考答案: ALTER TABLE student ALTER COLUME st_nm nVarChar(8) NOT NULL 2.默认值约束( DEFAULT ) 操作3.2:将student表中的st_from列默认值设置为“陕西省” 参考答案: ALTER TABLE student ADD DEFAULT '陕西省' FOR st_from 3.默认值对象 操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列

12、然后取消绑定,最后删除默认值对象df_today。 参考答案: CREATE DEFAULT df_today AS Getdate( ) GO EXEC sp_bindefault df_today, 'slt_couse.sltdate' GO EXEC sp_unbindefault 'slt_couse.sltdate' GO DROP DEFAULT df_today GO 4.检查约束( CHECK ) 操作3.4:将slt_couse表中的score列的检查约束设置为>=0且<=100 参考答案: ALTER TABLE slt_couse ADD C

13、HECK (score>=0 AND score<=100) . 精选 5.规则约束对象 操作3.5:创建规则约束对象rl_sex,用于检查性别的取值仅限于“男”和“女”,并将其绑定到student表中的st_sex列,然后取消绑定,最后删除规则约束对象rl_sex。 参考答案: CREATE RULE rl_sex AS @chksex ’男’ OR @chksex=’女’ 或 CREATE RULE rl_sex AS @chksex IN (’男’, ’女’) GO EXEC sp_bindrule rl_sex, 'student.st_sex' GO EXEC

14、 sp_unbindrule 'student.st_sex' GO DROP RULE rl_sex GO 6.主键 操作3.6:将dept表中的dp_id列设置为主键 参考答案: ALTER TABLE dept ADD PRIMARY KEY (dp_id) 7.唯一性约束( UNIQUE ) 操作3.7:将dept表中的dp_nm列设置为唯一性约束 参考答案: ALTER TABLE dept ADD UNIQUE (dp_nm) 8.标识列 操作3.8:向slt_couse表中添加标识列id,第1行默认值为1,相邻两个标识列间的增量为1 参考答案: AL

15、TER TABLE slt_couse ADD id INT IDENTITY(1,1) NOT NULL 9.外键( FOREIGN KEY ) 操作3.9:被参照表为dept,参照表为student 参考答案: ALTER TABLE student ADD FOREIGN KEY (st_dpid) REFERENCES dept(dp_id) . 精选 实验4 数据更新 1.表中插入数据 操作4.1:向dept表插入一条记录,系号11,系名自动控制系,系主任为李其余,电话81234567 INSERT INTO dept VALUES('11', '自动控制

16、系', '李其余', '81234567') 操作4.2:向student表插入一条记录,学号070201001,姓名为王小五,性别为男,出生日期为1990年9月9日,系号为11,其余字段为NULL或默认值 INSERT INTO student(st_id, st_nm, st_sex, st_birth, st_dpid) VALUES ('070201001', '王小五', '男', '1990.9.9', '11' ) 操作4.3:向couse表插入一条记录,课程号1234,课程名为操作系统,其余字段为NULL或默认值 INSERT INTO couse(cs_id, cs

17、nm) VALUES ('1234', '操作系统') 操作4.4:向slt_couse表插入一条记录,课程号1234,学名070201001,其余字段为NULL或默认值 INSERT INTO slt_couse(cs_id, st_id) VALUES ('1234', '070201001') 2.修改表中数据 操作4.5:修改student表记录,将王小五的入学成绩改为88 UPDATE student SET st_score=88 WHERE st_nm='王小五' 操作4.6:修改couse表记录,将所有记录的学分改为4,学时改为64 UPDATE couse S

18、ET cs_tm=64, cs_sc=4 操作4.7:修改slt_couse表记录,将课程号为1234,学名为070201001的记录的成绩改为77 UPDATE slt_couse SET score=77 WHERE cs_id='1234' AND st_id='070201001' 3.删除表中数据 操作4.8:删除slt_couse表记录,将课程号为1234,学名为070201001的记录删除 DELETE FROM slt_couse WHERE cs_id='1234' AND st_id='070201001' 操作4.9:删除couse表记录,将课程号为1234的

19、记录删除 DELETE FROM couse WHERE cs_id='1234' 实验5 数据查询(1)——简单查询 (1)查询表中所有的列 操作5.1:查询所有系的信息 SELECT * FROM dept (2)查询表中指定列的信息 操作5.2:查询所有的课程号与课程名称 SELECT cs_id, cs_nm FROM couse (3)在查询列表中使用列表达式 操作5.3:在查询student表时使用列表达式:入学成绩+400 SELECT st_id, st_nm, st_score, st_score+400 AS new_score FROM stu

20、dent (4)重新命名查询结果 . 精选 操作5.4:使用AS关键字为dept表中属性指定列名:系号、系名、系主任、联系电话 SELECT dp_id AS 系号, dp_nm AS 系名, dp_drt AS 系主任, dp_tel AS联系电话 FROM dept 操作5.5:使用"="号为couse表中属性指定列名:课程号、课程名、学时(=cs_sc*16)、学分 SELECT 课程号=cs_id, 课程名=cs_nm, 学分=cs_sc, 学时=cs_sc*16 FROM couse (5)增加说明列 操作5.6:查询dept表的系号、系名和系主任,向查询结果中

21、插入说明列:系号、系名和系主任 SELECT '系号:', st_id, '系名:', st_nm, '系主任:', st_drt FROM dept (6)查询列表中使用系统函数 操作5.7:显示所有学生的学号、姓名、性别和入学年份 SELECT st_id, st_nm, st_sex, DATEPART(yy,st_birth) AS 入学年份 FROM student 操作5.8:显示所有学生学号、姓名、性别和班级(学号前6位) SELECT st_id, st_nm, st_sex, LEFT(st_id, 6) AS 班级 FROM student (7)消除查

22、询结果中的重复项 操作5.9:显示所有学生班级 SELECT DISTINCT LEFT(st_id,6) AS 班级 FROM student (8)取得查询结果的部分行集 操作5.10:显示前5条学生记录信息 SELECT TOP 5 * FROM student 操作5.11:显示前25%条学生记录信息 SELECT TOP 25 PERCENT * FROM student 操作5.12:显示前n条学生记录信息,n为局部变量 DECLARE @n INT SET @n = 4 SELECT TOP @n * FROM student 实验6 数据查询(2)—

23、—条件查询 1.使用关系表达式表示查询条件 操作6.1:查询dept表中系号为11的院系信息 SELECT * FROM dept WHERE dp_id = '11' 操作6.2:查询student表中11系的学生学号、姓名、性别和所在系编号 SELECT st_id, st_nm, st_sex, st_dpid FROM student WHERE st_dpid = '11' 操作6.3:查询student表中2008年及以后入学的学生信息 SELECT * FROM student WHERE DATEPART( yy, st_date )>= 2008 操作6.

24、4:在查询student表080808班学生的学号、姓名、性别和入学成绩 SELECT st_id, st_nm, st_sex, st_score FROM student . 精选 WHERE Left(st_id,6)='080808' 2.使用逻辑表达式表示查询条件 操作6.5:查询student表中非11系的学生信息 SELECT * FROM student WHERE NOT (st_dpid = '11') 操作6.6:查询选修了1002号课程且成绩在60以下的学生学号 SELECT st_id FROM slt_couse WHERE (cs_id='10

25、02') AND (score<60) 操作6.7:查询2007年入学的11系所有男生信息 SELECT * FROM student WHERE DATEPART(yy,st_date)=2007 AND st_dpid='11' AND st_sex='男' 操作6.8:查询11系和12系的学生信息 SELECT * FROM student WHERE st_dpid='11' OR st_dpid='12' 操作6.9:查询11系和12系所有2007年入学的学生信息 SELECT * FROM student WHERE (st_dpid='11' OR st_dp

26、id='12') AND DATEPART(yy,st_date)=2007 3.使用LIKE关键字进行模糊查询 操作6.10:查询所有“计算机”开头的课程信息 SELECT * FROM couse WHERE cs_nm LIKE '计算机%' 操作6.11:查询所有由三个字组成的“王”姓学生信息 SELECT * FROM student WHERE st_nm LIKE '王__' 操作6.12:查询所有课程名中包含“信息”的课程信息 SELECT * FROM couse WHERE cs_nm LIKE '%信息%' 操作6.13:查询学生姓名介于王姓到张姓的信息

27、 SELECT * FROM student WHERE st_nm LIKE '[王-张]%' 4.使用Between…And关键字进行查询 操作6.14:查询在1989.7.1到1990.6.30之间出生的学生信息 SELECT st_id, st_nm, st_sex, st_birth FROM student WHERE st_birth BETWEEN '1981.7.1' AND '1999.6.30' 操作6.15:查询选修了1001号课程且成绩在60到80之间的学生选课信息 SELECT * FROM slt_couse WHERE cs_id='1001'

28、AND (score BETWEEN 60 AND 80) 5.使用IN关键字进行查询 操作6.16:查询11系、12系、13系的学生信息 SELECT * FROM student WHERE st_dpid IN ('11', '12','13') 操作6.17:查询所有张,王,李,赵姓的学生的学号、姓名、性别 . 精选 SELECT st_id, st_nm, st_sex FROM student WHERE Left(st_nm,1) IN ('张','王','李','赵') 6.使用[NOT] NULL关键字进行查询 操作6.18:查询所有生源为非空的学生信息

29、 SELECT * FROM student WHERE st_from IS NOT NULL 操作6.19:查询选修了1001号课程且成绩为空的学生选课信息 SELECT * FROM slt_couse WHERE cs_id='1001' AND score IS NULL 实验7 数据查询(3)——查询排序与查询结果存储 操作7.1:查询课程信息,按课程名称降序排序 SELECT * FROM couse ORDER BY cs_nm DESC 操作7.2:查询选修了1001号课程成绩非空的学生学号和成绩,并按成绩降序排序 SELECT st_id, sco

30、re FROM slt_corse WHERE cs_id='1001' AND score IS NOT NULL ORDER BY score DESC 操作7.3:查询11系学生学号、姓名和年龄,按年龄升序排序 SELECT st_id,st_nm,DATEPART(yy,GETDATE( ))-DATEPART(yy,st_birth) AS age FROM student ORDER BY age ASC 操作7.4:查询学生信息,按姓名升序排序,再按系号降序排序 SELECT * FROM student ORDER BY st_nm, st_dpid DESC

31、 操作7.5:创建学生表副本student01,仅保留学生学号、姓名和性别 SELECT st_id, st_nm, st_sex INTO student01 FROM student 操作7.6:查询陕西籍学生,将结果保存在新表st_shanxi SELECT * INTO st_shanxi FROM student WHERE st_from='陕西省' 操作7.7:查询选修了1001号课程学生的选课信息,按学号升序排序,将结果保存在新表slt1001 SELECT * INTO slt1001 FROM slt_corse WHERE cs_id='100

32、1' ORDER BY st_id 操作7.8:用局部变量@stage保存学生张三的年龄 DECLARE @stage int SELECT @stage = DATEPART(yy,GETDATE())-DATEPART(yy,st_birth) FROM student WHERE st_nm='张三' 操作7.9:用局部变量@name和@stscore保存070101班按学号排序后最后一个学生的姓名和入学成绩 DECLARE @name nVarChar(8), @stscore int SELECT @name = st_nm, @stscore = st_

33、score FROM student WHERE LEFT(st_id,6)='070101' ORDER BY st_id . 精选 实验8 数据查询(4)——查询统计与汇总 操作8.1:查询课程总数 SELECT COUNT( * ) FROM couse 操作8.2:查询选修1001号课程的学生人数 SELECT COUNT(st_id) FROM slt_couse Where cs_id = '1001' 操作8.3:查询被选修课程的数量 SELECT COUNT( DISTINCT cs_id ) FROM slt_couse

34、操作8.4:查询选修070101班学生的平均入学成绩 SELECT AVG(st_score) FROM student WHERE LEFT(st_id,6)='070101' 操作8.5:查询070101001号学生选修课程的数量、总分以及平均分 SELECT COUNT(cs_id) AS 课程数量,SUM(score) AS 总分,AVG(score) AS 平均分 FROM slt_couse WHERE st_id='070101001' 操作8.6:查询选修1001号课程的学生人数、最高分、最低分和平均分 SELECT COUNT(*) AS 学

35、生人数, MAX(score) AS 最高分, MIN(score) AS 最低分, AVG (score) AS 平均分 FROM slt_couse WHERE cs_id='1001' 操作8.7:求各个课程号和相应的选课人数 SELECT cs_id, COUNT(st_id) FROM slt_couse GROUP BY cs_id 操作8.8:统计各班人数 SELECT LEFT(st_id,6) AS 班级, COUNT(st_id) AS 人数 FROM student GROUP BY LEFT(st_id,6) 操作8

36、9:依次按班级、系号对学生进行分类统计人数、入学平均分 SELECT st_dpid AS 系号, LEFT(st_id,6) AS 班级, COUNT(st_nm) AS 人数, AVG(st_score) AS 均分 FROM student GROUP BY LEFT(st_id,6), st_dpid 操作8.10:查询选修了均分在75以上的课程号及均分 SELECT cs_id AS 课程编号, AVG(score) AS 均分 FROM slt_couse GROUP BY cs_id HAVING AVG(score)>75 操作8.11:查询

37、选修了2门以上课程的学生学号 SELECT st_id FROM slt_couse GROUP BY st_id HAVING COUNT(*)>2 操作8.12:明细汇总年龄<20的学生,并汇总学生数量、平均年龄 . 精选 SELECT st_nm,DATEPART(yy,GETDATE( ))-DATEPART(yy,st_birth) AS 年龄 FROM student WHERE DATEPART(yy,GETDATE())-DATEPART(yy,st_birth)<20 COMPUTE COUNT(st_nm),AVG(DATEPART(yy,GET

38、DATE())-DATEPART(yy,st_birth)) 操作8.13:按班级明细汇总成绩<85分的学生,汇总学生数、均分 SELECT st_nm, LEFT(st_id,6) AS 班级, st_score FROM student WHERE st_score<85 ORDER BY 班级 COMPUTE COUNT(st_nm), AVG(st_score) BY 班级 实验9 数据查询(5)——连接查询 操作9.1:用SQL Server形式连接查询学生学号、姓名、性别及其所选课程编号 SELECT a.st_id, st_nm, st_sex,

39、cs_id FROM student a, slt_couse b WHERE a.st_id = b.st_id ORDER BY a.st_id 操作9.2:用ANSI形式连接查询学生学号、姓名、性别及其所选课程编号 SELECT a.st_id, st_nm, st_sex, cs_id FROM student a INNER JOIN slt_couse b ON a.st_id = b.st_id ORDER BY a.st_id 操作9.3:用SQL Server形式连接查询学生学号、姓名及其所选课程名称及成绩 SELECT a.st_id,

40、 st_nm, cs_nm, score FROM student a, slt_couse b, couse c WHERE a.st_id = b.st_id AND b.cs_id = c.cs_id ORDER BY a.st_id 操作9.4:用ANSI形式连接查询学生学号、姓名及其所选课程名称及成绩 SELECT a.st_id, st_nm, cs_nm, score FROM slt_couse a INNER JOIN student b ON a.st_id = b.st_id INNER JOIN couse c ON a.cs_id = c.c

41、s_id ORDER BY b.st_id 操作9.5:查询选修了1002课程的学生学号、姓名及1001课程成绩 SELECT a.st_id, st_nm, score FROM student a,slt_couse b WHERE a.st_id = b.st_id AND b.cs_id = '1002' ORDER BY b.st_id 操作9.6:查询选修了“数据结构”课程的学生学号、姓名及课程成绩 SELECT a.st_id, st_nm, score FROM student a, slt_couse b, couse c WHERE a

42、st_id=b.st_id AND b.cs_id=c.cs_id AND c.cs_nm='数据结构' ORDER BY a.st_id 操作9.7:用左外连接查询没有选修任何课程的学生学号、姓名 SELECT a.st_id, st_nm, score . 精选 FROM student a LEFT OUTER JOIN slt_couse b ON a.st_id = b.st_id WHERE b.cs_id IS NULL ORDER BY b.st_id 操作9.8:用右外连接查询选修各个课程的学生学号 SELECT b.cs_id, a.st

43、id FROM slt_couse a Right OUTER JOIN couse b ON a.cs_id = b.cs_id ORDER BY b.cs_id 实验10 数据查询(6)——子查询 操作10.1:用子查询对各班人数进行查询(新增列) SELECT DISTINCT LEFT(a.st_id,6) AS 班级, 人数 = ( SELECT COUNT(st_id) FROM student b WHERE LEFT(a.st_id,6) = LEFT(b.st_id,6) ) FROM student a ORDER BY LEFT

44、a.st_id,6) ASC 操作10.2:用子查询对各课程的选课人数进行查询(新增列) SELECT DISTINCT a.cs_id, 人数 = ( SELECT COUNT(st_id) FROM slt_couse b WHERE a.cs_id = b.cs_id ) FROM slt_couse a ORDER BY a.cs_id ASC 操作10.3:查询选修了1002课程成绩不及格的学生的学号、姓名和性别,并按姓名升序排序 通过子查询实现:——使用IN关键字 SELECT st_id, st_nm, st_sex FROM student W

45、HERE st_id IN ( SELECT st_id FROM slt_couse WHERE cs_id='1002' AND score < 60 ) ORDER BY st_nm 通过子查询实现:——使用比较运算符 SELECT st_id, st_nm, st_sex FROM student a WHERE ( SELECT score FROM slt_couse b WHERE a.st_id = b.st_id AND cs_id = '1002' ) < 60 ORDER BY st_nm 操作10.4:查询“东方红”同

46、学所在班的学生信息,并按姓名降序排序 通过子查询实现:——IN运算符 SELECT st_id, st_nm, st_sex FROM student WHERE LEFT(st_dpid,6) IN ( SELECT Left(st_dpid,6) FROM student WHERE st_nm='东方红' ) ORDER BY st_nm DESC 通过自连接查询实现:——JOIN SELECT s1.st_id, s1.st_nm, s1.st_sex FROM student s1 JOIN student s2 . 精选 ON LEFT(s1.st_dp

47、id,6) = LEFT(s2.st_dpid,6) WHERE s2.st_nm='东方红' ORDER BY s2.st_nm 操作10.5:查询其它班比070511班某一学生的1002号课程成绩高的学生信息(ANY/ALL) SELECT * FROM slt_couse WHERE score > ANY ( SELECT score FROM slt_couse WHERE cs_id = '1002' AND LEFT(st_id,6)='070511' ) AND LEFT(st_id,6) <> '070511' AND cs_id = '1002' 操作

48、10.6:查询其它班比070511班任一学生的1002号课程成绩高的学生信息(ANY/ALL) SELECT * FROM slt_couse WHERE score > ALL ( SELECT score FROM slt_couse WHERE cs_id = '1002' AND LEFT(st_id,6)='070511' ) AND LEFT(st_id,6) <> '070511' AND cs_id = '1002' 操作10.7:查询大于等于60分且且比1003课程平均成绩低的学生课程信息(Between…And) SELECT * FROM slt_cou

49、se a WHERE a.score BETWEEN 60 AND ( SELECT AVG(b.score) FROM slt_couse b WHERE b.cs_id='1003' ) 操作10.8:查询系主任为“赵虎”的系的所有学生信息 通过子查询实现:——IN运算符 SELECT * FROM student WHERE EXISTS ( SELECT * FROM dept WHERE st_dpid = dp_id AND dp_drt='赵虎' ) 通过子查询实现:——=运算符 SELECT * FROM student WHE

50、RE st_dpid = ( SELECT dp_id FROM dept WHERE dp_drt='赵虎' ) 实验11 数据查询(7)——数据更新与子查询 操作11.1:将070511班所有学生信息插入到表student01(st_id,st_nm,st_sex) INSERT INTO student01 SELECT st_id,st_nm,st_sex FROM student WHERE LEFT(st_id,6)='070511' 操作11.2:生成1002号课程的成绩单student02(st_id,st_nm, score) INSERT IN

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服