第3章 关系数据库标准语言SQL
- 格式:doc
- 大小:183.50 KB
- 文档页数:22
1、数据库的事务日志文件()。
A.只能有一个B.可以有多个C.可以没有D.以上都不对正确答案:B2、CREATE命令属于()语句。
A.数据查询B.数据操纵C.数据定义D.数据控制正确答案:C3、使用ALTER命令修改数据时,以下说法错误的是()。
A.可以增加主要数据文件B.可以删除次要数据文件C.可以修改文件的增容方式D.可以增加事务日志文件正确答案:A4、使用存储存储过程Sp_helpfile可以()。
A.查看数据库的结构B.查看数据库的文件信息C.查看数据库的文件组信息D.以上都可以5、在DBMS中分离数据库之后,()。
A.数据库文件将会从磁盘上删除B.数据库文件将会脱离DBMSC.事务日志文件将会从磁盘上删除D.以上都不对正确答案:B6、假设学号字段“SNo”的数据类型为nvarchar(6),当“SNo”的值为“S001”时,“SNo”在内存中占()字节。
A.4B.6C.8D.12正确答案:C7、创建数据表时,如果给某个字段定义PRIMARY KEY约束时,该字段的数据()。
A.不允许有空值B.允许有多个空值C.允许有一个空值D.以上都不对正确答案:A8、为数据表增加新的字段时,()。
A.可以为新字段设置NOT NULL约束B.不能为新字段设置NOT NULL约束C.不能为新字段设置约束D.以上都不对9、在SQL的SELECT语句中,能实现选取操作的是()。
A.SELECTB.FROMC.WHERED.GROUP BY正确答案:C10、假定学生关系是S(SNo,SName,Sex,Age),课程关系是C(CNo,CName,Teacher),学生选课关系是SC(SNo,CNo,Grade)。
要查找选修“数据库”课程的“男”学生姓名,将涉及的关系是()。
A.SB.SC,CC.S,SCD.S,C,SC正确答案:D11、下列SQL语句中,()不是数据操纵语句。
A.INSERTB.CREATEC.DELETED.UPDATE正确答案:B12、SQL中,下列涉及空值的操作,不正确的是()。
第三章关系数据库标准语言SQL1、视图:2、SQL:3、基本表:4、索引:5、下列的SQL语句中,()不是数据定义语句。
A、CREA TE INDEXB、DELETE TABLEC、CREA TE VIEWD、ALTER TABLE6、有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。
其中S#是学生号,SNAME是学生姓名,SEX是性别,C#是课程号,CNAME是课程名称。
要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。
这里的WHERE子句的内容是()。
A、S、S# = SC、S# and C、C# = SC、C# and SEX=’男’and CNAME=’数据库’B、S、S# = SC、S# and C、C# = SC、C# and SEX in’男’and CNAME in’数据库’C、SEX ’男’and CNAME ’数据库’D、S、SEX=’男’and CNAME=’数据库’7、在数据库技术中,NULL是指()。
A、0B、空格C、无任何值D、空字符串8、SQL语言中,删除一个视图所用的动词是()。
A、DELETEB、DROPC、CLEARD、REMOVE9、若要在一个查询中联接3个表,则需要()个联接条件。
A、1B、2C、3D、不确定10、假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC (S#,C#,GRADE)。
要查询选修“Computer”课的男生姓名,将涉及到关系()A、SB、S,SCC、C,SCD、S,C,SC11、若要在一个等值连接查询中联接N个表,则需要()个联接条件。
A、N- 1B、NC、N+1D、不确定12、对由SELECT--FROM—WHERE—GROUP--ORDER组成的SQL语句,其在被DBMS处理时,各子句的执行次序为()。
第三章关系数据库标准语言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中一个关系就对应一个表。
精心整理第3章关系数据库标准语言SQL一.单项选择题1.SQL语言是▁▁▁▁▁的语言,易学习。
A.过程化B非过程化C.格式化D导航式B2.SQL语言是▁▁▁▁▁语言。
A.层次数据库B.网络数据库C.关系数据库D非数据库3.SQL语言具有▁▁▁▁▁的功能。
A.关系规范化、数据操纵、数据控制BCC4.A.5AC6.A.7A.第8S(S#8A.B.C.D.9.检索选修课程“C2”的学生中成绩最高的学生的学号。
正确的SELECT语句是▁▁D▁▁。
A.SELECTS#FORMSCWHEREC#=“C2”ANDGRADE>=(SELECTGRADEFORMSCWHEREC#=“C2”)B.SELECTS#FORMSCWHEREC#=“C2”ANDGRADEIN(SELECTGRADEFORMSCWHEREC#=“C2”)C.SELECTS#FORMSCWHEREC#=“C2”ANDGRADENOTIN(SELECTGRADEFORMSCWHEREC#=“C2”)D.SELECTS#FORMSCWHEREC#=“C2”ANDGRADE>=ALL(SELECTGRADEFORMSCWHEREC#=“C2”)10.检索学生姓名及其所选修课程号和成绩。
正确的SELECT语句是▁▁▁C▁▁。
SELECTS.SN,SC.C#,SC.GRADEFROMSWHERES.S#=SC.S#B.SELECTS.SN,SC.C#,SC.GRADEFROMSWHERES.S#=SC.GRADEC.SELECTS.SN,SC.C#,SC.GRADEFROMS,SCWHERES.S#=SC.S#D.SELECTS.SN,SC.C#,SC.GRADEFROMS.SC11.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT语句是▁B▁。
A.12A.13ABCDB14SEXCAGENA.(C.B1.3.视图是一个虚表,它是从▁▁▁中导出的表。
第三单元关系数据库标准语言—SQL学号: 姓名: 成绩:一、选择题1.SQL语言是____的语言,易学习A、过程化B、非过程化C、格式化D、导航式2.SQL语言是____语言。
A、层次数据库B、网络数据库C、关系数据库D、非数据库3..SQL语言具有____的功能。
A、关系规范化、数据操纵、数据控制B、数据定义、数据操纵、数据控制C、数据定义、关系规范化、数据控制D、数据定义、关系规范化、数据操纵4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDA TE和DELETE,最重要的,也是使用最频繁的语句是____。
A、INSERTB、SELECTC、UPDA TE;D、DELETE5.SQL语言具有两种使用方式,分别称为交互式SQL和____。
A、提示式SQLB、多用户SQLC、嵌入式SQLD、解释式SQL6.SQL语言中,实现数据检索的语句是____。
A、INSERTB、SELECTC、UPDA TED、DELETE7. 下列SQL语句中,修改表结构的是____。
A、CREATEB、ALTERC、UPDA TED、INSERT8.SQL为用户授权的命令是。
A.GRANT B. REVOKE C. SELECT D. PUT9.SQL收回用户权力的命令是。
A.GRANT B. REVOKE C. SELECT D. PUT10.SQL规定具有执行授权和收回权力命令的用户是。
A.只能是该数据库(表)的使用者 B. 只能是该数据库(表)的建立者C.只能是DBA D. 只能是DBA和该数据库(表)的建立者11.结构化查询语言SQL 。
A.是一种自含式语言 B. 是一种嵌入式语言C.既是自含式语言又是嵌入式语言 D. 以上说法都不对12. 以下关于SQL的叙述中,哪个不是SQL的特点。
A.综合统一,即集DDL、DML、DCL等多种功能于一体B.高度过程化C.面向集合的操作方式D.提供交互式和嵌入式两种使用方式13.基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#, SN, SEX, AGE, DEPT)C(C#, CN)SC(S#, C#, GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE.为成绩。
数据库第三章关系数据库标准语言SQL第三章关系数据库标准语言SQL习题1.试述SQL语言的特点。
2.试述SQL的定义功能。
3.用SQL语句建立第二章习题5中的4个表。
4.针对上题中建立的4个表试用SQL语言完成第二章习题5中的查询。
5.针对习题3中的4个表试用SQL语言完成下列各项操作:(1)找出所有供应商的姓名和所在城市。
(2)找出所有零件名称、颜色、重量。
(3)找出使用供应商SI所供应零件的工程号码。
(4)找出工程项目J2使用的各种零件的名称及其数量。
(5)找出上海厂商供应的所有零件号码。
(6)找出使用上海产的零件的工程名称。
(7)找出没有使用天津产的零件的工程号码。
(8)把全部红色零件的颜色改成蓝色。
(9)由S5供给J4的零件P6改为由S3供应,请做必要的修改。
(10)从供应商关系中见风删除S2的记录,并从供应情况关系中删除相应的记录。
6.什么是基本表?什么是视图?两者的区别和联系是什么?7.试述视图的优点。
8.所有的视图是否都可以更新?为什么?9.哪类视图是可以更新的?哪类视图是不可以更新的?各举一例说明。
10.试述某个你熟悉的实际系统中对视图更新的规定。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
12.针对习题3建立的表,用SQL语言完成以下各项操作:(1)把对表S的INSERT权限授予用户张勇,并允许他在将此权限授予其他用户。
(2)把查询SPJ表和修改QTY属性的权限授给用户李天明。
13.在嵌入式SQL中是如何区分SQL语句和主语言语句的。
14.在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通信的?15.在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?参考答案1.答:(1)综合统一。
第三章关系数据库标准语言SQL主要内容:✧SQL的基本概念✧数据定义✧数据查询✧数据更新✧视图3.1 SQL 概述SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言,SQL 是一个通用的、功能极强的关系数据库语言。
决大部分数据库管理系统都支持SQL,许多软件厂商对SQL基本命令集还进行了扩充和修改。
大多数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。
SQL已成为数据库领域中的主流语言。
3.1.1SQL的产生和发展1974 提出并实现1986 ANSI的数据库委员会批准作为关系数据库语言的美国标准。
公布了标准文本。
1987 ISO也通过这一标准。
标准逐步发展。
3.1.2SQL的特点1.综合统一SQL集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)的功能于一体,语言风格统一,可以独立完成数据库生命令周期中的全部活动,包括:✧定义关系模式,插入数据,建立数据库;✧对数据库中的数据进行查询和更新;✧数据库重构和维护;✧数据库安全性、完整性控制等。
有了这些功能,就为数据库应用系统的开发提供了良好的环境(通过分层开发来解释)。
特别是在数据库系统投入运行后,还可以根据需要随进地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩展性。
关系数据库数据结构的单一性带来数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作符。
2.高度非过程化非关系数据模型的数据操纵语言是“面向过程”,必须制定存取路径,指明“怎么做”;SQL只要提出“做什么”,无需指明“怎么做”,无须了解存取路径。
存取路径的选择以及SQL的操作过程由系统自动完成。
这样就减轻了用户负担,有利于提高数据独立性。
3.面向集合的操作方式非关系数据模型采用面向记录的操作方式,操作对象是一条记录;SQL采用集合操作方式,操作对象、查找结果是元组的集合,一次插入、删除、更新操作的对象可以是元组的集合。
4.以同一种语法结构提供多种使用方式SQL是独立的语言,能够独立地用于联机交互的使用方式。
SQL又是嵌入式语言,SQL能够嵌入到高级语言(例如C,C++,Java,.NET)程序中,供程序员设计程序时使用。
两种方式下,SQL的语法结构基本上是一致的,提供了极大的灵活性与方便性。
5.语言简洁,易学易用SQL功能极强,但语言十分简洁,完成核心功能只用了9个动词,并且接近英语口语。
(见P81表)。
3.1.3SQL与三模式结构1.关系数据库的模式结构RDBMS支持关系数据库的三级模式结构。
(见P81图)。
外模式对应于视图和部分基本表;模式对应于基本表;内模式对应于存储文件。
基本表是本身独立存在的表,一个关系对应一个基本表;一个或多个基本表对应一个存储文件;一个表可有若干索引,索引也存放在存储文件中。
存储文件的逻辑结构组成了关系数据库的内模式。
存储文件的物理结构对用户是透明的。
2.SQL对关系数据库模式的支持用户可以用SQL对基本表和视图进行查询或其它操作。
3.2学生-课程数据库分析学生课程数据库,分析基本表,属性,主码,外码等。
3.3数据定义SQL的数据定义功能有三个操作,分别是创建(CREATE)、删除(DROP)和修改(ALTER)。
主要包括模式定义、表定义、视图定义和索引定义(见p83表)。
SQL通常不提供修改模式、视图、索引的操作。
用户如果想修改这些对象,只要先将它们删除掉,然后再重新创建。
3.3.1模式的创建与删除1 什么是模式定义模式实际上定义了一个命名空间,在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。
(Oracle中对模式的解释:模式是一个命了名的对象的集合,对象可以是表、视图、索引、存储过程、触发器等。
一个用户被创建时,一个与之对应的模式也被创建;一个用户只能与一个模式相关;用户名与模式经常互换。
)2 定义模式格式1:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>格式2:CREATE SCHEMA <模式名>AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]说明:1)如果没有指定<模式名>,那么<模式名>隐含为<用户名>。
2)用户可以在创建模式的同时在这个模式中创建基本表、视图,也可以授权。
例1:定义一个学生-课程模式S-T。
CREATE SCHEMA “S-T” AUTHORIZATION WANG;例2:CREATE SCHEMA AUTHORIZATION W ANG;例3:CREATE SCHEMA TEST AUTHORIZATION ZHANGCREATE TABLE TAB1(COL1 SMALLINT,COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3),COL5 DECIMAL(5,2));3 删除模式格式:DROP SCHEMA <模式名> <CASCADE | RESTRICT>说明:1)CASCADE和RESTRICT两者必选其一。
2)CASCADE(级联),删除模式的同时把该模式中所有的数据库对象全部删除。
3)RESTRICT(限制),如果该模式中已定义了数据库对象,则拒绝该删除语句的执行。
当该模式中没有任何下属的对象时才能执行。
例:DROP SCHEMA ZHANG CASCADE;3.3.2基本表的创建、删除与修改1 数据类型关系模型中一个很重要的概念是域。
每一个属性来自一个域,它的取值必须是域中的值。
在SQL中域的概念用数据类型来实现。
定义表的各个属性时需要指明其数据类型及长度。
SQL提供了一些主要数据类型,见p86表。
不同的RDBMS中支持的数据类型不完全相同。
一个属性选用哪种数据类型,长度取多少要根据实际情况来决定,一般要从两个方面来考虑:一是取值范围,二是要做哪些运算。
(举例说明:1 字符串、数值;2 定长字符串、变长字符串;3 整数、实数;4 日期类型)2 定义基本表主要完成:定义表名;定义表结构;定义完整性约束。
格式:CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ][,<列名> <数据类型>[ <列级完整性约束条件>] ]…[,<表级完整性约束条件> ]);说明:1)<表名>:所要定义的基本表的名字,同一个模式中不能重名。
2)<列名>:组成该表的各个属性(列,字段)名,同一个表中不能重名。
3)<列级完整性约束条件>:涉及该属性列的完整性约束条件,也可以在“表级完整性约束条件”处定义。
4)<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件。
5)用户操作表中数据时,由RDBMS自动检查是否违背完整性约束条件。
6)多个列之间、多个表级完整性约束条件之间用逗号分开。
7)右圆括号前一项后面不加逗号。
例1:建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。
其中学号不能为空,是主键,并且姓名取值也唯一。
CREATE TABLE Student( Sno CHAR(12) PRIMARY KEY,Sname V ARCHAR(20) UNIQUE NOT NULL,Ssex CHAR(2),Sage INT,Sdept CHAR(15));例2:建立一个课程表Course。
CREATE TABLE Course( Cno CHAR(4) PRIMARY KEY,Cname V ARCHAR(30) UNIQUE NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno));例3:建立一个学生选课表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
CREATE TABLE SC( Sno CHAR(12),Cno CHAR(4),Grade INT,PRIMARY KEY (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (Cno) REFERENCES Course(Cno));3 模式与表每一个基本表都属于某一个模式,一个模式包含多个基本表,定义基本表时有三种方法确定它所属的模式:✧在表名中明确地给出模式名,Create table “S-T”.Student(......);✧在创建模式语句中同时创建表。
✧设置所属的模式,这样在创建表时表名中不必给出模式名。
4 修改基本表随着应用环境和应用需求的变化,有时需要修改已经建立的基本表。
格式:ALTER TABLE <表名>[ ADD <新列名> <数据类型> [ 完整性约束] ][ DROP <完整性约束名> ][ ALTER COLUMN <列名> <数据类型> ];说明:ADD子句:增加新列或新的完整性约束条件DROP子句:删除指定的完整性约束条件或删除列(SQL Server:CONSTRAINT constraint_name;COLUMN columnname)。
ALTER COLUMN子句:用于修改原有的列定义,包括修改列名和数据类型。
例1:向Student表增加“入学时间”列,其数据类型为日期型。
ALTER TABLE Student ADD S-entrance DA TE;不论基本表中原来是否已有数据,新增加的列一律为空值。
例2:将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student ALTER COLUMN Sage INT;例3:增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);5 删除基本表当某个基本表不再需要时,可删除它。
格式:DROP TABLE <表名>[RESTRICT|CASCADE]说明:1)若选择RESTRICT,则该表的删除是有限制条件的。
要删除的基本表不能被其它表的约束所引用(如CHECK,FOREIGN KEY等约束),不能有视图,不能有触发器等;若选择CASCADE,则该表的删除没有限制条件,删除基本表的同时,相关的依赖对象也将一起被删除。