文档库 最新最全的文档下载
当前位置:文档库 › SQL语言有四类语句

SQL语言有四类语句

SQL语言有四类语句
SQL语言有四类语句

一、填空题

1. SQL语言有四类语句,分别是DDL、DQL、DML和DCL(中文及英文简写均可)。

2.SQL有两种使用方式:自含式SQL和嵌入式SQL。

3.数据库系统一般由DB、应用系统、DBMS、DBA和用户组成。

4. 关系模型的基本数据结构是基表,其数据库存储时的基本组织方式是文件。

二、选择

1.对DB中数据的操作分成两大类A。

A)查询和更新B)检索和修改C)查询和修改D)插入和修改2.SQL中,下列操作不正确的是B。

A)AGE IS NOT NULL B)NOT(AGE IS NULL)

C)SNAME=‘王五’D)SNAME=‘王%’

3.SQL Server是一种C数据库管理系统。

A)层次型B)网络型C)关系型D)链状型4.某个用户对某类数据有何种操作权力由C决定。

A)用户B)系统分析员C)DBA D)应用程序员5.若关系模式R(U)的每个非主属性都不部分函数依赖、也不传递函数依赖于关键字,则称R满足C。

A)1NF B)2NF C)3NF D)BCNF 6.当多个用户的D同时存取或修改数据时,可能会发生相互干扰而造成得到错误的结果。

A)应用程序B)操作C)数据库D)并发进程7.数据库系统中,数据独立性是指B。

A)数据之间相互独立B)应用程序与数据库的结构之间相互独立

C)数据的逻辑结构与物理结构相互独立

D)数据与磁盘之间相互独立

8.SQL中,?AGE IN(20,22)?的语义是D。

A)AGE<=22 AND AGE >=20 B)AGE <22 AND AGE >20

C)AGE=20 AND AGE=22 D)AGE=20 OR AGE=22

9.下列式子中,不正确的是A。

A)R∩S=S-(R-S) B)R∩S=S-(S-R)

C)R=(R-S) ∪(R∩S) D)R-S=R-(R∩S)

10.概念模型表示方法最常用的是B。

A)关系模型B)实体联系方法C)面向对象方法D)数据模型

三、简答题

1.关系数据库包含哪三级模式?它们分别对应数据库的哪一部分?

答:关系数据库包含内模式、模式、外模式三级模式。

它们分别对应数据库的存储文件、基表、视图。

2.什么是数据库管理系统(DBMS)?其主要功能有哪些?

答:数据库管理系统是负责具体实施DB的定义、创建、维护、管理等各项功能的一组专用软件。

其主要功能有:DB的定义功能;数据操纵功能;DB运行管理;DB的建立和维

护功能。

3.关系数据库的规范化理论是为了解决什么问题?一个关系模式从1NF到2NF,消除了原关系模式的什么问题?

答:由于数据之间存在着联系和约束,在关系模式的关系中可能会存在数据冗余和操作异常现象,因此,需把关系模式进行分解,以消除冗余和异常现象。

一个关系模式从1NF到2NF,消除了原关系模式中的部分函数依赖。

四、名词解释

1.实体集R、S之间1:N的联系:对于R中每一实体,S中有N个实体与之联系;而对于S中每一实体,R中至多只有一个实体与之联系。

2.数据库:按一定的组织结构集成存储在计算机存储介质上的相关数据及数据之间逻辑关系的集合。

3.基表:实表。独立存在的表,不由其它表导出。

4.完全函数依赖:若R(U)中,已知X→Y,且对于任何X的真子集X’都有X’→Y,则称Y完全函数依赖于X,记作X→Y。

5.外模式:也称?子模式,用户模式?,是DB用户看到的(或用到的)那部分数据视图。

五、E-R模型设计题(本题20分)

1.设有商务数据库用以处理销售记帐,它涉及的数据包括顾客、商品信息。试设计一个E-R模型,并将之转换为关系模型。(注:关键字用下划线标出)(10分)(1)E-R图(属性略):

(2)关系模型:顾客(顾客号,姓名,地址,电话,…);

商品(商品号,品名,型号规格,单价,…);

