数据库SQL部分练习题集

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

【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《数据库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.解释式SQL

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


A.SELECT B.INSERT C.UPDATE D.DELETE

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

11.试述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 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表中的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 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)显示选修了课程号为‘3-105’课程且成绩高于选修课程号为‘3-245’课程的学生的cno,no和grade。 (13)显示所有未讲课的教师name和depart(只能用子查


询)

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)显示最高分学生的no,cno和grade列 ---第一种理解:某一课程最高分

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)建立一个包含所有学生no,name,cname,grade 和 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 整型 表示成绩

约束:主码——Sno,Cno; Sno,Cno均为外码) 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

中插入学生元组

(”0201901”,”ZHAO”,18,”女”,2002-08-31,NULL) ⑮.把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.

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

的图书信息。

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

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

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




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

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

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

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

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

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

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

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

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

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




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

24.求在2005年2月3日借书的人的姓名。

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

26.求在2005年2月3日有哪些人借了哪些书。 综合:

(1)向Reader表插入一条读者信息(05A110001,李丹,女,1880-4-1)

_____________________________________________________________

(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

相关推荐