输入问题?数据库 10feixianxxx]

发布时间:2017-6-27 13:15:01 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"输入问题?数据库 10feixianxxx]",主要涉及到输入问题?数据库 10feixianxxx]方面的内容,对于输入问题?数据库 10feixianxxx]感兴趣的同学可以参考一下。

上周老师给的作业,我做了前三个,后三个怎样也弄不明白了,希望前辈们给予指教。谢谢 问题描述:   为管理岗位业务培训信息,建立3个表:(有下划线为主键) 学员表 (学号,姓名,单位,年龄) 课程表 (课程号,课程名 )   选修表 (学号,课程号,成绩 )    1.查询选修课程名称为’JAVA’的学员学号和姓名   2.查询选修课程编号为’C02’的学员姓名和所属单位   3.查询不选修课程编号为’C04’的学员姓名和所属单位   4.查询选修全部课程的学员姓名和所属单位   5. 查询选修了课程的学员人数   6. 查询选修课程超过4门的学员学号和所属单位 下面是我做的,请多多指教 Use StuDB Go --学员表 (学号,姓名,单位,年龄) If Exists(Select Name From SysObjects Where Name = 'Students')  Drop Table Students;  Go Create Table Students (  SNo Varchar(5) Not Null,  SName Varchar(8) Not Null,  SUnits Varchar(50),  SAge Tinyint ) --添加主键约束 Alter Table Students Add  Constraint PK_SNo Primary Key(SNo) Go --课程表 (课程号,课程名 ) If Exists(Select Name From SysObjects Where Name = 'Course')  Drop Table Course; Create Table Course (  CourseNo Varchar(5) Not Null,  CourseName Varchar(10) Not Null ) --添加主键约束 Alter Table Course Add  Constraint PK_CourseNo Primary Key(CourseNo) Go --选修表 (学号,课程号,成绩 )  If Exists(Select Name From SysObjects Where Name = 'Elective')  Drop Table Elective; Create Table Elective (  EsNo Varchar(5) Not Null,  EcourseNo Varchar(5) Not Null,  EResult Float ) --添加主键约束 Alter Table Elective Add  Constraint PK_EsNo_EcourseNo Primary Key(EsNo,EcourseNo) Go --添加外键约束 Alter Table Elective Add  Constraint FK_EsNo Foreign Key(EsNo) References Students(SNo),  Constraint FK_EcourseNo Foreign Key(EcourseNo) References Course(CourseNo) Go --测试数据表 Select * From Students; Select * From Course; Select * From Elective; --插入数据 Insert Into Students Values('S01','张三', 'AAAA',23); Insert Into Students Values('S02','李四', 'BBBBB',43); Insert Into Students Values('S03','王五', 'CCCCCCC',32); Insert Into Students Values('S04','赵六', 'DDDD',25); Insert Into Course Values('C01', 'JAVA'); Insert Into Course Values('C02', 'SQL'); Insert Into Course Values('C03', 'NET'); Insert Into Course Values('C04', 'Orecl'); Insert Into Elective Values('S01','C01',56); Insert Into Elective Values('S02','C01',70); Insert Into Elective Values('S02','C02',45); Insert Into Elective Values('S03','C01',78); Insert Into Elective Values('S03','C02',98); Insert Into Elective Values('S03','C03',85); Insert Into Elective Values('S04','C01',65); Insert Into Elective Values('S04','C02',73); Insert Into Elective Values('S04','C03',64); Insert Into Elective Values('S04','C04',91); Go   --1.查询选修课程名称为’JAVA’的学员学号和姓名课程名称 = CourseName,  Select 学员学号 = SNo, 姓名 = SName From Students s, Course c, Elective e  Where s.SNo = e.EsNo And e.EcourseNo = c.CourseNo And c.CourseName = 'JAVA'; --2.查询选修课程编号为’C02’的学员姓名和所属单位 Select 学员姓名 = SName, 单位 = SUnits From Students s, Course c, Elective e  Where s.SNo = e.EsNo And e.EcourseNo = c.CourseNo And c.CourseNo = 'C02'; --3.查询不选修课程编号为’C04’的学员姓名和所属单位 Select 学员姓名 = SName, 单位 = SUnits From Students  Where SNo Not in(Select EsNo From Elective Where EcourseNo = 'c04');

4、更具选修表查询出每个学生的课程总数,在和课程表中的课程总数比较。等于的就是选择全部课程的。 5、count选修,表更具课程名称分组 6、更具选修表count,在用HAVING 子句过滤结果。HAVING 子句具体方法参考帮助 我想我的答案可以帮助你。 很简单的。。。~~ 3、答案虽然可以获取结果,但是不合理。缺少优化,不是最佳答案

4 select sname,SUnits from students where sno in( select EsNo from Elective  group by esno having count(*)=(select count(*) from Course))

上一篇:这种查询该怎么做? 10limingdedujuan]
下一篇:sql 该怎么样创建一个视图呢??????????????????? 10limingdedujuan]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。