数据库SQL部分练习题集

2022-10-03 10:21:01   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《数据库SQL部分练习题集》,欢迎阅读!
习题集,部分,数据库,SQL
1SQL_结构化查询语言__

2SQL语言的功能包括__数据定义_____数据更新__数据查询____数据控制_

3.视图是一个虚表,它是从______中导出的表,在数据库中,只存放视图的____,不存放视图的________ 4.设有如下关系表RRNoName, Sex, Age, Class,主关键字是No,其中No为学号,Name为姓名,Sex为性别,age为年龄,Class为班号,写出实现下列功能的SQL语句。 插入一个记录(25‘李明’‘男’2195031 ____________________________________________________________

②插入‘95031’班学号为30,姓名为‘郑和’的学生记录;

____________________________________________________________

③将学号为10的学生姓名改为‘王华’

____________________________________________________________

④将所有‘95101’班号改为‘95091

____________________________________________________________

⑤删除学号为20的学生记录;


____________________________________________________________

⑥删除姓‘王’的学生记录;

____________________________________________________________

5SQL语言是___________的语言,易学习

A B. C. D.导航式

6SQL语言是___________语言

A B. C. D.非数据库

7SQL语言具有___________的功能。 A 关系规范化、数据操纵、数据控制 B 数据定义、数据操纵、数据控制 C 数据定义、关系规范化、数据控制 D 数据定义、关系规范化、数据操纵

8SQL语言具有两种使用方式,分别称为交互SQL______________

A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL

9SQL语言中,实现数据检索的语句是____________


ASELECT B.INSERT C.UPDATE D.DELETE

10下列SQL语句中,修改表结构的是_________________ AALTER B.CREATE C.UPDATE D.INSERT

11.试述SQL语言的特点 12.试述SQL语言的功能

13.什么是基本表?什么是视图?两者的区别和联系是什么?

14.所有的视图是否都可以更新?哪些视图不可更新,举例说明?

15.设有关系职工表(职工号,职工名,部门号,工资)和部门表(部门号,部门名,主任),用SQL语句完成下列要求:

1)向职工表中插入行(025‘王芳’031000

___________________________________________________ 2)从职工表中删除人事处的所有员工

___________________________________________________


_______

3)将职工号为‘001’的员工工资改为700元钱

____________________________________________________________

4)查询人事处的员工最高工资

___________________________________________________________

5)查询“王芳”所在部门的部门主任

_____________________________________________________________

6)查询与“王芳”在同一部门的其它员工信息

_____________________________________________________________

7)建立公司所有部门的公共视图——部门职工视图 _create view部门职工视图 as select 职工号,职工名,部门号,工资,部门名,主任 from 职工 join 部门 on 职工.部门号=部门.部门号

8)从部门职工视图中查询财务处员工工资高于800


的员工信息

_select * from 部门职工视图 where 部门名=‘财务处’ and 工资 > 800_

16.设有如下三个关系表:

BookIDNameAuthorPublishPrice ReaderIDNameSexBirthDate BorrowBookIDReaderIDBorrowDate 写出实现下列功能的SQL语句:

1Reader表插入一条读者信息05A110001李丹,女,188041

_____________________________________________________________

2)将Book表中所有清华大学出版社出版的21元的图书价格改为25

__________________________________________________________

3)从Borrow表中删除在2005-1-5之后的读者借书信


____________________________________________________________

4)查询图书表中的所有图书的最高价格 _____select maxprice from book________ 5查询清华大学出版社出版的定价不超过25元的图书名称

Select name from book

where publish=‘清华大学出版社’and price<25 __________

6)显示姓李且姓名只含两个字的作者撰写的图书信息 Select * from book where author like _

7)求出版图书数量最多的出版社所出版的图书定价的平均值s

select publish, avg(price) s from book group by publish having count(*)>=all(

select count(*) from book group by publish)

8)求读者胡晓丹所借的图书编号、书名和出版社信息及借书时间

Select book.ID, book.name, publish, borrowdate From book join borrow on book.ID=borrow.bookID


Join reader on reader.ID=borrow.readerID Where reader.name=胡晓丹

9创建一个读者借书的视图R _ B_View ( ReaderName, BookName, BorrowDate)

___________________________________________________________________________

10)从视图R_B_View中查找2005-5-22日借书的读者姓名和书名

___________________________________________________________________________



BookAuthor,

BookPublish,

BookPrice,


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表中的TnoTeacher表的外码, Score表中的SnoStudent表的外码、Cno

Course表的外码。

