当前位置:文档之家› sql数据库练习题

sql数据库练习题

第一讲1、什么是数据管理?答:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。

2、在数据库的三个模式中( C )。

A.内模式只有一个,而模式和外模式可以有多个B.模式只有一个,而模式和外模式可以有多个C.模式和内模式只有一个,而外模式可以有多个D.模式、内模式和外模式均只有一个3、学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( D )A.多对多B.一对一C.多对一D.一对多4、储蓄所有多个储户,一个储户可以在多个储蓄所存取款,储蓄所和储户之间的联系类型是:AA.多对多B.一对一C.多对一D.一对多5、学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)6、系、系主任、系与系主任间的一对一联系联系隐含在关系内部:系(系号,系名,办公地点)系主任(教师编号,姓名,年龄,性别,所在系号)第四讲1、什么是关系数据库?答:关系数据库(P18):所谓关系数据库就是采用关系模型作为数据的组织方式,换名话说就是支持关系模型的数据库系统。

2、关系数据的操作语言有哪几类,分别是什么?答:(1)、关系代数(2)、关系演算(3)、SQL语言3、关系数据的完整性约束分别是什么?答:(1)、实体完整性(2)、参照完整性(3)、用户定义完整性4、什么是码及候选码?并找出下述关系中的候选码。

答:(1)、码(P20):在关系的各个属性中,能够用来惟一标识一个元组的属性或属性组。

(2)、候选码(P20):若在一个关系中,某一个属性或属性组的值能唯一地标识该关系的元组,而真子集不行,则称该属性或属性组为候选码。

(3)、该关系的候选码为:职工编号,身份证号。

5、关系数据操作的对象和结果都是什么?答:集合6、给出三个域:D1=SUPERVISOR ={ 张清玫,刘逸}D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积为:D1×D2×D3 ={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }7、现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业)的主键为:BA宿舍编号B学号C宿舍地址,姓名D宿舍编号,学号8、现有关系表:医疗(患者编号,医生编号,医生姓名,诊断日期,诊断结果,恢复情况)的主键是:AA患者编号,医生编号,诊断日期B医生编号C诊断日期D患者编号9、现有如下关系:职工(职工号、姓名、性别、职务、部门编号)部门(部门编号、部门名称、姓名、部门地址、电话)其中,职工关系中的外键是(A)A部门编号B姓名C职工号D职工号,姓名10、关系数据库(实体完整性规则)规定元组在组成主码的属性上不能取空值。

11、关系数据库(参照完整性规则)规定一个基本关系的外码(对应于另一个基本关系的主码)取值只允许为空值,或者等于它所对应的基本关系中某个主码值。

12、有如下关系R与S,分别求出:R∪S,R∩S,R-S,R×S。

R: S:R∪SR∩SR×S13、如下图所示,两个关系R1和R2,它们进行_D__运算后得到R3。

A、交B、并C、笛卡尔积D、连接R1 R214、关系代数运算中,专门的关系运算有?答:选择、投影、连接、除。

15、查询信息系(IS系)全体学生σSdept = 'IS' (Student)或σ5 ='IS' (Student)16、查询年龄小于20岁的学生σSage < 20(Student)或σ4 < 20(Student)17、(1)、在Reader关系中查找男性读者。

(2)、查找计算机系所有读者。

答案:(1)、在Reader关系中查找男性读者。

σsex=‘男’(Reader) 或σ3=‘男’(Reader)结果如下:(2)、查找计算机系所有读者。

σdept=‘计算机系’(Reader) 或σ4=‘计算机系’(Reader)结果如下:18、(1)、查询关系Book中所有图书的书名和对应的出版社。

(2)、查询“中国水利水电出版社”出版的所有藏书的书名和库存数量。

(1)、查询关系Book中所有图书的书名和对应的出版社。

∏bookname,publish(book)结果如下:(2)、查询“中国水利水电出版社”出版的所有藏书的书名和库存数量(,出版社)。

∏bookname,Qty( σpublish=‘中国水利水电出版社’(Bo ok) )结果如下:19、查询选修了2号课程的学生的学号。

