当前位置:文档之家› SQL语言练习题

SQL语言练习题

SQL语言练习题
SQL语言练习题

一、单选

1、为了在选课表中查询选修了“C140”或“C160”课程的学号,SELECT-SQL语句的WHERE子句格式为()

A.WHERE 课程号 BETWEEN “C140” AND “C160”

B.WHERE 课程号=“C140” AND “C160”

C.WHERE 课程号IN (“C140”,“C160”)

D.WHERE 课程号LIKE (“C140”,“C160”)

2、SELECT SB.名称 AS 设备名,SB.启用日期 FROM SB WHERE YEAR(SB.启用日期)>=1995 上述命令完成的功能是:

A.查询SB.DBF中1995年启用的设备与日期

B.查询SB.DBF中1995年以前启用的设备与日期

C.查询SB.DBF中1995年以后启用的设备与日期

D.以上命令有错不能实现查询

3、现有如下数据表文件,执行查询SQL命令后请选择正确的结果.

(1)执行“SELECT*FROM STOCK INTO DBF STOCK ORDER BY 单价”,()(A)会产生一个按“单价”升序排列文件,将原来的stock文件覆盖

(B)会产生一个按“单价”降序的排列文件,将原来的stock文件覆盖

(C)不产生排列文件,只在屏幕上显示按“单价“生序的排序结果

(D)系统会提示出错误信息

(2)执行“SELECT*FROM STOCK WHERE 单价 BETWEEN 15.00 AND 25.00“,与该语句等价的是()

(A)SELECT*FROM STCOK WHERE 单价<=15.00 AND单价>=25.00

(B)SELECT*FROM STCOK WHERE 单价<15.00 AND单价>25.00

(C)SELECT*FROM STCOK WHERE 单价>15.00 AND单价<25.00

(D)SELECT*FROM STCOK WHERE 单价>=15.00 AND单价<=25.00

(3)执行“SELECT MAX(单价)INTO ARRAY K FROM STOCK“后,则()

(A)K(1)的内容是31.00 (B)K(1)的内容是7.80

(C)K(0)的内容是31.00 (D)K(1)的内容是7.80

4、查询所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是()

A.SELECT 姓名,年龄,性别 FROM S WHERE 姓名=”王华”

B.SELECT 姓名,年龄,性别 FROM S WHERE 年龄>”王华”年龄

C.SELECT 姓名,年龄,性别 FROM S WHERE 年龄>(SELECT 年龄 ;

WHERE 姓名=”王华”)

D.SELECT 姓名,年龄,性别 FROM S WHERE 年龄>(SELECT 年龄 ;

FROM S WHERE 姓名=”王华”)

二、利用结构化查询语言SQL,填空:

1、在教师表中插入一条新记录。

INSERT __①教师(姓名,职称)values ___②(“李林”,“教授”)。

2、从数据表“计科学院”中求电子商务系所有职工的工资总和。

SELECT___ ③(工资)FROM 职工;

WHERE 系号 IN(SELECT 系号 FROM __________④ WHERE 系名=”电子商务”)。

3、将教师表中的“姓名”字段名改为“教师姓名”。

Alter table 教师 ____________⑤姓名 TO 教师姓名。

4、若要给教师表中职称是教授的老师每人工资增加50元。

⑥教师 SET 工资=工资+50 ⑦职称=”教授”

5、有一人才管理数据库中有3个表:其表名和结构分别如下:

基本情况(编号 C(6),姓名 C(8),性别 C(8),出生年月 D,工资 N(5))

专业(编号 C(6),专业名称 C(10),职称 C(10))

成果(编号 C(6),成果类别 C(8),成果名称C(20))

(1)列出年龄在40岁以下的教授的姓名:

SELECT 姓名 FORM 基本情况,⑧;

WHERE 基本情况.编号=专业.编号 AND ⑨ <=40 AND 职称= “教授”

(2)查询成果在3项以上的人员姓名和成果数,并按成果数降序排列:

SELECT 姓名,COUNT(*) AS 成果数 FROM 基本情况,成果 WHERE;

