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

合集下载

数据库原理知识总结和期末试卷

数据库原理知识总结和期末试卷

数据库知识要点归纳第1章数据库基础知识1.数据库(DB)是一个按数据结构来存储和管理数据的计算机软件系统。

数据库是长期储存在计算机内的、有组织的、可共享的数据集合。

数据库管理数据两个特征:1.数据整体性 2.数据库中的数据具有数据共享性2.数据库管理系统(DBMS)是专门用于管理数据库的计算机系统软件3.数据库应用系统是在数据库管理系统(DBMS)支持下建立的计算机应用系统,简写为DBAS。

数据库应用系统是由数据库系统、应用程序系统、用户组成的。

例如,以数据库为基础的财务管理系统、人事管理系统、图书管理系统,成绩查询系统等等。

4.数据库系统DBS是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。

它通常由软件、数据库和数据管理员组成。

5.数据库中数据独立性数据和程序之间的依赖程度低,独立程度大的特性称为数据独立性高。

1、数据的物理独立性数据的物理独立性是指应用程序对数据存储结构的依赖程度。

2、数据的逻辑独立性数据的逻辑独立性是指应用程序对数据全局逻辑结构的依赖程度。

6.数据库的三级模式是模式、外模式、内模式。

1.模式(Schema)一个数据库只有一个模式 2.外模式(External Schema)一个数据库有多个外模式。

3.内模式(Internal Schema)一个数据库只有一个内模式。

7.数据库系统的二级映象技术第2章数据模型与概念模型1.实体联系的类型:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)2.E-R图描述现实世界的概念模型,提供了表示实体集、属性和联系的方法。

长方形表示实体集椭圆形表示实体集的属性菱形表示实体集间的联系3.数据模型的三要素数据结构、数据操作、数据约束条件数据结构分为:层状结构、网状结构和关系结构常见的数据模型:层次模型、网状模型和关系模型。

层次模型用树形结构来表示各类实体以及实体间的联系1第3章数据库系统的设计方法1.数据库系统设计应分6个阶段进行,这6个阶段是需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行和维护。

第5章 SQL语言

第5章 SQL语言
SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (工资>2230) AND(职工.仓库号=仓库.仓库号) • 仓库关系和职工关系之间存在一个一对多的联系。
例 5.7 找出工作在面积大于 1400 的仓库的职工号 以及这些职工所在的城市
SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (面积>1400) AND(职工.仓库号=仓库.仓库号)
若使用SELECT SUM(DISTINCT工资) FROM 职工
举例
例5.15 求北京和上海的仓库职工的工资总和
SELECT SUM(工资) FROM 职工 WHERE 仓库号 IN ; (SELECT 仓库号 FFROM 仓库 WHERE 城市=”北京” OR; 城市=”上海”)
例5.16 求所有职工的 工资都多于2210元的仓库的平均 面积
[UNION …] [ORDER BY …]
• SELECT说明要查询的数据 • FROM说明要查询的数据来自哪个或哪些表, 可以对单个表或多个表进行查询; • WHERE说明查询条件,即选择元组的条件; • GROUP BY短语用于对查询结果进行分组, 可以利用它进行分组汇总; • HAVING短语必须跟随GROUP BY 短语使 用,它用来限定分组必须满足的条件; • ORDER BY 用来对查询的结果进行排序。
“武汉”的“SH4”仓库还没有职工,但该仓库的信息 也被检索出来了。
举例
• 排除那些还没有职工的仓库,检索要求描述 为: 查询所有的职工工资都多于 2210元的 仓库的信息,并且该仓库至少要有一名职工.
SELECT * FROM 仓库 WHERE 仓库号 NOT IN ; (SELECT 仓库号 FROM 职工 WHERE 工资<=2210) ; AND仓库号IN (SELECT 仓库号 FROM 职工)

sql语言.do

sql语言.do
录时,系统自动删除SC表中该学号的
所有选课记录。
当删除COURSE表中某一课程号的记录 时,系统自动将SC表中该课程号所对
应的记录中的课程号设为空。
23
例3:建立选课关系模式 SC(S#,C#,G)
CREATE TABLE SC 外键名不一定要 ( SNUM CHAR(4) NOT NULL, 和主键相同,但 CNUM CHAR(4) NOT NULL, 类型一定要相同 G SMALLINT, PRIMARY KEY (SNO, CNO), FOREIGN KEY(SNUM) REFERENCES S(SNO), FOREIGN KEY(CNUM) REFERENCES C(CNO), CHECK ((G IS NULL) OR (G BETWEEN 0 AND 100)));
1)对表增加列:
语法:ALTER 语句的形式: ALTER TABLE <表名> ADD (<列名><数据类型> [NULL|NOT NULL],…); 例:ALTER TABLE S ADD (ADDR CHAR(20)); ★ 如果原表中已存在数据,则新定义的列 必须设臵为NULL,表中原有元组在新增加的 列上的值均被定义为空值;
20
例3:建立选课关系模式 SC(SNO,CNO,G)
CREATE TABLE SC ( SNO CHAR(4) NOT NULL, CNO CHAR(4) NOT NULL, G SMALLINT, PRIMARY KEY (SNO, CNO), *表级约束* FOREIGN KEY(SNO)REFERENCES S(SNO), FOREIGN KEY(CNO)REFERENCES C(CNO), CHECK ((G IS NULL) OR (G BETWEEN 0 AND 100))); *表级约束*

