当前位置:文档之家› 第4章结构化查询语言—SQL.

第4章结构化查询语言—SQL.

第4章结构化查询语言—SQL.
第4章结构化查询语言—SQL.

第4章结构化查询语言—SQL

SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:

1.综合统一

2.高度非过程化

3.面向集合的操作方式

4.以同一种语法结构提供两种使用方式

SQL语言既是自含式语言,又是嵌入式语言。自含和嵌入的含义。

4.1数据库模式的建立和删除

4.1.1建立数据库模式

建立一个新数据库

create database 数据库名

4.1.2删除数据库模式

撤消一个数据库

drop database 数据库名

4.2 表结构的建立、修改和删除

4.1建立表结构

SQL语言使用CREATE TABLE语句定义基本表,其一般格式如下:CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束] [,<列名><数据类型>[列级完整性约束]]…

[,<表级完整性约束>]);

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

注意:定义表时每一个定义语句之间用逗号分隔,最后一条语句不用逗号。每个SQL语句以分号结束。

例:

CREATE TABLE C(cno char(4) not null,

cname char(10) not null,

PRIMARY KEY(CNO) );

CREATE TABLE SC(SNO CHAR(4) NOT NULL,

CNO CHAR(4) NOT NULL,

GRADE SMALLINT,

PRIMARY KEY(SNO,CNO) ,

FOREIGN KEY(SNO) REFERENCES S(SNO) ,

FOREIGN KEY(CNO) REFERENCES C(CNO) ) ;

4.2.2修改表结构

修改基本表

SQL语言用ALTER TABLE语句修改基本表,其一般格式为:ALTER TABLE <表名>

[ADD <新列名><数据类型>[完整性约束]]

[DROP <完整性约束名>]

[MODIFY <列名><数据类型>];

ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除制定的完整性约束条件,MODIFY子句用于修改原有的列定义,包括修改列名和数据类型。简单介绍教材上的例子。

4.2.3删除表结构

当某个基本表不再需要时,可以用DROP TABLE删除,其格式为:

DROP TABLE <表名>

基本表一旦删除,表中的数据、此表上建立的索引和视图都将自动被删除掉。因此执行删除基本表的操作一定要格外小心。

4.3 表内容的插入、修改和删除

4.3.1插入记录

命令