πSno(σCno='2'(SC ))20、下列关系运算中,哪些不属于专门的关系运算(D)A. 选择B. 投影C. 除法D.并21、下列关系运算中,哪些不属于专门的关系运算(C)A. 选择B. 投影C.广义笛卡尔积D.除法22、现有关系数据库如下:⏹学生(学号,姓名,性别,专业,出生日期)⏹教师(教师编号,姓名,所在部门,职称)⏹授课(教师编号,学号,课程编号,课程名称,教材,学分,学生成绩)用关系代数表达式实现:1.检索学习“数据库原理”课程且成绩不及格的学生的学号和教师编号。

2.检索学习“英语”课程的“计算机应用”专业的学生学号、姓名、成绩。

3.检索所有课程成绩都及格的学生的学号、姓名和专业;第六讲1、SQL语言的主要四个功能:答:数据定义、数据查询、数据操作、数据控制2、SQL数据定义语句对操作对象(如基本表、视图、索引)的三种操作方式有:答:创建、删除、修改3、建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。

其中学号不能为空,值是唯一的,并且姓名取值也唯一。

CREATE TABLE Student(Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20) UNIQUE,Ssex CHAR(1) ,Sage INT,Sdept CHAR(15))4、建立一个“学生选课”表SC,它由学号Sno、课程号Cno,选修课成绩Grade组成,其中(Sno, Cno)为主码。

CREATE TABLE SC( Sno CHAR(5) ,Cno CHAR(3) ,Grade int,CONSTRAINT PK_SC Primary key (Sno, Cno))5、使用SQL语言完成如下操作(1)、在一个名为“test”的数据库创建一个名为“customers”的表,该表包含“customerid”和“companyname”两个字段,分别为char(5)和char(40)类型(2)、然后修改“companyname”字段的定义:数据类型由char(40)改为varchar(40),属性NULL改为NOT NULL。

(3)、在customers表中增加五个新的字段,分别为contactName、address、city、phone,fax。

请同学们根据实际情况来定义各字段的数据类型及长度。

(4)、为该表增加primary key约束。

(5)、删除表中的phone字段。

6、为学生-课程数据库中的Student,Course,SC三个表建立索引。

其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。

CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCnoON SC(Sno ASC,Cno DESC);7、查询所有读者卡号和姓名。

select cardid,namefrom reader查询结果:8、查询全体学生的学号与姓名。

SELECT Sno,SnameFROM Student9、查询全体学生的姓名、学号、所在系。

SELECT Sname,Sno,SdeptFROM Student10、(1)查询每个学生所选修的课程数量(2)求学校的男生人数及女生人数分别是多少.(3)求各门课程的最高分.11、(1)检索学生表中所有男生的记录,并以学号降序排列.select *from studentwhere ssex=‘男’order by sno desc(2)检索选修表中多于5名学生选修的并以3开头的课程的平均成绩.select avg(grade)from scwhere cno like’3%’group by cnohaving count(sno)>=5(3)检索最高成绩小于90分,最低成绩大于70分的学生的学号.select snofrom scgroup by snohaving max(grade)<90 and min(grade)>70(4)检索选修了课程的学生中最高分与最低分相差12分的学生的学号及其最高分与最低分.(注:没有成绩的课程不参与统计)select sno,max(grade),min(grade)from sc where gradegroup by snohaving max(grade)-min(grade)=1212、(1)查询所有学生所选的课程号、成绩及相应的课程名。

(2)查询每门课程的课程名及其平均分13、(1)查询考试不及格的学生姓名和成绩及相应的课程名。

select sname,grade,cnamefrom student,sc,coursewhere student.sno=sc.sno and o=o(2)查询和刘晨同一个系的学生的姓名和性别。

select s2.sname,s2ssexfrom student s1,student s2where s1.sdept=s2.sdept and s1.sname=‘刘晨’(3)查询选修人数在2人以上的课程名和学分。

select cname,ccreditfrom sc join curseon o=ogroup by cname,ccredithaving count(*)>=214、(1)查询成绩大于70的学生姓名和所在系select sname,sdeptfrom studentwhere sno in(select snofrom scwhere agrade>70)(2)查询与“数据库”这门课程的学分相同的课程号,课程名.select cno,cnamefrom coursewhere ccredit=(select ccreditfrom coursewhere cname=‘数据库’)15、设有如下关系表:R(NO,NAME,SEX,AGE,CLASS)主码是NO,其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。

相关主题