文档库 最新最全的文档下载
当前位置:文档库 › 数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析

第一篇:数据库sql课后练习题及答案解析

先创建下面三个表:

(book表)

(borrow表)

(reader表)

1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。

5)查找书名以”计算机”开头的所有图书和作者(WRITER)。

6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

##10)* 找出借阅了一书的借书证号。

11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。#13)求”科学出版社”图书的最高单价、最低单价、平均单价。##14)* 求”信息系”当前借阅图书的读者人次数。

#15)求出各个出版社图书的最高价格、最低价格和总册数。#16)分别找出各单位当前借阅图书的读者人数及所在单位。

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。18)分别找出借书人次数多于1人次的单位及人次数。

19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

20)查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。

附录:建表语句

创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)

CREATE TABLE BOOK(BOOK_ID int, SORT VARCHAR(10), BOOK_NAME VARCHAR(50), WRITER VARCHAR(10), OUTPUT VARCHAR(50), PRICE int);

创建READER:(读者表)

CREATE TABLE READER(READER_ID int, COMPANY VARCHAR(10), NAME VARCHAR(10), SEX VARCHAR(2), GRADE VARCHAR(10), ADDR VARCHAR(50));

创建BORROW:(借阅表)

CREATE TABLE BORROW(READER_ID int, BOOK_ID int, BORROW_DATE datetime)

插入数据: BOOK表: insert into BOOK values(445501,'TP3/12','数据库导论','王强','科学出版社',17.90);insert into BOOK values(445502,'TP3/12','数据库导论','王强','科学出版社',17.90);insert into BOOK values(445503,'TP3/12','数据库导论','王强','科学出版社',17.90);insert into BOOK values(332211,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);insert into BOOK values(112266,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);insert into BOOK values(665544,'TS7/21','高等数学','刘明','高等教育出版社',20.00);insert into BOOK values(114455,'TR9/12','线性代数','孙业','北京大学出版社',20.80);insert into BOOK values(113388,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);insert into BOOK values(446601,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK

values(446602,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(446603,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(118801,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);insert into BOOK values(118802,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);

READER表: insert into reader values(111,'信息系','王维利','女','教授','1号楼424');insert into reader values(112,'财会系','李立','男','副教授','2号楼316');insert into reader values(113,'经济系','张三','男','讲师','3号楼105');insert into reader values(114,'信息系','周华发','男','讲师','1号楼316');insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224');insert into reader values(116,'信息系','李明','男','副教授','1号楼318');insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214');insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216');insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318');insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506');insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510');insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512');insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202');insert into reader values(124,'财会系','朱海','男','讲师','2号楼210');insert into reader values(125,'财会系','马英明','男','副教授','2号楼212');

BORROW表: insert into borrow values(112,445501,'3-19-2006');insert into borrow values(125,332211,'2-12-2006');insert into borrow values(111,445503,'8-21-2006');insert into borrow values(112,112266,'3-14-2006');insert into borrow

values(114,665544,'10-21-2006');insert into borrow values(120,114455,'11-2-2006');insert into borrow values(120,118801,'10-18-2006');insert into borrow values(119,446603,'11-12-2006');insert into borrow values(112,449901,'10-23-2006');insert into borrow values(115,449902,'8-21-2006');insert into borrow values(118,118801,'9-10-2006');

现有关系数据库如下:

数据库名:图书借阅管理系统

读者表(读者编号char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。(1)创建数据表book;

book表(图书编号char(6),图书名称,出版社,作者)要求使用:主键(图书编号)、非空(图书名称),非空(作者)(2)创建数据表reader表;

学生信息表(reader编号char(8),姓名,性别,年龄,工作单位,身份证号,职称)要求使用:主键(reader编号)、默认(职称)、非空(工作单位,姓名)、唯一(身份证号)、检查(性别),检查(年龄)(3)创建借书表borrow;

borrow(ID,读者编号,图书编号,借书日期)要求使用:外键(学号,课号)(4)将下列课程信息添加到book表的代码

图书编号名称

100101 数据库原理 100102 数据结构

修改课号为100102的图书名称:数据结构与算法删除课号为100101的图书信息(5)创建视图读者借书信息的代码;

读者借书信息视图(读者编号,姓名,图书编号,图书名称,借书日期)(6)从读者表book中查询姓李的女读者的情况:姓名、性别、工作单位。(7)查询统计出借书量超过5本的单位平均年龄(8)创建带参数的存储过程[借某图书的读者高低均年龄]、执行

该过程的代码

存储过程功能:查询借阅某图书的的读者最高年龄、最低年龄、平均年龄;

执行该过程,查询所有借阅’数据库基础’这本书的读者的最高年龄、最低年龄、平均年龄;

1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。

SELECT NAME,COMPANY FROM READER WHERE NAME LIKE '李%'

2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。

SELECT BOOK_NAME, OUTPUT FROM BOOK

3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。

SELECT BOOK_NAME,PRICE FROM BOOK WHERE OUTPUT='高等教育出版社' ORDER BY PRICE DESC 4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。

SELECT SORT,OUTPUT,PRICE FROM BOOK WHERE PRICE BETWEEN 10 AND 20 ORDER BY OUTPUT ,PRICE

5)查找书名以”计算机”开头的所有图书和作者(WRITER)。

SELECT BOOK_NAME,WRITER FROM BOOK WHERE BOOK_NAME LIKE '计算机%' 6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。

SELECT A.READER_ID FROM BORROW A,BORROW B WHERE A.BOOK_ID='112266' AND B.BOOK_ID='449901' AND A.READER_ID=B.READER_ID

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。

SELECT DISTINCT NAME,COMPANY FROM READER,BORROW WHERE

BORROW.READER_ID=READER.READER_ID

8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。

SELECT BOOK.BOOK_NAME,BORROW.BORROW_DATE FROM BOOK,BORROW,READER WHERE BOOK.BOOK_ID=BORROW.BOOK_ID AND

READER.READER_ID=BORROW.READER_ID AND https://www.wendangku.net/doc/ea19020670.html, LIKE '李%'

9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE >='2006-10-1')

##10)* 找出借阅了一书的借书证号。

SELECT DISTINCT READER_ID FROM BORROW,BOOK WHERE BORROW.BOOK_ID=BOOK.BOOK_ID AND BOOK.BOOK_NAME LIKE 'FoxPro大全'

11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。

SELECT NAME,COMPANY,BORROW_DATE FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID AND BORROW_DATE IN(SELECT BORROW_DATE FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID AND NAME='赵正义')

12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。

