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

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中,下列涉及空值的操作,不正确的是()。
关系数据库标准语言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处理时,各子句的执行次序为()。
《数据库应用》全套PPT电子课件教案-第三章(关系数据库标准语言SQL)

库文件。
16
第3章 关系数据库标准语言SQL
3.3 数据查询
SQL的核心是查询。SQL的查询命令也称作SELECT命令,它 的基本形式由SELECT-FROM-WHERE查询块组成,多个查 询块可以嵌套执行。SQL查询命令格式:
DISTINCT短语的作用是去掉查询结果中的重复值.
19
第3章 关系数据库标准语言SQL
SELECT * FROM 仓库 其中“*”是通配符,表示所有属性,即字段,这里的命令 等同于:
SELECT 仓库号,城市,面积 FROM 仓库 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资 > 1210
SQL语言是当前最为成功、应用最为广泛的关 系数据库语言,其主要特点包括:
1. SQL语言非常简洁 2. 综合统一 3. 高度非过程化 4. 面向集合的操作方式 5. 以同一种语法结构提供两种使用方式
4
第3章 关系数据库标准语言SQL
3.1.2 SQL语言功能概述
SQL功能可分为四大部分:数据定义功能、数据 控制功能、数据查询功能和数据操纵功能。
21
第3章 关系数据库标准语言SQL
匹配串中可包含如下四种通配符: _(下划线):匹配任意一个字符。 %(百分号):匹配0个或多个字符。 [ ]:匹配[ ]中的任意一个字符。如[abcd]表示匹配a、b、
c和d中的任何一个。 [^]:不匹配[ ]中的任意一个字符。如[abcd]表示不匹配
a、b、c和d。
SELECT 职工号,城市 FROM 仓库,职工 WHERE ( 面积 > 400) AND
第三章 关系数据库标准语言SQL语言

第三章关系数据库标准语言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中一个关系就对应一个表。
sql 课件 第3章 关系数据库标准语言SQL

山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。
数据库系统概论(第四版)_王珊_萨师煊_chp3-1

课程表:Course(Cno,Cname,Cpno,Ccredit)
学生选课表:SC(Sno,Cno,Grade)
Student表
学 号 Sno
姓 名 Sname
性 别 Ssex
年 龄 Sage
所在系 Sdept
200215121 200215122 200215123 200515125
李勇 刘晨 王敏 张立
查询教师的姓名、职称、应发工资
查询教师的姓名、职称、应发工资 π姓名,职称,应发工资(教师⋈工资)
查询学分大于3的所有课程名称、及其对应的授课 老师姓名和老师所在的系名
查询学分大于3的所有课程名称、及其对应的授课 老师姓名和老师所在的系名 π课程名称,姓名,系名称(σ学分>3(系部⋈教师⋈ 授课⋈ 课程))
3.4.3 嵌套查询
3.4.4 集合查询
3.4.5 Select语句的一般形式
3.4.1 单表查询
查询仅涉及一个表:
一、 选择表中的若干列 二、 选择表中的若干元组 三、 ORDER BY子句 四、 聚集函数 五、 GROUP BY子句
一、 选择表中的若干列
查询指定列
男 女 女 男
20 19 18 19
CS CS MA IS
Course表
课程号 Cno
1 2 3 4 5 6 7
课程名 Cname
数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言
先行课 Cpno
5 1 6 7 6
学分 Ccredit
4 2 4 3 4 2 4
SC表
学号 Sno
语言简洁,易学易用
SQL语言的动词非常少,主要包括:
第3章:关系数据库标准语言SQL

例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,
关系数据库标准查询语言SQL

SELECT Sname, ‘Year of Birth:’, 2008-Sage ,
ISLOWER(Sdept)
FROM Student ; 结果为:
Sname ‘ Yearof Birth:’ 2008-Sage ISLOWER(Sdept)
李勇 Yearof Birth: 1986
第三章关系数据库标准查询语言sql第三章第三章关系数据库标准语言关系数据库标准语言sqlsql结构化查询语言sqlstructuredquerylanguage是一种介于关系代数与关系演算之间的语言它具有查询操纵定义和控制功能是一种通用的功能极强的标准的关系数据库语言
第三章 关系数据库标 准查询语言SQL
例4:删除关于学号必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sno);
3.删除基本表
基本格式: DROP TABLE〈表名〉
例5. 删除student表 DROP TABLE Student ;
3.2.2.建立与删除索引
1. 建立索引 基本格式: CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>[,<列名>[〈次序>]]…..); 次序:ASC,DESC 例 6: 为Student, Course, SC 3个表 建立索引,Student
2.选择表中的若干元组
1).消除重复的行 例6.查询所有选修过课的学生学号。
SELECT Sno
FROM SC ;
Sno
Cno Grade
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章关系数据库标准语言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,则该表的删除没有限制条件,删除基本表的同时,相关的依赖对象也将一起被删除。