当前位置:文档之家› 第六章数据库标准语言SQL

第六章数据库标准语言SQL

第六章数据库标准语言SQL
第六章数据库标准语言SQL

第六章关系数据库标准语言SQL

大纲要求

关系数据库标准语言SQL

1、SQL的数据定义功能:

(1)CREATE TABLE–SQL

(2)ALTER TABLE–SQL

2、SQL的数据修改功能:

(1)DELETE–SQL

(2)INSERT–SQL

(3)UPDATE–SQL

3、SQL的数据查询功能:

(1)简单查询。

(2)嵌套查询。

(3)连接查询。

内连接

外连接:左连接、右连接、完全连接

(4)分组与计算查询。

(5)集合的并运算。

知识要点

一、SQL语言的特点

1.综合统一

SQL语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数

据库应用系统开发者提供了良好的环境。

2.高度非过程化

3.语言简洁,易学易用

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

既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。二、SQL语言的基本概念

SQL语言支持关系型数据库的三级模式结构。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。

基本表是本身独立存在的表,在SQL语言中一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若干索引,索引存放在存储文件中。

存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意的。

视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库只存放在视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。

三.数据定义

数据定义语言DDL用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。由CREATE、DROP、ALTER命令组成,完成数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)。

1.定义(创建)表【格式】:

CREATE TABLE<表名>(<字段名1><数据类型>;

[(<宽度>[,<小数位数>])][完整性约束];

[NULL|NOT NULL][,<字段名2>…])

【功能】定义(也称创建)一个表。

【例1】创建一个表SC(课程成绩表),它由以下字段组成:学号(C,10);课程号(C,2)。

CREATE TABLE SC(学号C(10),课程号C(2))

LIST STRUCTURE

【例2】创建一个表STUD(学生信息表),它由以下字段组成:学号(C,10);姓名(C,8);性别(C,2);班级名(C,10);系别代号(C,2);地址(C,50);出生日期(D);是否团员(L);备注(M);照片(G)。

CREATE TABLE STUD(学号C(10),姓名C(10),性别C(2),班级名C(10),系别代号C(2),

地址C(50),出生日期D,是否团员L,备注M,照片G)

LIST STRUCTURE

2.修改表【格式】

ALTER TABLE<表名>[ADD<新字段名><数据类型>[(<宽度>[,<小数位数>])][完整性约束][NULL|NOT NULL]][DROP[完整性约束]][MODIFY<字段名><数据类型>] 【功能】修改表结构。

【说明】ADD子句用于增加指定表的字段变量名、数据类型、宽度和完整性约束条件;DROP子句用于删除指定的的完整性约束条件;MODIFY子句用于修改原有的字段变量的值。

【例】在课程成绩表SC中,增加一个成绩字段变量(N,3)。

ALTER TABLE SC ADD成绩N(3)

LIST STRUCTURE

3.删除数据库

【格式】DROP DATABASE<数据库名>

【功能】删除指定数据库的结构和数据。

【说明】谨慎使用。

4.删除表

【格式】DROP TALBE<表名>

【功能】删除指定表的结构和内容(包括在此表上建立的索引)。

【说明】如果只是想删除一个表中的所有记录,则应使用DELETE语句。

例题:

(1)SQL是______语言。

A.结构化查询

B.数据定义

C.数据操作

D.数据控制

【解析】本题考查的知识点是SQL语言的基础知识。在Visual FoxPro中,SQL是结构化查询语言。选项B,C,D说法错误,在Visual FoxPro中有数据定义语言、数据操作语言、数据控制语言。

【答案】A

(2)SQL除了具有数据查询的功能外,还有_____。

A.数据定义B.数据操纵C.数据控制D.以上答案均正确

【解析】本题考查的知识点是SQL语言的作用。在VisualFoxPro中,SQL的功能有四个:数据查询、数据定义、数据操纵、数据控制。因此正确答案为D。

【答案】D

(3)下列选项中,不属于数据定义功能的SQL语句是__________。

A.CREATE B.ALTER C.SELECT D.DROP

【解析】本题考查的知识点是SQL命令动词的作用。

选项A用来创建表;选项B用来修改表结构;选项C用来查询;选项D用来删除表文件。在Visual FoxPro中,选项A,B,D都具有数据定义功能,只有选项C具有数据查询的功能。

【答案】C

(4)SQL的核心是__________。

A.数据查询B.数据定义C.数据操纵D.数据控制

【解析】本题考查的知识点是SQL的核心。SQL作为结构化查询语言,其核心是查询。因此正确答案为A。

【答案】A

(5)SQL同其他数据操作语言不同,其关键在于_____。

A.SQL是一种过程性语言B.SQL是一种非过程性语言

C.SQL语言简练D.SQL的词汇有限

【解析】本题考查的知识点是SQL不同于其他语言的关键。SQL同其他数据操作语言不同的关键是SQL是一种非过程性语言。通过这一功能用户只需说明做什么,而不用说明怎么做,不用了解数据存储的格式及SQL命令的内部执行过程,就可以方便地对数据库进行操作。

选项A的说法错误,选项C和D是SQL语言的特点,但不是SQL语言同其他数据操作语言不同的关键。

【答案】B

(6)建立表结构的SQL命令是____。

A.ALTER TABLE B.DROP TABLE

C.CREAT TABLE D.CREAT INDEX

【解析】本题考查的知识点是建立表结构的SQL命令。建立表结构的SQL命令是CREAT TABLE。ALTER TABLE命令的作用是修改表结构;DROP TABLE命令的作用是删除表;CREAT INDEX命令的作用是建立索引。

【答案】C

(7)SQL可以_____使用,也可以_____使用。

【解析】本题考查的知识点是SQL语言的使用方式。SQL语言可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。

【答案】直接以命令方式交互,嵌入到程序设计语言中以程序方式

(8)在ALTER TABLE中,_____用来添加新字段;_____修改已有字段。

【解析】本题考查的知识点是ALTER TABLE命令及各子项的作用。在ALTER TABLE 命令中,ADD用来添加新字段;ALTER用来修改已有字段。

【答案】ADD ALTER

四、数据操纵

数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵,它们统称为DML:

●数据查询:寻找所需的具体数据。

●数据修改:添加、删除和改变数据。

数据操纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新),SELECT (查询)等组成,由于SELECT比较特殊,所以一般又将它以查询语言单独出现。

1.插入记录

【格式1】

INSERT INTO<表名>[<字段名表>]VALUES(<表达式表>)

【格式2】

INSERT INTO<表名>FROM ARRAY<数组名>|FROM MEMVAR

【功能】在指定的表文件尾部追加一条记录。格式1用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。格式2用数组或内存变量的值赋值给表文件中各字段。

【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。<字段名表>:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。

<表达式表>:指定要追加的记录各个字段的值。

【例1】在表文件STUD的末尾追加三条记录。

***用表达式方式追加第一条记录***

INSERT INTO STUD(学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员);

VALUES("011110","李中国","男","计0121","01","湖北武汉",{^2005/01/06},.T.)

***用数组方式追加第二条记录***

DIMENSION TA[8]

TA(1)="011103"

TA(2)="李宁"

TA(3)="女"

TA(4)="电0134"

TA(5)="02"

TA(6)="长沙希赛教育"

TA(7)={^2005/01/15}

TA(8)=.T.