《数据库原理及应用》第五章SQL查询

《数据库原理及应用》第五章SQL查询

SQL语言
SQL功能 命令动词
数据查询
数据定义 数据操纵
SELECT
CREATE、DROP、ALTER INSERT、UPDATE、DELETE
数据控制
GRANT、REVOKE
SQL语言
SQL语言的优点在于SQL不是面向过程的 语言,使用SQL语言只需描述做什么,而 不需要描述如何做,为使用者带来极大的 方便。本章将以讨论SQL的数据查询语言 为主,同时介绍数据定义语言和数据操纵 语言。本章中大部分例题使用“学生管理” 数据库,并假定数据库在Access的当前目录 下。
简单查询----选择记录
WHERE子句通过指定查询条件,可以在表中找出满足条件 的记录。查询条件可以是任意复杂的逻辑表达式。 当WHERE子句需要指定一个以上的查询条件时,要使用逻 辑运算符AND、OR和NOT将其连接成复合的逻辑表达式。 其优先级由高到低为:NOT、AND、OR,可以使用括号改 变优先级。 条件查询还可以使用LIKE或NOT LIKE进行部分匹配查询。* 表示任意长度的字符串;?表示任意单个字符。 在查询中还可以使用查询谓词,查询谓词IN 和NOT IN用于 检索属于(IN)或不属于(NOT IN)指定集合的记录。 例10 查询成绩在60分以下(不包括60分)、90分以上(含 90分)学生的学号。
连接查询(多表查询)
例13 查询会计系学生选修课程及成绩,要求查询结果中含 属性学号、姓名、课程名称和成绩。 SELECT student.学号,姓名,课程名称,成绩 FROM student,course,grade WHERE 所属院系='会计学院' and student.学号=grade. 学号 and grade.课程编号=course.课程编号 这个查询涉及到两个表,查询所要求的结果来自两个表,查 询的条件也涉及到两个表,所以有“FROM student,grade”; 这两个表之间是有联系的,这种联系是通过父表的主关键字 (student中的学号)和子表的外部关键字(grade表的学号) 建立的,所以有命令子句WHERE中的筛选条件“student. 学号=grade.学号”。 由于student表和grade表都有学号属性,因此在SELECT子 句中要用前缀的形式“student.学号”指明取自哪个表中的 学号;此例中用“grade.学号”的形式,查询结果是一样的。

数据库系统原理与应用 目录

数据库系统原理与应用 目录


5.3 完整性
第6章 数据库的事务处理与数据恢复

6.1 事务管理的基本概念 6.2 并发控制

6.3 数据库恢复
第7章 SQL Server 2000

7.1 SQL Server 2000的安装 7.2 SQL Server 2000的管理工具


7.3 SQL Server 2000数据库对象的操作
第9章 数据库应用程序开发

9.1 数据库应用程序设计方法 9.2 数据库应用程序的体系结构


9.3 数据库与应用程序的接口
9.4 数据库应用程序开发

3.1 SQL概述 3.2 数据定义 3.3 数据查询 3.4 数据更新


3.5 视图
3.6 数据控制
第4章 关系数据库设计理论

4.1 数据依赖 4.2 范式 4.3 关系模式的分解
第5章 数据库安全性和完整性

5.1 数据库的安全性 5.2 SQL Server数据库的安全性
7.4 SQL Server 2000数据库管理 7.5 SQL Server 2000程序设计 7.6 SQL Server 2000安全性管理 7.7 链接服务器
第8章 数据库设计

8.1 数据库设计概述 8.2 需求分析


8.3 概念结构设计
8.4 逻辑结构设计 8.5 数据库的物理设计 8.6 数据库实施 8.7 数据库运行与维护
21世纪高职高专新概念教材
数据库系统原理与应用
目录

第1章 数据库基本知识 第2章 关系数据库

第5章结构化查询语言

第5章结构化查询语言

第5章结构化查询语言结构化查询语言(SQL,Structured Query Language)是一种用于管理关系型数据库的标准化语言,也是数据库操作的基础。

SQL可以实现数据库的创建、查询、插入、更新和删除等操作,可以对数据库中的表、视图等进行管理和操作。

SQL语言包括数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(DQL)和事务控制语言(TCL)等几个方面。

数据定义语言(DDL)用于定义、修改和删除数据库对象,包括创建数据库(CREATEDATABASE)、创建表(CREATETABLE)、修改表结构(ALTERTABLE)和删除表(DROPTABLE)等。

数据操纵语言(DML)用于对数据库中的数据进行操作,包括插入数据(INSERT)、更新数据(UPDATE)和删除数据(DELETE)等。

数据查询语言(DQL)用于从数据库中查询数据,SQL语句的核心部分,可以实现复杂的数据查询和数据过滤。