基本情况.编号=成果.编号;

GROUP BY 成果.编号 HAVING ⑩ ORDER BY (11)

6、有数据表图书.dbf, 用SELECT命令查询表中02年9月及其以后出版的、单价不高于20元的图书信息,结果按“单价”字段值升序排列,请填空:

SELECT图书.书号,图书.书名,图书.作者,图书.出版日期,图书.单价;

__________图书;

图书.出版日期>= ;

图书.单价>=20 ORDER BY 图书.单价

7、有以下两表:

学生(学号,姓名,性别,入校总分);

成绩(学号,课程号,成绩)

(1).按入校总分降序查询,并将结果放入文本文件TEMP.TXT中,请填空:

select * from 学生___________by 入校总分 desc ___________temp

(2).查询每个同学的课程平均成绩,请填空:

select 姓名,__________ as 平均成绩 from 学生,成绩 ;

where 学生.学号=成绩.学号____________by 学生.学号

三、读程序选择

1、现有如下两张表:“部门表”和“商品表”,执行SQL查询命令后请选择正确的结果。

(1).select 部门号,max(单价*数量) from 商品表 group by 部门号

查询结果有几条记录?

(A) 1 (B) 4 (C) 3 (D) 10

(2).select 产地,count(*) as 商品种类数 from 商品表 where 单价>200 ;

group by 产地 having count(*)>=2 ORDER BY 2 DESC

查询结果的第一条记录的产地和商品种类数是:

(A) 北京,1 (B) 上海,2 (C) 广东,4 (D) 广东,6

(3).select 部门表.部门号,部门名称,sum(单价*数量) from 部门表,商品表;

where 部门表.部门号=商品表.部门号 group by 部门表.部门号

查询结果是:

(A) 各部门商品数量合计 (B) 各部门商品金额合计

(C) 所有商品金额合计 (D) 各部门商品金额平均值

2、有图书TS.DBF,其内容如下:

记录号书名出版单位单价

1 VFP数据库电子科大20.0

2 计算机基础四川大学25.0

3 信号与系统电子科大28.0

4 计算机网络电子科大27.0

5 计算机原理四川大学21.0

6 现代汉语四川师大 23.0

7 操作系统西南交大 24.0

阅读下列程序:

UPDATE TS SET 单价=单价+8 WHERE 出版单位=”四川师大”

SELECT 出版单位,AVG(单价) AS 单价 FROM TS GROUP BY 出版单位;

INTO DBF ABC

SELECT * FROM ABC WHERE 单价<28 ORDER BY 单价DESC INTO DBF ABC1

USE ABC1

?出版单位

(1)问新表ABC的记录有()个。

A.7 B.5 C.4 D.3

(2)最后显示的出版单价是()。

A.电子科大B.四川大学C.西南交大D.四川师大

(3)函数AVG()的功能是()。

A.统计个数B.求单价的总和C.求单价平均D.是错的

(4)表ABC1的记录数有()。

A.3 B.4 C.5 D.6

3、有数据表book1.dbf和book3.dbf,阅读程序:

SELECT Book3.部门号,Book1.部门名称,Book3.商品名称,Book3.单价,; Book3.数量,Book3.产地 FROM book1 INNER JOIN book3;

ON Book1.部门号=Book3.部门号;

ORDER BY Book3.单价 DESC into table temp1

update temp1 set 单价=单价*0.98 where 单价>=3000

sele 部门名称,商品名称,数量,单价,产地from temp1;

where 单价>=3000 order by 单价 desc

⑴temp1中末记录对应的部门名称是( )

(A) 家用电器部 (B) 电视录摄象机部

(C) 电话手机部 (D)计算机部

⑵程序最末一条命令产生的结果中,排在最后的记录对应的产地是( )

(A)上海 (B)广东 (C)福建 (D)深圳

⑶temp1是( )

(A)磁盘文件temp1.dbf (B)系统临时表

(C)屏幕映像 (D)报表文件

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:从学生表中检索性别为男而且姓王的学生

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