INSERT INTO STUD FROM ARRAY TA

***用内存变量方式追加第三条记录***

学号="011202"

姓名="赵娜"

性别="女"

班级名="英0112"

系别代号="03"

地址="广西南宁"

出生日期={^2002/12/14}

是否团员=.F.

INSERT INTO STUD FROM MEMVAR

LIST

2.更新记录命令

【格式】

UPDATE<表文件名>SET<字段名1>=<表达式>

[,<字段名2>=<表达式>…][WHERE<条件>]

【功能】更新指定表文件中满足WHERE条件子句的数据。其中SET子句用于指定列和修改的值,WHERE用于指定更新的行,如果省略WHERE子句,则表示表中所有行。

【说明】更新操作又称为修改操作。

【例】将成绩表(SC)中,所有课程号为02的成绩各加5分。

UPDATE SC SET成绩=成绩+5 WHERE课程号="k321"

3.删除记录

【格式】DELETE FROM<表名>WHERE<表达式>

【功能】从指定的表中删除满足WHERE子句条件的所有记录。如果在DELETE语句中没有WHERE子句,则该表中的所有记录都将被删除。

【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记―*‖。

【例】删除STUD表中所有性别为男的记录。

DELETE FROM STUD WHERE性别=―男‖

4.数据管理

数据管理(也称数据控制)语言是用来管理(或控制)用户的访问权限的。而Visual FoxPro6.0没有这种权限管理。

例题

(1)下列关于INSERT-SQL的叙述正确的是____。

A.在表尾插入一条记录B.在表头插入一条记录

C.在表中任何位置插入一条记录D.可以向表中插入若干记录

【解析】本题考查的知识点是INSERT命令的作用。INSERT-SQL命令的作用是在表尾插入一条记录。

选项B,C,D的说法都错误,INSERT-SQL命令不能完成B,C,D指定的要求。

【答案】A

(2)DELETE FROM考生成绩WHERE成绩<90语句的功能是____。

A.物理删除成绩在90分以下的记录

B.彻底删除成绩在90分以下的记录

C.删除考生成绩表

D.为表中成绩小于90分的记录添加删除标记

【解析】本题考查的知识点是SQL语句中DELETE命令的使用。SQL中的DELETE 命令用于逻辑删除记录,如果要物理删除记录,需要用PACK命令。选项A中的物理删除错误。选项B的彻底删除实际就是物理删除,所以错误。选项C的说法有错误。选项D的说法正确,因为SQL中的DELETE命令用于逻辑删除记录,FROM用于指定从哪个表中删除记录,本题即从―考生成绩‖表中删除;WHERE用于指定被删除的记录所满足的条件,本题的条件是成绩在90分以下的记录。

【答案】D

(3)SQL语句中,UPDATE命令的功能是____。

A.数据更新

B.删除数据

C.建立表

D.修改表

【解析】本题考查的知识点是SQL语句中UPDATE命令的功能。在SQL语句中,UPDATE 命令的功能是数据更新。删除数据的命令是DELETE。建立表的命令是CREATE TABLE。修改表结构的命令ALTER TABLE。

【答案】A

(4)SQL语言中,删除表命令是____。

A.DELETE

B.DELETE TABLE

C.DROP

D.DROP TABLE

【解析】本题考查的知识点是删除表的命令。SQL中删除表的命令是DROP TABLE。DELETE命令用于删除数据。DELETE TABLE的格式错误。DROP命令的语法错误。因此正确答案为D。

【答案】D

(5)在SQL语句中,修改表中数据的命令是____。

A.ALTER B.UPDATE C.DELETE D.DISTINCT

【解析】本题考查的知识点是SQL中修改表中数据的命令。SQL语句中修改表中数据的命令UPDATE。

ALTER命令用于修改表结构。DELETE命令用于删除数据。DISTINCT命令用于SELECT语句中消除重复出现的记录行。

【答案】B

(6)在Visual FoxPro中,向表中输入记录的命令是____。

【解析】本题考查的知识点是向表中输入记录的命令。在SQL语句中,向表中输入记录的命令是INSERT。

【答案】INSERT

(7)在Visual FoxPro中SQL DELETE命令是____删除记录,如果要物理删除记录应

使用____命令。

【解析】本题考查的知识点是SQL中的DELETE删除命令。在Visual FoxPro的SQL 中DELETE命令是逻辑删除记录,如果要物理删除记录应使用PACK命令。

【答案】逻辑,PACK

五、SQL中的数据查询语句

数据库中的数据很多时侯是为了查询,因此,数据查询是数据库的核心操作。而在SQL 语言中,查询语言中有一条查询命令,即SELECT语句。

1.基本查询语句

【格式】

SELECT[ALL|DISTINCT]<字段列表>FROM<表>

【功能】无条件查询。

【说明】ALL:表示显示全部查询记录,包括重复记录。

DISTINCT:表示显示无重复结果的记录。

【例1】显示STUD(学生信息数据表)中的所有记录。

SELECT*FROM STUD

命令中的*表示输出显示所有的字段,数据来源是STUD表,表中的内容以浏览方式显示。

【例2】显示STUD(学生信息数据表)中的所有的学号及与之对应的姓名,同时能去除重名。

SELECT DISTINCT学号,姓名FROM STUD

【例3】显示SC(课程成绩表)中的所有记录,并将成绩一项乘以0.7。

SELECT学号,课程号,成绩*0.7 AS成绩FROM SC

2.带条件(WHERE)的查询语句

【格式】

SELECT[ALL|DISTINCT]<字段列表>

FROM<表>

[WHERE<条件表达式>]

【功能】从一个表中查询满足条件的数据。

【说明】<条件表达式>由一系列用AND或OR连接的条件表达式组成,SQL支持的关系运算符如下:

=、<>、!=、#、==、>、>=、<、<=。

【例1】显示STUD表中所有男生记录的学号,姓名和性别字段值。

SELECT 学号,姓名,性别FROM STUD WHERE 性别="男"

【例2】显示STUD表中出生日期在85-86年之间的学生的学号,姓名,出生日期。

SELECT 学号,姓名,出生日期FROM 学生;

WHERE 出生日期BETWEEN {^1985/01/01}AND{^1986/12/31}

【例3】显示STUD表中姓李的学生的学号,姓名,出生日期。

SELECT 学号,姓名,出生日期FROM 学生;

WHERE 姓名LIKE "l%"

(注:LIKE是字符匹配运算符,可使用通配符%(表示0-多个字符)、-(表示一个字府))

3.SQL的复杂查询

(1)连接查询

【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到

两个或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处

理表与表之间的连接关系。

SELECT[ALL|DISTINCT]<字段列表>

FROM<表1>[,表2…..]

WHERE<条件表达式>

【例1】查询并显示各个学生的学号,姓名,各科成绩及课程名。

SELECT a.学号,a.姓名,b.课程号,c.成绩;

FROM STUD a,SC1 b,SC c;

WHERE a.学号=c.学号AND b.课程号=c.课程号

【例2】查询并显示各个学生所学课程的情况。

SELECT STUD.学号,STUD.姓名,SC1.课程号;

FROM STUD,SC,SC1;

WHERE STUD.学号=SC.学号AND SC.课程号=SC1.课程号

(2)连接问题

在SQL语句中,在FROM子句中提供了一种称之为连接的子句,连接分为内部联接和外部联接,外部联接又可分为左联接、右联接和全联接。