student表添加Depart列的信息,要求类型为字符串型,最大长度30位;

teacher0101251975-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 student

where class=95031 or sex=’女’

查找最低分大于70分,最高分小于90分的学生No Select sno from score Group by sno

Having Min(grade)>70 and max(grade)<90

查找score表中至少有5名学生选修的并以3开头的课程号的平均分数

Select cno, avg(grade) from score where 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 course on teacher.tno=course.tno join score on score.cno=course.cno where teacher.name=’张旭’

select grade from score where cno in( select cno from course where tno in(

select tno from teacher where name=’张旭’)) 显示选修某课程的同学人数多于5人的教师姓名 Select score.cno,teacher.name

from teacher join course On teacher.tno=course.tno join score on score.cno=course.cno

group by score.cno, teacher.tno,teacher.name having count(*)>=5

select name from teacher where tno in( select tno from course where cno in(

select cno from score group by cno having count(*)>=5))

(11)显示所有存在85分以上成绩的课程cno Select cno from score where grade>85

12)显示选修了课程号为‘3105课程且成绩高于选修课程号为‘3-245课程的学生的cnonograde 13)显示所有未讲课的教师namedepart(只能用子查


)

Select name , depart from teacher where tno not in( Select tno from course)

14)显示和李军同性别且同班的同学姓名

Select name from student where sex = ( select sex from student where name=李军) and class=( select class from student where name=李军)

15)显示所有选修计算机导论课程的男同学的成绩表 Select

score.*

from

score

join

student

on

student.sno=score.sno join course on course.cno=score.cno Where course.name=计算机导论 and sex=

Select * from score where cno in (select cno from course where name=) and sno in(select sno from student where sex=)

16)显示最高分学生的nocnograde ---第一种理解:某一课程最高分

Select * from score where grade=(select max(grade) from score)

Select * from score where grade>=all(select grade from score) ---第二种理解:该学生总分最高

Select * from score where sno in (select sno from score group by sno having sum(grade)>=all(select sum(grade) from score


group by sno))

17)按班级和年龄从大到小的顺序显示student表的全部记录

Select * from student order by class desc, birthday asc 18)建立一个包含所有学生nonamecnamegrade class字段的视图degrees

Create view degrees(no, name, cname, grade, class) As select student.sno, Name, Cname, grade, class From student join score on student.sno=score.sno Join course on course.cno=score.cno

19)根据上题所建视图,查询‘95031班级的学生选课信

Select * from degrees where class=95031

20)查询选修四门课以上课程的学生总成绩(不统计不及格的课程


2. 按照要求用SQL语句创建下面三张表: ⑪. 学生表:表名——Student

属性:Sno 字符型,最大7个字符 表示学生学号 Sname 字符型,最大8个字符 表示学生姓名 Sage 整型 表示学生年龄 Ssex 字符型,最大2个字符 表示学生性别 Sdate 日期时间型 表示学生入学时间 Sdept 字符型,长度为20 表示所在系 约束:主码——Sno 非空属性——Sname 默认入学时间——‘2000-09-01 Create table student (

Sno char(7) primary key, Sname char(8) not null,

Sage int check(sage>10 and sage<60), Ssex char(2) check(ssex=’男’ or ssex=女’),

Sdate datetime default 2000-9-1, Sdept char(20) )

⑫. 课程表:表名:Course


属性:Cno 字符型,最大4个字符 课程编号

Cname 字符型,最大10个字符

课程

Cteacher 字符型,最大8个字符

示教师姓名

Coffice 字符型,最大20个字符

办公

约束:主码——Cno 非空属性——Cname ⑬. 选课表:表名——SC

属性:Sno 字符型,最大7个字符 表示学生学号

Cno 字符型,最大4个字符 表示课程 Grade 整型 表示成绩

约束:主码——SnoCno SnoCno均为外码) Create table sc( Sno char(7) , Cno char(4),

Primary key(sno,cno),

Grade int check(grade>=0 and grade<=100) , Foreign key(sno) references student(sno), Foreign key(cno) references course(cno) )


针对上面的三个基本表做如下的练习:

Student



”0201901ZHAO1820020831NULL ⑮.把WANG同学的选课记录全部删除

⑯.查询在C117办公室的老师所授课程课程号和课程 ⑰.查询平均成绩在75分以上的学生学号和其平均成绩 ⑱.查询其他系比信息系年龄最小的学生还小的学生姓名、年龄