SELECT READER_ID,NAME,COMPANY FROM READER WHERE READER_ID NOT IN(SELECT READER_ID FROM BORROW WHERE BORROW_DATE>='2006-7-1')

#13)求”科学出版社”图书的最高单价、最低单价、平均单价。

SELECT MAX(PRICE)最高单价,MIN(PRICE)最低单价,AVG(PRICE)平均单价 FROM BOOK WHERE OUTPUT='科学出版社'

##14)* 求”信息系”当前借阅图书的读者人次数。

SELECT COUNT(DISTINCT READER_ID)当前借阅图书的读者人次数FROM BORROW WHERE READER_ID IN(SELECT READER_ID FROM READER WHERE COMPANY IN('信息系'))

#15)求出各个出版社图书的最高价格、最低价格和总册数。

SELECT MAX(PRICE)最高价格,MIN(PRICE)最低价格,COUNT(PRICE)总册数FROM BOOK GROUP BY OUTPUT #16)分别找出各单位当前借阅图书的读者人数及所在单位。

SELECT COUNT(COMPANY)读者人数,COMPANY FROM BORROW,READER WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY

17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。

SELECT NAME 读者姓名,COMPANY 单位FROM READER WHERE READER_ID IN(SELECT READER_ID FROM BORROW GROUP BY READER_ID HAVING COUNT(*)>=2)

18)分别找出借书人次数多于1人次的单位及人次数。

SELECT COMPANY,COUNT(*)人次数 FROM READER,BORROW WHERE BORROW.READER_ID=READER.READER_ID GROUP BY COMPANY HAVING COUNT(*)>1

19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。

SELECT OUTPUT,COUNT(*)书籍的总册数,SUM(PRICE)书的价值总额 FROM BOOK GROUP BY OUTPUT

20)查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。