1)内部联接

内部联接是指包括符合条件的每个表的记录,也称之为全记录操作。而上面两个例子就是内连接。

【例】查询并显示各个学生的学号,所学课程及课程成绩。

SELECT SC.学号,SC1.课程名,SC.成绩;

FROM SC,SC1;

WHERE SC.课程号=SC1.课程号

如果采用内部联接方式,则命令如下:

SELECT a.学号,b.课程名,成绩;

FROM SC a INNER JOIN SC1 b ON a.课程号=b.课程号

将会得到完全相同的结果。

2)外部联接

外部联接是指把两个表分为左右两个表。右联接是指连接满足条件右侧表的全部记录。左联接是指连接满足条件左侧表的全部记录。全联接是指连接满足条件表的全部记录。(3)嵌套查询

在SQL语句中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句中的查询称为嵌套查询。

【例1】显示―李宁‖所在班级的学生名单。

SELECT学号,姓名,班级名;

FROM STUD;

WHERE班级名=(SELECT班级名FROM STUD WHERE姓名="李中国")

【例2】显示计算机系男生的名单。

SELECT学号,姓名,系别代号,性别;

FROM STUD;

WHERE系别代号="01"AND性别="男"

【例3】显示计算机系非男生的名单。

SELECT学号,姓名,系别代号,性别;

FROM STUD;

WHERE系别代号="03"AND性别="女"

【例4】显示既选修了01课程又选修了02课程学生的名单。

SELECT学号;

FROM SC;

WHERE课程号=―01‖AND学号IN;

(SELECT学号FROM SC WHERE课程号=―02‖)

【例5】显示选修了01课程而没有选修02课程学生的名单。

SELECT学号;

FROM SC;

WHERE课程号="01"AND学号NOT IN;

(SELECT学号FROM SC WHERE课程号="02")

(4)排序

在SQLSELECT中使用ORDER BY短语对查询结果排序,并可以用ASC按升序排序(默认),用DESC按降序排序,可以按一列或多列排序。

【例1】先按课程号排序、再按成绩排序检索出全部SC表中的学生信息。

SELECT*FROM SC ORDER BY课程号ASC,成绩DESC

例题:

1)下列命令中,属于数据查询功能的SQL语句是_____。

A.CREATE B.SELECT

C.INSERT D.GRANT

【解析】本题考查的知识点是SQL中的数据查询命令。在Visual FoxPro中,数据查询的命令动词是SELECT。CREATE是数据定义命令之一;INSERT是数据操纵命令之一;GRANT是数据控制命令之一。

本题选项A用于数据定义。选项B用于数据查询。选项C用于数据操纵。选项D用于数据控制。

【答案】B

2)在Visual FoxPro中,简单查询基于________。

A.单个表B.两个表

C.两个有关联的表D.多个表

【解析】本题考查的知识点是SQL语句中的简单查询。简单查询基于单个表,可以有简单的查询条件。

【答案】A

3)从―学生资料‖表中查询所有的姓名,应输入______命令。

A.SELECT学生资料FROM姓名

B.SELECT姓名FROM学生资料

C.SELECT姓名

D.SELECT学生资料WHERE姓名

【解析】本题考查的知识点是简单查询的使用。简单查询由SELECT和FROM短语构成无条件查询,或由SELECT、FROM和WHERE短语构成条件查询。

选项A中的―学生资料‖和―姓名‖顺序颠倒;选项B格式及命令都正确;选项C格式错误;选项D命令错误。

【答案】B

4)从―学生资料‖表中查询所有年龄大于22岁的学生并显示其姓名,应输入_______命令。

A.SELECT年龄FROM学生资料WHERE姓名>22

B.SELECT年龄FROM学生资料

C.SELECT姓名FROM学生资料WHERE年龄>22

D.SELECT姓名FROM学生资料

【解析】本题考查的知识点是简单查询命令的使用。本题由SELECT、FROMT WHERE 短语构成条件查询,其中WHERE指定了查询条件。所以本题先排除B、D。选项A中―姓名‖和―年龄‖顺序颠倒,输入该命令,系统会提示操作符与操作命令不匹配的对话框;选项C中―SELECT姓名‖表示查询姓名,―FROM学生资料‖指定从―学生资料‖表中查询,WHERE 年龄>22指定查询条件为22岁。因此正确答案为C。

【答案】C

5)联接查询是基于_______的查询。

A.一个表B.两个表

C.多个关系D.有一个关联的表

【解析】本题考查的知识点是联接查询。在Visual FoxPro中,联接查询是一个基于多个关系的查询。由于联接查询要求的索引信息出于多个关系,因此这样的检索肯定是基于多个关系的。因此正确答案为C。

【答案】C

6)SQL语句中删除表的命令是____。

A.DELETE TABLE

B.DROP TABLE

C.ALTER TABLE

D.UPDATE TABLE

【解析】本题考查的知识点是从数据库中删除表的SQL命令。删除表的SQL命令是DROPTABLE<表名>。DROP TABLE命令将直接从磁盘上删除<表名>所对应的.dbf文件。如果<表名>是数据库中的表并且该数据库又是当前数据库,则会从数据库中删除该表;否则即使从磁盘上删除了.dbf文件,也不会将记录在数据库.dbc文件中的信息删除。选项A 命令错误;选项B命令正确;选项C中的命令用来修改表结构;选项D中的命令用来更新表。

【答案】B

7)使用SQL SELECT可以将查询结果排序,排序的短语是_____。

A.ORDER BY B.ORDER

C.GROUP BY D.COUNT

【解析】本题考查的知识点是SQL中的排序命令。使用SQL SELECT排序的短语是ORDERBY。

选项A即是SQLSELECT中用来排序的短语;选项B命令语法错误;选项C是进行分组计算查询的命令;选项D是计算查询中的计数函数。

【答案】A

8)在Visual FoxPro中,嵌套查询是基于____的查询。

A.一个表B.多个表

C.一个关系D.多个关系

【解析】本题考查的知识点是嵌套查询。在Visual FoxPro中,嵌套查询是基于多个关系的查询。因此正确答案为D。

【答案】D

9)嵌套查询命令中的IN相当于____。

A.等号=B.集合运算符∈

C.加号+ D.减号-

【解析】本题考查的知识点是嵌套查询命令中的参数。嵌套查询命令中的IN相当于集合运算符∈。选项A,C,D错误,目的是迷惑考生。只有选项B正确。

【答案】B

10)如果将―考生资料‖表中的记录按年龄降序排列,应输入____命令。

【解析】本题考查的知识点是SQL语句中排序命令的使用。在Visual FoxPro中,排序短语为ORDER BY。如果需要将结果按降序排列,只需加上DESC即可。因此输入的命令为:

SELECT * FROM 考生资料ORDER BY 年龄DESC

【答案】SELECT * FROM 考生资料ORDER BY 年龄DESC

11)SQL SELECT语句中INNER JOIN等价于____,为____,在Visual FoxPro中称为_____。

【解析】本题考查的知识点是INNER JOIN联接。在SQL SELECT中,INNDR JOIN

等价于JOIN,为普通的联接,在Visual FoxPro中称为内部联接。

【答案】JOIN,普通联接,内部联接