常见的查询语句包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等。

事务控制语言(TCL)用于控制数据库中的事务,包括BEGINTRANSACTION、COMMIT、ROLLBACK等。

通过TCL语句可以确保数据库的操作具有原子性、一致性、隔离性和持久性(ACID特性)。

SQL语言的特点有以下几个方面:1.简单易学:SQL语言的语法相对简单,易于学习和使用。

2.高效可靠:SQL语言是标准化的数据库操作语言,可以高效地对数据库进行管理和操作。

3.跨平台性:SQL语言是一种通用的数据库操作语言,可以在不同的平台和数据库系统上使用。

4.强大灵活:SQL语言可以实现复杂的数据查询和处理,支持多表联合查询、条件查询、分组统计等功能。

SQL语言在现代数据库管理系统中得到了广泛的应用,是数据库开发和管理中非常重要的一部分。

掌握SQL语言可以更好地进行数据库设计、数据管理和数据分析等工作。

第 5 章 复习 SQL(结构化查询语言)

第 5 章  复习 SQL(结构化查询语言)

在T_SQL中,连接查询有两大类表示 形式,一是符合SQL标准连接谓词表示形 式,二是T_SQL扩展使用关键字JOIN的表 示形式。
① 指定每个表中要用于连接的列。典型的 连接条件在一个表中指定外键,在另一个 表中指定与其关联的键。 ② 指定比较各列的值时要使用的逻辑运算 符,如“=、< >”等。
[^]
BDTWEEN„AND IS NULL
LIKE
IN EXISห้องสมุดไป่ตู้S
模式匹配,字符串匹配操作符
检查一个字段值是否属于一组值之中 检查某一个字段值是否有值,实际上,EXISTS是IS NULL的反义词
4.练习
列出性别为女的学生姓名、家庭住址 SELECT student_name, address FROM student_info WHERE student_sex='女'
SQL查询
函数及统计
分组排序
连接 子查询
5.6 基于多表的连接查询
在关系型数据库中,将一个查询同时 涉及两个或两个以上的表,称为连接查询。 基于多表的查询是通过所谓的连接查 询来完成的。连接是根据各个表之间的逻 辑关系从两个或多个表中查询数据,结果 通常是含有参加连接运算的两个表(或多 个表)的指定列的表。
列出1980年以后出生的学生的情况 SELECT * FROM student_info WHERE born_date >'1980-12-31'
列出所有家住“武汉市”的男学生姓名、电 话号码和家庭住址
SELECT student_name, tele_number, student_sex, address FROM student_info WHERE substring(address,1,3)='武汉市' AND student_sex='男'

SQL数据学习:第5章 习 题

SQL数据学习:第5章  习    题