购买(顾客号,商品号,数量,日期,…)。

2. 学校课程管理子系统主要包括的实体有学生、课程、教师、教室,试设计该子系统E-R模型,并将之转换为关系模型。(注:关键字用下划线标出)(10分)(1)E-R图(属性略):

(2)关系模型:学生(学号,姓名,年龄,…);

课程(课程号,课程名,课时,…);

教师(教师号,姓名,职称,…);

教室(楼名,教室号,…);

选课(学号,课程号,成绩,…);

授课(教师号,课程号,楼名,教室号,时间,…)。

六、对于某图书出版管理数据库,其中有两个表:

publishers(pub_id,pub_name,city)

titles(title_id,title_name,type,pub_id,price,pubdate)

含义为:出版商表(出版商代号,出版商名字,所在城市),书籍表(书号,书名,书的种类,出版商代号,价格,出版日期),并规定每一出版商有唯一的代号,每一种书以书号标识。写出实现下列各功能的SQL语句。

1)用SQL的数据定义语言建立titles表,并定义其主码与外码。

Create table title(title_id char(10),

title_name char(20),

type char(10),

pub_id char(10),

price numeric(6,2),

pubdate datetime,

primary key(title_id),

foreign key(pub_id) references publishers(pud_id));

2)把某一出版商的信息(0735,人民邮电出版社,北京)录入到publishers表中。

Insert into publishers values(‘0735’,’人民邮电出版社’,’北京’);

3)把书的种类为?计算机?类的书的价格降低30%。

Update titles set price=price*(1-0.3)

Where type=’计算机’;

4)查询书的价格在20至50元之间的书的书号、种类和价格。

Select title_id,type,price from titles where price between 20 and 50;

5)从publishers表和titles表中查询书的书号、书名、种类及出版商名字。

Select title_id,title_name,type,pub_name

from titles,publishers

where pub_id=publishers. pub_id;

6)查询所有价格高于平均价格的书。

Select*from titles where price>(select avg(price) from titles);

7)列出?机械工业出版社?自2001年以来出版的各种书籍情况。

Select*from titles where pub_id=(select pub_id from publishers

Where pub_name=’机械工业出版社’)

And pubdate>=’2001/01/01’;

8)删除所在城市为?沈阳?的出版商的信息。

Delete from publishers where city=’沈阳’;

五、设职工---社团数据库有三个基本表:

职工(职工号,姓名,年龄,性别);

社会团体(编号,名称,负责人,活动地点);

参加(职工号,编号,参加日期);

其中:

1.职工表的关键字为职工号。

2.社会团体表的关键字为编号;外关键字为负责人,被参照表为职工表,对应属性为职工号。

3.参加表的职工号和编号为关键字;职工号为外关键字,其被参照表为职工表,对应属性为职工号;编号为外关键字,其被参照表为社会团体表,对应属性为编号。试用SQL 语句表达下列操作:

1.定义职工表、社会团体表和参加表,并说明其关键字。

2.建立下列两个视图。

社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);

参加人情况(职工号,姓名,社团编号,社团名称,参加日期)

3.查找参加唱歌队或篮球队的职工号和姓名。

4.查找以下情况。

1)查找参加了职工号为?1001?的职工所参加的全部社会团体的职工号。

2)求每个社会团体的参加人数。

3)求参加人数最多的社会团体的名称和参加人数。

4)求参加人数超过100人的社会团体的名称和负责人。

五、

1.

CREAT TABLE 职工(职工号CHAR(10)NOT NULL UNIQUE,

姓名CHAR(8)NOT NULL,

年龄SMALLINT,

性别CHAR(2),

CONSTRAINT C1 CHECK(性别IN(‘男’,‘女’)));

CREAT TABLE 社会团体(编号CHAR(8)NOT NULL UNIQUE,

名称CHAR(12)NOT NULL,

负责人CHAR(8),

活动地点VARCHAR(50),

CONSTRAINT C2 FOREIGN KEY(负责人)REFERENCES职工(职工号));

CREAT TABLE 参加(职工号CHAR(8),

编号CHAR(8),

参加日期DATA,

CONSTRAINT C3 PRIMARY KEY(职工号,编号),

CONSTRAIN C3 FOREIGN KEY(职工号)REFERENCES职工(职工号));