12)在SQL中,除满足联接条件的记录出现在查询结果中外,第一个表中满足联接条件的记录也出现在查询结果中。这种联接为____,又称为____。

【解析】本题考查的知识点是左联接的概念,它是指除满足联接条件的记录出现在查询结果中外,第一个表中满足联接条件的记录也出现在查询结果中。

【答案】LEFT JOIN左联接

13)在ORDER BY子句中,DESC表示____;省略DESC表示____。

A.升序,降序B.降序,升序

C.升序,升序D.降序,降序

【解析】本题考查的知识点是SQL SELECT语句中ORDER BY子句及其中选项的功能。

OBDER BY是用来排序的短语。指定DESC表示降序,不指定(即省略)DESC表示升序,或者升序也可以用ASC来表示。

选项A中的两个选项正好相反。选项C第一个空措误,应为降序;选项D第二个空错误,应为升序。因此正确答案为B。

【答案】B

14)按出生日期降序显示STUD表中的学号,姓名,出生日期。

SELECT学号,姓名,出生日期;

FROM STUD;

ORDER BY出生日期DESC

15)按成绩升序显示SC表中的学号,课程号,成绩。

SELECT学号,课程号,成绩;

FROM SC;

ORDER BY成绩

16)SQL的操作功能是指____,主要包括数据的____、____、____三个方面的内容。

【解析】本题考查的知识点是SQL的操作功能。在Visual FoxPro中,SQL的操作功能是指对数据库中数据的操作功能,主要包括数据的插入、更新和删除三个方面的内容。

【答案】对数据库中数据的操作功能,插入,更新,删除

17)在SQL SELECT语句中,字符串匹配运算符用____表示;____表示0个或多个字

符;____表示一个字符。

【解析】本题考查的知识点是SQL SELECT语句中特殊运算符的LIKE的应用。在SQLSELECT语句中,字符串匹配运算符用LIKE表示;通配符―%‖表示0个或多个字符,―_‖表示一个字符。

【答案】LIKE,%,_

4.简单的计算查询

只要数据是按关系方式存入数据库,就可以通过SQL命令用计算方式进行检索。用于计算检索的函数有:

①COUNT-计数

②SUM-求和

③AVG-求平均

④MAX-求最大值

⑤MIN-求最小值

5.分组与计算查询

【格式】

SELECT[ALL|DISTINCT]<字段列表>

FROM<表>

[WHERE<条件>]

[GROUP BY<分类字段列表>…]

[HAVING<过滤条件>]

[ORDER BY<排序项>ASC|DESC]

【功能】包括有排序、函数运算等。

6.查询去向

默认情况下,查询输出到一个浏览窗口,用户在―SELECT‖语句中可使用[INTO<目标>|TO

FILE<文件名>|TO SCREEN|TO PRINTER]子句选择查询去向:

INTO ARRAY数组名:将查询结果保存到一个数组中。

CURSOR<临时表名>:将查询结果保存到一个临时表中。

DBF|TABLE<表名>:将查询结果保存到一个永久表中。

TO FILE<文件名>[ADDITIVE]:将查询结果保存到文本文件中。如果带―ADDITIVE‖关键字,查询结果以追加方式添加到<文件名>指定的文件,否则,以新建或覆盖方式添加到<文件名>指定的文件。

TO SCREEN:将查询结果保在屏幕上显示。

TO PRINTER:将查询结果送打印机打印。

【例1】在SQL SELECT语句中,条件表达式用____子句,分组用____子句,排序用____子句。

【解析】本题考查的知识点是SQL SELECT语句中各个子句的作用。在SQL SELECT 语句中,条件表达式用WHERE子句,分组用GROUPBY子句,排序用ORDERBY子句。

【答案】WHERE,GROUP BY,ORDER BY

【例2】在SELECT—SQL语句中,HAVING子句必须与____子句配合使用。

【解析】本题考查的知识点是SELECT—SQL语句中各于句的作用。HAVING子句必须与GROUP BY于句配合使用,它主要有来限定分组必须满足的条件。

【答案】GROUP BY

【例3】按班级分类显示学生的姓名,课程名,成绩,同一班级按分数排序。

SELECT a.姓名,a.班级名,c.课程名,b.成绩;

FROM STUD a,SC b,课程c GROUP BY班级名;

WHERE a.学号=b.学号AND b.课程号=c.课程号;

ORDER BY a.班级名,b.成绩;

【例4】显示成绩在80至90之间的学号,姓名,课程名和成绩。

SELECT a.姓名,c.课程名,b.成绩

FROM STUD a,SC b,COURSE c

WHERE a.学号=b.学号AND b.课程号=c.课程号AND b.成绩BETWEEN 80 AND 90 【例5】显示计算机系学生的成绩。

SELECT a.姓名,a.系别代号,c.课程名,b.成绩;

FROM STUD a,SC b,COURSE c;

WHERE a.学号=b.学号AND b.课程号=c.课程号AND a.系别代号=―01‖

【例6】显示各班总人数。

SELECT班级名,COUNT(班级名)AS总人数;

FROM STUD;

GROUP BY班级名

7.集合的并运算

即UNION,是指将两个SELECT语句的查询结果通过并运算合并成一个查询结果。

在SQL中,要进行合并运算,要求两个查询结果具有相同的字段个数,并且对应字段的值要出自同一个值域,即具有相同的数据类型和取值范围。

【例1】显示北京和上海两地区的学生信息。

SELECT * FROM STUD WHERE 籍贯=―北京‖

UNION

SELECT * FROM STUD WHERE 籍贯=―上海‖

【例2】显示计算机系的学生及所有男学生。

SELECT 学号,姓名,系别代号,性别;

FROM STUD;

WHERE 系别代号="01"UNION;

SELECT 学号,姓名,系别代号,性别;

FROM STUD;

WHERE 性别=―男‖

【例3】显示选修了英语或数学科目的学生学号。

SELECT 学号,课程号FROM SC;

WHERE 课程号=―01‖ UNION;

SELECT 学号,课程号FROM SC;

WHERE 课程号=―02‖

例题:

关系数据库标准语言SQL练习题

关系数据库标准语言 S Q L练习题 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

第3章关系数据库标准语言SQL 一.单项选择题 1.SQL语言是▁▁▁▁▁的语言,易学习。 A.过程化 B非过程化 C.格式化 D导航式 B 2.SQL语言是▁▁▁▁▁语言。 A.层次数据库 B.网络数据库 C.关系数据库 D非数据库 3.SQL语言具有▁▁▁▁▁的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 C.数据定义、关系规范化、数据操纵 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是▁▁▁▁▁。A.SELECT B.INSERT C.UPDATE D.DELETE 5.在关系代数运算中,五种基本运算为▁▁▁▁▁。 A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 6 .SQL语言中,实现数据检索的语句是▁▁▁▁▁。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是▁▁▁▁▁。 A.ALTER B.CREATE C.UPDATE D.INSERT 第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为课程名,GPADE为成绩。 8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是▁▁A▁▁。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=“王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=“王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是▁▁D▁▁。 A.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC WHERE C#=“C2”AND GRADE IN(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC WHERE C#=“C2”AND GRADE NOT IN(SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=ALL(SELECT GRADE FORM SC WHERE C#=“C2”)

答案《关系数据库与SQL语言》第一章练习题