第4章习题一.单项选择1.SQL语言是____的语言,易学习.A 过程化B 非过程化C 格式化D 导航式提示:SQL是一种介于关系代数与关系演算之间的结构化查询语言,它是高度非过程化的.2.SQL语言是____语言.A 层次数据库B 网络数据库C 关系数据库D 非数据库提示:SQL是关系数据库标准语言.3.SQL语言具有____的功能.A 关系规范化,数据操纵,数据控制B 数据定义,数据操纵,数据控制C 数据定义,关系规范化,数据控制D 数据定义,关系规范化,数据操纵提示:SQL语言自身不具备关系规范化功能.4.在SQL中,用户可以直接操作的是____.A 基本表B 视图C 基本表和视图5.在SQL语言中,实现数据检索的语句是_____.A SELECTB INSERTC UPDATED DELETE6.SELECT语句执行结果是_____.A 数据项B 元组C 表D 数据库7.在SQL语句中,对输出结果排序的语句是_____.A GROUP BYB ORDER BYC WHERED HA VING8.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用____.A WHEREB GROUP BYC ORDER BYD HA VING9.在SELECT语句中使用*表示____.A 选择任何属性B 选择全部属性C 选择全部元组D 选择主码10.在SELECT语句中,使用MAX(列名)时,该”列名”应该____.A 必须是数值型B 必须是字符型C 必须是数值型或字符型D 不限制数据类型11.使用CREATE TABLE语句创建的是____.A 数据库B 表C 试图D 索引12.下列SQL语句中,修改表结构的是____.A ALTERB CREATEC UPDATED INSERT13.在SQL中使用UPDA TE语句对表中数据进行修改时,应使用的语句是____.A WHEREB FROMC V ALUESD SET14.视图建立后,在数据库中存放的是____.A 查询语句B 组成视图的表的内容C 视图的定义D 产生视图的表的定义15.以下叙述中正确的是_____.A SELECT命令是通过FOR子句指定查询条件B SELECT命令是通过WHERE子句指定查询条件C SELECT命令是通过WHILE子句指定查询条件D SELECT命令是通过IS子句指定查询条件16.与WHERE AGE BETWEEN 18 AND 23完全等价的是____.A WHERE AGE>18 AND AGE<23B WHERE AGE<18 AND AGE>23C WHERE AGE>18 AND AGE<=23D WHERE AGE>=18 AND AGE<=2317.在查询中统计记录(元组)的个数时,应使用____函数.A SUMB COUNT(列名)C COUNT(*)D A VG18.在查询中统计某列中值的个数应使用____函数.A SUMB COUNT(列名)C COUNT(*)D A VG19.已知基本表SC(S#,C#,GRADE),其中S#为学号,C#为课程号,GRADE为成绩.则”统计选修了课程的学生人数”的SQL—SELECT语句为_____.A SELECT COUNT(DISTINCT S#)FROM SCB SELECT COUNT(S#)FROM SCC SELECT COUNT()FROM SCD SELECT COUNT(DISTINCT *)FROM SC20.在数据库中有如图所示的两个表,若职工表的主码是职工号,部门表的主码是部门号,SQL操作____不能执行.A 从职工表中删除行(‘025’,’王芳’,’03’,720)B 将行(‘005’,’乔兴’,’04’,750)插入到职工表中C 将职工号为”001”的工资改为700D 将职工号为”038”的部门号改为’03’提示:由于职工表中的职工号为主码,不能向其中插入同主码的记录.21.若用如下SQL语句创建一个表studentCREATE TABLE student(NO CHAR(4) NOT NULL,NAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INT)可以插入到student表中的是_____.A (‘1031’,’曾华’,男,23)B (‘1031’,’曾华’,NULL,NULL)C (NULL,’曾华’,’男’,’23’)D (‘1031’,NULL,’男’,23)提示:A中性别SEX属性值格式不正确,C中NO属性值不能为空,D中NAME属性值不能为空.22.假设学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE).要查询选修”COMPUTER”课程的”女”同学的姓名,将涉及关系____.A SB SC,CC S,SCD S,SC,C二.填空1.SQL语言的数据定义功能包括定义数据库,定义基本表,定义视图,定义索引2.SELECT命令中,WHERE子句用于选择满足给定条件的元组,使用GROUP BY子句可按指定列的值分组,同时使用HA VING子句可提取满足条件的组.3.在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SELECT语句中使用DISTINCT保留字.4.视图是一个虚表,它是从一个或几个基本表(或视图)导出的表.在数据库中,只存放视图的定义不存放视图对应的数据接第一章10._____是对数据库系统静态特征的描述,_____是对数据库系统的动态特征的描述.11.数据库体系结构按照_____,____和_____三级结构进行组织.12.外模式是_____的子集.13.实体之间的联系可抽象为三类,它们是____,____和____.14.关系操作的特点是_____操作15.关系模型的完整性规则包括_____,_____和_____.16.自然连接运算是由_____,_____和_____操作组合而成的.17.关系模式的定义格式为_____.18.关系数据库中可命名的最小数据单位是。

SQL存储过程 函数

SQL存储过程 函数

pid p01 p02 p03 p04 p05 p06 p07
pname comb brush razor pen pencil folder case
city Dallas Newark Duluth Duluth Dallas Dallas Newark
quantity 111400 203000 150600 125300 221400 123100 100500
aid a01 a02 a03 a04 a05 a06
aname Smith Jones Brown Gray Otasi Smith
city New York Newark Tokyo New York Duluth Dallas
percent 6 6 7 6 5 5
PRODUCTS:商品编号,名称、 商品库存所在城市、库存量、单价
9
第五章关系数据库标准语言—SQL





创建存储过程proc_Qcustomer:通过顾客的cid来查询 顾客的姓名、城市和这个顾客的折扣,默认顾客cid为 c001。 CREATE PROCEDURE proc_Qcustomer @cid nvarchar(255)='c001', @cname nvarchar(255) output, @city nvarchar(255) output, @discnt float output AS select @cname=cname,@city=city,@discnt=discnt from CUSTOMERS where cid=@cid Go
17
重庆大学软件学院 柳玲 lling29@
第五章关系数据库标准语言—SQL

《关系数据库SQL语言》

《关系数据库SQL语言》

[DataName!]TableName [[AS] Local_Alias] [ON JoinCondition]…] [WHERE JoinCondition [AND JoinCondition…] [AND|OR FilterCondition [AND|OR FilterCondition…]]] [ORDER BY Order_Item [ASC|DESC][,Order_Item [ASC|DESC]…]] [GROUP BY GroupColumn [,GroupColumn…] [HAVING FilterCondition]] [TO SCREEN|FILE FileName [ADDITIVE]|PRINTER [PROMPT]] [INTO TABLE TableName|CURSOR CursorName|ARRAY ArrayName]
(1)简单条件查询
【例5-5】在Zgjk.dbf表中,查询基本工资在1000元以上(含 1000元)职工的姓名和部门(要求不重复显示)。
在命令窗口中键入:
SELECT DISTINCT 姓名,部门,基本工资 FROM Zgjk WHERE 基本工资>=1000
(2)复合条件查询
【例5-6】在Zgjk.dbf表中,查询家电部门已婚的职工的信息。
1000 AND 1200 该命令等价于:
SELECT * FROM Zgjk WHERE 基本工资>=1000 AND ;
基本工资<=1200
3.对查询结果进行排序
在SELECT-SQL命令中,使用ORDER BY子句,可以使查询结果按 指定要求排序。 命令格式:SELECT <列名表> FROM <表名> [WHERE <条件>]; ORDER BY <排序依据> [ASC|DESC] 说明: 排序依据:备注型数据和通用型数据不能作为排序依据。排序依据 可以是字段名、由AS子句命名的列标题(在ORDER BY子句中,不能 直接使用表达式和函数)和列序号(即该列在查询结果中的位置1,2, 3…)。 排序方式:ASC表示查询结果按照排序依据项的值升序排列, DESC表示查询结果按照排序依据项的值降序排列。默认排序方式为 ASC。 排序规则:数值按大小顺序,字母按“ a ” < “ A ” < “ b ” < “ B ” … 的顺序,汉字按内码值顺序,日期按前后顺序,逻辑型数据“假”在 前“真”在后。

