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

合集下载

SQL课后题答案整理

SQL课后题答案整理

第一章关系型数据库—基本概念和操作课后习题:========【注意:每一章后面的课后习题,是作业,也是期末考试主要的题源,期末试卷中约50分的试题就从这些题目中选取】1.各用一句话说明以下概念关系数据库,实例,属性,域,记录(元组),候选键,主键,外键1)一个关系数据库是由若干二维表和表之间的关联组成,这个库也叫一个“实例(instance)”。

2)表的第一行是“表头”,它并不是数据,而是说明每一列的数据应该“是什么”,以及取值范围和其它约束条件,“表头”的每个字段叫属性(attribute),属性的取值范围及其他约束条件叫域(field)。

属性是描述数据的数据,叫元数据。

3)每个表的各个属性不能重名,不同表的属性可以重名。

一个表也可以叫一个关系,表中的数据,有的是本表实体的数据,有的是与其它表的联系,比如“表8:选课表”,“课程号”和“学号”列是联系。

4)每张表从第二行往后是数据部分、每一行叫一条记录,或一个元组。

记录中的每一列可以叫一个字段。

6.每张表至少应该有一个,也可以有多个属性,可以唯一的确定一条记录,这种属性叫候选键(candidate key),比如,表5:“学生表”的“学号”肯定是候选键,而“姓名”如果加上不允许重复的约束条件,也是候选键,否则不是。

5)当一个表中有多个候选键,可以从中任选一个作为主键(prime key) ,当一个表只有一个候选键,它自然就是主键。

主键可以是数值,可以是字符串或其它类型,但无论如何主键的值不能为空,不同记录的主键值也不能重复。

6)外键(foreign key):在本表中是主键,而在其它表中可能不是主键,叫外键。

比如,“表8:选课表”的“课程号”和“学号”在该表中都不是主键,是可以重复的。

而在“表7:课程表”和“表5:学生表”中,却是各自的主键。

外键说明了一个表和另一个表的关联,是关系数据库中重要的键。

第二章关系型数据库—SQL语言本章习题(1)本章“8 小结”表中提到的重点关键词、谓词、句型、概念。

大三sql课后习题答案

大三sql课后习题答案