《关系数据库与SQL语言》第一章练习题 一、选择题 1、实体完整性要求主属性不能取空值,这一点通常就是通过(B) A、定义外键来保证 B、定义主键来保证 C、用户定义完整性来保证 D、关系系统自动保证 2、建立在计算机外部设备上的结构化的、有联系的数据集合就是( A)。 A、数据库 B、数据库管理系统 C、数据结构 D、数据文件 3、英文缩写 DBA 就是代表( B)。 A、数据库管理系统 B、数据库管理员 C、数据定义语言 D、数据操纵语言 4、数据库设计中,在概念设计阶段可用 E — R 方法,其设计出的图称为( A)。 A、实体联系图 B、实用概念图 C、实体表示图 D、实物示意图 5、在概念设计阶段可用 E —R 图,其中“矩形框”表示实体,( D)表示实体间联系。 A、圆形框 B、椭圆框 C、箭头 D、菱形框 6、一个教师能开多门课程,一门课程有许多教师会开,实体课程与实体教师间就是 ( C)。 A、一对一的联系 B、一对多的联系 C、多对多的联系 D、多对一的联系 7、两个不同型实体间( B)。 A、只有一种联系 B、可以有多种联系 C、不能有联系 D、只有多对多的联系 8、不就是数据库系统中的数据模型就是( D)。 A、层次模型 B、网状模型 C、关系模型 D、多用户型 9、对于两实体间 m:n 联系,必须对“联系”单独建立( D),用来联系双方实体。 A、一个实体 B、一个属性 C、一个指针 D、一个关系 10、模式的逻辑子集通常称为( C) A .存储模式 B .内模式 C .外模式 D .模式 11、要保证数据库物理数据独立性,需要修改的就是 ( B ) 。 A、模式 B、模式与内模式的映射 C、模式与外模式的映射 D、内模式 12、下列四项中,不属于数据库特点的就是 ( C ) 。 A、数据共享 B、数据完整性 C、数据冗余很高 D、数据独立性高 13、数据库中存储的就是 ( D ) 。 A、数据 B、数据模型 C、数据之间的联系 D、数据以及数据之间的联系 14、表示数据库的概念模型一般使用 ( C) 。 A、用户活动图 B、数据流图 C、 E — R 图 D、流程图 15、现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业)的主键为:( B ) A、宿舍编号 B、学号 C、宿舍地址,姓名 D、宿舍编号,学号 16、公司中有多个部门与多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型就是( D ) A、多对多 B、一对一 C、多对一 D、一对多 17、现有如下关系:职工(职工号、姓名、性别、职务),部门(部门编号、部门名称、职工号、姓名、部门地址、电话)其中,部门关系中的外键就是( C ) A、部门编号 B、姓名 C、职工号 D、职工号,姓名

关系数据库标准语言SQL(一)

关系数据库标准语言SQL(一) (总分:19.00,做题时间:90分钟) 一、{{B}}选择题{{/B}}(总题数:7,分数:7.00) 1.在SQL语言中,删除视图的语句是 ______。 (分数:1.00) A.ALTER VIEW B.DROP VIEW √ C.ZAP VIEW D.DELETE VIEW 解析: 2.关系数据库的数据语言是 ______ 的语言,其核心部分为查询,因此又称为查询语言。 (分数:1.00) A.过程化 B.非过程化√ C.宿主 D.系列化 解析: 3.实现“收回用户U4对学生表STUD中学号(XH)的修改权”这一功能的正确SQL语句是 ______。 (分数:1.00) A.REVOKE UPDAE(XON TABLE FROM U4 B.REVOKE UPDAE(XON TABLE STUD FROM PUBLIC C.REVOKE UPDAE(XON TABLE STUD FROM U4 √ D.REVOKE ALL PRIVILEGES ON TABLE FROM U4 解析: 4.在嵌入式SQL中,主语言向SQL语句输入数据,主要用主变量来实现。为了区别字段名,要求主变量名前必须加符号 ______ 作标志。 (分数:1.00) A.;(分号) B.、(顿号) C.+(加号) D.:(冒号) √ 解析: 5.在SQL语言中,CREATE VIEW语句用于建立视图。如果要求对视图更新时,必须满足子查询中的条件表达式,应当在该语句中使用短语 ______。 (分数:1.00) A.WITH UPDATE B.WITH INSERT C.WITH DELETE D.WITH CHECK OPTION √ 解析: 6.为使程序员编程时既可使用数据语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到 ______ 中, (分数:1.00) A.编译程序 B.操作系统 C.中间语言 D.宿主语言√

关系数据库与SQL语言模拟试卷

关系数据库与SQL语言(共100分) 一.单项选择题(本大题共20题,每小题2分,共40分) 1.候选码中的属性称为_________。[ ] A.非主属性B.主属性 C.复合属性D.关键属性 2.下列“部门”关系中,因哪个属性而使它不满足第一范式________?[ ] 部门(部门号,部门名,部门成员,部门总经理) A.部门总经理B.部门名 C.部门号D.部门成员 3.DML是_____________。[ ] A.数据定义语言B.数据操纵语言 C.数据控制语言D.数据查询语言 4. 关系模型的数据结构是_______________。[ ] A.表B.树 C.有向图D.网络 5.E-R图是进行概念模型设计的有力工具,它的基本成分包含_______________。[ ] A.数据及流向、加工、原点与终点、文件 B.数据、数据类型、长度、取值范围 C.数据项、数据结构、数据流 D.实体型、属性、联系 6.下列有关视图的说法,哪个是正确的。[ ] A.视图是一基本表的子集 B.视图是另一视图的子集 C.视图是关系模型的外模式 D.视图是由一个或多个基本表导出的虚表 7.在SQL语言中,删除表中数据时,应使用的命令是_______________。[ ] A.DELETE B.UPDATE C.ALTER D.DROP 8. 对关系执行“投影”运算后得到的新关系与原关系[ ] A.相同B.相容 C.元组数相同D.不相容 9.DBMS用于保存所有更新数据库操作的文件是____________。[ ] A.事务日志B.数据库 C.数据字典D.索引 10.在关系对应的二维表中,以下说法________是不正确的。[ ]

关系数据库与SQL语言练习

第一章 一、选择题 在下列各题A),B),C),D)四个选项中选择一个正确的。 1,数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)之间的关系是( C )。 A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB和DBMS D)没有任何关系 2.数据库系统的核心是( B )。 A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员 3.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( D )。 A)数据与程序独立存放 B)不同的数据被存放在不同的文件中 C)不同的数据只能被对应的应用程序所使用 D)以上三种说法都不对 4.用树形结构表示实体之间联系的模型是( C )。 A)关系模型 B)网状模型 C)层次模型 D)以上三个都是 5.“商品”与“顾客”两个实体集之间联系一般是( D )。 A)一对一 B)一对多 C)多对一 D)多对多 6.在E-R图中,.用来表示实体的图形是( A )。 A)矩形 B)椭圆形 C)菱形 D)三角形 7.在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是( A )。 A)数据定义语言 B)数据转换语言 c)数据操纵语言 D)数据控制语言 8.数据库系统的三级模式结构中,下列不属于三级模式的是( B )。. A)内模式 B)抽象模式 c)外模式 D)概念模式 9.在数据库管理系统提供的语言中,负责数据的完整性、安全性的定义与检查以及并发控制、故障恢复等功能的是( D )。 A)数据定义语言 B)数据转换语言 c)数据操纵语言 D)数据控制语言 10.下面关于数据系统叙述正确的是( B )。 A)数据库系统避免了一切冗余、’ B)数据库系统减少了数据冗余 c)数据库系统比文件能管理更多的数据 D)、数据库系统中数据的一致性是指数据类型的一致 11.下列叙述中,错误的是( C )。 A)数据库技术的根本目标是要解决数据共享的问题 B)数据库设计是指设计一个能满足用户要求,性能良好的数据库 c)数据库系统中,数据的物理结构必须与逻辑结构一致 D)数据库系统是一个独立的系统,但是需要操作系统的支持 12.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是( D )。 A)数据定义语言 B)数据转换语言 c)数据控制语言 D)数据操纵语言

