当前位置:文档之家› 数据库SQL部分练习题集

数据库SQL部分练习题集

1.SQL是_结构化查询语言__2.SQL语言的功能包括、__数据更新_、_数据查询__、。

3.视图是一个虚表,它是从______中导出的表,在数据库中,只存放视图的____,不存放视图的________。

4.设有如下关系表R:R(No,Name, Sex, Age, Class),主关键字是No,其中No为学号,Name为姓名,Sex为性别,age为年龄,Class为班号,写出实现下列功能的SQL语句。

①插入一个记录(25,‘李明’,‘男’,21,‘95031’);_________________________________________________ ___________②插入‘95031’班学号为30,姓名为‘郑和’的学生记录;_________________________________________________ ___________③将学号为10的学生姓名改为‘王华’;_________________________________________________ ___________④将所有‘95101’班号改为‘95091’;_________________________________________________ ___________⑤删除学号为20的学生记录;_________________________________________________ ___________⑥删除姓‘王’的学生记录;_________________________________________________ ___________5.SQL语言是___________的语言,易学习。

A.过程化 B.非过程化 C. 格式化D.导航式6.SQL语言是___________语言A.层次数据库 B.网络数据库 C.关系数据库D.非数据库7.SQL语言具有___________的功能。

A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵8.SQL语言具有两种使用方式,分别称为交互式SQL和______________。

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL9.SQL语言中,实现数据检索的语句是____________。

A.SELECT B.INSERT C.UPDATE D.DELETE10.下列SQL语句中,修改表结构的是_________________。

A.ALTER B.CREATE C.UPDATE D.INSERT11.试述SQL语言的特点12.试述SQL语言的功能13.什么是基本表?什么是视图?两者的区别和联系是什么?14.所有的视图是否都可以更新?哪些视图不可更新,举例说明?15.设有关系职工表(职工号,职工名,部门号,工资)和部门表(部门号,部门名,主任),用SQL语句完成下列要求:(1)向职工表中插入行(‘025’,‘王芳’,‘03’,1000)___________________________________________________ (2)从职工表中删除人事处的所有员工__________________________________________________________(3)将职工号为‘001’的员工工资改为700元钱___________________________________________________ _________(4)查询人事处的员工最高工资___________________________________________________ ________(5)查询“王芳”所在部门的部门主任___________________________________________________ __________(6)查询与“王芳”在同一部门的其它员工信息___________________________________________________ __________(7)建立公司所有部门的公共视图——部门职工视图_create view部门职工视图as select 职工号,职工名,部门号,工资,部门名,主任from 职工join 部门on 职工.部门号=部门.部门号(8)从部门职工视图中查询财务处员工工资高于800元的员工信息_select * from 部门职工视图where 部门名=‘财务处’and 工资> 800_16.设有如下三个关系表:Book(ID,Name,Author,Publish,Price)Reader(ID,Name,Sex,BirthDate)Borrow(BookID,ReaderID,BorrowDate)写出实现下列功能的SQL语句:(1)向Reader表插入一条读者信息(05A110001,李丹,女,1880-4-1)___________________________________________________ __________(2)将Book表中所有清华大学出版社出版的21元的图书价格改为25元___________________________________________________ _______(3)从Borrow表中删除在2005-1-5之后的读者借书信息___________________________________________________ _________(4)查询图书表中的所有图书的最高价格_____select max(price)from book________(5)查询清华大学出版社出版的定价不超过25元的图书名称Select name from bookwhere publish=‘清华大学出版社’and price<25__________(6)显示姓李且姓名只含两个字的作者撰写的图书信息Select * from book where author like ‘李_’(7)求出版图书数量最多的出版社所出版的图书定价的平均值sselect publish, avg(price) sfrom bookgroup by publishhaving count(*)>=all(select count(*) from book group by publish)(8)求读者胡晓丹所借的图书编号、书名和出版社信息及借书时间Select book.ID, , publish, borrowdateFrom book join borrow on book.ID=borrow.bookIDJoin reader on reader.ID=borrow.readerIDWhere =’胡晓丹’(9)创建一个读者借书的视图R _ B_View ( ReaderName, BookName, BookAuthor, BookPublish, BookPrice, BorrowDate)_______________________________________________ ____________________________(10)从视图R_B_View中查找2005-5-22日借书的读者姓名和书名_______________________________________________ ____________________________1.请根据如下四张表做后面的练习:学生表Student ( Sno, Name, Sex, Birthday, Class)教师表Teacher ( Tno, Name, Sex, Birthday, Prof, Depart)课程表Course ( Cno, CName, Tno)成绩表Score ( Sno, Cno, Grade)其中:Student表中Sno是主码,Teacher表中Tno是主码,Course表中的Tno是Teacher表的外码,Score表中的Sno是Student表的外码、Cno是Course表的外码。

①向student表添加Depart列的信息,要求类型为字符串型,最大长度30位;②向teacher表插入一条记录(010125,刘冰,女,1975-06-25,助教,电子工程系);insert into teacher(‘010125’,‘刘冰’,‘女’,‘1975-06-25’,‘助教’,‘电子工程系’)③将student表中学号为‘209’的学生班号改为‘95031’Update student set class=’95031’where sno=’209’④删除选修“刘冰”教师所教课程的学生选课信息Delete from Score where cno in(Select cno from Course where Tno in(Select Tno from Teacher where name=’刘冰’)) ⑤显示student中‘95031’班或性别为‘女’的同学记录Select * from studentwhere class=’95031’ or sex=’女’⑥查找最低分大于70分,最高分小于90分的学生No;Select sno from scoreGroup by snoHaving Min(grade)>70 and max(grade)<90⑦查找score表中至少有5名学生选修的并以3开头的课程号的平均分数Select cno, avg(grade) from scorewhere cno like ‘3%’Group by cno Having Count(*)>=5⑧显示‘95033’班所选课程的平均分;Select avg(grade)from student join score on student.sno=score.sno where class=’95033’⑨显示“张旭”教师任课的学生成绩。

Select grade from teacher join courseon teacher.tno=course.tno join scoreon o=owhere =’张旭’select grade from score where cno in(select cno from course where tno in(select tno from teacher where name=’张旭’)) ⑩显示选修某课程的同学人数多于5人的教师姓名Select o,from teacher join course On teacher.tno=course.tno join score on o=ogroup by o, teacher.tno,having count(*)>=5select name from teacher where tno in(select tno from course where cno in(select cno from score group by cnohaving count(*)>=5))(11)显示所有存在85分以上成绩的课程cnoSelect cno from score where grade>85(12)显示选修了课程号为‘3-105’课程且成绩高于选修课程号为‘3-245’课程的学生的cno,no和grade。

相关主题