《Access2016数据库教程》第5章SQL查询

《Access2016数据库教程》第5章SQL查询
第5章 SQL查询
SQL(Structure Query Language)结构化查询语言
是一种专门针对数据库操作的计算机语言,是关系数据库管 理系统中的标准语言。 SQL查询是使用SQL语句创建的查询。 查询对象本质上是一条SQL语言编写的命令。
SELECT语句
SELECT语句是对关系数据库的表作选择查询的一个命令, 可以返回指定的数据表中的全部或部分满足条件的记录。
Where Year(出生日期)=2001 Or Year(出生日期)=2003
Where Year(出生日期) In(2001,2003)
4.9 SQL查询
【例5-11】查询“学生表”中年龄为18岁的 学生的学号、姓名、政治面貌。
Select 学号, 姓名, 政治面貌 From 学生表
Where Year(Date())-Year(出生日期)=18
然后使用Group By子句按照课程名称进行分组 再计算每个组内包含成绩的平均值、最大值和最小值。
3.SELECT多表连接查询示例
【例5-19】 查询每个学生的学号、姓名和平均成绩 (保留2位小数),查询结果按“平均成绩”降序排序。
Select 学生表.学号, First(学生表.姓名) As 姓名, Round(Avg(成绩),2) As 平均成绩 From 学生表 Inner Join 选课成绩表 On 学生表.学号= 选课成绩表.学号 Group By 学生表.学号 Order By Round(Avg(成绩),2) Desc
先从Where子句的条件筛选出“男”同学,再按照 院系代码进行分组求出平均分,然后按照平均分降 序排序。
5.2.3 多表连接查询
连接就是将其他表中的列字段添加到本表中。连接运 算主要分成内连接和外连接。 内连接是应用最广泛的连接运算,结果只包含两个表 中连接字段相同的记录行,是等值连接。使用Inner Join就可以将两张表内连接在一起。

关系数据库的结构化查询语言SQL

关系数据库的结构化查询语言SQL
TIME TIMESTAMP
备注
按固定长度n存储字符串,如果实际字符串长度长小于n,后 面填空格符;如果实际字符串长大于n,则报错。
按实际字符串长度存储,但字符长度不得超过n,则报错。 常见的长整数,字长32位
字长16位 n为十进制数总位数(不包括小数点),d为小数据点后的十进 制位数
一般指双精度浮点数,即字长64位
二进制位串,长度为n,n的缺省值为1
按实际二进制位串存储,但最长不得超过n位,否则报错 格式为“yyyymmdd”, yyyy表示年份,范围为0001~9999;mm 表示月份,范围为1~12;dd表示日,范围为1~31。 格式为“hhmmss”,hh表示小时,范围为0~24;mm为分钟, ss表示秒,范围都是0~59。 格 式 为 “ yyyymmddhhmmssnnnnnn” , 其 中 “ nnnnnn” 表 示 微秒,范围为0~99999,其他符号的意义同上。
2)SQL数据库的体系构造
SQL用户
用户1
用户2
用户3
用户4
外模式
视图V1
视图V2
模式
基本表B1
基本表B2
基本表B3
基本表B4
内模式 存储文件S1
存储文件S2
存储文件S3
存储文件S4
SQL数据库的体系构造的特征:
一个SQL模式是表和约束的集合。 一个表〔TABLE〕是行的集合。每行是列的序列,每
如果关键字由多个属性构成,那么必须使用方法(2)。
SQL事例
CREATE TABLE S
( SNO CHAR(6) PRIMARY KEY, /*第一种方式*/ SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), DNAME VARCHAR(12));

第5章-SQL语言 作业和思考

第5章-SQL语言 作业和思考

一、单项选择题:1.SQL语言是( )的语言,容易学习。

A.过程化B. 非过程化C.格式化D. 导航式2.关系操作方式的特点是( )操作。

A. 导航方式B. 一次一集合方式C.一次一记录方式 D. 记录或集合方式3.下列关于基本表与存储文件之间关系的叙述中,正确的是( )。