insert into 表名[(列名[,列名]…]

values (值[,值]…)

插入一条指定好值的元组

insert into 表名[(列名[,列名]…]

(子查询)

插入子查询结果中的若干条元组

?示例

–insert into PROF

values ( P123, “王明”, 35, D08, 498 )

–insert into PROF (PNO, PNAME, DNO)

values ( P123, “王明”, D08 )

4.3.2修改操作

?命令

update 表名

set 列名= 表达式| 子查询

列名= [,表达式| 子查询]…

[where 条件表达式]

指定对哪些列进行更新,以及更新后的值是什么

?示例

–老师工资上调5%

update PROF

set SAL = SAL * 1.05

4.3.3删除记录

命令

delete from表名[where条件表达式]

从表中删除符合条件的元组,如果没有where语句,则删除所有元组

?示例

–清除所有选课记录

delete from SC

–删除王明老师所有的任课记录

delete from PC

where PNO in

(select PNO

from PROF

where PNAME = “王明”)

4.4 视图的建立、修改和删除

4.4.1建立视图

?定义视图

create view view_name[(列名[,列名] …)]

as (查询表达式)

[with check option]

视图的属性名缺省为子查询结果中的属性名,也可以显式指明

with check option指明当对视图进行insert,update时,要检查是否满足视图定义中的条件

4.4.2修改视图内容

UPDATE [<数据库名>.<所有者名>.]<视图名>SET<列名>=<表达式>,...[FROM<源表名>,...][WHERE<逻辑表达式>]

4.4.2修改视图定义

ALTER VIEW <视图名>(<列名>,...)AS

4.4.4删除视图

?撤消视图

drop view view_name

4.5 SQL查询

4.5.1 SELECT语句格式

SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]…

FROM<表名或视图名>[,<表名或视图名>]…

[WHERE <条件表达式>]

[GROUP BY <列名1> [HAVING <条件表达式>]]

[ORDER BY <列名2> [ASC|DESC]];

整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT 子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一组。通常会在每组中作用集函数。如果GROUP子句带HAVING 短语,则只有满足指定条件的组才予输出。如果有ORDER BY子句,则结果表还要按<列名2>的值的升序或降序排序。

4.5.2 SELECT选项

?目标列形式

可以为列名,* ,算术表达式,聚集函数

–“*”:表示“所有的属性”

给出所有老师的信息

SELECT*

FROM P ROF

–带+,-,*,/的算术表达式

给出所有老师的姓名及税后工资额

SELECT PNAME,SAL 0.95

FROM PROF

?语法约束

缺省为保留重复元组,也可用关键字ALL显式指明。若要去掉重复元组,可用关键字DISTINCT或UNIQUE指明

?示例

找出所有选修课程的学生

SELECT DISTINCT SNO

FROM SC

4.5.3 FROM 选项

?说明

–FROM子句列出查询的对象表

–当目标列取自多个表时,在不混淆的情况下可以不用显式指明来自哪个关系

?示例

–例:找出工资低于500的职工的姓名、工资、系别SELECT PNAME , SAL , DNAME

FROM P ROF , DEPT

WHERE SAL < 500

AND PROF.DNO = DEPT.DNO

–例:列出教授“哲学”课程的老师的教工号及姓名

SELECT PROF. PNO , PNAME

FROM PROF , PC , COURSE

WHERE PROF.PNO = PC.PNO

AND https://www.doczj.com/doc/d213898066.html,O = https://www.doczj.com/doc/d213898066.html,O

AND https://www.doczj.com/doc/d213898066.html,AME = “哲学”

4.5.4 WHERE选项

语法成分

-比较运算符

<、<=、>、>=、=、<>

-逻辑运算符

AND,OR,NOT

-BETWEEN条件

判断表达式的值是否在某范围内

?示例

–列出工资在500~800之间的老师姓名SELECT PNAME

FROM PROF

WHERE SAL BETWEEN 500 AND 800

4.5.5BROUP BY 选项

?命令

ORDER BY 列名[ASC | DESC]

?示例

–按系名升序列出老师姓名,所在系名,同一系中老师按姓名降序排列

SELECT DNAME,PNAME

FROM PROF,DEPT

WHERE PROF.DNO = DEPT.DNO

ORDER BY DNAME ASC,PNAME DESC

4.5.6HAVING 选项

分组命令

GROUP BY 列名[HAVING 条件表达式]

GROUP BY将表中的元组按指定列上值相等的原则分组,然后在每一分组上使用聚集函数,得到单一值

HAVING则对分组进行选择,只将聚集函数作用到满足条件的分组上

4.5.7 ORDER BY 选项

[ORDER BY <列名> [ASC|DESC]];

4.5.8 INTO 选项

SELECT语句中使用INTO选项可以将查询结果写进新表,新表结构与SELECT语句选择列表中的字段相同。例如:

SELECT FIELDS AS KEYSTRING,

COUNT(FIELDS) AS HITCOUNT

INTO #TEMP/*INTO*/

FROM ENGLISHBOOKS..KEYS WHERE

( KEYS LIKE '%鲁迅%' )

AND

FRM LIKE '24_*A'

AND (

( MARC_ID >= '0000000001' AND MARC_ID <= '9999999999' )

)

GROUP BY FIELDS

通过子句INTO #TEMP SQL SERVER将SELECT查询结果和COUNT的统计结果写入临时表TEMP中,临时表TEMP结构包含KEYSTRING和HITCOUNT两个字段。在以后用到这些信息时,就可以从TEMP表中读取。

自考 管理系统中计算机应用 孟海鹰 精讲班 第四章数据库系统

管理系统中计算机 应用 主讲老师:孟海鹰 第四章数据库系统 主要内容 数据库和数据模型的基本概念★ 关系模型的结构、完整性、关系运算及规范化数据库的安全性 SQL语言的基本概念和基本操作★ 4.1数据库系统概述 4.1.1数据模型 4.1.2关系模型与关系数据库 4.1.3数据规范化 4.1.4数据库的安全性

概念模型 以人的观点模拟物质本身的模型 也称为信息模型 是用户和数据库设计人员交流的语言 独立于任何数据库管理系统,但是又很容易向数据库管理系统所支持的逻辑模型转换概念模型常用术语 1. 实体:指客观存在,并且可以互相区别的事物。 如一个人,一本书。 2. 属性:实体具有的某一特性。 如人的年龄、身高、体重等。 3. 码(实体标识符):能将一个实体与其他实体区别开来的属性或属性组。 如人的身份证号码、考生的准考证号码和课程代码等。 3. 域:属性的取值范围称为该属性的域。例如年龄的域为小于120的整数。 4. 实体型:用实体名及其属性名集合来抽象和刻化同类实体称为实体型。 例如:学生(学号,姓名,性别,成绩)就是一个实体型。 5. 实体集:性质相同的同类实体的集合 如所有男生,所有吉普车等。 7. 联系:实体内部属性之间的联系和实体型之间的联系。可以分为三类: (1)一对一联系(1:1) (2)一对多联系(1:n) (3)多对多联系(m:n) 实体间的联系有两种: (1)不同实体集的实体间联系. 一对一联系(1:1)、一对多联系(1:N)、多对多联系(M:N)

关系有三种类型: 一对一(1:1) 一对多(1:n) 多对多(m:n) (2)相同实体集的实体间联系

oracle 第四章PLSQL习题及答案

习题四 一、选择题 1.关于PL/SQL程序设计语言的优点,说法不正确的是() A.PL/SQL是结构化查询语言,与SQL语言没有区别 B.PL/SQL是集过程化功能和查询功能为一体的语言 C.PL/SQL程序设计语言可以进行错误处理 D.PL/SQL程序设计语言可以定义变量,使用控制结构 2.关于在PL/SQL程序设计中使用输出语句,说法不正确的是() A.使用输出语句之前,需要激活系统包DBMS_OUTPUT B.输出语句为DBMS_OUTPUT系统包中的PUT_LINE函数 C.激活输出包的语法为SET serveroutput ON D.PL/SQL中行注释用符号"//" 3.下列选项中,()是PL/SQL块的必选项。 A.DECLARE C. EXCEPTION D. SELECT B.BEGIN 4.在PL/SQL块中不能直接嵌人( A. SELECT B.INSERT C. CREATE TABLE https://www.doczj.com/doc/d213898066.html,MIT 5.下列变量定义方法不正确的是()。 A.al VARCHAR2(10);a2 al%TYPE; B. a3 student.sno%TYPE; C. a4 student%ROWTYPE; D.b2 bl%TYPE;b1 VARCHAR2(10); 6.下列记录类型的变量有()个分变量。 CURSOR s 1 IS SELECT sno, sname, age FROM student; v_c s_18 ROWTYPE; A.1 B.2 C.3 D.4 7.在PL/SQL中,非法的标识符是() A. table $123 B.123 table C.table123 D.Table_123 8.判断IF语句∶ IF v_num<5THEN v_example:= 1; ELSIF v_num<10 THEN v_example:= 2; ELSIF v_num>20 THEN v_example:= 3; ELSIF v_num>35 THEN v_example:=4;

第4章结构化查询语言SQL

第4章结构化查询语言SQL 学习目标 在本章中将学习: l SQL语言的特点及功能 l SQL的数据查询功能 l SQL的数据操作功能 l SQL的数据定义功能 4.1SQL语言概述 SQL全称是“结构化查询语言(Structured Query Language)”,最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual FoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。 4.1.1 SQL语言的特点 1.综合统一 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境。在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一。 2.非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。 3.面向集合的操作方式 SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 4.一种语法结构有两种使用方式 SQL语言既是自含式语言,又是嵌入式语言。且在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。 其中: (1)自含式语言:它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL 命令对数据库进行操作。 (2)嵌入式语言:SQL语句能够嵌入到高级语言(例如:VC、VB、Delphi、Java\FORTRAN)程序中,供程序员设计程序时使用。 5.语言简捷 SQL语言功能极强,但又十分简洁,只用9个动词即可完成对数据的操纵、数据的定义及数据的控制等功能。

第四章结构化查询语言SQL单元练习题

一填空题 1. 查询命令SELECT * FROM 成绩,其中”*”表示,查询命令SELECT * FROM 学籍,成绩,”*”表示. 2. 在SQL-SELECT命令中,将查询结果存入数据表的短语是. 3. 在SQL-SELECT命令的ORDER BY字句中,desc表示按输出,asc表示按输出. 4. 在SQL-SELECT命令中可以使用一些统计函数,这些函数包括, ,A VG(),MAX()和MIN()等. 5. 用来创建表结构的sql命令是. 6. 用来向表中输入记录的sql命令是. 7. 删除表中记录的sql命令是,从数据库中删除表的sql命令是. 8.用来修改表结构的sql命令是,修改记录的sql命令是. 9. 删除”考生”表中的”年龄”字段,使用sql语句: TABLE 考生年龄 10. 使用CREA TE TABLE 命令定义表结构时,要设置字段的有效性规则,使用选项,设置字段默认值使用 选项,设置主关键字段使用选项. 二选择题 1.在SQL-SELECT查询时,使用WHERE字句指出的是( ). A. 查询目标 B. 查询结果 C. 查询条件 D. 查询视图 2.下列有关HA VING字句描述错误的是( ). A.HA VING子句必须与GROUP BY 子句同时使用,不能单独使用. B. 使用HA VING子句的同时不能使用WHERE子句. C. 使用HA VING子句的同时可以使用WHERE子句. D. 使用HA VING子句的作用是限定分组的条件. 3.SQL-SELECT查询的HA VING子句通常出现在短语( )中. A. ORDEY BY B. GROUP BY C. SORT D. INDEX 4. SQL-SELECT查询中的条件短语是( ). A. WHERE B. WHILE C. FOR D. CONDITION 5. SQL-INSERT命令的功能是( ). A. 在表头插入一条记录 B. 在表尾插入一条记录 C. 在表中制定位置插入一条记录 D. 在表中制定位置插入若干条记录 6. SQL-UPDA TE命令的功能是( ). A.数据定义 B. 数据查询 C.更新表中字段的属性 D. 更新表中字段的内容 7. 假定”商品”表中有6条记录,数量字段的值分别为100、200、100、300、100、200,查询命令SELECT SUM(数量),SUM(DISTINCT 数量) FROM 商品,则命令中的函数SUM(数量)和SUM(DISTINCT 数量)的值分别是( ). A. 1000,1000 B. 600,600 C. 600,1000 D. 1000,600 8. 与查询命令”SELECT 姓名,专业FROM 学籍”等价的命令是( ). A. LIST OFF FIELDS 姓名,专业 B. DISPLAY FIELDS 姓名,专业 C. BROWSE FIELDS 姓名,专业 D. CHANGE FIELDS 姓名,专业 9. 在SQL-SELECT查询命令中,能够实现数据表之间关联的选项是( ). A. HA VING B. GROUP BY C. WHERE D. ORDER BY 10. 对数据表STOCK.DBF执行下列SQL语句后的结果是( ). SELECT * FROM STOCK INTO DBF STOCK ORDER BY 单价 A.系统将会提示出错信息. B.会生成一个按单价升序排列的表文件,覆盖原来的stock.dbf文件. C.会生成一个按单价降序排列的表文件,覆盖原来的stock.dbf文件. D.不会生成排序文件,只能在屏幕上显示一个按”单价”排序的结果. 11. 有如下SQL-SELECT 语句: SELECT * FROM STOCK WHERE 单价BETWEEN 8.00 AND 20.00

电大《数据库基础与应用》教材第4章答案

电大《数据库基础与应用》教材第4章答案 第四章结构化查询语言--SQL 一、填空题 1. 视图、基本表 2. 非过程化、集合 3. KUCUN、LIU 4. 列级、表级 5. 主码、单值、外码、检查 6. primary key、foreign key 7. 建立、修改、删除 、多行(多值) 8. 单行(单值) 9. 插入、修改、删除 10. 表、建立 11. 修改、查找 12. 基本表、视图 13. 没有影响、有影响 14. create view、update、drop view 15. 投影、连接、选择 16.group by、order by 17.inner join、left join、right join 二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条S QL 查询语句写出 相应的功能。 1. 从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。 2. 从商品库中查询出所有商品的不同品牌。 3. 从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。 4. 从教学库中查询出每门课程被选修的学生数。 5. 从教学库中查询出只选修了一门课程的全部学生。 6. 从教学库中查询出学生号为@s1 的学生所选修、而学生号为@s2 的学生没有选修的全部课程。 7. 从教学库中查询出所有已被学生选修的课程。 8. 从教学库中查询出同时选修了3门课程的全部学生。 9. 从教学库中查询出每个专业的学生人数,并按人数多少降序排列。 10. 从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。

三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查询语句。 1. select 商品表1.商品代号,单价,数量,产地 from 商品表1,商品表2 where 商品表1.商品代号=商品表2.商品代号 2. select * from 商品表1 where 数量 between 10 and 20 (或w here 数量>=10 and 数量<=20) 3. select 分类名,avg(数量) as 平均数量

第四章课后作业

第四章数据库系统练习题 一选择题 1.数据库的核心和基础是() A.数据模型B.概念模型C.关系模型D.格式模型 2.从人对现实世界的认识出发,将具体事物抽象为便于理解和研究的模型,称为()A.概念模型B.逻辑模型C.物理模型D.层次模型 3.以人的观点模拟现实世界的模型是() A.概念模型B.逻辑模型C.物理模型D.数据模型 4.在概念数据模型中,属性的取值范围称为该属性的() A.实体B.联系C.域D.码 5.在数据库系统中,把可以相互区别的客观事物称为() A.文件B.字段C.实体D.关键码 6.在一般情况下,“商店”与“商品”两个实体的联系是( ) A.1∶1B.m∶n C.1∶n D.n∶1 7.在一般情况下,“学生”与“专业”两个实体的联系是( ) A.1∶1B.m∶n C.1∶n D.n∶1 8.E-R图是数据库的() A.概念数据模型B.物理数据模型 C.关系结构模型D.逻辑数据模型 9.E-R图中的三要素是实体、属性和() A.代码B.模式C.联系D.关系 10.E-R图中实体的表示符号是() A B C D 11.在E -R图中使用的4种基本符号是() 12.数据的逻辑模型通常由三部分构成,它们是数据结构、数据操作和() A.集合运算B.实体联系C.关系模式D.数据完整性约束 13.以数据结构的类型划分,数据库系统可以分为( ) A.集中型和关系型B.集中型和分布型 C.关系型和层次型D.分布型和网状型 14.关系数据库系统中,每个关系即是一个() A.元组B.字段C.实体D.属性 15.构成一个关系数据库的关系只能是() A.一个B.二个C.三个D.一个或多个 16.有关系S(学号,性别,年龄,籍贯),能作为主码的属性是()

数据库基础及其应用第四章课后作业

第四章结构化查询语言—SQL 一、填空题 1.数据库系统的外模式在SQL中称为(视图),它由(基本表)产生出来。 2.SQL是高度(非过程化)和面向(集合)操作的语言。 3.由create schema KUCUN authorization LIU命令建立的一个数据库为(KUCUN),所有者为(LIU)。 4.在SQL中,若一个完整性约束只涉及到一个列,则该完整性约束既可以作为(列级)完整性约束定义,也可以作为(表级)完整性约束定义,两者只选其一。 5.在列级和表级完整性约束中同时存在的约束分别为(主码)、(单值)、(外码)和(检查)等四种约束。 6.在SQL中,主码约束的关键字为(primary key),外码约束的关键字为(foreign key)。 7.在SQL中,create table、alter table和drop table命令分别为在数据库中(建立)、(修改)和(删除)基本表结构的命令。 8.向基本表中插入数据有两种命令格式,一种称为(单行)插入格式,另一种称为(多行)插入格式。 9.在SQL中,insert、update和delete分别为对基本表进行(插入)、(修改)和(删除)记录操作的命令。 10.在SQL中,每个视图中的列可以来自不同的(表),它是在原有表的基础上(建立)的逻辑意义上的新关系。 11.当建立一个视图后,通常只对它做(修改)和(查找)这两种操作。 12.在(基本表)中,通常不应包括由计算可以得到的属性,而在(视图)中,为了用户查询数据的方便,则需要包含它们。 13.当建立和删除一个视图时,对相应的基本表(没有影响),当修改一个视图时,则对相应的基本表(有影响)。 14.在SQL中,建立视图、修改视图内容和删除视图的命令分别为(create view)、(update)和(drop view)。 15.在SQL新版的查询语句中,select选项实现(投影)运算,from选项实现(连接)运算,where 选项实现(选择)运算。 16.在SQL的查询语句中,(group by)选项实现分组统计功能,(order by)选项实现对结果表的排序功能。 17.在新版的SQL中,表之间的连接共有三种方式,对应的关键字分别为(inner join)、(left join)和(right join)。 18.在实际的数据库管理系统中,对数据库的操作方式有(命令交互)、(程序执行)和(窗口界面)三种。 19.在SQL中建立和删除数据库模式的命令分别为(create schema)和(dropschema)。 20.在SQL中完整性约束分为(列级)完整性约束和(表级)完整性约束两个方面。 21.在SQL中,列级完整性约束分为(6)各情况,表级完整性约束分为(4)种情况。 22.在列级和表级完整性约束中同时存在的约束分别为(主码)(单值)(外码)和(检查)四种约束。 23.在(列级)完整性约束中,每个约束只能涉及到一个属性;在(表级)完整性约束中,每个约束可以涉及多个属性。 24.在SQL中,单值约束的关键字为(Unique),检查约束的关键字为(check)。 25.向基本表插入数据时,可以在命令中例用关键字(Values)引出记录值,或者在命令中通过(Select)子句得到一个结果表。

4结构化查询语言SQL习题与答案

第四章结构化查询语言SQL 一、选择题 1. 在SQL包含的功能中,最重要的功能是_______。 A) 数据查询B) 数据操纵C) 数据定义D) 数据控制 2. 使用SQL语言有两种方式,它们是_______。 A) 菜单式和交互式B) 嵌入式和程序式 C) 交互式和嵌入式D) 命令式和解释式 3. SQL的全部功能可以用9个动词概括,其中动词INSERT是属于下列__ ____功能。 A) 数据查询B) 数据操纵C) 数据定义D) 数据控制 4. SQL语言支持数据库的三级模式结构,其中模式对应于______。 A) 存储文件B) 视图C) 基本表D) 视图和基本表 5. 在创建数据表时,可以给字段规定NULL或NOT NULL值,NULL值的含义是______。 A) 0 B) 空格C) NULL D) 不确定 6. 在SQL的ALTER语句中,用于删除字段的子句是______。 A) ALTER B) DELETE C) DROP D) MODIFY 7. SQL中的INSERT语句可以用于______。 A) 插入一条记录B) 插入一个字段 C) 插入一个索引D) 插入一个表 8. 下列描述错误的是______。 A)用INSERT-SQL语句可以插入一条记录 B)用INSERT-SQL语句可以插入多条记录 C)使用INSERT-SQL语句可以插入记录的部分数据 D)使用INSERT-SQL语句插入记录时列名的排列顺序必须与表定义时的顺序一致 9. INSERT-SQL语句中所使用的数据不能来自于______。 A) 数组B) 变量C) 查询D) 索引 10. SQL中的UPDATE语句可以用于______。 A) 更新数据表的结构B) 更新数据表的值 C) 更新索引D) 更新查询 11. 下列描述错误的是______。 A)SQL中的UPDATE语句可以修改一条记录 B)SQL中的UPDATE语句可以修改多条记录 C)SQL中的UPDATE语句可以用子查询提供要修改的值 D)SQL中的UPDATE语句可以修改子查询的结果 12. SQL中的DELETE语句可以用于______。 A) 删除数据表的结构B) 删除数据表 C) 删除数据表的记录D) 删除数据表的字段 13. 在SELECT语句中,为了在查询结果中消去重复记录,应使用________项。 A) PERCENT B) DISTINCT C) TOP N D) WITH TIES

