关系数据库与SQL语言_习题答案
- 格式:doc
- 大小:65.50 KB
- 文档页数:5
关系数据库操作语言SQL(三)(总分100, 做题时间90分钟)一、选择题1.以下叙述正确的是______。
• A.字符串数据由英文字母、数字和各种符号组成• B.字符串数据由汉字、英文字母和数字组成• C.字符串数据由汉字、英文字母和各种符号组成• D.字符串数据由汉字、英文字母、数字和各种符号组成SSS_SIMPLE_SINA B C D该问题分值: 2.5答案:D[解析] 字符串数据由汉字、英文字母、数字和各种符号组成,因此本题答案为D。
2.SQL Server支持的准确型数据类型不包括______。
•**•**•****SSS_SIMPLE_SINA B C D该问题分值: 2.5答案:D[解析] 准确型数值是指在计算机中能够精确存储的数,SQL Server支持的准确型数据类型包括:Bigint、Int、Smallint、Tinyint、Bit、numeric(p,q)或decimal(p,q)。
近似型是用于表示浮点型数据的近似数据类型,包括float 和real。
所以本题的答案为D。
3.SQL Server支持的普通编码字符串的数据类型不包括______。
•**(n)•**(n)•****SSS_SIMPLE_SINA B C D该问题分值: 2.5答案:D[解析] SQL Server支持的普通编码字符串的数据类型包括char(n)、varchar(n)和text。
所以本题的答案为D。
4.设在SQL Server 2000中,某关系表需要存储职工的工资信息,工资的范围为2000~10000,设用整型类型存储。
下列数据类型中最合适的是______。
•**•**•****SSS_SIMPLE_SINA B C D该问题分值: 2.5答案:B[解析] int数据类型所表示的数值范围从-231到231-1,也就是说,你可以用int数据类型来表达-2,147,483,648到2,147,483,647(即大约正负二十亿)之间的整数。
第三章关系数据库标准语言SQL语言一、选择题1. 在SQL语言中授权的操作是通过________________语句实现的。
C A.CREATEB.REVOKEC.GRANTD.INSERT2. 假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系____。
DA.S B.SC,C C.S,SC D.S,C,SC3. 在 MS SQL Server中建立了表 Student(no,name,sex,birthday),no为表的主码,其他属性的默认值为 null。
表中信息如图所示:能够正确执行的插入操作是________。
A No Name Sex Birthday 101 张丽丽女 1967/05/07 102 李芳女 1970/04/14103 王朋男 1982/10/27 A.INSERT INTO student (no,sex) VALUES(102,′男′) B.INSERT INTO student (name,sex) VALUES(′王中′,′男′)D.INSERT INTO student VALUES(106,′王中′,′男′,′1984/03/08′) C.INSERT INTO stude nt VALUES(102,′男′,′王中′,′1984/03/08′) 4. SQL语言中,删除一个表的命令是________。
B A. DELETE B. DROP C. CLEAR D. REMORE 5. 为数据表创建索引的目的是________ AA.提高查询的检索性能B.创建唯一索引C.创建主键D.归类6. 在SQL语言中,条件“RETWEEN 20 AND 30”表示年龄在20到30之间,且________A. 包括20岁和30岁B. 不包括20岁和30岁C. 包括20岁不包括30岁D. 不包括20岁包括30岁7. 为了使索引键的值在基本表中唯一,在建立索引语句中应使用保留字________ AA. UNIQUEB. COUNTC. DISDINCTD. UNION 8. 下面关于SQL语言的说法中,哪一种说法是错误的? ________ AA. 一个SQL数据库就是一个基本表B. SQL语言支持数据库的三级模式结构C. 一个基本表可以跨多个存储文件存放,一个存储文件可以存放一个或多个基本表D. SQL的一个表可以是一个基本表,也可以是一个视图二、简答题1. 什么是基本表?什么是视图?两者的区别和联系是什么?【解答】基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
习题4 关系数据库标准语言SQL 一、选择题11. SQL是哪几个英文单词的缩写__________。
16.在V isual FoxPro中,使用SQL命令将学生STUDENT中的学生年龄AGE字段的值增加1,应该使用的命令是__________。
A. REPLACE AGE WITH AGE+1B. UPDA TE STUDENT AGE WITH AGE+1C. UPDA TE SET AGE WITH AGE+1D. UPDA TE STUDENT SET AGE=AGE+117.如果学生表STUDENT是使用下面的SQL语句创建的:CREA TE TABLE STUDENT(SNO C(4)PRIMARY KEY NOTNULL);SN C(8);SEX C(2);AGE N(2) CHECK(AGE>15 AND AGE<30)下面的SQL语句中可以正确执行的是________。
A. INSERT INTO STUDENT(SNO,SEX ,AGE)values("S9","男",17)B. INSERT INTO STUDENT(SNO,SEX, AGE)values("李安琦","男",20)C. INSERT INTO STUDENT(SNO,AGE)values("男",20)D. INSERT INTO STUDENT(SNO,SN)values("S9","安琦",16)18.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是______。
A. SELECT * FROM STUDENT WHERE LEFT(姓名,2)= "王"B. SELECT * FROM STUDENT WHERE RIGHT(姓名,2)= "王"C. SELECT * FROM STUDENT WHERE TRIM(姓名,2)= "王"D. SELECT * FROM STUDENT WHERE STR(姓名,2)= "王"习题4 关系数据库标准语言SQL- 119 -26.下面有关交叉表查询的说法中,正确的是_________。
先创建下面三个表:(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语言习题一、单项选择题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”的学生中成绩最高的学生的学号。
第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 =。
一、单选题1、在查询语句的where子句中,如果出现了“age between 30 and 40”,这个表达式等同于()。
A.age>=30 or age<=40B.age>30 or age<40C.age>30 and age<40D.age>=30 and age<=40正确答案:D2、SQL的聚合函数count、sum、avg、max、min不允许出现在查询语句的()子句中。
A.whereB.group by …havingC.selectD.having正确答案:A3、以下聚合函数中用于求记录个数的是()。
A.avgB.maxC.sumD.count正确答案:D4、一张数据表中的主键个数为()。
A.至多2个B.没有限制C.至多3个D.至多1个正确答案:D5、用于更新数据库中的数据的SQL 语句是()。
A.Save asB.UpdateC.ModifyD.Save正确答案:B6、通过 SQL,从“actor”表中选取 "FirstName" 列的值等于"John" 的所有记录的表述正确的是()。
A.SELECT * FROM Actor WHERE FirstName='John'B.SELECT [all] FROM Actor WHERE FirstName LIKE 'John'C.SELECT * FROM Actor WHERE FirstName LIKE 'John'D.SELECT [all] FROM Actor WHERE FirstName='John'正确答案:A7、通过 SQL,在表 Actor 中选择 FirstName 等于 Jim 而 LastName 等于 Carter 的所有记录的表述正确的是()。
A.SELECT * FROM Actor WHERE FirstName LIKE 'Jim' AND LastName LIKE 'Carter'B.SELECT FirstName='Jim', LastName='Carter' FROM ActorC.SELECT * FROM Actor WHERE FirstName='Jim' AND LastName='Carter'D.SELECT * FROM Actor WHERE FirstName='Jim' OR LastName='Carter'正确答案:C8、通过 SQL,按字母顺序选取 Actor 表中 LastName 介于 Adams 和Carter 的所有记录的表述正确的是()。
一、选择题1.SQL语言是()的语言,容易学习.BA. 过程化B.非过程化C.格式化D.导航式2.在视图上不能完成的操作是()。
CA.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图3.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREA TE、DROP、ALTER语句是实现哪种功能()。
CA.数据查询B.数据操纵C.数据定义D.数据控制4.SQL语言中,删除一个视图的命令是()。
BA.DELETEB.DROPC.CLEARD.REMOVE5.在SQL语言中的视图VIEW是数据库的()。
AA.外模式B.模式C.内模式D.存储模式6.下列的SQL语句中,()不是数据定义语句。
DA.CREA TE TABLEB.DROP VIEWC.CREA TE VIEWD.GRANT7.若要撤销数据库中已经存在的表S,可用()。
CA.DELETE TABLE SB.DELETE SC.DROP TABLE SD.DROP S8.若要在基本表S中增加一列CN(课程名),可用()。
CA. ADD TABLE S (CN CHAR(8))B. ADD TABLE S ALTER (CN CHAR(8))C. ALTER TABLE S ADD CN CHAR(8)D. ALTER TABLE S (ADD CN CHAR(8))9.学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。
要在表S中删除一个属性“年龄”,可选用的SQL语句是()。
BA.DELETE Age from SB.ALTER TABLE S DROP COLUMN AgeC.UPDA TE S AgeD.ALTER TABLE S ‘Age’10.有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。
其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,C#是课程号,CNAME是课程名称。
第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 SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
第3章关系数据库标准语言SQL1 .试述sQL 语言的特点。
答:(l)综合统一。
sQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL 的功能于一体。
(2)高度非过程化。
用sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及sQL 语句的操作过程由系统自动完成。
(3)面向集合的操作方式。
sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。
sQL 语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2 .试述sQL 的定义功能。
sQL 的数据定义功能包括定义表、定义视图和定义索引。
SQL 语言使用cREATE TABLE 语句建立基本表,ALTER TABLE 语句修改基本表定义,DROP TABLE 语句删除基本表;使用CREATE INDEX 语句建立索引,DROP INDEX 语句删除索引;使用CREATE VIEW 语句建立视图,DROP VIEW 语句删除视图。
3 .用sQL 语句建立第二章习题5 中的4 个表。
答:对于S 表:S ( SNO , SNAME , STATUS , CITY ) ;建S 表:CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));对于P 表:P ( PNO , PNAME , COLOR , WEIGHT );建P 表:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT INT);对于J 表:J ( JNO , JNAME , CITY);建J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8),CITY C(4))对于sPJ 表:sPJ ( sNo , PNo , JNo , QTY);建SPJ 表:SPJ(SNO,PNO,JNO,QTY)CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY INT))4.针对上题中建立的4 个表试用sQL 语言完成第二章习题5 中的查询。
关系数据库与SQL语言_习题(黄旭明)参考答案本章习题均基于以下假设:在某校,有关学生有学号、姓名、系别、出生日期等信息,有关课程有课程号、课程名、选修课程等信息,每个学生只有一个学号、只在一个系、可以选修多门课程;每门课程只有一个课程号、可以由多个学生选修,学生选修课程产生成绩。
这些数据在名为Student的数据库中进行管理,其中各表逻辑结构设计如下:表名:学生属性:学号(定长字符串,12)如:200210515001,2002年,105系别,15专业代码,001学生编号姓名(变长字符串,20,非空)出生日期(日期时间,非空)是否党员(逻辑型)班委(定长字符串,8)主键:学号表名:课程属性:课程号(定长字符串,3)课程名称(变长字符串,20)先修课号(定长字符串,3)主键:课程号外键:先修课号其值取自本表主键“课程号”的值表名:成绩表属性:学号(定长字符串,12)课程号(定长字符串,3)成绩(整数,3,取值0~100) .主键:(学号,课程号)外键:学号其值取自表“学生”主键“学号”的值.课程号其值取自表“课程”主键“课程号”的值1.用SQL语言创建一个数据库,命名为Student。
Create dababase student2.在Student数据库中,用SQL语言建立以上各表。
1)Create table 学生(学号 char(12) primary key,姓名 varchar(20) not null,出生日期datetime not null,是否党员 bit,班委 char(8))2)Create table 课程(课程号 char(3) primary key,课程名称 varchar(20) ,先修课号char(3) foreign key references 课程(课程号))3)Create table 成绩表(学号 char(12) foreign key references 学生(学号),课程号char(3) foreign key references 课程(课程号),成绩 smallint check(成绩 between 0 and 100),primary key (学号,课程号))3.在表“成绩表”中创建关于“课程号”的索引。
Create index kch_cjb on 成绩表(课程号)4.在各表中输入一些记录数据,并进行一些修改操作。
5.在表“学生”中增加数值类型的“德育分”、“专业分”与“总积分”属性,总积分=德育分+专业分。
1) Alter table 学生 add 德育分 int, 专业分 int,总积分 int2) Update 学生 set 总积分=德育分+专业分6.从“课程”表中检索所有课程的“课程号”和“课程名称”。
Select 课程号,课程名称 from 课程7.从“学生”表中检索记录的所有属性。
Select * from 学生8.从“学生”表中检索每一记录“总积分”,说明总积分是德育分与专业分之和,并在属性列的清单中用字符串加以说明。
Select 总积分 ,’总积分=德育分+专业分’ as 说明 from 学生9.从“成绩表”表中检索某个学号的所有选修课程的成绩。
Select * from 成绩表 where 学号=’200110101003’10.从“成绩表”表中检索所有不及格学生的记录。
Select * from 成绩表 where 成绩<6011.用两种不同的比较形式,从“课程”表中检索课程名称不是“数据库”的所有记录。
Select * from 课程 where 课程名称<>'数据库'或Select * from 课程 where not 课程名称='数据库'12.从“学生”表中检索出所有年龄大于20岁的学生的“学号”、“系别”。
Select 学号,系别 from 学生 where year(date())-year(出生日期)>2013.检索所有尚未填写成绩的学生学号。
Select distinct 学号 from 成绩表 where 成绩 is null14.从“课程”中检索出所有有“先修课程”的课程号与课程名称。
Select 课程号,课程名称 from 课程 where 先修课程 is not null15.按学生年龄大小,从“学生”表中检索“学号”,“出生日期”。
Select学号,出生日期 from 学生 order by 出生日期16.将“成绩表”中的成绩记录,先按“课程号”从小到大排序,然后再按“成绩”从Select * from 成绩表 order by 课程号 ,成绩17.从“学生”表中检索“系别”为105Select 学号 from 学生 where 学号18.从“成绩表”中检索选修了“课程号”为201或301课程的学生“学号”。
Select 学号 from 成绩表 where 课程号='201' or 课程号='301'19.从“成绩表”表中检索出哪些人有不及格记录。
Select distinct 学号 from 成绩表 where 成绩<6020.从“成绩表”表中检索选修“课程号”不为201或301,且“成绩”大于95分的学生“学号”。
Select 学号 from 成绩表 where 课程号not in('201', '301') and 成绩>9521.查询哪些既是班委又是党员的学生。
Select * from 学生 where 是否党员=1 and 班委 is not null22.从“学生”表中检索“专业分”介于100到120之间的学生“学号”。
Select 学号 from 学生 where 专业分 between 100 and 12023.从“学生”中检索在1982年1月1日至9月1日出生的学生的“学号”和“姓名”。
Select 学号,姓名from 学生where 出生日期between '1982/01/01' and '1982/09/01'24.从“学生”表中检索姓“陈”的学生的“身份证号码”和“姓名”。
Select 身份证号码,姓名 from 学生 where 姓名 like '陈%'25.查询已被学生选修的课程号,课程号不重复显示。
Select distinct 课程号 from 成绩表26.计算选修课程号为201的学生人数。
Select count(*) as 选修人数 from 成绩表 where 课程号='201'27.计算学生总人数。
Select count(*) as 学生总数 from 学生28.计算系别为105的学生的德育积分总和。
Select sum(德育分) as 105系学生德育积分总和 from 学生 where 学号 like '____105%'29.求所有学生总积分的平均值。
Select avg(总积分) as 总积分平均值 from 学生30.找出“成绩表”的最低与最高成绩。
Select max(成绩) 最高成绩, min(成绩) 最低成绩 from 成绩表31.计算某个学生的各课程平均成绩。
Select avg(成绩) 平均成绩 from 成绩表 where 学号='200210515001'32.计算各个学生选修的课程门数。
Select 学号,count(课程号) as 课程门数 from 成绩表 group by 学号33.分组计算各门课的最高成绩与最低成绩。
Select 课程号,max(成绩) 最高成绩, min(成绩) 最低成绩 from 成绩表 group by 课程号34.按课程名称、学号二重排序输出:课程名称、学号、姓名、成绩。
Select课程名称,学号,姓名,成绩 from 成绩表order by 课程名称,学号35.查询与“刘晨”在同一个年出生的学生。
Select s2.* from 学生 s1 join 学生 s2 on year(s1.出生日期)=year(s2.出生日期) where s1.姓名='刘晨' and s2.姓名<>'刘晨'或Select * from 学生 where 姓名<>'刘晨' and year(出生日期)=(select year(出生日期) from 学生 where 姓名='刘晨')36.查询选修了课程名为“信息系统”的学生学号和姓名。
Select 学生.学号,姓名 from 学生,成绩表,课程 where 学生.学号=成绩表.学号 and 成绩表.课程号=课程.课程号 and 课程名='信息系统'37.查询其他系中比105任一学生年龄都小的学生名单。
Select 姓名from 学生where学号not like '____105%' and 出生日期>any(select max(出生日期) from 学生 where 学号 like '____105%')38.查询所有选修了课程号以“l”打头的学生姓名。
Select 姓名 from 学生,成绩表 where学生.学号=成绩表.学号 and 课程号 like '1%'39.查询选修了全部课程的学生姓名。
Select 姓名from 学生where (not exists(select * from 课程where not exists(select * from 成绩表 where 学号=学生.学号 and 课程号=课程.课程号)))40.查询105系的学生中年龄不大于19岁的学生。
Select * from 学生 where year(出生日期)<=19 and 学号like '____105%'41.根据“成绩表”创建一个视图,其结果返回所有60分以上的成绩记录。
Creat view st1 as select * from 成绩表 where 成绩>=6042.创建一个视图,其结果返回3门90分以上的学生的学号、姓名、系别。
Create view st2 as select 学号,姓名,系别 from 学生 where 学号 in(select 学号 from 成绩 where 成绩>=90 group by 学号 having count(课程号)>=3)43.向题4l的视图中添加一条记录,其值为,学号“200210501001”,课程号“C011”,成绩“85”。