SELECT NAME,COMPANY FROM READER WHERE NOT EXISTS(SELECT* FROM READER,BORROW WHERE READER.READER_ID=BORROW.READER_ID AND COMPANY='经

济系')

第二篇:SQL数据库选择题及答案

1、在数据库技术中,独立于计算机系统的模型是_C__。A、面向对象的模型B、关系模型C、E-R模型D、层次模型

2、数据库系统的控制中枢是__B_。A、数据库、b、数据库管理系统C、数据库管理员D、数据库应用系统

3、使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是__C_。

A、UPDATE SET AGE WITH AGE+1

B、REPLACE AGE WITH AGE+1

C、UPDATE STUDENT SET AGE=AGE+1

D、UPDATE STUDENT AGE WITH AGE+1

4、在关系数据库中,建立数据库表时,将年龄字段值限制在12~40岁之间的这种约束属于__B__。

A、视图完整性约束

B、域完整性约束

C、参照完整性约束

D、实体完整性约束

5、在 SQL 语句中,与 X BETWEEN 20 AND 30 等价的表达式是__D_。A、X>=20 AND X<30

B、X>20 AND X<30

C、X>20 AND X<=30

D、X>=20 AND X<=30

6、在数据库中,概念模型是_D__。A、用于现实的建模,与具体的DBMS有关B、用于信息世界的建模,与具体的DBMS有关

C、用于现实的建模,与具体的DBMS无关

D、用于信息世界的建模,与具体的DBMS无关

7、数据库的并发操作可能带来的问题包括__B_。A非法用户的使用B丢失更新C数据独立性会提高D增加数据冗余度

8、在关系数据库中,模式对应的是__A___。A、视图和所有基本表

B、视图和部分基本表

C、基本表

D、索引

9、能实现绝对的与平台无关性的Web数据库访问技术是_D_。A、ADO

B、ActiveX

C、WebbaseAPI

D、JDBC

10、在下列描述中,正确的描述是__B___。

A、SQL 是一种过程化语言

B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

11、数据库系统是由__A__组成的。A、数据库、数据库管理系统和用户

B、数据文件、命令文件和报表

C、数据库文件结构和数据

D、常量、变量和函数

12、在SQL查询时,使用WHERE子句指出的是__B__。A、查询目标B、查询条件C、查询视图D、查询结果

13、在下列 RDMBS 产品中,属于小型数据库系统的是_A_。A、Access B、Oracle C、Sybase D、Informix

14、数据库类型是按照_A_来划分的。

A、数据模型

B、记录形式

C、数据存取方法

D、文件形式

15、作为Microsoft Office家族成员之一的_A_数据库,能够与其他Office组件进行数据交换共享数据资源,易于生成集文字处理、图表生成和数据管理于一体的办公自动化系统。A、Access

B、Oracle

C、Sybase

D、Informix

16、数据库管理系统更适合于_D_方面的应用。A、CAD

B、过程控制

C、科学计算

D、数据处理

17、下列四组SQL命令,全部属于数据定义语句的命令是_C__。

A、CREATE,DROP,ALTER

B、CREATE,DROP,UPDATE

C、CREATE,DROP,GRANT

D、CREATE,DROP,SELECT

18、通过Internet及浏览器处理的数据库,应该是_C__处理。A、集中式

B、分布式

C、主从结构式

D、以上3种模式

19、数据的逻辑独立性是指__D_。A、数据与存储结构的逻辑独立性 B、数据元素之间的逻辑独立性

C、存储结构与物理结构的逻辑独立性

D、数据与程序的逻辑独立性

20、在数据库技术中,独立于计算机系统的模型是_C__。A面向对象的模型

B关系模型

C、E-R模型

D、层次模型

21、关系代数的3个基本运算是–D--、投影、连接。A、关系与

B、蕴含

C、关系或

D、选择

22、下面命题不正确的是:A、若冗余数据可以控制,则数据更新的一致性得以保证

B、数据库减少了不必要的数据冗余

C、数据库的数据可以共享

D、数据库中不存在数据冗余

23、在基本SQL中不可以实现:A、定义视图B、并发控制C、定义基表D、查询视图和基表

24、用二维表来表示实体及实体之间联系的数据模型称为_C___。

A、实体-联系模型

B、层次模型

C、关系模型

D、网状模型

25、查找工资在600元以上并且职称为工程师的纪录,逻辑表达式为_D___。

A、“工资”>600.OR.职称=“工程师”

B、工资>600.AND.职称=工程师

C、“工资”>600.AND.“职称”=“工程师”

D、工资>600.AND.职称=“工程师”

26、数据库镜像可以用于__C_。(1分)

A、实现数据库的安全性

B、实现数据共享

C、进行数据库恢复或并发操作

D、保证数据库的完整性

27、在下列类型的数据库系统中,应用最广泛的是__C___。(1分)

A、分布型数据库系统

B、逻辑型数据库系统

C、关系型数据库系统

D、层次型数据库系统

28、在下列描述中,正确的描述是__B__。(1分)A、SQL 是一种过程化语言B、SQL 采用集合操作方式

C、SQL 不能嵌入到高级语言程序中

D、SQL 是一种 DBMS

第三篇:数据库 sql习题及答案

/*

Question 1:Find the titles of all movies directed by Steven Spielberg.select title from movie where director='Steven Spielberg'

Question 2:Find all years that have a movie that received a rating of 4 or 5, and sort them in increasing order.select distinct year from movie,rating where movie.mid=rating.mid and stars in(4,5)order by year

Question 3:Find the titles of all movies that have no ratings select title from movie where mID in

(select mid from Movie except

select mid from rating)

select title from movie except

select title from movie,rating where movie.mid=rating.mid Question 4:Some reviewers didn't provide a date with their rating.Find the names of all reviewers who have ratings with a NULL value for the date.select name from reviewer,rating where reviewer.rid=rating.rid and ratingdate is null

Question 5:Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, and ratingDate.Also, sort the data, first by reviewer name, then by movie title, and lastly by number of stars.select name,title,stars,ratingdate from movie,rating,reviewer where movie.mid=rating.mid and reviewer.rid=rating.rid order by name,title,stars

Question 6:For all cases where the same reviewer rated the same movie twice and gave it a higher rating the second time, return the reviewer's name and the title of the movie.select name,title

from rating as F,Rating as S,Movie,Reviewer where F.rID=S.rID and F.mID=S.mID and F.stars

and F.ratingDate

select name,title from movie,reviewer,(select r1.rid,r1.mid from rating as r1,rating as r2 where r1.rid=r2.rid and r1.mid=r2.mid and r1.ratingdate>r2.ratingdate and r1.stars>r2.stars)as r

where movie.mid=r.mid and reviewer.rid=r.rid

Question 7:For each movie, find the highest number of stars that movie received as a rating.Return the movie title and number of stars.Sort by movie title.select title,MAX(stars)as max_star from rating,Movie

where Rating.mID=Movie.mID group by title order by title select title,maxrating from movie,(select mid,max(stars)as

maxrating from rating group by mid)as r where movie.mid=r.mid order by title

Question 8:For each movie, return the title and the ‘rating spread(范围)', that is, the difference between highest and lowest ratings given to that movie.Sort by rating spread from highest to lowest, then by movie title.select title,MAX(stars)-MIN(stars)as rating_spread from rating,Movie

where Rating.mID=Movie.mID group by title

order by rating_spread desc,title

select title,spread as “rating spread”

from movie,(select mid,max(stars)-min(stars)as spread from rating group by mid)as r where movie.mid=r.mid order by spread desc,title

Question 9:Find the difference between the average rating of movies released before 1980 and the average rating of movies released after 1980.(Make sure to calculate the average rating for each movie, then the average of those averages for movies before 1980 and movies after.Don't just calculate the overall average rating before and after 1980.)

select F.avg_star-S.avg_star from,(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star from Rating left join Movie on Rating.mID=Movie.mID where year>=1980 group by Rating.mID)as S(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star from Rating left join Movie on Rating.mID=Movie.mID where year<1980 group by Rating.mID)as F)as F)as S

select r1979.avgm-r1980.avgm from

,Question 10:Add the reviewer Roger Ebert to your database, with an rID of 209.insert into Reviewer values(209,'Roger Ebert')

Question 11:

Insert 5-star ratings by James Cameron for all movies in the database.Leave the review date as NULL.insert into Rating(rID,mID,stars)select rid,mID,5 as stras from movie,(select rid from Reviewer where name='James Cameron')as T insert into rating(rid,mid,stars)select rid,mid,5 from reviewer,movie where name='James Cameron'

Question 12:For all movies that have an average rating of 4 stars or higher, add 25 to the release year.(Update the existing tuples;don't insert new tuples.)

update Movie set year=year+25(select sum(avgrating)/count(*)as avgM from

(select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year>=1980 group by movie.mid)(select sum(avgrating)/count(*)as avgM from (select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year<1980 group by movie.mid) as r)

as r1979

as r)

as r1980 where mID in

(select mID from Rating group by mID having AVG(stars)>=4) */

第四篇:SQL数据库题库及答案 (6)

实训11用户自定义函数及存储过程

--

1、创建一个存储过程,查看student表里的所有记录,并运行该存储过程。其代码如下:CREATE PROC pr_studentCodes AS SELECT * FROM student GO EXEC pr_studentCodes

--

2、修改pr_studentcodes存储过程,使其按照学号排序ALTER PROC pr_studentCodes AS SELECT * FROM student ORDER BY Studentid EXEC pr_studentCodes

--

3、删除存储过程Pr_studentCodes drop procedure pr_studentCodes

--

4、创建向Class表中插入一条记录(‘’,‘电子UI班’,null,)的存储过程pr_InsertClass create procedure pr_InsertClass as insert into Class values('10901','电子UI班',null,1)go exec pr_InsertClass--5 创建存储过程up_Add,要求该存储过程能够实现对输入的两个数相加,并将结果输出create proc up_Add @num1 int,@num2 int,@sum int output as

begin select @sum=@num1+@num2 end

--6 执行存储过程up_Add,计算加上的和。declare @he int exec up_Add @num1=78,@num2=82,@sum=@he output print '结果是:'+convert(char,@he)

--

三、阅读代码写结果--1 create proc pr_grade(@sno char(9), @cname char(8), @grade int output)as select @grade=score from score,course where score.courseid=course.courseid and studentid=@sno and coursename=@cname--2 declare @score int exec pr_grade '10701001','高等数学',@score output select @score

--3 create proc pr_count(@classid varchar(8), @num int output)as select @num=count(*)from student where Classid=@classid--4 declare @peop int exec pr_count @classid='10701',@num=@peop output select @peop drop procedure pr_count

第五篇:数据库设计课后答案

第六章

数据库设计

习题解答和解析

1.1.试述数据库设计过程。

答:这里只概要列出数据库设计过程的六个阶段:

(1)需求分析;(2)概念结构设计;(3)逻辑结构设计;(4)数据库物理设计;(5)数据库实施;(6)数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

解析:希望读者能够认真阅读《概论》6.1的内容,了解并掌握数据库设计过程。2.2.试述数据库设计过程各个阶段上的设计描述。答:各阶段的设计要点如下:

(1)需求分析:准确了解与分析用户需求(包括数据与处理)。

(2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。

(3)逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。

(5)数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

(6)数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。解析:

这是进一步了解数据库设计的具体内容。设计描述是指在各个阶段体现设计内容,描述设计结果的各种文档、程序。读者可以参考《概论》上图6.3。

3.3.试述数据库设计过程中结构设计部分形成的数据库模式。答:数据库结构设计的不同阶段形成数据库的各级模式,即:

(1)在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的

概念模式,在本篇中就是E-R图;

(2)在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图(View),形成数据的外模式;

(3)在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。

读者可以参考《概论》上图6.4。图中概念模式是面向用户和设计人员的,属于概念模型的层次;逻辑模式、外模式、内模式是DBMS支持的模式,属于数据模型的层次,可以在DBMS中加以描述和存储。

4.4.试述数据库设计的特点。

答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。其主要特点有:

(1)数据库建设是硬件、软件和干件(技术与管理的界面)的结合。

(2)从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。详细的可以参考《概论》上6.1.2。

5.5.需求分析阶段的设计目标是什么?调查的内容是什么? 答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了

解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:

(1)信息要求,指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;

(2)处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;

(3)安全性与完整性要求。

详细的可以参考《概论》上6.2。

6.6.数据字典的内容和作用是什么? 答:数据字典是系统中各类数

据描述的集合。数据字典的内容通常包括:(1)数据项;(2)数据结构;

(3)数据流;(4)数据存储;(5)处理过程五个部分。

其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。

数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。(详细参考《概论》上6.2.3。注意,数据库设计阶段形成的数据字典与第十一章DBMS中的数据字典不同,后者是DBMS关于数据库中数据的描述,当然两者是有联系的)。

7.7.什么是数据库的概念结构?试述其特点和设计策略。答:概念结构是信息世界的结构,即概念模型,其主要特点是:

(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;

(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键;

(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;(4)易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种:

l)自顶向下,即首先定义全局概念结构的框架,然后逐步细化;

2)自底向上,即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;

3)逐步扩张,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;

4)混合策略,即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。详细参考《概论》上6.3。

8.8.什么叫数据抽象?试举例说明。

答:数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节, 并把这些特性用各种概念精确地加

以描述,这些概念组成了某种模型。如“分类”这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的“is member of” 的语义。在E-R模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,表示李英是教师类型中的一员,则教师是实体型,李英是教师实体型中的一个实体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从事某个方向的科研。

9.9.试述数据库概念结构设计的重要性和设计步骤。

答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽

象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一DBMS实现这些需求。

设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构(如《概论》图6.9 所示)。

10.什么是E-R图?构成E-R图的基本要素是什么? 答:E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

构成E-R图的基本要素是实体型、属性和联系,其表示方法为:(1)实体型,用矩形表示,矩形框内写明实体名;

(2)属性,用椭圆形表示,并用无向边将其与相应的实体连接起来;

(3)联系,用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。

解析:E-R图的概念是在第一章中讲解的,读者可以复习《概论》1.2.2 概念模型的内容。

11.为什么要视图集成?视图集成的方法是什么? 答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机地融合起来,综合成一个系统的总视图。这样,

设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用户、多个应用共享使用。

一般说来,视图集成可以有两种方式:

(1)多个分E-R图一次集成,如《概论》图6.25(a)所示;(2)逐步集成,用累加的方式一次集成两个分E-R图,如《概论》图6.25(b)所示。无论采用哪种方式,每次集成局部E-R图时都需要分两步走:

λλ合并,解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图;λλ修改和重构,消除不必要的冗余,生成基本E-R图。12.什么是数据库的逻辑结构设计?试述其设计步骤。

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所

支持的数据模型相符合的逻辑结构。设计步骤为(《概论》图6.31):

(1)将概念结构转换为一般的关系、网状、层次模型;

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。

13.试述把E-R图转换为DBTG模型和关系模型的转换规则。答:E-R图向DBTG模型的转换规则:

(1)每个实体型转换为记录型,实体的属性转换为记录的数据项;(2)实体型之间1:n(n≥1)的联系转换为一个系,没有任何联系的实体型转换为奇异系;

(3)K(K≥2)个实体型之间多对多的联系,引入一个连结记录,形成K个实体型和连结记录之间的K个系。连结记录的属性由诸首记录的码及联系属性所组成;

(4)同一实体型内的1:n,n:m联系,引入连结记录,转换为两个系。

解析:根据我国实际情况,网状,层次数据库系统已很少使用,因此《概论》第三版把它们删去了,有关的主要概念放在第一章数据模型中介绍。对于DBTG模型的许多概念也介绍得很简单。本题的内容已经超出了书上的内容,读者只要了解就可以了。但是,下面E-R图向关系

数据库原理 第三章关系数据库标准语言——SQL期末习题与答案

1、数据库的事务日志文件()。 A.只能有一个 B.可以有多个 C.可以没有 D.以上都不对 正确答案:B 2、CREATE命令属于()语句。 A.数据查询 B.数据操纵 C.数据定义 D.数据控制 正确答案:C 3、使用ALTER命令修改数据时,以下说法错误的是()。 A.可以增加主要数据文件 B.可以删除次要数据文件 C.可以修改文件的增容方式 D.可以增加事务日志文件 正确答案:A 4、使用存储存储过程Sp_helpfile可以()。 A.查看数据库的结构 B.查看数据库的文件信息 C.查看数据库的文件组信息 D.以上都可以

5、在DBMS中分离数据库之后,()。 A.数据库文件将会从磁盘上删除 B.数据库文件将会脱离DBMS C.事务日志文件将会从磁盘上删除 D.以上都不对 正确答案:B 6、假设学号字段“SNo”的数据类型为nvarchar(6),当“SNo”的值为“S001”时,“SNo”在内存中占()字节。 A.4 B.6 C.8 D.12 正确答案:C 7、创建数据表时,如果给某个字段定义PRIMARY KEY约束时,该字段的数据()。 A.不允许有空值 B.允许有多个空值 C.允许有一个空值 D.以上都不对 正确答案:A 8、为数据表增加新的字段时,()。 A.可以为新字段设置NOT NULL约束 B.不能为新字段设置NOT NULL约束 C.不能为新字段设置约束 D.以上都不对

9、在SQL的SELECT语句中,能实现选取操作的是()。 A.SELECT B.FROM C.WHERE D.GROUP BY 正确答案:C 10、假定学生关系是S(SNo,SName,Sex,Age),课程关系是C(CNo,CName,Teacher),学生选课关系是SC(SNo,CNo,Grade)。要查找选修“数据库”课程 的“男”学生姓名,将涉及的关系是()。 A.S B.SC,C C.S,SC D.S,C,SC 正确答案:D 11、下列SQL语句中,()不是数据操纵语句。 A.INSERT B.CREATE C.DELETE D.UPDATE 正确答案:B 12、SQL中,下列涉及空值的操作,不正确的是()。 A.AGE IS NULL B.AGE IS NOT NULL C.AGE = NULL D.NOT (AGE IS NULL) 正确答案:C

SQL数据库习题及答案

SQL数据库习题及答案 1.模型中,同一个关系中的不同属性,其属性名不能相同。 2.数据库系统由数据库、DBMS、DBA、支持数据库系统的硬件环境和操作系统环境及说明书组成 3.计算机数据管理技术的发展可以划分为三个阶段,在某个阶段数据是以文件形式长期存储在辅助存储器中,程序和数据之间具有相对的独立性,数据不再属于某个特定的应用程序,数据可以重复使用,该阶段是文件管理阶段 4.在数据库的三级体系结构中,数据库的模式对应于数据库的概念视图 5.在数据库的三级体系结构中,数据的逻辑独立性是通过外模式-模式映射来实现的。6.三层C/S结构包括客户机、应用服务器和数据库服务器三部分。 7.DDL是指数据描述语言,DML是指数据操纵-查询语言,DBMS是指数据库管理系统,DD是指数据字典。 8.数据库的三层模式结构分别是外模式、概念模式和存储模式。 9.数据的独立性包括物理独立性和逻辑独立性两个方面。 10.实体集之间的联系有三种,分别是一对一的联系,一对多的联系,多对多的联系11.试说明数据管理的数据库阶段的主要特点。答:数据库管理的数据库阶段主要特点是:1、数据共享性;2、具有较高的数据与程序的独立性;3、便于对数据实行集中统一的控制。12.试说明DBMS的组成。答:DBMS是由一系列软件构成的复杂系统,一般来说DBMS 由下列三类软件组成:语言系统;控制数据库运行的程序;数据库维护程序; 13.数据模型的三要素是什么?答:数据模型的三要素是数据结构、数据操作、数据的约束条件。 14.关系模型有什么特点?答:关系模型有什么特点:1、关系模型与非关系模型不同,它是建立在严格的数学概念基础上的;2、关系模型的概念单一,无论实体或实体之间的联系都用关系表示3、存取路径对用户透明。4、关系必须是规范化的关系。 第二章关系数据库基本理论 1.下列不属于关系代数运算的是 A 。A.查询B.投影C.选择D.联结2.在关系数据模型中,利用关系运算对两个关系进行操作,得到的结果是B。A.属性B.关系C.元组 3.下列的C运算不是关系运算中的传统的集合运算。A.并B.差C.投影D.交

sql数据库习题与答案

sql数据库习题与答案 SQL数据库习题与答案 SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。在数据库管理系统中,SQL可以用于执行各种操作,如插入、更新、删除和查询数据。对于学习SQL的人来说,练习SQL数据库习题是非常重要的。下面将为大家提供一些常见的SQL数据库习题以及相应的答案。 1. 查询所有学生的信息 答案:SELECT * FROM students; 2. 查询所有学生的姓名和年龄 答案:SELECT name, age FROM students; 3. 查询所有学生的姓名,并按照年龄从小到大进行排序 答案:SELECT name FROM students ORDER BY age; 4. 查询学生表中年龄大于18岁的学生信息 答案:SELECT * FROM students WHERE age > 18; 5. 查询学生表中姓“张”的学生信息 答案:SELECT * FROM students WHERE name LIKE '张%'; 6. 查询学生表中的姓名和对应的课程名称 答案:SELECT https://www.wendangku.net/doc/ea19020670.html,, https://www.wendangku.net/doc/ea19020670.html, FROM students INNER JOIN course ON students.course_id = course.id; 7. 查询学生表中每个班级的学生人数 答案:SELECT class, COUNT(*) FROM students GROUP BY class; 通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握SQL

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析 第一篇:数据库sql课后练习题及答案解析 先创建下面三个表: (book表) (borrow表) (reader表) 1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。 2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。 4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。 5)查找书名以”计算机”开头的所有图书和作者(WRITER)。 6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。 ##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。 9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。 ##10)* 找出借阅了一书的借书证号。 11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。#13)求”科学出版社”图书的最高单价、最低单价、平均单价。##14)* 求”信息系”当前借阅图书的读者人次数。 #15)求出各个出版社图书的最高价格、最低价格和总册数。#16)分别找出各单位当前借阅图书的读者人数及所在单位。 17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。18)分别找出借书人次数多于1人次的单位及人次数。