A. 一个基本表只能存储于一个文件中,一个存储文件中也只能存储一个基本表B. 一个基本表只能存储于一个文件中,但一个存储文件中可存储多个基本表C. 一个基本表可以存储于一个或多个文件中,但一个存储文件中只能存储一个基本表D. 一个基本表可以存储于一个或多个文件中,一个存储文件中也可以存储一个或多个基本表4.视图是从一个或多个基本表(视图)导出的表。

它相当于三级模式结构中的( )A. 外模式B. 模式C.内模式 D. 存储模式5.SQL的GRANT与REVOKE命令属于数据库保护中的( )控制。

A.完整性 B. 安全性 C. 并发控制 D. 恢复机制6.1986年,( )被定为关系数据库标准语言。

A. 关系代数B. 关系演算C.SQL语言D.QBE7.在SQL语言中授权的操作是通过( )语句实现的。

A. CREATE B.REVOKE C.GRANT D.INSERT8.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE,DELETE等.其中最重要的,也是使用最频繁的语句是( )。

A. DELETEB. INSERTC. UPDATED. SELECT9.SQL语言中,实现数据检索的语句是( )。

A.SELECT B.INSERT C. UPDATE D.FIND10.下列SQL语句中,修改表结构的是( )。

A. ALTERB. CREATEC.UPDATED. DELETE11.实体完整性约束和SQL语言中的()相对应。

A.primary key B.foreign key C.check D.unique12.参照完整性约束和SQL语言中的()相对应。

第五章 关系数据库标准语言SQL(2)

