数据库sql习题与答案

合集下载

(完整版)sql语句练习题及答案

(完整版)sql语句练习题及答案

(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。

学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。

2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。

2查询姓名中第2个字为“明”字的学⽣学号、性别。

3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。

90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。

数据库SQL语句练习题含答案

数据库SQL语句练习题含答案

SQL语句练习练习5. 1. 2: 基于不断滚动的电影数据库的实例:Movie( 电影名title,拍摄年代year ,长度length, inColor ,制片厂名studioName, 制片人证书号producerC# )StarsIn(电影名movieTitle,拍摄年份movieYear ,影星名starName) MovieStar (姓名name,地址address,性别gender ,生日birthdate) MovieExec( 姓名name,地址address ,证书号cert # ,净资产netWorth ) Studio(姓名name, 地址address,总裁证书号presC# )请写出下列SQL 查询语句:* ( a) 找出米高梅制片公司(MGM studios)的地址。

SELECT address AS Studio_AddressFROM Studio WHERE name = 'MGM';( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。

SELECT birthdate AS Star_BirthdateFROM MovieStar WHERE name = 'Sandra Bullock';* ( c) 找出在1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。

SELECT starName FROM StarsInWHERE movieYear = 1980 OR movieTitle LIKE '%Love%';( d) 找出净资产至少1 000 万美元的所有行政长官。

SELECT name AS Exec_NameFROM MovieExec WHERE netWorth >= 10000000;( e) 找出所有的男影星或者是住址中含有Malibu 的影星。

数据库sql期末考试试题及答案

数据库sql期末考试试题及答案

数据库sql期末考试试题及答案一、单项选择题(每题2分,共20分)1. 在SQL中,用于查询数据的语句是:A. INSERTB. UPDATEC. SELECTD. DELETE答案:C2. 下列哪个选项不是SQL语言的组成部分?A. 数据定义语言(DDL)B. 数据操纵语言(DML)C. 数据控制语言(DCL)D. 数据查询语言(DQL)答案:D3. 在SQL中,使用哪个关键字来创建新表?A. CREATEB. INSERTC. SELECTD. DROP答案:A4. 如果要删除表中所有数据但不删除表结构,应使用哪个语句?A. TRUNCATE TABLEB. DELETEC. DROP TABLED. ALTER TABLE答案:A5. 在SQL中,如何使用通配符来匹配任意字符?A. %B. _C. *D. ?答案:A6. SQL语句中,哪个关键字用于指定查询结果的排序?A. ORDERB. GROUPC. WHERED. HAVING答案:A7. 以下哪个选项是SQL中用于连接两个或多个表的关键字?A. JOINB. UNIONC. INTERSECTD. EXCEPT答案:A8. 在SQL中,用于计算总和的函数是:A. COUNTB. AVGC. SUMD. MAX答案:C9. 如果要查询某个表中所有行和列的数据,应使用哪个SQL语句?A. SELECT *B. SELECT ALLC. SELECT ALL *D. SELECT ALL FROM答案:A10. 在SQL中,哪个关键字用于分组数据?A. GROUP BYB. ORDER BYC. HAVINGD. WHERE答案:A二、多项选择题(每题3分,共15分)1. 下列哪些选项是SQL中的聚合函数?A. COUNTB. AVGC. SUMD. MAXE. MIN答案:ABCDE2. 在SQL中,哪些关键字可以用于创建索引?A. CREATE INDEXB. INDEXC. UNIQUED. PRIMARY KEYE. FOREIGN KEY答案:ACD3. 在SQL中,哪些语句可以用于更新数据?A. UPDATEB. INSERTC. DELETED. ALTERE. TRUNCATE答案:A4. 在SQL中,哪些关键字可以用于删除数据?A. DELETEB. DROPC. REMOVED. TRUNCATEE. CLEAR答案:ABD5. 在SQL中,哪些关键字可以用于数据的分组和聚合?A. GROUP BYB. HAVINGC. ORDER BYD. WHEREE. WITH ROLLUP答案:ABE三、填空题(每题2分,共10分)1. 在SQL中,使用________关键字来添加新的列到已存在的表中。

数据库系统:SQL语言单元测试与答案

数据库系统:SQL语言单元测试与答案

一、单选题1、已知有:学生表Student(S# char(8), Sname char(10), Ssex char(2), Sage integer, D# char(2), Sclass char(6))中,若要在学生表中追加一个元组“学号为98030101的男同学张三,年龄为20,所属系别03,所在班级980301”,则可用_________。

A.INSERT INTO Student VALUES (9803010, 张三, 男, 20, 03, 980301);B.INSERT INTO Student VALUES(‘98030101’,‘张三’,‘男’, 20,‘03’,‘980301’);C.ADD INTO Student VALUES(‘98030101’,‘张三’,‘男’,20,‘03’,‘980301’);D.ADD INTO Student VALUES(98030101, 张三, 男, 20,03,980301);正确答案:B解析: A、字符串型属性值需要加引号 B、正确 C、向表中追加元组要使用INSERT INTO D、向表中追加元组要使用INSERT INTO2、在关系模型中关于结果唯一性问题,结果排序问题,模糊查询问题,如下说法不正确的是_________。

A.在Table中要求无重复元组是通过定义Primary key或Unique来保证的;而在检索结果中要求无重复元组, 是通过在SELECT子句中引入DISTINCT保留字来实现的。

B.结果排序是在Select语句中通过增加order by子句实现的,后只能跟DESC或省略为降序。

C.模糊查询是通过在Select语句的Where子句中引入运算符like来实现的D.在SELECT语句的Like条件中,用“\%”去匹配字符%,用\_ 去匹配字符_正确答案:B解析: B、若后跟asc或省略,则为升序;若后跟desc, 则为降序3、查询时,若要输出无重复的记录,SELECT子句中使用的保留字是:_________。

数据库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语言习题一、单项选择题1.SQL语言是的语言,易学习。

A.过程化B.非过程化C.格式化D.导航式答案:B2.SQL语言是语言。

A.层次数据库B.网络数据库C.关系数据库D.非数据库答案:C3.SQL语言具有的功能。

A.关系规范化、数据操纵、数据控制B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵答案:B4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。

其中最重要的,也是使用最频繁的语句是。

A.SELECT B.INSERT C.UPDA TE D.DELETE答案:A5.SQL语言具有两种使用方式,分别称为交互式SQL和。

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

A.SELECT B.INSERTC.UPDATE D.DELETE答案:A7.下列SQL语句中,修改表结构的是。

A.ALTER B.CREATEC.UPDATE D.INSERT答案:A第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。

8.检索所有比“王华”年龄大的学生姓名、年龄和性别。

正确的SELECT语句是。

A.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGE FROM SWHERE SN=’王华’)B.SELECT SN,AGE,SEX FROM SWHERE SN=’王华’C.SELECT SN,AGE,SEX FROM SWHERE AGE>(SELECT AGEWHERE SN=’王华’)D.SELECT SN,AGE,SEX FROM SWHERE AGE>王华.AGE答案:A9.检索选修课程“C2”的学生中成绩最高的学生的学号。

(完整版)SQL复习题(附部分答案)

(完整版)SQL复习题(附部分答案)

一、单选题1.根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___)A.只存在一对多的实体关系,以图形方式来表示。

B.以二维表格结构来保存数据,在关系表中不允许有重复行存在。

C.能体现一对多、多对多的关系,但不能体现一对一的关系。

D.关系模型数据库是数据库发展的最初阶段。

答案[B]2、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。

A、Windows身份验证B、SQL Server 身份验证C、以超级用户身份登录时D、其他方式登录时答案[B]3、关系数据库中,主键是(___),当运用Transact-SQL语句创建主键时,可以是(__)。

⑴ A、为标识表中唯一的实体 B、创建唯一的索引,允许空值C、只允许以表中第一字段建立D、允许有多个主键的⑵ A、create table table1(column1 char(13) not null primary key,column2 int not on primary key;B、alter table table1 with nocheck addconstraint [PK_table1] primary key nonclustered ( column1) on primary;C、alter table table1 column1 primary key ;答案[ A C]4、视图是一种常用的数据对象,可以简化数据库操作,当使用多个数据表来建立视图时,不允许在该语句中包括(___)等关键字。

A、ORDER BY,COMPUTEB、ORDER BY,COMPUTE,COMPUTR BYC、ORDER BY,COMPUTE BY,GROUP BYD、GROUP BY,COMPUTE BY答案[B ]5、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(_1_),使用关键字(_2_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(_3__),如果在SELECT语句中使用聚合函数时,可以在后面使用(_4_)。

sql数据库期末考试题及答案

sql数据库期末考试题及答案

一、单选题(共10 道试题,共50 分。

)V 1。

SQL Server中,保存着每个数据库对象的信息的系统表是()。

A。

sysdatabasesB。

SyscolumnsC. SysobjectsD。

Syslogs满分:5 分2。

在存在下列关键字的SQL语句中,不可能出现Where子句的是()。

A. UpdateB. DeleteC。

InsertD. Alter满分:5 分3。

在查询语句的Where子句中,如果出现了“age Between 30 and 40",这个表达式等同于().A. age>=30 and age<=40B。

age〉=30 or age<=40C. age>30 and age〈40D. age〉30 or age〈40满分:5 分4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用()约束。

A。

PDRIMARY KEYB. FOREIGN KEYC。

uniqueD。

check满分:5 分5. 记录数据库事务操作信息的文件是().A. 数据文件B。

索引文件C. 辅助数据文件D. 日志文件满分:5 分6。

要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用()命令。

A. SELECT *FROM CP WHERE 产品名称LIKE ‘冰箱'B。

SELECT *FROM XSH WHERE 产品名称LIKE ‘冰箱’C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’D。

SELECT *FROM CP WHERE 产品名称=‘冰箱’满分:5 分7。

储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是( )。

A. 一对一的联系B。

一对多的联系C. 多对一的联系D. 多对多的联系满分:5 分8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的()子句之中.A. SELECTB。

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

/*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,ratingwhere movie.mid=rating.midand stars in (4,5)order by yearQuestion 3:Find the titles of all movies that have no ratingsselect title from moviewhere mID in(select mid from Movieexceptselect mid from rating)select title from movieexceptselect title from movie,ratingwhere movie.mid=rating.midQuestion 4:Some reviewers didn't provide a date withtheir rating. Find the names of all reviewers who haveratings with a NULL value for the date.select name from reviewer,ratingwhere reviewer.rid=rating.ridand ratingdate is nullQuestion 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,ratingdatefrom movie,rating,reviewerwhere movie.mid=rating.midand reviewer.rid=rating.ridorder by name,title,starsQuestion 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,titlefrom rating as F,Rating as S,Movie,Reviewerwhere F.rID=S.rIDand F.mID=S.mIDand F.stars<S.starsand F.ratingDate<S.ratingDateand F.mID=Movie.mIDand F.rID=Reviewer.rIDselect name,titlefrom movie,reviewer,( select r1.rid,r1.mid from rating as r1,rating as r2where r1.rid=r2.rid and r1.mid=r2.midand r1.ratingdate>r2.ratingdateand r1.stars>r2.stars) as rwhere movie.mid=r.mid and reviewer.rid=r.ridQuestion 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_starfrom rating,Moviewhere Rating.mID=Movie.mIDgroup by titleorder by titleselect title,maxratingfrom movie,(select mid,max(stars) as maxrating from ratinggroup by mid) as rwhere movie.mid=r.midorder by titleQuestion 8:For each movie, return the title and the‘rating spread(范围)', that is, the difference betweenhighest 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_spreadfrom rating,Moviewhere Rating.mID=Movie.mIDgroup by titleorder by rating_spread desc,titleselect title,spread as "rating spread"from movie, (select mid,max(stars)-min(stars) asspread from rating group by mid) as rwhere movie.mid=r.midorder by spread desc,titleQuestion 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_starfrom(select AVG(avg_star) as avg_star from(select Rating.mID,AVG(stars) as avg_starfrom Rating left join Movie on Rating.mID=Movie.mIDwhere year<1980group by Rating.mID) as F) as F,(select AVG(avg_star) as avg_star from(select Rating.mID,AVG(stars) as avg_starfrom Rating left join Movie on Rating.mID=Movie.mIDwhere year>=1980group by Rating.mID) as S) as Sselect r1979.avgm-r1980.avgmfrom(select sum(avgrating)/count(*) as avgMfrom(select avg(stars) as avgrating from rating,moviewhere movie.mid=rating.mid and year<1980group by movie.mid)as r)as r1979,(select sum(avgrating)/count(*) as avgMfrom(select avg(stars) as avgrating from rating,moviewhere movie.mid=rating.mid and year>=1980group by movie.mid)as r)as r1980Question 10:Add the reviewer Roger Ebert to your database, with an rID of 209.insert into Reviewervalues (209,'Roger Ebert')Question 11:Insert 5-star ratings by James Cameron for all moviesin the database. Leave the review date as NULL.insert into Rating(rID,mID,stars)select rid,mID,5 as strasfrom movie,(select rid from Reviewer where name='James Cameron') as Tinsert into rating(rid,mid,stars)select rid,mid,5from reviewer,moviewhere 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+25where mID in(select mID from Rating group by mID having AVG(stars)>=4) */。

相关文档
最新文档