关系数据库标准语言SQL练习题

第3章关系数据库标准语言SQL 一.单项选择题 1.SQL语言是▁▁▁▁▁的语言,易学习。 A.过程化 B非过程化 C.格式化 D导航式 B 2.SQL语言是▁▁▁▁▁语言。 A.层次数据库 B.网络数据库 C.关系数据库 D非数据库 3.SQL语言具有▁▁▁▁▁的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 C.数据定义、关系规范化、数据操纵 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是▁▁▁▁▁。A.SELECT B.INSERT C.UPDATE D.DELETE 5.在关系代数运算中,五种基本运算为▁▁▁▁▁。 A.并、差、选择、投影、自然连接 B.并、差、交、选择、投影 C.并、差、选择、投影、乘积 D.并、差、交、选择、乘积 6 .SQL语言中,实现数据检索的语句是▁▁▁▁▁。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是▁▁▁▁▁。 A.ALTER B.CREATE C.UPDATE D.INSERT 第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为课程名,GPADE为成绩。 8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是▁▁A▁▁。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=“王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=“王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=“王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是▁▁D▁▁。 A.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC WHERE C#=“C2”AND GRADE IN(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC WHERE C#=“C2”AND GRADE NOT IN(SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC WHERE C#=“C2”AND GRADE>=ALL(SELECT GRADE FORM SC WHERE C#=“C2”) 10.检索学生姓名及其所选修课程号和成绩。正确的SELECT语句是▁▁▁C▁▁。

关系数据库与SQL语言考试试题(doc 6页)

关系数据库与SQL语言考试试题(doc 6页)

关系数据库与SQL语言(共100分) A卷 一、单项选择题(本大题共20小题,每小题2分,共40分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。 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∶1联系 B.只能表示实体间的1∶n联系

C.只能表示实体间的m∶n联系 D.可以表示实体间的上述三种联系 7.实体是信息世界中的术语,与之对应的数据库术语为。 A.文件 B.数据库 C.字段 D.记录 8.关系数据库管理系统应能实现的专门关系运算包括。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 9.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为投影;从表中选出满足某种条件的元组的操作称为选择;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为。 A.选择 B.投影 C.连接 D.扫描 10.设有关系R,按条件f对关系R进行选择,正确的是。 A.R?R B.R ?? R C.σ f (R) D.∏ f (R) 11.SQL语言是的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 12.SQL语言中,实现数据检索的语句是。 A.SELECT B.INSERT C.UPDATE D.DELETE 13.在SQL语言中,对输出结果排序的是_____________。 A、WHERE B、ORDER BY C、GROUP BY D、HAVING 14.在SELECT语句中使用MAX(列名)时,列名____________。 A.必须是数值型 B.必须是字符型 C.必须是数值型或字符型 D.不限制数据类型 15.假定零件关系是P(P#,PNAME,COLOR,WEIGHT),供应商关系是S(S#,SNAME,CITY),供应关系是SP(S#,P#,QUATY)。 要查找提供“螺母”零件的供应商的名字,将涉及到关系。 A.S B.SP,P C.S,SP D.S,P,SP 第16到第18题基于这样的三个表即职工表EMPLOYEE、供应商表SUPPLIER和订

关系数据库标准语言SQL汇总

关系数据库标准语言SQL 一、SQL概述与查询功能 1、SQL概述 SQL是Structured Query Language(结构化查询语言)的缩写。可以说查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义、数据操纵和数据控制功能等部分。Visual FoxPro在SQL方面支持数据定义、数据查询和数据操纵功能,但在具体表现方面也存在一些差异,由于安全控制方面的缺陷,没有提供数据控制功能。 2、查询功能 Visual FoxPro的SQL SELECT命令格式如下:SELECT……FROM……[WHERE……][GROUP BY……][HAVING……][UNION[ALL]……][ORDER BY……] SELECT [ALL|DISTINCT][<别名>.]<选项>[AS<显示列名>][,[<别名>.]<选项>[AS<显示列名>]…]FROM [<数据库名>!]<表名>[[AS]<本地别名>][[INNER|LEFT|[OUTER]|RIGHT[OUTER]|FULL[OUTER]JI ON<数据库名>!]<表名>[AS]<本地别名>][ON<连接条件>…][[INTO<目标>|[TO FILE<文件名>][ADDITIVE]|TO PRINTER [PROMPT]|TO SCREEN]][PREFERENCE<参照名>][NOCONSOLE][PLAIN][NOWAIT][WHERE<连接条件

1>[AND <连接条件2>…]AND|OR <过滤条件1>[AND|OR <过滤条件2>…]]][GROUP BY <分组列名1>[,<分组列名2>…]][HAVING<过滤条件>][UNION[ALL]SELECT命令][ORDER BY <排序选项1>[ASC|DESC][,<排序选项2>[ASC|DESC]…]] SELECT说明要查询的数据。 FROM说明要查询的数据来自哪个(些)表。 WHERE说明查询条件,即选择元组的条件。 GROUP BY用于对查询结果进行分组,可以利用它进行分类汇总。HAVING必须跟随GROUP BY使用,客观存它用来限定分组必须满足的条件。 ORDER BY用来对查询的结果进行排序。 数据查询语句 SQL数据查询命令是SELECT命令。该命令的基本框架是SELECT…FROM…WHERE,它包含输出字段、数据来源、查询条件等基本子句。在这种固定格式中,可以不用WHERE,但是SELECT 和FROM是必备的。 基本查询 所谓基本查询是指无条件查询,其常用格式是: SELECT [ALL|DISTINCT][〈别名〉.]〈选项〉[AS 〈显示列名〉][,[〈别名〉.]〈选项〉[AS 〈显示列名〉…]]FROM 〈表

关系数据库与SQL语言试卷及(参考答案)

关系数据库与SQL语言(共1 00分) 一、单项选择题(本大题共20小题,每小题2分,共40分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。 1.在数据库技术领域,术语DBMS指的是( A ) A.数据库管理系统B.数据库系统C.对象关系数据库系统D.分布式数据库 2.以下常见软件中,属于数据库管理系统的是( B ) A.Word 2007 B.Oracle 10G C.Visio 2003 D.QQ 2009 3.以下关于数据冗余的叙述中,不平确的是( A ) A.数据库中不应该存在任何冗余B.冗余的存在将给数据库的维护增加困难 C.冗余的存在可能导致数据的不一致性D.数据冗余是指在两个或多个文件或表中出现重复的数据 4.SQL Server 2000是常用的一种数据库产品,它所基于的数据模型是( B ) A.网状模型B.关系模型C.层次模型D.瀑布模型 5.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选修课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系( B ) A.S B.SC,C C.S,C,SC D.S,SC 6.设有关系R和S如图-1: 则R与S进行差运算,其结果的元组数为( D ) A.1 B. 5 C.3 D. 2 7.一个规范化的关系模式至少应属于(D ) A BCNF B 3NF C 2NF D 1NF 8.设有关系R如图-2所示: 则进行关系运算后所得结果的元组数为(D ) A 2 B 3 C 4 D 5 9.当关系模式R(A,B)属于3NF,下列说法中正确的是(A ) A 一定消除了插入和删除异常 B 可能仍存在插入或删除异常 C 一定消除了插入异常 D 一定消除了删除异常 10. 在关系R1(S,SN,D)和R2(D,CN,NM)中,R1的主键是S,R2的主键是D,则D在R1中称为(C )

实验一 关系数据库标准语言SQL

实验一关系数据库标准语言SQL 班级:姓名:学号: 任课教师:实验教师:上机时间: 【实验目的】 1、MS SQL SERVER认识及其环境熟悉,了解T-SQL对标准SQL的扩充。 2、掌握T-SQL环境下数据定义包括数据库、基本表、视图、索引定义。 3、掌握T-SQL环境下数据操纵包括数据插入、删除、修改。 4、掌握T-SQL环境下数据查询及其各种变化。 5、理解T-SQL环境下数据控制。 【实验性质】 验证性实验 【实验学时】 4H 【实验内容】 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成; 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 今有若干数据如下:

请根据以上内容完成下面题目,写出相应的SQL语句。(空位不够请自行续页) 1、创建数据库,置为当前数据库 2、创建表 3、插入数据 4、请用SQL语句完成下面题目的查询。 (1)求供应工程J1零件的供应商号码SNO: (2)求供应工程J1零件P1的供应商号码SNO: (3)求供应工程J1零件为红色的供应商号码SNO: (4)求没有使用天津供应商生产的红色零件的工程号JNO: (5)求至少用了供应商S1所供应的全部零件的工程号JNO: 5、请用SQL语句完成下面题目的查询。 (1)找出所有供应商的姓名和所在城市。 (2)找出所有零件的名称、颜色、重量。 (3)找出使用供应商S1所供应零件的工程号码。 (4)找出工程项目J2使用的各种零件的名称及其数量。

关系数据库与SQL语言的练习试卷

关系数据库与SQL语言的练习试卷 一.选择题(每题1分) ⒈在SQL语言的SELECT语句中,实现投影操作的是哪个子句_____。 A) select B) from C) where D) group by ⒉在数据库中可以创建和删除表、视图、索引,可以修改表。这是因为数据库管理系统提供了 A)数据定义功能 B)数据操纵功能 C)数据维护功能 D)数据控制功能 ⒊数据库系统一般由哪些成分构成? I.数据库 II.数据库管理员 III.数据库管理系统及其工具 IV.用户 V.操作系统 VI.应用系统 A)I、II 和III B)I、II、III和IV C)I、II、III、IV和VI D)全部 ⒋在关系数据库中,索引(index)是三级模式结构中的 A)概念模式B)内模式C)模式D)外模式 ⒌关系模型有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。定义外键实现的是哪一(些)类完整性? A)实体完整性B)参照完整性C)用户定义的完整性 D)实体完整性、参照完整性和用户定义的完整性