2.

CREAT VIEW 社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)

AS SELECT 编号,名称,负责人,姓名,性别

FROM 社会团体,职工

WHERE 社会团体.负责人=职工.职工号;

CREAT VIEW参加人情况(职工号,姓名,社团编号,参加日期)

AS SELECT参加.职员号,姓名,社会团体.编号,名称,参加日期FROM 职工,社会团体,参加

WHERE 职工.职工号=参加.职工号AND 参加.编号=社会团体.编号;

3.

SELECT 职工号,姓名

FROM 职工,社会团体,参加

WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号

AND 社会团体.名称 IN(‘唱歌队’,‘篮球队’);

4

1)

SELECT 职工号

FROM 职工

WHERE NOT EXISTS(SELECT*

FROM 参加参加1

WHERE 参加1.职工号=‘1001’AND NOT EXISTS

(SELECT*

FROM 参加参加2

WHERE 参加2.编号=参加1.编号AND 参加2.

职工号=职工.职工号));

2)

SELECT COUNT(职员号)

FROM 参加

GROUP BY 编号;

3)

SELECT 社会团体.名称,COUNT(参加.职工号)

FROM 社会团体参加

WHERE 社会团体.编号=参加.编号

GROUP BY 参加编号

HAVING MAX (COUNT(参加.职工号))=COUNT(参加.职工号));

4)

SELECT 社会团体.名称,职工.姓名

FROM 职工,社会团体,参加

WHERE 社会团体.编号=参加.编号AND 社会团体.负责人=职工.职工号

GROUP BY 参加.编号HAVING COUNT(参加.编号)>100;

五、设工程—零件数据库中有四个基本表:

供应商(供应商代码,姓名,所在城市,联系电话);

工程(工程代码,工程名,负责人,预算);

零件(零件代码,零件名,规格,产地,颜色);

供应零件(供应商代码,工程代码,零件代码,数量)

试用SQL语句完成下列操作:

1.找出天津市供应商的姓名和电话。

2.查找预算在50000~100000元之间的工程的信息,并将结果按预算降序排列。

3.找出使用供应商S1所供零件的工程号码。

4.找出工程项目J2使用的各种零件名称及其数量。

五、

1.

SELECT 姓名,联系电话

FROM 供应商

2.

SELECT*

FROM 工程

WHERE 预算BETWEEN 50000 AND 100000

ORDER BY 预算DESC;

3.

SELECT 工程代号

FROM 供应零件

WHERE 供应商代码=‘SI’;

4.

SELECT 零件.零件名,供应零件.数量

FROM 零件供应零件

WHERE 零件.零件代码=供应零件.零件代码AND供应零件.工程代码=‘J2’;

SQL语言习题参考答案