大三sql课后习题答案第二章3.上机练习题02 程序代码如下:STUDENT1 DATABASE CREATE ON PRIMARY (NAME= STUDENT1_data, FILENAME='E:\DATA\', SIZE=3,MAXSIZE=unlimited, FILEGROWTH=15%)LOG ON(NAME= STUDENT1_log, FILENAME='E:\DATA\', SIZE=2,MAXSIZE=30, FILEGROWTH=2)03 程序代码如下:create database studentson primary(name=students1,filename='E:\DATA\',size=5,maxsize=75,filegrowth=10%),(name= students12,filename='E:\DATA\',size=10,maxsize=75,filegrowth=1)log on(name=studentslog1, filename='E:\DATA\',size=5,maxsize=30,filegrowth=1),(name=studentslog2, filename='E:\DATA\',,5=sizemaxsize=30,filegrowth=1)第三章:3 上机练习题01 程序代码如下:--创建表book的Transact-SQL语句:USE test01GOCREATE TABLE book(book_id nchar(6)NOT NULL,book_name nchar(30 )NULL,price numeric(10, 2)NULL,CONSTRAINT PK_book PRIMARY KEY CLUSTERED(book_id ASC))ON PRIMARY--创建表uthor的Transact-SQL语句:CREATE TABLE(anthor_name nchar(4)NOT NULL,book_id nchar(6)NOT NULL,address nchar(30)NOT NULL)ON [PRIMARY]--设置book中的book_id为主键,author表中的book_id为外键ALTER TABLE WITH CHECKADD CONSTRAINT FK_ book_author FOREIGN KEY(book_id) REFERENCES(book_id)02 程序代码如下:--利用Transact-SQL语句创建表booksales的代码。

学生选课数据库SQL语句练习题详细分解答案

学生选课数据库SQL语句练习题详细分解答案

一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。

用SQL语句创建四个表并完成相关题目。

表1-1数据库的表结构表(一)Student属性名数据类型可否为空含义Sno Char(3) 否学号(主键)Sname Char(8) 否学生XX Ssex Char(2) 否学生性别Sbirthday datetime 可学生出生年月Class Char(5) 可学生所在班级表(二)Course属性名数据类型可否为空含义o Char(5) 否课程号(主键)ame Varchar(10) 否课程名称Tno Char(3) 否教师编号(外键)表(三)Score属性名数据类型可否为空含义Sno Char(3) 否学号(外键)o Char(5) 否课程号(外键)Degree Decimal(4,1) 可成绩主码:Sno+ o表(四)Teacher含义属性名数据类型可否为空Tno Char(3) 否教师编号(主键)Tname Char(4) 否教师XX Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年月Prof Char(6) 可职称Depart Varchar(10) 否教师所在部门表1-2数据库中的数据表(一)StudentSno Sname Ssex Sbirthday class95033108 曾华男1977-09-0195031105 匡明男1975-10-02107 王丽女1976-01-950332395033101 李军男1976-02-20109 王芳女1975-02-9503110103 陆君男1974-06-9503103表(二)Courseo ame Tno3-105 计算机导论8253-245 操作系统8046-166 数字电路8569-888 高等数学831表(三)ScoreSno o Degree103 3-245 86105 3-245 75109 3-245 68103 3-105 92105 3-105 88109 3-105 76101 3-105 64107 3-105 91108 3-105 78101 6-166 85107 6-166 79108 6-166 81表(四)TeacherTno Tname Tsex Tbirthday Prof Depart804 李诚男1958-12-02 副教授计算机系856 X旭男1969-03-12 讲师电子工程系825 王萍女1972-05-05助教计算机系831 X冰女1977-08-14 助教电子工程系-- 1、查询Student表中的所有记录的Sname、Ssex和Class列。

数据库原理及应用SQL习题集含答案教案

数据库原理及应用SQL习题集含答案教案
数据库原理及应用 SQL习题集含答案教 案
contents
目录
• 数据库基础知识 • SQL语言基础 • 数据库查询优化与索引设计 • 存储过程、触发器和函数应用 • 数据库安全性与完整性保障措施 • 数据库恢复、并发控制及事务管理 • SQL习题集精选与答案解析
01
数据库基础知识
数据库概念及特点
位图索引
适用于低基数列(即列中不同 值的数量较少)的场景,如性 别、婚姻状况等。
全文索引
适用于文本数据的全文搜索场 景,如博客、新闻等。
索引创建、维护和删除操作
创建索引
使用CREATE INDEX语句创建索引,可以指定索 引类型、列名等参数。
删除索引
使用DROP INDEX语句删除不再需要的索引, 以释放存储空间和减少维护开销。
事务处理方式
包括事务的开始与结束、事务的 提交与回滚、事务的并发控制等。 同时,还需要考虑事务的隔离级 别和传播行为等因素。
07
SQL习题集精选与答案解析
选择题部分精选
• 题目1:SQL语言中,用于实现数据检索的 语句是____。
选择题部分精选
A. SELECT B. INSERT C. UPDATE
通过冗余数据来重建数据库, 包括日志文件和数据备份等。
数据库恢复技术
包括基于日志的恢复、基于备 份的恢复和基于镜像的恢复等。
并发操作带来问题及其解决方法
并发操作带来的问题
01
包括丢失更新、脏读和不可重复读等。
并发控制方法
02
包括封锁、时间戳和乐观并发控制等。
封锁协议
03
包括一级封锁协议、二级封锁协议和三级封锁协议,用于保证
A
B

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

数据库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)* 找出借阅了<FoxPro大全>一书的借书证号。

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(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);insert into BOOK values(,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);insert into BOOK values(,'TS7/21','高等数学','刘明','高等教育出版社',20.00);insert into BOOK values(,'TR9/12','线性代数','孙业','北京大学出版社',20.80);insert into BOOK values(,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',2 1.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,,'3-19-2006');insert into borrow values(125,,'2-12-2006');insert into borrow values(111,,'8-21-2006');insert into borrow values(112,,'3-14-2006');insert into borrow values(114,,'10-21-2006');insert into borrow values(120,,'11-2-2006');insert into borrow values(120,,'10-18-2006');insert into borrow values(119,,'11-12-2006');insert into borrow values(112,,'10-23-2006');insert into borrow values(115,,'8-21-2006');insert into borrow values(118,,'9-10-2006');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。

SQL实验的题目和答案全解

SQL实验的题目和答案全解

数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。

2.熟悉通过SQL对数据库进行操作。

3.完成上机练习。

四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。

4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。

更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。

4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。

数据库中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 SWHERE 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 SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SCWHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号; SELECT SnoFROM SC X ,SC YWHERE X.Sno=Y.Sno AND/doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C2’ AND /doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C4’;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;在表S 中找学生,要求这个学生学了全部课程。

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

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

(一) 新建以下几个表student(学生表):其中约束如下:(1)学号不能存在相同的(2)名字为非空(3)性别的值只能是’男’或’女’(4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系(5)出生日期为日期格式(6)年龄为数值型,且在0~100之间cs(成绩表):其中约束如下:(1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0〜100之间,可以不输入值create table cs (sno smallint not null referencesstudent ( sno ), ----定义成外键cno smallint not null referencescourse ( cno ), ----定义成外键cj smallint constraint e check (cj between0 and 100 ),---- 检查约束一—j(成绩)只能在~100之间,可以不输入值constraint f primary key ( sno , cno )---- 定义学生学号和课程号为sc表的主键)course(课程表)其约束如下:(1)课程号(cno)不能有重复的(2)课程名(cname非空(三)针对学生课程数据库查询(1)查询全体学生的学号与姓名。

Select sno , sname from student(2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。

(3)查询全体学生的详细记录。

select * from student(4)查全体学生的姓名及其出生年份。

select sname , birth from student(5)查询学校中有哪些系。

select distinct dept from student(6)查询选修了课程的学生学号。

select sno from cs where eno is not null(7)查询所有年龄在20岁以下的学生姓名及其年龄。

sql课后《习题》答案

sql课后《习题》答案

第1章 SQL Server概述1、有个用户的计算机不能连接到中心机房的SQL Server 2000上。

你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。

下面的哪些工具有助于你诊断和解决该问题?(多选)A.Enterprise ManagerB.Server Network UtilityC.ProfilerD.Query AnalyzerE.Client Network Utility答:B和E2、你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。

当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo?A.ModelB.TempdbC.MsdbD.MasterE.Pubs答:A、C、E3、你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。

请问该功能在哪一层被实现?A.TCP/IP协议软件B.超级套接字层C.开放式数据服务D.关系引擎E.存储引擎答:B4、你正在使用SQL Server 2000开发超市收银系统。

在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。

请问该错误在哪一层被发现?A.客户端的数据库APIB.客户端的NET-LIBRARYC.服务器端的开放式数据服务D.服务器端的关系引擎E.服务器端的存储引擎答:D5、你要为中小型商场开发一个商场收银软件,该软件由多个收银员在各自的收银台使用。

后端数据库是SQL Server 2000,所有收银员的收银信息集中存放在几个表内。

在采用两层架构(2-Tier)的软件开发时,商场收银软件需要数据库的帐号和密码(SQL Server认证)或Windows认证才能连接和访问数据库,就象SQL Server 2000的查询分析器在刚运行的时候要求你输入帐号和密码或使用Windows认证才能访问数据库。

sql课后习题答案

sql课后习题答案

sql课后习题答案SQL课后习题答案随着信息技术的快速发展,数据库管理系统(DBMS)在各行各业中扮演着重要的角色。

而SQL(Structured Query Language)作为一种用于管理和操作关系型数据库的语言,被广泛应用于企业和组织的数据管理和分析中。

在学习SQL的过程中,课后习题是巩固知识的重要环节。

下面将为大家提供一些常见SQL课后习题的答案,希望对大家的学习有所帮助。

1. 查询所有学生的姓名和年龄。

答案:SELECT name, age FROM students;2. 查询所有学生的姓名和年龄,并按照年龄降序排列。

答案:SELECT name, age FROM students ORDER BY age DESC;3. 查询学生表中年龄大于20岁的学生信息。

答案:SELECT * FROM students WHERE age > 20;4. 查询学生表中年龄大于20岁并且性别为男的学生信息。

答案:SELECT * FROM students WHERE age > 20 AND gender = '男';5. 查询学生表中年龄大于20岁或者性别为女的学生信息。

答案:SELECT * FROM students WHERE age > 20 OR gender = '女';6. 查询学生表中的学生总数。

答案:SELECT COUNT(*) FROM students;7. 查询学生表中不重复的年龄。

答案:SELECT DISTINCT age FROM students;8. 查询学生表中年龄在20岁到25岁之间的学生信息。

答案:SELECT * FROM students WHERE age BETWEEN 20 AND 25;9. 查询学生表中每个班级的学生数量。

答案:SELECT class, COUNT(*) FROM students GROUP BY class;10. 查询学生表中每个班级的平均年龄。

数据库SQL习题答案

数据库SQL习题答案

第1章数据库系统概述二.1.答:该学校的教学管理E-R模型有以下实体:系、教师、学生、项目、课程。

各实体属性如下:系(系编号,系名,系主任)教师(教师编号,教师姓名,职称)学生(学号,姓名,性别,班号)项目(项目编号,名称,负责人)课程(课程编号,课程名,学分)各实体之间的联系如下:教师担任课程的1:n“任课”联系教师参加项目的n:m“参加”联系学生选修课程的n:m“选修”联系系、教师和学生之间的所属关系的1:m:n“领导”联系对应的E-R模型如图1.1所示。

图1.1 E-R图2.答:计算结果如下:R∪S R∩S R-S R╳T3.答:计算结果如下:R SσA=C (R S) A B C a b c A R.B S.B C a b d a b b c A R.B S.B C c b c a b b d a b e a c b d c b b c c b b c de acbbddebd4. 答:(1)它是2NF 。

因为R 的候选关键字为课程名,而“课程名→教师名”,“教师名→课程名”不成立,教师名→教师地址,所以课程名 t 教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R 不是3NF 。

又因为不存在非主属性对候选关键字的部分函数依赖,所以R 是2NF 。

(2)存在删除操作异常。

当删除某门课程时会删除不该删除的教师的有关信息。

(3)分解为高一级范式如下:R 1课程名 教师名 R2 W1 任我行 教师名 教师地址 W2 张三丰 任我行 D1 W3 郭靖 张三丰 D1 W4张三丰郭靖D2分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。

5.答: 令X=D ,X(0)=D 。

在F 中找出左边是D 子集的函数依赖,其结果是D →HG ,所以X(1)=X(0)HG=DGH ,显然有X(1)≠X(0)。

在F 中找出左边是DGH 子集的函数依赖,未找到,则X(2)=DGH 。

sql经典练习题库(附答案)

sql经典练习题库(附答案)

SQL练习题库表结构Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表试题:1、查询“0001”课程比“C002”课程成绩高的所有学生的学号;Select s# from scWhere c#='0001' and score>any(select score from sc c#='0002')2、查询平均成绩大于60分的同学的学号和平均成绩;select s#,avg(score) from SCgroup by s#having avg(score)>603、查询所有同学的学号、姓名、选课数、总成绩;select student.s#,student.sname,count(sc.c#)as 选课数,sum(score)总成绩from student,scwhere student.s#=sc.s#group by student.s#,student.sname4、查询姓“张”的老师的个数;select count(*)人数from teacherwhere tname like'张%'5、查询没学过“叶平”老师课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# not in(select t# from teacher where tname='张丽芬') group by student.s#,student.sname6、查询学过“0001”并且也学过编号“0002”课程的同学的学号、姓名;select sc.s#,sname from sc,studentwhere sc.c# = '0001' and student.s# = sc.s# and sc.s# in (select s# from sc where sc.c# = '0002')--并(两表值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'unionselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--交(有相同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'intersectselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'--差(不同值)select student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0001'exceptselect student.s#,student.sname from student,scwhere student.s#=sc.s# and sc.c#='0002'7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select student.s#,student.sname from student,course,teacher,scwhere student.s#=sc.s# and course.t#=teacher.t# and teacher.t# in(select t# from teacher where tname='张丽芬')group by student.s#,student.sname8、查询课程编号“001”的成绩比课程编号“002”课程低的所有同学的学号、姓名;select student.s#,sname,score from student,scwhere student.s#=sc.s# and score in(( select score from sc where c#='0001' )<all( select score from sc where c#='0002' )) 9、查询所有课程成绩小于60分的同学的学号、姓名;select student.s#,sname from studentwhere s# in(select s# from sc where score<60)10、查询没有学全所有课的同学的学号、姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s#group by student.s#,student.snamehaving count(c#)<(select count(c#) from course)11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select student.s#,student.sname from student,scwhere student.s#=sc.s# and c#=any(select c# from scwhere s#='1001')group by student.s#,student.sname12、查询至少学过学号为“0001”同学所有一门课的其他同学学号和姓名;Select sc.s#,sname from sc inner join student on sc.s#=student.s#Where c# in (select c# from sc where s#=’0001’)13、把“SC”表中“赵雁南”老师教的课的成绩都更改为此课程的平均成绩;update scset score=(select avg(sc.score) from sc,teacher,coursewhere sc.c#=course.c# and course.t#=teacher.t# and teacher.tname='赵雁南')where sc.c#=(select c# from course,teacher where course.t#=teacher.t# and tname='赵雁南' )14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select student.s#,sname from student,scwhere student.s#=sc.s# and sc.c#=all(select c# from sc where s#='1005') and student.s#<>'1005'15、删除学习“朱玉文”老师课的SC表记录;delete from scwhere c# in(select c# from sc where c# in (select c# from course,teacher where teacher.t#=course.t# and teacher.tname='朱玉文' ) )16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“0002”课程的同学学号、号课的平均成绩;insert into scvaluesselect s# from sc where s# not in (select s# from sc where c#='0002'select avg(score) as 平均成绩from sc where c#='0002'17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分select sc.s#,ame,sc.score,avg(score)as 平均成绩from sc inner join course on sc.c#=course.c#where sc.c# in(select c# from course where cname=any(select cname from course where cname in('计算机基础','Oracle','软件工程')))group by sc.s#,ame,sc.scoreorder by avg(score) descSELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0001') AS 计算机基础,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0002') AS Oracle,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='0011') AS 软件工程,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM sc AS tGROUP BY S#ORDER BY avg(t.score) desc18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分select c# 课程ID,max(score) 最高分,min(score) 最低分from scgroup by c#19、按各科平均成绩从低到高和及格率的百分数从高到低顺序select c#, avg(score) from scwhere score>60group by c#20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(),马克思(),OO&UML (),数据库()21、查询不同老师所教不同课程平均分从高到低显示select course.t#,avg(sc.score) as 平均分from sc,coursewhere sc.c#=course.c#group by course.t#order by avg(sc.score) desc22、查询如下课程成绩第3 名到第6 名的学生成绩单:企业管理,马克思,UML,数据库[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩select student.s#,student.sname,sc.score,ame from student inner join sc on student.s#=sc.s#inner join course on sc.c#=course.c#where ame in('oracle','电路分析','计算机基础')order by ame,sc.score desc23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]select sc.c#,ame,count(*)人数from sc,coursewhere course.c#=sc.c#group by sc.c#,ame24、查询学生平均成绩及其名次select sc.s#,avg(score) from scgroup by sc.s#order by avg(score) desc25、查询各科成绩前三名的记录考虑成绩并列情况select s#,c# ,score from scwhere score in (select distinct top 3 score from scgroup by c#,score)order by score desc26、查询每门课程被选修的学生数select c# as 课程号,count(c#)as 选修人数from scgroup by c#order by count(c#) desc27、查询出只选修了一门课程的全部学生的学号和姓名select sc.s#,student.sname from sc inner join student on student.s#=sc.s#group by sc.s#,student.snamehaving count(c#)=128、查询男生、女生人数select ssex, count(*) as 总人数from studentgroup by ssex29、查询姓“张”的学生名单select sname from studentwhere sname like '张%'30、查询同名同性学生名单,并统计同名人数select ssex,count(*) from studentgroup by ssex31、同年出生的学生名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列select c#,avg(score)平均成绩from scgroup by c#order by avg(score) asc33、查询平均成绩大于的所有学生的学号、姓名和平均成绩select top 1 student.s#,student.sname,avg(score)平均成绩from student inner join sc on student.s#=sc.s#group by student.s#,student.snameorder by avg(score) desc34、查询课程名称为“数据库”,且分数低于80的学生姓名和分数select student.sname,sc.score from sc,student,coursewhere student.s#=sc.s# and sc.c#=course.c# and ame='计算机基础' and sc.score<80group by student.sname,sc.score35、查询所有学生的选课情况;select student.s#,sname,c# from student left join sc on student.s#=sc.s#36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;select student.sname,ame,sc.score from student,sc,coursewhere student.s#=sc.s# and sc.c#=course.c# and sc.score>70order by score desc37、查询不及格的课程,并按课程号从大到小排列select c#,score from scwhere score<60order by c#38、查询课程编号为0001且课程成绩在70分以上的学生的学号和姓名;select student.s#,sname from sc,studentwhere c#='0001' and score>70 and student.s#=sc.s#39、求选了课程的学生人数select count(s#)人数from scwhere sc.score<>040、查询选修“oracle”课程的学生中,成绩最高的学生姓名及其成绩select top 1 student.sname,max(sc.score)成绩最高from student inner join sc on student.s#=sc.s# inner join course on sc.c#=course.c#where ame='oracle'group by student.snameorder by max(sc.score) desc41、查询各个课程及相应的选修人数select ame,count(sc.c#) as 选修人数from sc inner join course on sc.c#=course.c#group by ameorder by count(sc.c#) desc,ame asc42、查询不同课程成绩相同的学生的学号、课程号、学生成绩43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 score FROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#44、统计每门课程的学生选修人数(超过人的课程才统计)。

sql课后习题答案

sql课后习题答案

sql课后习题答案SQL课后习题答案在学习SQL课程时,课后习题是非常重要的一部分。

通过完成这些习题,我们可以加深对SQL语言的理解,提高自己的实际操作能力。

下面是一些SQL课后习题的答案,希望对大家的学习有所帮助。

1. 查询所有员工的信息```sqlSELECT * FROM employees;```2. 查询员工编号为1001的员工信息```sqlSELECT * FROM employees WHERE employee_id = 1001;```3. 查询员工表中的员工数量```sqlSELECT COUNT(*) FROM employees;```4. 查询员工表中的员工姓名和薪水```sqlSELECT employee_name, salary FROM employees;```5. 查询员工表中薪水大于5000的员工信息```sqlSELECT * FROM employees WHERE salary > 5000;```通过以上的习题答案,我们可以看到SQL语言的基本操作,包括查询、条件筛选、统计等。

这些都是我们在日常工作中经常会用到的操作,对于掌握SQL语言非常重要。

除了以上的习题,我们还可以通过实际的项目案例来练习SQL语言的应用。

例如,可以通过查询销售数据、客户信息等来加深对SQL语言的理解和掌握。

总的来说,通过课后习题的答案,我们可以更好地掌握SQL语言的基本操作,提高自己的实际操作能力,为以后的工作做好准备。

希望大家在学习SQL语言的过程中能够多加练习,不断提升自己的技能水平。

SQL课后练习题(1-9章答案)

SQL课后练习题(1-9章答案)

第一章1、数据完整性是指( D )A.数据库存中的数据不存在重复B.数据库中所有的数据格式是一样的C.所有的数据全部保存在数据库中D.数据库中的数据能够正确反映情况2、SQL中pubs数据库属于(A )A.用户数据库B.系统数据库C.数据库模板D.数据库管理系统3、数据冗余指的是( D )A.数据与数据之间没有联系B.数据有丢失C.数据量太大D.存在重复的数据4、SQL Server数据库的主数据文件的扩展名为( B )A. .sqlB. .mdfC. .mdbD. .ldf5、下列关于关系数据库叙述错误的是(B )A.关系数据库的结构一般保持不变,但也可根据需要进行改变B.一个数据表组成一个关系数据库,多种不同数据则需要创建多个数据库C. 关系数据库表中的所有记录的关键字字段的值互不相同D. 关系数据库表中的外部关键字不能用于区别该表中的记录6、创建数据库时,需要指定( C )属性。

A.数据库初始大小B.数据库的存放位置C.数据库的物理名和逻辑名D.数据库的访问权限7、以下说法正确的是( A )A.通过SQL Server服务器对SQL Server的启动、停止和通过服务管理器对SQL Server的启动、停止是同等功效B.必须先启动服务管理器中的SQL Server服务之后才能通过SQL Server服务管理器启动SQL ServerC.必须先通过SQL Server服务管理器启动SQL Server之后才能启动服务管理器中的SQL Server服务D.只能通过服务管理器对SQL S erver进行启动和停止8、SQL Server提供的4个系统数据库,以下说法正确的是( D )A.tempdb数据库是一个空数据库,完全可以删除B.adventure works是用来做模板的一个数据库C.msdb数据库是用来做例子的数据库D.创建新的空白数据库时,将使用Model数据库所规定的默认值9、以下说法错误的是(C)A.数据完整性是指存储在数据库中数据的准确性B.SQL Server是一个DBMSC.ERP、CRM、MIS等都是DBMSD.设计数据库时允许必要的冗余第二章1、创建银行的贷款情况表时,“还款日期”默认为当天,且必须晚于“借款日期”,应采用(A)约束。

sql数据库练习题参考答案

sql数据库练习题参考答案

第1章数据库基础练习题一、单项选择题1.C 2.A 3.C 4.D 5.D6.B 7.A 8.B 9.B 10.D11.C 12.A 13.C 14.B 15.A16.B 17.A 18.D 19.B 20.B21.A; D 22.A 23.C 24.D 25.B26.B 27.B 28.D 29.B 30.B二、填空题1.概念;数据2.属性3.码4.一对一联系;一对多(或多对一)联系;多对多联系5.候选码6.候选码7.关系名(属性1,属性2,…,属性n)8.关系数据结构;关系操作集合;关系完整性约束9.实体;参照;用户定义的;实体;参照10.空值11.需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;物理结构设计阶段;数据库实施阶段;数据库运行和维护阶段12.准确了解并分析用户对系统的要求,尤其是用户的信息要求、处理要求、安全性与完整性要求,确定所要开发的应用系统的目标,产生用户和设计者都能接受的需求说明书,做为下一步数据库概念结构设计的依据。

13.将需求分析得到的用户需求抽象为信息结构即概念模型。

14.将概念结构进一步转化为某一DBMS支持的数据模型,并对其进行优化。

15.为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据库在物理设备上的存储结构和存取方法。

三、指出以下各缩写的英文意思和中文意思1.DB:Database2.DBMS:Database Management System3.RDBMS:4.DBS:Database System5.DBA:Database Administrator6.NF:Normal Form7.DDL:Data Definition Language 四、按题目要求回答问题3.答:(1)关系R是2NF。

因为R的候选码为课程名,而课程名→教师名,教师名→教师地址,所以课程名→教师地址,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。

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

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

数据库sql课后练习题及答案解析(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)* 无重复地查询xx年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

##10)* 找出借阅了<FoxPro大全>一书的借书证号。

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

12) 查询xx年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,COMPANYVARCHAR(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','数据库导论','王强','科学出版社',机基础','李伟','高等教育出版社',18、00);insert into BOOKvalues(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 BOOKvalues(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32、70);insert into BOOKvalues(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32、70);insert into BOOK values(118801,'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 readervalues(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-xx');insert into borrow values(125,332211,'2-12-xx');insert into borrow values(111,445503,'8-21-xx');insert into borrowvalues(112,112266,'3-14-xx');insert into borrowvalues(114,665544,'10-21-xx');insert into borrowvalues(120,114455,'11-2-xx');insert into borrowvalues(120,118801,'10-18-xx');insert into borrowvalues(119,446603,'11-12-xx');insert into borrowvalues(112,449901,'10-23-xx');insert into borrowvalues(115,449902,'8-21-xx');insert into borrowvalues(118,118801,'9-10-xx');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库sql课后练习题及答案解析(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)* 无重复地查询xx年10月以后借书的读者借书证号(READER_ID)、姓名和单位。

##10)* 找出借阅了<FoxPro大全>一书的借书证号。

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

12) 查询xx年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,COMPANYVARCHAR(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','数据库导论','王强','科学出版社',机基础','李伟','高等教育出版社',18、00);insert into BOOKvalues(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 BOOKvalues(449901,'TP4/14','FoxPro大全','周虹','科学出版社',32、70);insert into BOOKvalues(449902,'TP4/14','FoxPro大全','周虹','科学出版社',32、70);insert into BOOK values(118801,'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 readervalues(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-xx');insert into borrow values(125,332211,'2-12-xx');insert into borrow values(111,445503,'8-21-xx');insert into borrowvalues(112,112266,'3-14-xx');insert into borrowvalues(114,665544,'10-21-xx');insert into borrowvalues(120,114455,'11-2-xx');insert into borrowvalues(120,118801,'10-18-xx');insert into borrowvalues(119,446603,'11-12-xx');insert into borrowvalues(112,449901,'10-23-xx');insert into borrowvalues(115,449902,'8-21-xx');insert into borrowvalues(118,118801,'9-10-xx');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。

相关文档
最新文档