⒍在下列关系代数的操作中,哪一个不属于专门的关系运算? A)自然连接 B)投影C)广义笛卡尔积 D)q 连接 ⒎结构化查询语言SQL在哪年被国际标准化组织(ISO)采纳,成为关系数据库语言的国际标准? A)1986 B)1987 C)1988 D)1989 ⒏下面关于SQL语言的说法中,哪一种说法是错误的? A)一个SQL数据库就是一个基本表 B)SQL语言支持数据库的三级模式结构 C)一个基本表可以跨多个存储文件存放,一个存储文件可以存放一个或多个基本表 D)SQL的一个表可以是一个基本表,也可以是一个视图 ⒐下面所列条目中,哪一条不是标准的SQL语句? A)ALTER TABLE B)ALTER VIEW C)CREATE TABLE D)CREATE VIEW 下面第(10)至(12)题,基于"学生-选课-课程"数据库中如下三个关系: S(S#,SNAME,SEX,AGE), SC(S#,C#,GRADE), C(C#,CNAME,TEACHER)⒑查找学生号为"200301188"的学生的"数据库"课程的成绩,至少将使用关系 A)S和SC B)SC和C C)S和C D)S、SC和C

关系数据库与SQL语言练习答案(完整版)

一. 1.选择题: 1.B 2.B 3.C 4.D 5.A 6.B 7.C 8.C 9.D 10.B 11.C 12.A 13.C 14.B 15.A 16.C 17.A 18.C 19.D 2.填空 1. 外模式 2. 个体 3. 实体集 4. 一对一,一对多,多对多 5. 型值 6. 层次模型网关模型关系模型 7. 并发性控制 8. 集成性 9. 封装对象类 10. 多媒体数据库 3.简答: 1. 数据: 描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不可分的。 数据库: 数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库系统: 数据库系统(dbs)是指在计算机系统中引入数据库后的系统构成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 数据库管理系统: 数据库管理系统(dbms)是位于用户与操作系统之间的一层数据管理软件。用于科学地组织和存储数据、高效地获取和维护数据。dbms主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。 2. 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。 使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。 使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由dbms来完成。用一个通俗的比喻,使用了dbms就如有了一个好参谋好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计而不必为管理数据的许许多多复杂的细节操心。 还有,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。数据逻辑结构的改变是dba的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为dbms在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由dbms执行。 总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。 3. 文件系统与数据库系统的区别: 文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。 数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。 4. 实体,实体型,实体集,属性,码,实体联系图(e-r图) 实体:客观存在并可以相互区分的事物叫实体。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。 实体集:同型实体的集合称为实体集。 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。 码:唯一标识实体的属性集称为码。 实体联系图:e-r图提供了表示实体型、属性和联系的方法: ·实体型:用矩形表示,矩形框内写明实体名。

第六章数据库标准语言SQL

第六章关系数据库标准语言SQL 大纲要求 关系数据库标准语言SQL 1、SQL的数据定义功能: (1)CREATE TABLE–SQL (2)ALTER TABLE–SQL 2、SQL的数据修改功能: (1)DELETE–SQL (2)INSERT–SQL (3)UPDATE–SQL 3、SQL的数据查询功能: (1)简单查询。 (2)嵌套查询。 (3)连接查询。 内连接 外连接:左连接、右连接、完全连接 (4)分组与计算查询。 (5)集合的并运算。 知识要点 一、SQL语言的特点 1.综合统一 SQL语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数

据库应用系统开发者提供了良好的环境。 2.高度非过程化 3.语言简洁,易学易用 4.以同一种语法结构提供两种使用方式 既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用。二、SQL语言的基本概念 SQL语言支持关系型数据库的三级模式结构。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。 基本表是本身独立存在的表,在SQL语言中一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意的。 视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库只存放在视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。 三.数据定义 数据定义语言DDL用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。由CREATE、DROP、ALTER命令组成,完成数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)。 1.定义(创建)表【格式】: CREATE TABLE<表名>(<字段名1><数据类型>; [(<宽度>[,<小数位数>])][完整性约束]; [NULL|NOT NULL][,<字段名2>…]) 【功能】定义(也称创建)一个表。 【例1】创建一个表SC(课程成绩表),它由以下字段组成:学号(C,10);课程号(C,2)。