第4章 关系数据库的结构化查询语言习题解答

第4章关系数据库的结构化查询语言 习题解答 一. 简答题 1.SQL的特点是什么? (1)一体化特点。SQL提供了一系列完整的数据定义和操纵功能,用SQL可以实现数据库生命周期中的全部活动,包括定义关系模式,录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求。 (2)高度非过程化。SQL和其它数据操作语言不同的关键是SQL为非过程语言,它允许用户依据做什么来说明操作,而不用说明怎样做,存取路径的选择和SQL语句操作的过程由系统自动完成。 (3)语言简洁,易学易用。SQL的语法很简单,语言十分简洁,完成核心功能只用了9个动词。初学者经过短期的学习就可以使用SQL进行数据库的存取等操作,易学易用是它的最大特点。 (4)统一的语法结构对待不同的工作方式。无论是联机交互使用方式,还是嵌入到高级语言中使用,其语法结构是基本一致的,这就大大改善了最终用户和程序设计人员之间的通信。 (5)面向集合的操作方式。SQL采用集合操作方式,无论是操作对象还是查询更新的结果均是元组的集合。 (6) SQL语言可以对两种基本数据结构进行操作,一种是“表”,另一种是“视图(View)”。 2.什么是基本表? 什么是视图? 两者的区别和联系是什么? 基本表是本身独立存在的表,一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。存储文件的逻辑结构组成了关系数据库的内模式。 视图是从一个或几个基本表导出的表,它本身不独立存储在数据库中,即数据库中只存储视图的定义而不存储对应的数据,因此视图是一个虚表。用户可在视图和/或基本表上定义新的视图。 基本表是实表,而视图则是虚表。用户可以用SQL语言对视图(View)和基本表(Base table)进行查询等操作,在用户观点里,视图和基本表一样都是关系。 3.视图是否都可以更新?试举例说明。 在一般情况下,只有行列子集视图才能更新,而由以下例子建立的视图不仅用到分组,而且还有avg函数,所以不能更新。 已知关系模式:学生(学号,姓名,年级,专业)、选课(学号,课号,成绩),将学生的学号、姓名及他的平均成绩定义为如下一个视图: Create view PJCJ(学号,姓名,平均成绩) As Select 学号,姓名,avg(成绩)

相关主题
文本预览
相关文档 最新文档