⑲.查询所有缺考的学生的学号、姓名和系别 ⑳.查询选修了“C01课程的学生总人数和最高分数 ⑴.查询在2000-8-31入学的男学生的学号和姓名 ⑵.查询与刘晨选修的一门课程相同的学生姓名

⑶.查询与QIAN老师在同一个办公室的其它老师的姓名 ⑷.查询至少选修LIU老师所授课程中一门课程的女学生姓

⑸.查询哪些课程没有人选修

⑹.查询选修了课程C02’且成绩高于此课程的平均成绩的学生的学号和成绩

⑺.求平均分最高的学生姓名

. 显示20岁学生的基本信息和选课信息课程名和分数)若没有选课,也要将基本信息显示出来

. 建立计算机系选修了课程c01’的学生的视图


⑽.建立视图(SGrade,包含每个学生的学号(Sno,选课门数(Count_Cno,平均分(Avg_Grade

(21). 利用上述视图进行查询:列出平均分大于80分的学生的学号及其选课门数

(22). 查询选修了3门以上课程的学生学号

(23). 查询以DB开头且倒数第三个字母是i课程课程号、课程

3. 按照要求用SQL语句创建下面三张表: ⑪. 商店表:表名——SHOP

属性:S# 字符型,最大7个字符 表示商店代号

SNAME 字符型,最大20个字符 表示商店名称 WQTY 整型 表示店员人数

CITY 字符型,最大10个字符 表示所在城市 约束:主码——S# 非空属性——Sname

店员人数要大于50

⑫. 商品表:表名:GOODS

属性:

G# 字符型,最大8个字符 表示商品编号 GNAME 字符型,最大20个字符 表示商品名称

PRICE 数值型,精度4位,小数保留2 表示商品价格

约束:主码——G# 非空属性——GNAME ⑬. 数量表:表名——STORAGE


属性:S# 字符型,最大7个字符 表示商店代号

G# 字符型,最大8个字符 表示商品编号 QTY 整型 表示该商店所储存的商品数量

约束:主码——S#G# S#G#均为外码

QTY要大于等于0



针对上面的三个基本表做如下的练习:

⑭.向基本表SHOP中插入商店元组350家乐福超市200大连

⑮.把家乐福超市储存收音机商品的记录删除 ⑯.将编号为056的商品价格修改为750 ⑰.查询在北京的商店其平均人员数量

⑱.查询储藏笔记本数量最多的商店名称(较难) ⑲.查询上海市所有供应手机的商店名

⑳.查询店员人数不超过100人或者在天津市的所有商店的代号和名称

⑴.查询至少供应代号为256的商店所供应的全部商品的商店名称和所在城市

⑵.创建一个北京市的商店供应商品的视图S_G_View ( ShopNo, ShopName, GoodsName, Quantity)

Create view S_G_View( ShopNo, ShopName, GoodsName, Quantity)


As select Shop.S#, Sname, Gname, QTY From shop join storage on shop.S#=storage.S# Join Goods on Goods.G#=storage.G# Where city=北京市

(13). 利用上述视图进行查询:列出北京存储电视机超过800台的商店名称和商品数量

Select shopname, Quantity from S_G_View Where GoodsName=‘电视机’ and Quantity>800




创建如下结构的三张表格这三张表格在后面的作业中会反复用到,请大家认真完成: 图书表 表名:Book

结构:共有5列,具体如下所示

列名 ID

数据类型 CHAR(10)

描述 图书编

Name NVARCHAR(30) 图书的

书名

Author NVARCHAR(10) 图书的

作者

Publish NVARCHAR(20) 出版社 Price

读者表 表名:Reader

结构:共有列,具体如下所示

列名 ID

数据类型 CHAR(10)

描述 读者编

Name

NVARCHAR(8) 读者姓DECIMAL(6,2)

定价




Sex

NCHAR(1)

读者性

BirthDate

DATETIME

读者的出生日

借阅情况表 表名:Borrow

结构:共有列,具体如下所示

列名 BookID

数据类型

描述

CHAR(10) 图书编



ReaderID CHAR(10) 读者编



BorrwoDate DATETIME 借阅日





作为练习,把下面的数据录入到相对应的表中:Book

ID

Name

Author

Publish

Price 28.00

A32DT00001 计算机

化基础

A32DT00002 数据库原

周文波 清华大学出版



岳海健 电子工业出版

25.00




B32DT00001 高等数学

李丹

同济大学出版



42.00

B32DT00002 离散数学 王旭 高等教育出版



31.00

C32DT00001 毛泽东思



D32DT00001 大学语文 A32DT00003 操作系统

刘琳 机械工业出版



18.00

赵阳 周强

水电出版社 清华大学出版



22.00 24.00

A32DT00004 C语言 谭浩强 清华大学出版



20.00

B32DT00003 线形代数 李俐 高等教育出版



12.00

B32DT00004 概率论与

数理统计

Reader

ID 021B310003 021B310004 021B310005 021B310006

Name 于海颖 胡晓丽 宋玮 施秋乐

颜承伟 机械工业出版



22.00

Sex NULL

BirthDate NULL 1977-1-26 NULL 1976-9-20


021B310007 021B310008 Borrow

BookID

张巍 王金娟

NULL NULL

NULL NULL

ReaderID BorrwoDate 2005-1-20 2005-1-20 2005-2-1 2005-2-1 2005-2-3

A32DT00002 021B310003 A32DT00001 021B310006 B32DT00001 021B310004 B32DT00002 021B310004 C32DT00001 021B310006

作业:

1. 询所有图书的平均价格。 Select avg(price) from book 2. 询姓王的女读者信息

Select * from reader where name like % And sex= 3. 询所有读者的借阅信息,按照借阅日期降序排列。

Select * from borrow order by borrowdate desc 4. 询被借阅过的图书编号

Select distinct book_id from borrow


5. 询每个出版社出版的图书数量,用中文列名显示出版社和图书数量。

Select publish as 出版社, count(*) as 图书数量 from book group by publish 6. 询书名包含“数据库”且价格低于40元的图书信息 Select * from book

where name like %数据库% and price<40 7. 询平均价格低于30元的出版社名称。 Select publish from book Group by publish Having avg(price)<30

1 2

Reader表的所有记录显示出来,并且列名用汉字把表Book中的所有数据都显示出来。

表示。 3 4

查询borrow表中所有读者借阅图书的信息 显示所有读者(Reader)的姓名和年龄。


5 6

查询所有借书的读者编号。

把表Book中的出版社为“清华大学出版社”的书选

出来。 7

把表Book中出版社为“清华大学出版社”,并且定

价不超过25元的书选出来。 8

把表Book中出版社为“清华大学出版社”,或者定

价不超过25元的书选出来。 9

显示定价在2025元之间(包含20元和25元)

的图书信息

10.显示定价不在2025元之间(不包含20元和25元)的图书信息

11.显示出版社为“清华大学出版社”“同济大学出版社”或者“高等教育出版社”的图书信息

12.显示出版社为“清华大学出版社”“同济大学出版社”或者“高等教育出版社”以外的其它出版社出版的图书信息




13.显示书名包含“数学”的图书信息

14.显示姓名为三个字的读者信息

15.显示由姓李的作者写的书的信息

16.把所有的图书按照定价由高到低进行排序。

17.把所有的图书按照定价由高到低进行排序,如果定价相同,再按照编号进行升序排列。

18.求定价最低的图书的定价。

19.求由“清华大学出版社”出版的图书的定价的平均值。

20.求读者表(Reader)中有多少位读者。

21.求每一个出版社出版的图书定价的平均值。

22.求出版了两本以上(含两本)图书的出版社所出版的图书定价的平均值。




23.求定价最低的图书的书名以及定价。

24.求在200523日借书的人的姓名。

25.求平均定价最高的出版社的名称。

26.求在200523日有哪些人借了哪些书。 综合:

1Reader表插入一条读者信息05A110001李丹,女,188041

_____________________________________________________________

2)将Book表中所有清华大学出版社出版的21元的图书价格改为25

__________________________________________________________

3)从Borrow表中删除在2005-1-5之后的读者借书信




____________________________________________________________

4)查询图书表中的所有图书的最高价格

___________________________________________________________

5查询清华大学出版社出版的定价不超过25元的图书名称

_____________________________________________________________

6)显示姓李且姓名只含两个字的作者撰写的图书信息

_____________________________________________________________

7)求出版图书数量最多的出版社所出版的图书定价的平均值

______________________________________________________________

8)求读者胡晓丹所借的图书编号、书名和出版社信息


及借书时间

_______________________________________________________________

9创建一个读者借书的视图R _ B_View ( ReaderName, BookName, BorrowDate)

___________________________________________________________________________

10)从视图R_B_View中查找2005-5-22日借书的读者姓名和书名

BookAuthor,

BookPublish,

BookPrice,


本文来源:https://www.wddqxz.cn/6270e5f16c1aff00bed5b9f3f90f76c661374cdd.html

相关推荐