实验报告2-关系数据库标准语言SQL

实验报告2-关系数据库标准语言SQL

实验2:关系数据库标准语言SQL 一.实验目的 通过本实验使学生掌握SQL语言的数据定义功能、数据查询功能和数据操纵功能。 二.实验类型验证型 三.实验学时 4学时 四.实验原理及知识点 1.SQL语言的数据查询功能 2.SQL语言的数据定义功能 3.SQL语言的数据操纵功能 五.实验环境 1.硬件设备要求:PC及其联网环境; 2.软件设备要求:Windows操作系统;MS SQL Server数据库管理系统。 六.实验内容及步骤 在STUDENT数据库中,根据要求使用SQL语言完成下列操作,将SQL语句以.sql文件的形式保存在自己的目录下。 1.查询选修了课程的学生的学号。 2.查询学生学号和出生年份。 3.查询计算机系学生的学号、姓名。 4.查询年龄在20岁与22岁之间(包括20和22岁)的学生姓名和年龄。 5.查询学生姓名中含有“波”字的学生情况。 6.查询缺少学习成绩的学生学号和课程号。 7.查询选修C601课程的学生的学号和成绩,并按分数的降序排列。 8.求选修了课程的学生人数。 9.求课程C601的平均成绩。 10.求选修课程超过2门的学生学号。 11.查询参加学习的学生所学的课程号和总分。 12.查询选修高等数学课程且成绩在80分以上的学生的学号、姓名。 13.查询每一课程的间接先行课(即先行课的先行课)。 14.查询年龄低于所有工程系学生的学生姓

名、所在系、年龄。 15.找出刘建平老师所开全部课程的课程号、课程名。 16.找出全部课程的任课教师。 17.求学生1203所学课程的总分。 18.找出所有姓张的学生的姓名和籍贯。 19.找出至少一门课程的成绩在90分以上的女学生的姓名。 20.求每一年龄上人数超过2的男生的具体人数,并按年龄从小到大排序。 21.把学生的学号及他的平均成绩定义为一个视图GRADE_VIEW。 22.创建一个从student、course、study表中查出计算机系的学生及其成绩的视图computer_view,要求显示学生的学号sno、姓名name、课程号cno、课程名称cname、成绩grade。 23.在Student表中依据学生姓名创建索引name_index。 24.在Study表中依据sno和cno创建索引main_index。 25.将课程C603的任课老师改为“赵明”。 26.在Student表中插入两个学生记录:'1201','吴华', '女',20,'成都','计算机系' '1102','张军', '男',21,'上海','工程系' 27.删除年龄在21岁以上的学生记录。 --1 SELECT DISTINCT Sno'学号' FROM Student_course;

关系数据库与SQL语言_习题答案

关系数据库与SQL语言_习题(黄旭明)参考答案 本章习题均基于以下假设:在某校,有关学生有学号、姓名、系别、出生日期等信息,有关课程有课程号、课程 名、选修课程等信息,每个学生只有一个学号、只在一个系、可以选修多门课程;每门课程只有一个课程号、可以 由多个学生选修,学生选修课程产生成绩。 这些数据在名为Student的数据库中进行管理,其中各表逻辑结构设计如下: 表名:学生 属性:学号(定长字符串,12) 如:200210515001,2002年,105系别,15专业代码,001学生编号 姓名(变长字符串,20,非空) 出生日期(日期时间,非空) 是否党员(逻辑型) 班委(定长字符串,8) 主键:学号 表名:课程 属性:课程号(定长字符串,3) 课程名称(变长字符串,20) 先修课号(定长字符串,3) 主键:课程号 外键:先修课号 其值取自本表主键“课程号”的值 表名:成绩表 属性:学号(定长字符串,12) 课程号(定长字符串,3) 成绩(整数,3,取值0~100) . 主键:(学号,课程号) 外键:学号 其值取自表“学生”主键“学号”的值. 课程号 其值取自表“课程”主键“课程号”的值 1.用SQL语言创建一个数据库,命名为Student。 Create dababase student 2.在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 (学号,课程号))

关系数据库标准语SQL习题五

关系数据库标准语SQL习题五一、单选题 1.Visual FoxPro中支持的SQL功能不包括()。A)数据定义 B)数据修改 C)数据查询 D)数据控制 2.SQL SELECT语句的功能是()。 A)定义 B)查询 C)修改 D)控制 3.SELECT语句中,用于排序的子句是()。 A)ORDER BY B)FROM C)GROUP BY D)INTO 4.SELECT语句中用于分组的短语是()。 A)ORDER BY B)MODIFY C)GROUP BY D)SUM

5.下面有关HAVING子句的描述错误的是()。 A)HAVING子句必须与GROUP BY子句同时使用,不能单独使用 B)使用HAVING子句的同时不能使用WHERE子句 C)使用HAVING子句的同时可以使用WHERE子句 D)使用HAVING子句的作用是限定分组的条件 6.SELECT语句中,只有满足连接条件的记录才能包含在查询结果中的选项是()。A)LEFT JOIN B)RIGHT JOIN C)INNER JOIN D)FULL JOIN 7.下列是字符串匹配运算符的是()。 A)LIKE B)AND C)IN D)= 8.SELECT语句中,表达式“工资BETWEEN 1220 AND 1250”的含义是()。 A)工资> 1220 AND 工资< 1250 B)工资> 1220 OR 工资< 1250 C)工资>= 1220 AND 工资<= 1250 D)工资>= 1220 OR 工资<= 1250 9.UPDATE语句的功能是()。 A)属于数据定义功能

B)可以修改表中列的内容 C)属于数据查询功能 C)可以修改表中列的属性 10.要为“职工”表的所有职工增加100元工资,正确的SQL命令是()。A)REPLACE 职工SET 工资= 工资+100 B)UPDATE 职工SET 工资= 工资+100 C)EDIT 职工SET 工资= 工资+100 D)CHANGE 职工SET 工资= 工资+100

关系数据库与SQL语言考试试题

关系数据库与SQL语言(共100分) A卷 一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。 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∶1联系 B.只能表示实体间的1∶n联系 C.只能表示实体间的m∶n联系 D.能够表示实体间的上述三种联系 7.实体是信息世界中的术语,与之对应的数据库术语为。 A.文件 B.数据库 C.字段 D.记录8.关系数据库治理系统应能实现的专门关系运算包括。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表

9.在关系代数的专门关系运算中,从表中取出满足条件的属性的 操作称为投影;从表中选出满足某种条件的元组的操作称为选 择;将两个关系中具有共同属性值的元组连接到一起构成新表的 操作称为。 A.选择 B.投影 C.连接 D.扫描 10.设有关系R,按条件f对关系R进行选择,正确的 是。 A.R R B.R R C. f(R) D.f(R) 11.SQL语言是的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 12.SQL语言中,实现数据检索的语句是。 A.SELECT B.INSERT C.UPDATE D.DELETE 13.在SQL语言中,对输出结果排序的是_____________。 A、WHERE B、ORDER BY C、GROUP BY D、 HAVING

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