第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 =。 (5)求至少用了供应商S1所供应的全部零件的工程号JNO。 由于VFP不允许子查询嵌套太深,将查询分为两步 A、查询S1供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2) B、查询哪一个工程既使用P1零件又使用P2零件。 SELECT JNO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2') 5.针对习题3中的四个表试用SQL语言完成以下各项操作: (1)找出所有供应商的姓名和所在城市。 SELECT SNAME,CITY FROM S (2)找出所有零件的名称、颜色、重量。 SELECT PNAME,COLOR,WEIGHT FROM P (3)找出使用供应商S1所供应零件的工程号码。 SELECT DIST JNO FROM SPJ WHERE SNO='S1' (4)找出工程项目J2使用的各种零件的名称及其数量。 SELECT PNAME,QTY FROM SPJ,P WHERE = AND ='J2' (5)找出上海厂商供应的所有零件号码。 SELECT PNO FROM SPJ,S WHERE = AND CITY='上海' (6)出使用上海产的零件的工程名称。 SELECT JNAME FROM SPJ,S,J WHERE = AND ='上海' AND = (7)找出没有使用天津产的零件的工程号码。 注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE = AND ='天津') 适用于JNO 是唯一或不唯一的情况. 注意: SELECT DIST JNO FROM SPJ,S WHERE = AND <>'天津'适用于JNO是唯一的情况 (8)把全部红色零件的颜色改成蓝色。 UPDATE P SET COLOR='蓝' WHERE COLOR='红' (9)由S5供给J4的零件P6改为由S3供应。 UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6' (10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。

SQL基本语句和语句强化(全)

一、简单查询 1、列出全部学生的信息。 SELECT * FROM 学生 2、列出软件专业全部学生的学号及姓名。 SELECT 学号,姓名FROM 学生WHERE 专业="软件" 3、列出所有必修课的课号。 SELECT DISTINCT 课号FROM 必修课 4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。 SELECT 学号,成绩FROM 选课WHERE 课号="1" AND 成绩>80 ORDER BY 成绩DESC 5、列出非软件专业学生的名单。 方法一:SELECT 姓名FROM 学生WHERE 专业<>"软件" 方法二:SELECT 姓名FROM 学生WHERE NOT 专业="软件" 方法三:SELECT 姓名FROM 学生WHERE 专业!="软件" 6、查询成绩在70~80分之间的学生选课得分情况 方法一:SELECT * FROM 选课WHERE 成绩>=70 AND 成绩<=80 方法二:SELECT * FROM 选课WHERE 成绩BETWEEN 70 AND 80 不在此范围内的查询:(注意写出和以下语句等价的语句) SELECT * FROM 选课WHERE 成绩NOT BETWEEN 70 AND 80 7、列出选修1号课或3号课的全体学生的学号和成绩。 方法一:SELECT 学号,成绩FROM 选课WHERE 课号="1" OR 课号="3" 方法二:SELECT 学号,成绩FROM 选课WHERE 课号IN ("1","3") 相反条件查询:SELECT 学号,成绩FROM 选课WHERE 课号NOT IN ("1","3") 8、列出所有98级学生的学生成绩情况。 SELECT * FROM 选课WHERE 学号LIKE "98%"

第三章 SQL语言习题

第3章 SQL语言习题 一、单项选择题 1.SQL语言是()的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2.SQL语言是()语言。 A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3.SQL语言具有()的功能。 A.关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是()。 A.SELECT B.INSERT C.UPDATE D.DELETE 5.SQL语言具有两种使用方式,分别称为交互式SQL和()。 A.提示式SQL B.用户式SQL C.嵌入式SQL D.解释式SQL 6.SQL语言中,实现数据检索的语句是()。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是()。 A.ALTER B.CREAT C.UPDATE D .DELETE 8.在SQL中,用户可以直接操作的是()。 A 基本表 B 视图 C 存储文件 D 基本表和视图 9.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。 A WHERE B FROM C SELECT D HAVING 10.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。 A WHERE B GROUP BY C ORDER BY D HAVING 11.SQL中,与“NOT IN”等价的操作符是()。 A =ANY B <>ANY C =ALL D <>ALL 12.视图建立后,在数据字典中存放的是()。 A 查询语句 B 组成视图的表的内容 C 视图的定义 D 产生视图的表的定义 第13到第16题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 其中:S#为学号,SN为姓名,SEX性别,AGE为年龄,DETP为系别,C#为课程号,CN为课程名,GRADE为成绩。 13.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是()。 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 14.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是()。 A.SELECT S# FROM SC WHEREC#=’C2’ AND GRADE>= (SELECT GRADE FROM SC WHERE C#=’ C2’) B.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE IN(SELECT GRADE FROM SC WHEREC#=’ C2’) C.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE NOT IN(SELECT GRADE FROM SC WHERE C#=’C2’) D.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE>=ALL (SELECT GRADE FROM SC WHERE

数据库第4章 SQL语言基础及数据定义功能

第4章 SQL语言基础及数据定义功能 用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。接口的好坏会直接影响用户对数据库的接受程度。 数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。 SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。 SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。 4.1 SQL语言概述 SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。 4.1.1 SQL语言的发展 最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。 从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。随后,ISO(International Standards Organization)于1987年6月也正式采纳它为国际标准,并在此基础上进行了补充,到1989年4月,ISO提出了具有完整性特征的SQL,并称之为SQL-89。SQL-89标准的颁布,对数据库技术的发展和数据库的应用都起了很大的推动作用。尽管如此,SQL-89仍有许多不足或不能满足应用需求的地方。为此,在SQL-89的基础上,经过3年多的研究和修改,ISO和ANSI共同于1992年8月颁布了SQL的新标准,即SQL-92(或称为SQL2)。SQL-92标准也不是非常完备的,1999年又颁布了新的SQL标准,

《数据库系统概论》SQL语言复习题(含答案)

SQL语言习题 一、单项选择题 1.SQL语言是的语言,易学习。 A.过程化B.非过程化 C.格式化D.导航式 答案:B 2.SQL语言是语言。 A.层次数据库B.网络数据库 C.关系数据库D.非数据库 答案:C 3.SQL语言具有的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 答案:B 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是。 A.SELECT B.INSERT C.UPDA TE D.DELETE 答案:A 5.SQL语言具有两种使用方式,分别称为交互式SQL和。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C 6.SQL语言中,实现数据检索的语句是。 A.SELECT B.INSERT C.UPDATE D.DELETE 答案:A 7.下列SQL语句中,修改表结构的是。 A.ALTER B.CREATE C.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 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

SQL语言章节练习答案

SQL 语言章节练习答案 一、设有如下关系模式: student(SNO, SNAME , SEX ,BIRTHDAY, CLASS) teacher(TNO,TNAME,SEX,BIRTHDAY,PR OF,DEPART) PROF 为职称,DEPART 为系别 course(CNO, CNAME, TNO) score(SNO, CNO, DEGREE) DEGREE 为成绩 写出实现以下各题功能的SQL 语句: 1.查询至少有2名男生的班号;——(难) SELECT CLASS FROM student WHERE SEX='男' GROUP BY CLASS HAVING COUNT(*)>=2; Having 语句用来对结果集进行附加筛选,通常与group by 语句一起使用。 ************************************************************* 2.查询不姓“王”的同学记录;——(易) SELECT * FROM student WHERE NAME NOT LIKE '王%' 3.查询每个学生的姓名和年龄;——(难) SELECT NAME,2007-year(BIRTHDAY) FROM student 4.查询学生中最大和最小的birthday 日期值;——(中) SELECT MAX(BIRTHDAY), MIN(BIRTHDAY) FROM student 5.查询学生表的全部记录并按班号和年龄从大到小的顺序;——(中) SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC 6.查询男教师及其所上的课程;——(中) SELECT , FROM teacher , course WHERE = and ='男' 7.查询最高分同学的学号,课程号和成绩;——(中) SELECT * FROM score WHERE degree= ( SELECT max(degree) FROM score ) 满足嵌套子查询的条件(最后投影的属性列可以在一个表格中给出) **************************************88 8.查询和“李军”同性别并同班的所有同学的姓名;——(中) SELECT NAME FROM student WHERE sex= ( SELECT sex FROM student WHERE name='李军' ) and class= ( SELECT class FROM student WHERE name='李军' ) 要习惯用多重条件的复合运算来做题 9.查询选修“数据库系统概论”课程的男同学的成绩表;——(中) SELECT * FROM score WHERE no IN ( SELECT no FROM student WHERE sex='男') and cno= (

SQL语句练习及答案

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 命令:create table Student (no nvarchar(5), name nvarchar(5), sex nvarchar(1), birthday datetime, class nvarchar(5)

) DML 2.给出相应的INSERT语句来完成题中给出数据的插入。 命令: 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc 4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from teacher 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from student

6.输出student中不姓王的同学的姓名。 命令:select name from Student where name not like'王%' 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select*from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80

SQL语言的特点

此文档出自高等教育出版社的《数据库系统概论》王珊,萨师煊的第四版 1.SQL语言介绍 SQL(Structure Query Languge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MS SQL 、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。虽然不同公司的数据库软件多多少少会增加一些专属的SQL 语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。只要你学会SQL,即可操作各种数据库如Visual Foxpro、Access、dBase等等。总之,SQL语言是各种数据库都可以使用的数据库查询语言。SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。 SQL语言的特点: 1.综合统一 数据库系统的主要功是通过数据库支持的数据语言来实现。 1 非关系模型(层次模型、网状模型)的数据语言一般都分为: 2 模式数据定义语言(Schema Data Definition Language,模式DDL); 3 外模式数据定义语言(Schema Data Definition Language,外模式DDL4 子模式DDL); 4 数据存储有关的描述语言(Data Storage Description Language,DSDL); 数据操纵语言(Data Manipulation Language,DML)。 它们分别用于定义模式、外模式、内模式和进行数据的存取与处置。当用户数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦。 SQL则集数据定义语言DDL、数据操纵DML、数据控制语言DCL的功能于一体,语言风格统一,可以以独立完成数据库生命周期中的全部活动,包括: 1 定义关系模式,插入数据,建立数据库; 2 对数据库中的数据进行查询和更新; 3 数据库重构和维护; 4 数据库安全性、完整性控制; 等一系列操作要求。 这就为数据库应用系统的开发提供了良好的环境。特别是用户在数据库系统投入运行后,还可根据需要随时地逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩展性。 另外,在关系模型中实体和实体之间的联系用关系表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作符,从而克服了非关系系统由于信息表示方式的多样性带来的操作复杂性。 2.高度非过程化

第四章 SQL语言

第四章 SQL 4.1.SQL语言简介 最早在IBM System-R RDBMS上使用的查询语言;由于其广泛的使用,出现标准化需求,形成SQL标准;有了标准,用户可评判厂家的SQL版本,基于非标准的SQL特性的应用不易移植。 第一个SQL标准由ANSI于1986年制订,称为SQL-86;1989年作了些许改进,称为SQL-89;1992年由ANSI和ISO合作,作了较大改动,称为SQL-92(SQL2),这是目前大多数商用RDBMS支持的版本;1999年提出SQL:1999(SQL3),是SQL-92的扩展。 SQL(Structured Query Language,结构化查询语言)是一种集数据定义和数据操纵子语言为一体的、标准化(20世纪80年代后期)的、关系型数据库语言。 数据定义子语言(Data Definition Language, DDL) 用来定义数据库模式。 数据操纵子语言(Data Manipulation Language, DML) 用来表示用户对数据库的操作请求。由于数据库语言其主要的功能是查询数据库中的信息,故经常称之为数据查询语言。 目前的标准化版本为SQL-92,被ANSI(American National Standards Institute)、ISO(International Standards Organization)采纳。 SQL语言的第一个版本是由IBM公司SAN JOSE实验室为SYSTEM R关系数据库管理系统设计的。 SQL语言既可以作为交互式(Interactive)数据库语言使用,也可以嵌入(Embedded)到程序设计语言中作为其子语言使用,这时前者称为宿主语言(Host Language),如:C/C++语言、PowerBuilder、Delphi等。 SQL标准有:SQL-86、SQL-89、SQL-92、SQL:1999。 关系模型中的关系,利用SQL-92来定义和操纵;SQL-92标准中用“表”(Table)代表“关系”(Relation);SQL中用于创建(Create)、删除(Drop)和修改(Alter)“表结构”的部分叫DDL,而对“表中数据”进行插入(Insert)、删除(Delete)、修改(Update)和查询(Select)的部分叫DML; 1. SQL DDL —- 针对表结构 (1) Create (2) Drop (3) Alter 2. SQL DML —- 针对表中数据 (1) Insert (2) Delete (3) Update (4) Select 下面我们主要研究数据操纵,本章所用到表如表5.1-5.7所示。 4.2 SQL的数据操纵

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

第四章关系数据库标准语言SQL 4.1 SQL概述 SQL(Structure Query Language ,结构化查询语言)是关系型数据库的标准语言,目前已成为国际标准。 SQL命令可分为3组: (1)数据定义语言(DDL):包括数据库、表、索引和视图的创建、修改命令; (2)数据操作语言(DML):包括数据查询和数据操作命令; (3)数据控制语言(DCL):包括用户权限管理命令,在Access2010中不能使用。 4.1.1 SQL特点: 综合统一 高度非结构化 面向集合的操作方式 以同一语法结构提供多种使用方式 语言简单,易学易用 标准的SQL语言包括4部分内容: 数据定义——CREATE(建立), DROP(删除), ALTER(修改) 数据操纵——INSERT(插入), UPDATE(更新), DELETE(删除) 数据查询——用于检索数据SELECT(选择) 数据控制——GRANT(授权), REVOKE(回收权限) 4.1.2在Access中使用SQL 1.在SQL视图中使用 2.在VBA中嵌入使用 例如: Private sub Command1_Click() Dim SQL As String SQL = "SELECT 姓名,性别,专业编号 FROM 学生信息;" Set conDatabase = Application.CurrentProject.Connection conDatabase.Execute SQL 4.2 数据定义 4.2.1模式的创建于删除 1.定义模式 [例2]CREATE SCHEMA AUTHORIZATION WANG; <模式名>隐含为用户名WANG ?如果没有指定<模式名>,那么<模式名>隐含为<用户名> ?定义模式实际上定义了一个命名空间 ?在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。 ?在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]

SQL语言练习题和答案

第三章SQL语言 一、选择题 1. SQL语言是(B )的语言,容易学习。 A.过程化 B. 非过程化 C.格式化 D. 导航式 2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是(A)。 A. SELECT B. INSERT C. UPDATE D. DELETE 3. 在视图上不能完成的操作是()。 A. 更新视图 B. 查询 C. 在视图上定义新的表 D. 在视图上定义新的视图 4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。 A. 数据查询 B. 数据操纵 C. 数据定义 D. 数据控制 5. SQL语言中,删除一个视图的命令是()。 6. 在SQL语言中的视图VIEW是数据库的()。 A. 外模式 B. 模式 C. 内模式 D. 存储模式 7. 下列的SQL语句中,()不是数据定义语句。 A. CREATE TABLE B. DROP VIEW C. CREATE VIEW D. GRANT 8. 若要撤销数据库中已经存在的表S,可用()。 A. DELETE TABLE S B. DELETE S C. DROP TABLE S D. DROP S 9. 若要在基本表S中增加一列CN(课程名),可用()。 TABLE S(CN CHAR(8)) TABLE S ALTER(CN CHAR(8)) TABLE S ADD(CN CHAR(8)) TABLE S (ADD CN CHAR(8)) 10. 学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是()。 A. DELETE Age from S B. ALTER TABLE S DROP Age C. UPDATE S Age D. ALTER TABLE S ‘Age’ 11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是()。

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

第四章SQL语言

第四章数据库查询语言SQL 4.1 SQL语言概述 ●数据查询命令(SELECT) ●数据定义命令(CREATE等) ●数据操纵命令(INSERT等) ●数据管理命令(GRANT等) 可以独立完成数据库的全部操作,包括建立数据库、建表、查询、更新、维护数据、数据库的重新构造、数据库安全性等。 注意:第三章讲的命令只适用于VF。SQL 语言适合在任何语言(VB、VC等)中使用,应用更广泛,效率更高,是考试的重点(笔试和上机)。4.2查询功能 难点:写出查询条件(逻辑表达式)。 查询命令的基本格式:

SELECT [ ALL |DISTINCT] 字段名FROM 表名WHERE 条件 4.2.1 简单查询 例1:从学生表中检索所有学生的姓名。 SELECT姓名FROM 学生 例2:从学生表中检索所有学生姓名(不能重复) SELECT DISTINCT姓名FROM 学生 例3:从学生表中检索所有学生的姓名、年龄、出生日期。 SELECT姓名,年龄,出生日期FROM 学生 例4:从学生表中检索所有学生(包括所有字段) SELECT﹡FROM 学生

例5:从学生表中检索所有年龄小于21的学生。SELECT﹡FROM 学生WHERE年龄<21 例6:从学生表中检索出生在1982年和1983 年的所有学生。 SELECT﹡FROM 学生WHERE YEAR(出生日期)=1982 .OR. YEAR(出生日期)=1983 SET CENTURY ON显示4位年份 SET MARK TO "--" 设置日期分隔符为“--”SET DATE TO YMD按年月日显示日期 例7:从学生表中检索性别为男而且姓王的学生

相关文档
相关文档 最新文档