SQL语言习题参考答案

第3章 SQL语言习题参考答案 1.试述SQL语言的特点。(85页) 答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。2.试述SQL的定义功能。(87页) 答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4)) 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成: CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2)) 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、

所在城市(CITY)组成: CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)). 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成: CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2)) 4.针对上题中建立的四个表试用SQL语言完成第二章习 题5中的查询: (1)求供应工程J1零件的供应商号码SNO: SELECT DIST SNO FROM SPJ WHERE JNO='J1' (2)求供应工程J1零件P1的供应商号码SNO: SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO: SELECT SNO FROM SPJ,P WHERE JNO='J1' AND = AND COLOR='红' (4)求没有使用天津供应商生产的红色零件的工程号JNO: SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE ='天津' AND COLOR='红' AND = AND =。(5)求至少用了供应商S1所供应的全部零件的工程号JNO。

(完整版)sql练习题+答案

(一)新建以下几个表student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是'男'或'女' (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文 系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100 之间 create table student (

age smallint constraint d check ( age between 0

cs(成绩表): 其中约束如下: 1)sno 和cno 分别参照student 和course 表中的sno,cno 的字段2)cj(成绩)只能在0~100之间,可以不输入值 create table cs ( sno smallint not null references student ( sno ), - 定义成外键 cno smallint not null references course ( cno ), - 定义成外键 cj smallint constraint e check ( cj between 0 and 100 ), 检查约束——cj( 成绩) 只能在~100 之间,可以不输入值 constraint f primary key ( sno , cno ) ----- 定 义学生学号和课程号为sc 表的主键 ) course 课程表)