第五章 关系数据库标准语言SQL(2)
5.2.6 简单连接查询(内连接) 简单连接查询(内连接) 查询各部门销售进口商品的名称和数量。 例:查询各部门销售进口商品的名称和数量。 多张表时 可使用简 当查询内容或条件涉及到多张表 当查询内容或条件涉及到多张表时,可使用简 单连接查询。 单连接查询。 SELECT 字段列表 FROM 表1,表2 WHERE 表1.公共 表 公共 字段=表 公共字段 字段 表2.公共字段 AND 筛选条件
作业
课后作业
一、教材第五章课后习题 二、pdf第8章习题 pdf第
第五章 关系数据库标准语言SQL
预习
预习
第六章 视图和查询 1、视图和查询的创建方法 2、视图和查询在功能上的不同
第五章 关系数据库标准语言SQL
5.4 SQL的数据定义功能 SQL的数据定义;表名> ADD [PRIMARY KEY | UNIQUE <字 段名> TAG <索引标识>]
删除主索引
ALTER TABLE <表名> DROP PRIMARY KEY
第五章 关系数据库标准语言SQL
5.3 SQL的数据定义功能 SQL的数据定义功能
第五章 关系数据库标准语言SQL
8.3 SQL的数据定义功能 SQL的数据定义功能
5.4.1 创建表 <表名 (<字段名 表名> 字段名1> <类型>[(宽度 类型>[( CREATE TABLE <表名> (<字段名1> <类型>[(宽度 [,小数点位数])][,<字段名 <类型>[(宽度 小数点位数])][,<字段名2> 类型>[( [,小数点位数])][,<字段名2> <类型>[(宽度 [, 小数点位数] )]。。。。 。。。。) 小数点位数] )]。。。。) 例:创建sp1表,结构和sp表相同。 创建sp1表 结构和sp表相同。 sp1 sp表相同

数据库第四版(王珊)答案

数据库第四版(王珊)答案

第2章关系数据库1 .试述关系模型的三个组成部分。

答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

2 .试述关系数据语言的特点和分类。

答:关系数据语言可以分为三类:关系代数语言。

关系演算语言:元组关系演算语言和域关系演算语言。

SQL:具有关系代数和关系演算双重特点的语言。

这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

4 .试述关系模型的完整性规则。

在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。

即属性F本身不是主属性,则可以取空值,否则不能取空值。

5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=‘P1‘(σCOLOR=’红‘(P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))6.试述等值连接与自然连接的区别和联系。

答:连接运算符是“=”的连接运算称为等值连接。

它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。

关系数据库标准语言

关系数据库标准语言


例:查询考试成绩有不及格的学生的学号。
SELECT DISTINCT 学号 FROM 选课 WHERE 成绩<60; 这里使用了DISTINCT短语,当一个学生有多门课程不及格,他 的学号也只列一次。



(2)确定范围
谓词BETWEEN…AND…和NOT BETWEEN…AND…可以用来查找属 性值在(或不在)指定范围内的元组,其中BETWEEN后是范围 的下限,AND后是范围的上限。 例:查询所有年龄在20岁到23岁之间的学生姓名、系别及其 年龄。


学号 95001
95001
95001
学号
95001 95002
95002
95002 95002
看书上的例子
2、查询满足条件的元组——条件查询
通过WHERE子句来实现, WHERE子句常用的查询条件有: 比较、确定范围、确定集合、字符匹配、空值与多重条件, 其谓词如书上P16所列。

(1)综合统一
SQL语言集DDL、DML、DCL的于一体,包括定义关系模式、录 入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性 控制等一系列功能。


(2)高度非过程化 用户无需了解存取路径,用户只需提出“做什么”,而不 必指明“怎么做”。存取路径的选择以及SQL语句的操作过 程由系统自动完成。 (3) SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 (4)以统一的语法结构提供两种使用方式——自含式和嵌 入式 自含式语言可以独立使用交互命令,适用于终端用户、 应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用程序员 开发应用程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例5-14】统计职工工资表中基本工资大于2000的职工 数。 SELECT COUNT(*) AS 基本工资大于2000人数; FROM 职工工资表 WHERE 基本工资>2000
【例5-15】统计职工信息表中有几个部门。 SELECT COUNT(DISTINCT 部门编号) AS;部 门数 FROM 职工信息表
4.查询经过计算的表达式 【例5-4】查询职工工资表中的职工号,基本工资,岗位 工资,院龄工资,职务工资,税金和实发工资。 SELECT 职工号,基本工资,岗位工资,院龄工资,职务津贴, 税金,; (基本工资+岗位工资+院龄工资+职务津贴-税金) AS 实 发工资 FROM 职工工资表 说明:AS用于修改查询结果中指定列的列名。AS也可 以省略。
数据查询是对数据库中的数据按指定条件和 顺序进行检索输出。 5.2.1 SELECT语句格式 Select语句的基本格式为:
select <字段名表> from <表名> [where <条件表达式>]
5.2.2 投影查询 投影查询是指从表中查询全部列或部分列。
1.查询全部字段 【例5-1】查询职工信息表中全部信息。 SELECT * FROM 职工信息表 等价于下面,部门编号, 出生日期 FROM 职工信息表
5.2.3 条件查询
SELECT-SQL语句的查询方式很丰富,使用 WHERE子句可以查询满足某些条件的记录。 在WHERE子句中可以用关系运算符、逻辑运 算符及特殊运算符构成较复杂的条件表达式。 1.单条件查询 【例5-5】查询职工信息表中已婚职工的信息。 SELECT * FROM 职工信息表 WHERE 婚否

(2) IN运算符。在查找中,经常会遇到要求表的列值是某 几个值中的一个。此时,用IN运算符。 【例5-10】查询职工信息表中“101”、“103”、“104”部 门的职工号,姓名和部门编号。 SELECT 职工号,姓名,部门编号 FROM 职工信息表 WHERE 部门编号 IN ; (”101”,”103”,”104”) (3) LIKE运算符。在查找中,LIKE运算符专门对字符型数 据进行字符串比较。LIKE运算符提供两种字符串匹配方 式:一种是使用下划线符号“_”表示任意一个字符,另 一种是使用百分号“%”表示0个或多个字符的字符串。 【例5-11】查询职工信息表中姓名包含“良”字的职工姓 名。 SELECT 姓名 FROM 职工信息表 WHERE 姓名 LIKE “%良%”
3. 特殊运算符查询
在WHERE子句的查询中,常常会遇上查询条件为一 些特殊的值或在某个特定的条件范围内,这可以使用 特殊运算符解决。特殊运算符包括BETWEEN、IN、 IS NULL和LIKE。 (1)BETWEEN…AND运算符。在查找中,如果要求某列的 数值在某个区间内,可使用该运算符。 【例5-9】查询职工信息表中年龄在30~40之间的职工姓 名和年龄。 SELECT 姓名,年龄 FROM 职工信息表 WHERE 年龄 BETWEEN 30 AND 40

【例5-6】查询职工表中年龄大于等于30岁的职工的姓名, 年龄和职称。 SELECT 姓名,年龄,职称 FROM 职工信息表 WHERE 年龄>=30
2.多重条件查询
【例5-7】查询职工信息表中出生日期小于1970年副教授 的姓名、年龄、职称和出生日期。 SELECT 姓名,年龄,职称,出生日期 FROM 职工信息 表 WHERE 职称=”副教授”AND; YEAR(出生日期)<1970
5.2.4 统计及分组查询

1. 统计查询 SQL不仅具有一般的检索数据的功能,而且还有计算 检索的功能。SQL用于计算检索的函数有COUNT(计 数)、SUM(求和)、AVG(求平均值)、MAX(求 最大值)、MIN(求最小值)。在这些函数种,可以使 用DISTINCT或ALL。如果指定了DISTINCT,在计算 时可以取消指定列中的重复值;如果不指定DISTINCT 或ALL,则取默认值ALL,不取消重复值。
5.2.6 连接查询
一个数据库中的多个表之间一般都存在某种内在联系, 它们共同提供有用的信息。前面的查询都是针对一个 表进行的。若一个查询同时涉及两个以上的表,则称 之为连接查询。 1. 内连接查询 命令的语法格式如下: SELECT <查询列> FROM <表1>,< 表2> WHERE 连接条 件 AND 查询条件 说明:连接条件为:表1.公共字段=表2.公共字段
【例5-12】查询职工信息表中姓名第三个字是“良”字的 职工姓名。 SELECT 姓名 FROM 职工信息表 WHERE 姓名 LIKE “__良”
(4) IS NULL运算符。IS NULL运算符的功能是测试属性值 是否为空值。在查询时应使用“列名IS [NOT] NULL”的 形式,不能写成“列名=NULL”或 “列名!=NULL”。 【例5-13】 查询职工信息表中职称为空的职工姓名和职称。 SELECT 姓名,职称 FROM 职工信息表 WHERE; 职称IS NULL

2. 自连接查询 自身连接查询指连接操作不仅可以在两个表之间进行, 也可以是一个表与其自己进行连接的查询。在连接查 询中,为了区分字段名,常用表名作为字段名的前缀, 有时显得很麻烦。因此,SQL语言中允许表名定义别 名。 命令的语法格式如下: <表名>. <别名> 【例5-25】查询职工信息表中,年龄比曾玲珑年长的 职工姓名和年龄。 SELECT a.姓名,a.年龄 FROM 职工信息表 a, ; 职工信息表 b; WHERE a.年龄>b.年龄 AND b.姓名=”曾玲珑”
5.1 SQL语言概述
结构化查询语言SQL是一种介于关系代数与关系 演算之间的语言。它的主要特点如下: 1. 一体化语言 2. 高度非过程化语言 3.语言简洁,易学易用 4.统一的语法结构 5.视图数据结构 6.Visual FoxPro中的SQL
5.2 SQL的数据查询功能

5.2.5排序查询
在SQL语言中,ORDER BY子句用于对查询结果按一 个或多个查询列进行排序。其中包括升序(ASC)和 降序(DESC),缺省值为升序。 1. 单列排序 【例5-19】查询职工信息表中年龄40岁以上按出生日 期字段降序排列的全部职工信息。 SELECT * FROM 职工信息表; WHERE 年龄>=40 ORDER BY 出生日期 DESC
5.2.7超连接查询
SQL中FROM子句后的连接称为超连接,超连 接有四种形式。 命令的语法格式如下: SELECT...FROM <表名> [[INNER | LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]; JOIN [<数据库名>!] <表名> [[AS] Local_Alias][ON<连接条件>]] 其中:OUTER关键字可被省略,包含OUTER 强调这是一个外连接(outer join)。
1.
2. 带有IN谓词的子查询 在嵌套查询中,子查询的结果一般是一个集合,因此 在外层查询中,可以用IN谓词来作为查询条件。 【例5-31】查询基本工资大于2000的职工姓名和职称。 SELECT 姓名,职称 FROM 职工信息表 ; WHERE 职工号 IN ; (SELECT 职工号 FROM 职工工资表; WHERE 基本工资>2000)
2.左连接 LEFT[OUTER] JOIN 称为左连接,在查询结果中包含 JOIN 左侧表中的所有记录,以及JOIN 右侧表中匹配的 记录。 3.右连接 RIGHT[OUTER] JOIN 称为右连接,在查询结果中包含 JOIN 右侧表中的所有记录,以及JOIN 左侧表中匹配的 记录。 4.完全连接 FULL[OUTER] JOIN 称为完全连接,在查询结果中包 含JOIN 两侧表中的所有匹配记录和不匹配的记录。




1.内部连接 使用INNER JOIN形式的连接称为内部连接,INNER JOIN等价于JOIN。INNER JOIN与普通连接相同:只 有满足条件的记录才出现在查询结果中。 【例5-26】将职工信息表和职工部门表按内部形式连接, 包含职工号、姓名、部门名称字段。 SELECT A.职工号,姓名,部门名称 FROM ; 职工信息表 A INNER JOIN 职工部门表 B; ON A.部门编号 =B.部门编号
第5章
关系数据库标准语言SQL

SQL全称是结构化查询语言(Structured Query Language),它是国际标准数据库语言,如今 无论是Visual Foxpro、Access这样的微机上常 用的小型数据库管理系统,还是Oracle、 Sybase、Informix、SQL Server这样的大型数 据库管理系统,都支持SQL语言。SQL命令可 以替代多条Visual FoxPro命令。
说明:星号“*”表示表中所有字段
2.查询部分字段 【例5-2】查询职工信息表中职工号,姓名和年龄。 SELECT 职工号,姓名,年龄 FROM 职工信息表
3.取消重复记录 在SELECT语句中,可以使用DISTINCT来取消查询结果 中重复的记录。 【例5-3】查询职工表中所有的部门编号。 SELECT DISTINCT 部门编号 FROM 职工信息表

2. 多列排序 查询结果中按多个查询列排序。 【例5-20】查询职工信息表中,部门编号为“103”的职 工信息,结果按性别的升序、年龄的降序排列。 SELECT * FROM 职工信息表 WHERE; 部门编号=”103”ORDER BY 性别,年龄 DESC
3. 前面部分记录查询 在查询语句中,TOP <表达式>[PERCENT]子句查询满足条 件的前面部分记录,其中的表达式必为数值表达式。 【例5-21】查询职工信息表中,年龄最大的三人信息。 SELECT * TOP 3 FROM 职工信息表 ; ORDER BY 年龄 DESC 【例5-22】查询职工信息表中,年龄最小的20%的员工信 息。 SELECT * TOP 20 PERCENT FROM 职工信息表 ; ORDER BY 年龄
相关文档
最新文档