其约束如下: 1)课程号( cno)不能有重复的 2)课程名( cname)非空 三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。select * from student (4)查全体学生的姓名及其出生年份。 select sname , birth from student (5)查询学校中有哪些系。 select distinct dept from student

sql习题参考答案

sql习题参考答案 SQL习题参考答案 SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。在学习SQL时,练习习题是非常重要的,它们可以帮助我们巩固所学的知识,并提供实践的机会。本文将为大家提供一些SQL习题的参考答案,以便读者们在学习过程中参考和对照。 1. 查询所有学生的姓名和年龄 ```sql SELECT name, age FROM students; ``` 2. 查询所有学生的姓名和年龄,并按年龄降序排列 ```sql SELECT name, age FROM students ORDER BY age DESC; ``` 3. 查询所有学生的姓名和年龄,并按年龄升序排列,年龄相同时按姓名升序排列 ```sql SELECT name, age FROM students

ORDER BY age ASC, name ASC; ``` 4. 查询所有学生的姓名和成绩,并显示成绩大于80分的学生 ```sql SELECT name, score FROM students WHERE score > 80; ``` 5. 查询所有学生的姓名和成绩,并显示成绩在70到90之间的学生 ```sql SELECT name, score FROM students WHERE score BETWEEN 70 AND 90; ``` 6. 查询所有学生的姓名和成绩,并显示成绩不在70到90之间的学生 ```sql SELECT name, score FROM students WHERE score NOT BETWEEN 70 AND 90; ``` 7. 查询所有学生的姓名和成绩,并按成绩分组,显示每个分数段的学生数量 ```sql

数据库中SQL查询语句习题含答案

查询问题:设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) (1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。(1)检索计算机系的全体学生的学号,姓名和性别;SELECT Sno,Sname,Sex FROM S WHERE Sdept =’CS’; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C → SC → S 基本思路: (1)首先在C表中找出“DS”课程的课程号Cno;(2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno; (3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。SELECT Sno,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS’)); (4)检索选修课程号为C2或C4的学生学号;SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号;SELECT Sno FROM SC X,SC Y WHERE X.Sno=Y.Sno AND https://www.wendangku.net/doc/ea19020670.html,o=‘C2’ AND https://www.wendangku.net/doc/ea19020670.html,o=‘C4’; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; 在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.wendangku.net/doc/ea19020670.html,o=https://www.wendangku.net/doc/ea19020670.html,o)); (8)查询所学课程包含学生S3所学课程的学生学号。分析:不存在这样的课程Y,学生S3选了Y,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.wendangku.net/doc/ea19020670.html,o=https://www.wendangku.net/doc/ea19020670.html,o));

SQL数据库练习及答案

(一)现有图书借阅关系数据库如下: 图书(图书号、书名,作者,单价,库存量) 读者(读者号,姓名,工作单位,地址) 借阅(图书号,读者号,借期,还期,备注) 其中:还期为NULL表示该书未还。 用关系代数表达式实现下列1-4小题: 1、检索读者号为R016的读者姓名、工作单位; Π姓名,工作单位(σ读者号=‘R016’(读者)) 2、检索借阅图书号为B5的读者姓名; Π姓名(σ图书号=‘B5’(读者∞借阅)) 3、检索读者“李林”所借图书的书名; Π书名(σ姓名=‘李林’(图书∞借阅∞读者)) 4、检索读者“李林”所借图书中未还的书名; Π书名(σ姓名=‘李林’∧还期=‘NULL’(图书∞借阅∞读者)) 用SQL语言实现下列5-10小题: 5、检索读者号为R016的读者姓名、工作单位; SELECT 姓名,工作单位 FROM 读者 WHERE 读者号=‘R016’ 6、检索借阅图书号为B5的读者姓名; SELECT DISTINCT 姓名 FROM 读者,借阅 WHERE 读者.读者号=借阅.读者号 AND 图书号=‘B5’ 7、检索读者“李林”所借图书的书名; SELECT DISTINCT 书名 FROM 图书,借阅,读者 WHERE 图书.图书号=借阅.图书号 AND 借阅.读者号=读者.读者号 AND 姓名=‘李林’ 8、检索读者“李林”所借图书中未还的书名; SELECT DISTINCT 书名 FROM 图书,借阅,读者 WHERE 图书.图书号=借阅.图书 AND 借阅.读者号=读者.读者号 AND 姓名=‘李林’ AND 还期 IS NULL

9、将读者“李林”所借图书的信息从借阅表中删除; DELETE FROM 借阅 WHERE 读者号 IN (SELECT 读者号 FROM 读者 WHERE 姓名=‘李林’) 10、建立未还图书的读者姓名和单位视图。 CREATE VIEW 未还(姓名,工作单位) AS SELECT 姓名,工作单位 FROM 读者,借阅,图书 WHERE 图书.图书号=借阅.图书号 AND 借阅.读者号=读者.读者号 AND 还期 IS NULL (二)设有一个顾客商品关系数据库,有三个基本表,表结构如下: 商品表:Article (商品号,商品名,单价,库存量) 客户表:Customer (顾客号,顾客名,性别,年龄,电话) 订单表:OrderItem (顾客号,商品号,数量,购买价,日期) 注意:回答时要将答案写到规定的地方;给出的答案要求字迹必须清楚;不允许改变程序结构和随意添加子查询。 1.请用SQL语言创建一个视图GM_VIEW,检索顾客的顾客号、顾客名和订购商品的商品名、金额和日期。(金额等于数量*购买价)(4分) CREAT VIEW GM_VIEW(顾客号,顾客名,商品名,金额,日期) AS SELECT _ Customer.顾客号,Customer.顾客名,Article.商品名,OrderItem.购买价* OrderItem.数量,OrderItem.日期 FROM Artcle, Customer, OrderItem WHERE Artcle.商品号= OrderItem.商品号AND OrderItem.顾客号= Customer.顾客号; 2.请用SQL语言找出女顾客购买的商品号、商品名和数量合计。(6分)SELECT OrderItem.商品号AS商品号, OrderItem.商品名AS商品名,SUM(OrderItem.数量) AS数量合计 FROM OrderItem, Artcle, Customer, WHERE Artcle.商品号= OrderItem.商品号AND OrderItem.顾客号= Customer.顾客号AND Customer. 性别='女' GROUP BY OrderItem.商品号,商品名; 3.请用SQL语言ALTER TABEL命令给商品表Article增加一个字段,字段名为:产地,数据类型为:CHAR,长度为:30,命令如下:(4分) ALTER TABLE Article ADD产地char(30) (三)设有四个关系 S(SNO,SNAME, ADDRESS,TEL) SNO:供应商代码 SNAME:姓名 ADDRESS:地址 TEL:电话 J(JNO,JNAME,LEADER,BG) JNO:工程代码 JNAME:工程名 LEADER:负责人 BG:预算 P(PNO,PNAME,SPEC,CITY,COLOR) PNO:零件代码 PNAME:零件名 SPEC:规格 CITY:产地 COLOR:颜色

(完整版)sql练习题+答案

(一)新建以下几个表 student(学生表): 其中约束如下: (1)学号不能存在相同的 (2)名字为非空 (3)性别的值只能是’男’或’女’ (4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 (5)出生日期为日期格式 (6)年龄为数值型,且在0~100之间

cs(成绩表): 其中约束如下: (1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0~100之间,可以不输入值 course(课程表)

其约束如下: (1)课程号(cno)不能有重复的 (2)课程名(cname)非空 (三)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。 (3)查询全体学生的详细记录。 (4)查全体学生的姓名及其出生年份。 (5)查询学校中有哪些系。

(6)查询选修了课程的学生学号。 (7)查询所有年龄在20岁以下的学生姓名及其年龄。 (8)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 (9)查询年龄不在20~23岁之间的学生姓名、系别和年龄。 (10)查询信息系、数学系和计算机科学系生的姓名和性别。 (11)查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。

(12)查询所有姓刘学生的姓名、学号和性别。 (13)查询学号为2009011的学生的详细情况。(具体的学号值根据表中数据确定) (14)查询姓“欧阳”且全名为三个汉字的学生姓名 (15)查询名字中第2个字为“晨”字的学生的姓名和学号 (16)查询所有不姓刘的学生姓名。 (17)查询sql课程的课程号和学分。 (18)查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。

数据库 sql 习题及答案

/* Question 1:Find the titles of all movies directed by Steven Spielberg. select title from movie where director='Steven Spielberg' Question 2:Find all years that have a movie that received a rating of 4 or 5, and sort them in increasing order. select distinct year from movie,rating where movie.mid=rating.mid and stars in (4,5) order by year Question 3:Find the titles of all movies that have no ratings select title from movie where mID in ( select mid from Movie except select mid from rating ) select title from movie except select title from movie,rating where movie.mid=rating.mid Question 4:Some reviewers didn't provide a date with their rating. Find the names of all reviewers who have ratings with a NULL value for the date. select name from reviewer,rating where reviewer.rid=rating.rid and ratingdate is null Question 5:Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, and ratingDate. Also, sort the data, first by reviewer name, then by movie title, and lastly by number of stars. select name,title,stars,ratingdate from movie,rating,reviewer

SQL课后作业10题参考答案

1、假设每个职工可以在多个公司工作,检索每个职工的兼职公司数目和工资总 数,显示E#,MUM,SUM_SALARY分别表示工号、公司数目和工资总数。 分析:涉及到表为works表;按照职工来统计公司的数目和工资总额 select E#,count(c#) NUM,sum(salary) SUM_SALARY from works group by E# 2、检索”联华公司”中低于本公司平均公司的职工工号和姓名.(10题2小题) (1)查找联华公司职工的平均工资。 方法一:连接查询实现 select avg(salary) from works,comp where works.c#=comp.c# and cname='联华公司' 方法二:嵌套查询实现 Select avg(salary) from works Where c#=(select c# from comp Where cname='联华公司') ------------------------------------5799.5 (2)查找联华公司工资低于(1)的职工工号和姓名。 方法一:连接查询实现外层查询 select emp.e#,ename from emp,works,comp where emp.e#=works.e# and works.c#=comp.c# and cname='联华公司' and salary<(Select avg(salary) from works Where c#=(select c# from comp Where cname='联华公司')) 方法二:嵌套查询实现外层查询(自己思考) 3、检索工资高于其所在公司职工平均工资的所有职工的工号和姓名。 (1)先查找各公司的平均工资 select c#,avg(salary) avg_sal from works group by c# (2) 检索所有职工的工号、姓名、公司,工资 select emp.e#,ename,works.c#,salary, from emp,works where emp.e#=works.e# (3)检索所有职工的工号、姓名、公司,工资,所在公司和平均工资 select emp.e#,ename,works.c#,salary,a.c#,a.avg_sal from emp,works,(select c#,avg(salary) avg_sal from works group by c#) a where emp.e#=works.e#

SQL数据库习题及答案.doc

SQL数据库习题及答案 1.模型中,同一个关系中的不同属性,其属性名不能相同。 2.数据库系统由数据库、DBMS、DBA、支持数据库系统的硬件环境和操作系统环境及说明书组成 3.计算机数据管理技术的发展可以划分为三个阶段,在某个阶段数据是以文件形式长期存储在辅助存储器中,程序和数据之间具有相对的独立性,数据不再属于某个特定的应用程序,数据可以重复使用,该阶段是文件管理阶段 4.在数据库的三级体系结构中,数据库的模式对应于数据库的概念视图 5.在数据库的三级体系结构中,数据的逻辑独立性是通过外模式一模式映射来实现的。 6.三层C/S结构包括客户机、应用服务器和数据库服务器三部分。 7.DDL是指数据描述语言,DML是指数据操纵-查询语言,DBMS是指数据库管理系统, DD 是指数据字典。 8.数据库的三层模式结构分别是外模式、概念模式和存储模式。 9.数据的独立性包括物理独立性和逻辑独立性两个方面。 10.实体集之间的联系有三种,分别是一对一的联系,一对多的联系,多对多的联系 11.试说明数据管理的数据库阶段的主要特点。答:数据库管理的数据库阶段主要特点是:1、数据共享性;2、具有较高的数据与程序的独立性;3、便于对数据实行集中统一的控制。 12.试说明DBMS的组成。答:DBMS是由一系列软件构成的复杂系统,一般来说DBMS 由下列三类软件组成:语言系统;控制数据库运行的程序;数据库维护程序; 13.数据模型的三要素是什么?答:数据模型的三要素是数据结构、数据操作、数据的约束条件。 14.关系模型有什么特点?答:关系模型有什么特点:1、关系模型与非关系模型不同,它是建立在严格的数学概念基础上的;2、关系模型的概念单一,无论实体或实体之间的联系都用关系表示3、存取路径对用户透明。4、关系必须是规范化的关系。 第二章关系数据库基本理论 1.下列不属于关系代数运算的是A 。 A.查询B.投影C.选择D.联结 2.在关系数据模型中,利用关系运算对两个关系进行操作,得到的结果是 B 。 A.属性 B.关系 C.元组

数据库教程(SQL Server)课后习题及答案

习题1 3、简述数据库系统的组成。 答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator ,DBA )和用户组成。 4、试述数据库系统的三级模式结构。这种结构的优点是什么? 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。 数据库应用1…… 外模式A 外模式B 模式 应用2应用3应用4应用5…… 模式 外模式/模式映像 模式/内模式映像 数据库系统的这种结构具有以下优点: (1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。 (2)有利于数据共享,减少了数据冗余。 (3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。 (4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。 5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。 答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。 (2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。 (3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。 8、什么是数据模型? 答:数据模型(Data Model )是一种抽象模型,是对现实世界数据特征的抽象。 9、什么是概念模型?E-R 模型的三要素是什么? 答:概念模型是面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息进行建模。概念模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。 E-R 模型的三要素为: (1)实体(entity ) 实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。例如:一件商品、一个客户、一份订单等都是实体。

sql数据库试题及答案详解

sql数据库试题及答案详解 第一章 SQL SERVER系统概述 选择题 1、SQL Server 2000是一个基于______的关系数据库管理系统。 A) B/S模式 B) C/S模式 C) SQL模式 D)以上都不是 (B) 2、SQL Server 2000 企业版可以安装在_________操作系统上。 A) Microsoft Windows 98 B) Microsoft Windows Me 和 XP C) Microsoft Windows 2000 Professional D) Microsoft Windows NT (D) 3、SQL Server 2000 属于_________数据库系统。 A 、层次型 B 、网状型 C 、关系型 D 、面向对象型 (C) 4、Microsoft公司的SQL Server2000数据库管理系统一般只能运行于_________。 A. Windows平台 B. UNIX平台 C. LINX平台 D. NetWare平台 (A) 5、如果在SQL Server2000上运行一个非常大的数据库,为取得较好效果应选用安装_________。

A. 企业版 B. 标准版 C. 个人版 D. 开发版 (A) 填空题 1、在SQL Server2000中主要是通过使用______________运行Transact-SQL语句。(查询分析器) 2、SQL Server2000包括、、和四个版本。(企业版;标准版;开发版;个人版;) 3、SQL Server 2000是一种大型的型数据库管理系统。(关系) 4、SQL Server2000数据库应用的处理过程分布在 ____ 和服务器上。(客户机) 5、SQL Server2000服务器可以被多台客户机访问,数据库服务器仅返回客户端应用程序所需要的数据,这样做的好处是可以减少____ 。(网络流量) 6、SQL Server2000服务管理器程序的主要作用是启动、 __ 、 __ 服务器。(停止、暂停) 7、SQL Server2000提供的最常用的管理工具是______________和______________。(企业管理器查询分析器) 简答题: 1、简述客户机/服务器模式。 解答:

SQLServer课后习题参考答案(详解)

SQLServer课后习题参考答案(详解) 第一章: 1、订单管理系统的功能有哪些? 答:订单管理系统的功能主要有客户查询商品信息、客户预订商品并提交订单、销售人员处理客户的订单信息、销售人员管理商品信息、客户信息等。 2、说明ER模型的作用? 答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。 3、什么是关系模型?关系的完整性包括哪些内容? 答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。 4、按照功能,SQL语言分为哪4部分? 答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。 5、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系? 答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。 第二章: 1、SQL Server 2005有哪些新增特性? 答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common

Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。 2、SQL Server 2005安装的软件和硬件环境是什么? 答:SQL Server 2005安装的软件和硬件环境参见教材表2-3、2-4、2-5、2-6。 3、SQL Server 2005有哪些版本?有哪些服务组件? 答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。 4、什么是实例?经常提到的SQL Server 2005服务器和服务器实例是否具有相同的含义? 答:实例就是SQL服务器引擎,每个SQL Server数据库引擎实例各有一套不为其他实例共享的系统及用户数据库。一个SQL Server 服务器就是一个实例,一台计算机上,可以安装多个SQL SERVER,每个SQL SERVER就可以理解为是一个实例。 5、默认实例和命名实例有何差别?在安装和使用上有何不同? 答:实例又分为“默认实例”和“命名实例”,如果在一台计算机上安装第一个SQL SERVER 2005命名设置保持默认的话,那这个实例就是默认实例。一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。 6、SQL Server 2005的安全性验证分为哪两个阶段? 答:第1个阶段是身份验证,验证用户是否具有“连接权”;第2个阶段是数据库的访问权,验证连接到服务器实例的用户,即已登录到服务器实例的用户,是否具有“访问权”。 7、SQL Server 2005有哪些主要的实用工具?每个工具都有什么用途? 答:SQL Server Management Studio,是Microsoft SQL

数据库中SQL查询语句习题含的答案

数据库中SQL查询语句习题含的答案

查询问题:设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC (SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) (1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别;SELECT Sno,Sname,Sex FROM S WHERE Sdept =’CS’;(2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C →SC → S 基本思路: (1)首先在C表中找出“DS”课程的课程号Cno; (2)然后在SC表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno; (3)最后在S关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。 2.SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND https://www.wendangku.net/doc/ea19020670.html,o=‘C2’; 1.SELECT Sno,Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’)

数据库sql课后练习题及答案解析

先创建下面三个表: (book表) (borrow表) (reader表) 1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。 2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。 3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。 4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OU TPUT)和单价(PRICE)升序排序。 5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。 6) 检索同时借阅了总编号(BOOK_ID)为和两本书的借书证号(READER_ID)。

##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。 8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。 9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。 ##10)* 找出借阅了一书的借书证号。 11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。 12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。 #13) 求”科学出版社”图书的最高单价、最低单价、平均单价。 ##14)* 求”信息系”当前借阅图书的读者人次数。 #15) 求出各个出版社图书的最高价格、最低价格和总册数。 #16) 分别找出各单位当前借阅图书的读者人数及所在单位。 17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。 18) 分别找出借书人次数多于1人次的单位及人次数。 19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。 20) 查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。 附录:建表语句 创建图书管理库的图书、读者和借阅三个基本表的表结构: 创建BOOK:(图书表) CREATE TABLE BOOK ( BOOK_ID int, SORT VARCHAR(10), BOOK_NAME VARCHAR(50), WRITER VARCHAR(10), OUTPUT VARCHAR(50), PRICE int); 创建READER:(读者表) CREATE TABLE READER ( READER_ID int, COMPANY VARCHAR(10), NAME VARCHAR(10), SEX VARCHAR(2), GRADE VARCHAR(10), ADDR VARCHAR(50)); 创建BORROW:(借阅表) CREATE TABLE BORROW ( READER_ID int, BOOK_ID int, BORROW_DATE datetime) 插入数据: BOOK表:

相关文档