第4章(1) 关系数据库标准语言SQL-4.1至4.4.1
vf第四章关系数据库标准语言SQL
4.2.8 利用空值查询
SQL支持空值,当然也可以利用空值进 行查询。 假设在订购单关系中,一名职工正在准 备订购单,但尚未选定供应商,这样若把信 息存入数据库,则供应商号和订购日期两个 属性均为空值,在前面给出的订购单记录中 有3个这样的记录。
例4.23 找出尚未确定供应商的订购单。 SELE * FROM 订购单 WHER 供应商号IS NULL 结果是: E6 NUIL OR77 NULI E1 NULL OR80 NUIJL E3 NUIJL OR90 NUI„L 注意:查询空值时要使用IS NULL,而= NULL是无效的,因为空值不是一个确定的 值,所以不能用“=”这样的运算符进行比较。
例4.20 求在WH2仓库工作的职工的最高工资值。
SELECT MAX(工资) FROM 职工 WHERE 仓库号=”WH2”
4.2.7 分组与计算查询
利用GROUP BY子句进行分组计算查询。 GROUP BY短语的格式如下: Group by 字段名 having 条件 可以按一列或多列分组,还可以用HAVING 进一步限定分组的条件。 例4.21 求每个仓库的职工的平均工资。 SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号
可以看到,在这个命令中含有两个 SELECT—FROM—WHERE查询块,即内 层查询块和外层查询块,内层查询块检索 到的仓库号值是WHl和WH2,这样就可以 写出等价的命令: SELE 城市 FROM 仓库 WHERE 仓库号; IN(”WHl”,”WH2”) 这里IN相当于集合运算符∈。
例4.9查询所有职工的工资都多于1210元的仓 库的信息。 这个检索要求也可以描述为:没有一个职工的工 资少于或等于1210元的仓库的信息。 不在以下范围 这样可以有SQL命令: SELE * FROM 仓库 WHER 仓库号 NOT IN; (SELECT 仓库号 FROM 职工 WHERE ; 工资<=1210) 内层SELECT—FROM—WHERE查询块指出所 有职工的工资少于或等于1210元的仓库的仓库号值 的集合,然后从仓库关系中检索元组的仓库号属性 值不在该集合中的每个元组。
第四章关系数据库标准语言SQL语言
4.3.1单表查询
(4)字符匹配 谓词LIKE可以用来进行字符串的匹配。 [NOT] LIKE ‘<匹配串>’[ESCAPE ‘<转换字符码>’] %代表任意长度的字符串(长度可以为0); -(下横线)代表任意单个字符。
4.3.1单表查询
例14.查询学号为200215121的学生的详细情况。 select * from student where sno like '200215121'; 例15.查询所有姓刘的学生的姓名、学号和性别。 select * from student where sname like '刘%‘; 例16.查询姓“欧阳”且全名为3个汉字的学生的 姓名。 select sname from student where sname like '欧阳_';
4.2数据定义
二、删除索引 DROP INDEX <索引名> 例:索引示例。 create table abc ( a int, b int );
create unique index abcindex on abc(a desc);
drop index abc.abcindex; create clustered index abcindex on abc(a desc);
4.3.1单表查询
二、选择表中的若干元组 1.消除取值重复的行 例6.查询选修了课程的学生学号。 select sno from sc; select distinct sno from sc; 2.查询满足条件的元组 (1) 比较大小 例7.查询计算机科学系全体学生的名单。 select sname from studenห้องสมุดไป่ตู้ where sdept='CS';
第4章 关系数据库标准语言SQL4(1)
供应商 供应商号
订购单 职工号
供应商号 订购单号 订购日期
1
(六)分组及计算查询 SQL语言是完备的,也就是说,只要数据按关系方式存入数据库, 语言是完备的,也就是说,只要数据按关系方式存入数据库, 语言是完备的 就能有构造合适的SQL命令把它检索出来。事实上,SQL不仅具有一 命令把它检索出来。 就能有构造合适的 命令把它检索出来 事实上, 不仅具有一 计算方式的检索 般的检索能力,而且还有计算方式的检索,比如检索职工的平均工资、 般的检索能力,而且还有计算方式的检索,比如检索职工的平均工资、 检索某个仓库中职工的最高工资值等。用于计算检索的函数有: 检索某个仓库中职工的最高工资值等。用于计算检索的函数有: 1.COUNT——计数 . 计数 2.SUM ——求和 . 求和 3.AVG ——计算平均值 . 计算平均值 4.MAX ——求最大值 . 求最大值 5.MIN ——求最小值 . 求最小值 这些函数可以用在SELECT短语中对查询结果进行计算。 短语中对查询结果进行计算。 这些函数可以用在 短语中对查询结果进行计算
例28.列出职工全部记录并计算全体职工 . 的平均工资和工资总和( 的平均工资和工资总和(使用 COMPUTE)。 )。
结果是: 结果是: WH2 E1 1220
E3 E4 E6 E7 1210 1250 1230 1250 avg ==== 1232 sum ==== 6160
SELECT 仓库号,职工号,工资 仓库号,职工号, FROM 职工 COMPUTE AVG(工资), ),SUM(工资); (工资), (工资);
职工
仓库号 职工号 工资
上一E3 1210 WH1 E7 1250 avg ==== 1230 sum ==== 2460 WH2 E1 1220 WH2 E4 1250
数据库系统概论:第4章 关系数据库标准语言——SQL语言1
②字符类型 CHAR(n)定义指定长度的字符串,n为字符数的固定长度。 VARCHAR(n)定义可变长度的字符串,其最大长度为n, n不可省略。 ③位串型 BIT(n)定义数据类型为二进制位串,其长度为n。 BIT VARYING(n)定义可变长度的二进制位串,其最大长 度为n,n不可省略。 ④时间型 DATE用于定义日期,包含年、月、日,格式为YYYY-MMDD。 TIME用于定义时间,包含时、分、秒,其格式为 HH:MM:SS。 ⑤布尔型 BOOLEAN定义布尔类型,其值可以是:TRUE(真)、 13 FALSE(假)。
第4章 关系数据库标准语言--SQL语 言
第一节 SQL概述 第二节 数据定义 第三节 数据查询 第四节 数据操纵 第五节 视图
1
第一节 SQL概述
1、什么是SQL语言
SQL(Structured Query Language) 是结构化查询语言。
SQL语言集数据定义、查询、更新和控 制功能于一体。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
3
SQL语言已经成为关系数据库的标准语言, 是关系数据库的基础,oracle,SQL Server 和DB2都使用SQL。
目前,很多数据库产品都对SQL语句进行 再开发与扩展,如oracle提供的PL/SQL (Procedure Language and SQL)就是 对SQL的一种扩展。
数据库技术及应用第4章关系数据库标准语言sql
第4章 关系数据库标准语言——SQL
表4-2 SQL的数据定义语句
第4章 关系数据库标准语言——SQL
1. 语句格式的约定符号 在语句格式中: 尖括号“〈〉”——实际语义。 中括号“[ ]”中的内容——任选项。 大括号“{}”或用分隔符“|”中的内容——必选项, 即必选其中之一项。 [,…n]——表示前面的项可重复多次。
【例4-4】为学生课程数据库中的学生、课程和选 课三个表建立索引。其中,学生表按“学号”升序建 立索引;课程表按“课程号”升序建立惟一索引;选 课表按“学号”升序和“课程号”降序建立惟一索引。 CREATE UNIQUE INDEX 学号ON 学生(学号); CREATE UNIQUE INDEX 课程号 ON 课程(课程号); CREATE UNIQUE INDEX 选课号 ON 选课(学号 ASC, 课程号 DESC);
第4章 关系数据库标准语言——SQL
4.3.2 SQL的查询实例 SQL的查询语句可以分为简单查询、连接查询、嵌
套查询和组合查询四种类型。下面仍以学生课程数据 库为例,介绍各种查询的描述格式。
学生课程数据库包括三个基本表,其结构为 学生(学号,姓名,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成绩)
第4章 关系数据库标准语言——SQL
(2) 比较操作符。 比较操作符用于测试两个数据是否相等、不等、 小于或大于某个值。SQL中的比较操作符包括:=(等 于 ) 、 >( 大 于 ) 、 <( 小 于 ) 、 <=( 小 于 等 于 ) 、 >=( 大 于 等 于)、!=或<>(不等于)、!>(不大于)和 !<(不小于),共九 种操作符。 (3) 逻辑操作符。 SQL的逻辑操作符如表4-4所示。
第四章关系数据库标准语言SQL
第四章关系数据库标准语言SQLSQL是Structured Query Language(结构化查询语言)的缩写。
可以说查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义、数据操纵和数据控制等部分。
4.1SQL概述●SQL语言具有以下主要特点:1.SQL是一种一体化的语言,它包含了数据定义、数据操纵和数据控制等方面的功能,可以完成数据库活动中的全部工作。
2.SQL语言是一种高度非过程化的语言。
3.SQL语言是非常简洁。
4.SQL语言看一直接以命令方式交互使用,也可嵌入到程序设计语言中以程序方式使用。
●SQL命令动词SQL功能命令动词数据查询Select数据定义Create、drop、alter数据操纵Insert、update、delete数据控制Grant、revoke4.2查询功能●Select 字段名from 表名where 条件●Where 条件——用来限定查询必须满足的条件●Group by 字段名——用于对查询结果进行分组,可以利用它进行分组汇总●Having 条件——用来限定分组必须满足的条件(having只是跟在group by 后使用)●Order by 字段名——用于对查询结果进行排序4.2.1简单查询(130页)简单查询是基于一个表的查询,其基本形式:select 字段名from 表名where 条件distinct短语的作用是去掉查询结果中的重复值。
“*”是通配符,表示所有属性(字段)。
Where短语指定了查询条件,查询条件可以是任意复杂的逻辑表达式。
命令窗口中的分号是续行符号。
SQL语句字段值需要定界符的要加。
对于字符型字段值区分大小写。
条件中的and,or有优先级,and优先于or。
4.2.2简单的连接查询连接查询是一种基于多个关系的查询。
若在from后有两个或多个表名,要在where后加这两个或多个表的连接条件,格式:表a.公共字段=表b.公共字段4.2.3嵌套查询嵌套查询是另一种基于多个关系的查询,这类查询所要求的结果出自一关系,但相关的条件却涉及多个关系格式:select 字段名from 表a where 公共字段名in;(select 公共字段名from 表b where 条件)In 相当于集合运算符∈。
第4章 关系数据库标准语言SQL
例1:<=与AND的使用 : 与 的使用 SELECT 姓名,性别,专业 姓名,性别,专业; FROM 学生档案 学生档案; WHERE 出生日期<={^1980-02-01}; 出生日期 AND 性别 女” 性别=“女 注意:不同数据类型数据实例的写法。 注意:不同数据类型数据实例的写法。 日期型: 日期型:{^1980-02-01}
23:37:55
SQL发展历程 SQL发展历程 发展
1976年诞生在 年诞生在IBM公司 年诞生在 公司 1986年出现标准 ANSI公布 1986年出现标准,ANSI公布 年出现标准, 1987年成为国际标准,ISO公布 年成为国际标准, 公布 年成为国际标准 SQL89 SQL92 SQL3
23:37:55
23:37:55
2. 表的删除
格式: 格式: DROP TABLE 表名 DROP VIEW 视图名 说明: 说明:删除数据库表时应在打开数据库 后进行,该命令是直接删除表文件。 后进行,该命令是直接删除表文件。 删除表还可以用 DELETE FILE 表名
23:37:55
4.2.2 数据表结构的修改
23:37:55
٭各子句的作用说明: 各子句的作用说明:
FROM是唯一必须的子句,指定查询来源; 是唯一必须的子句,指定查询来源; 是唯一必须的子句 WHERE可选子句限定查询条件 WHERE可选子句限定查询条件; 可选子句限定查询条件; GROUP BY子句对查询结果进行分组; 子句对查询结果进行分组; 子句对查询结果进行分组 HAVING子句只能用于 子句只能用于GROUP BY之后, 之后, 子句只能用于 之后 为每个分组指定条件; 为每个分组指定条件; ORDER BY指定查询结果的显示顺序。 指定查询结果的显示顺序。 指定查询结果的显示顺序
第4章关系数据库标准语言SQL
SELECT语句中的每个短语都完成一定的功能, 其中“SELECT…FROM…"短语是每个查询 语句必须具备的短语。 SELECT查询命令的使用非常灵活,用它可以 构造各种各样的查询。
图4—1给出了本章要用到的表:教师情况 表.DBF、课程情况表.DBF、学生成绩 表.DBF
(5)GROUP BY
例4.8 查询教师情况表中姓名和出生日期的值,将查询 结果按出生日期升序排序,并显示查询结果的前3条记录
SELECT TOP 3姓名,出生日期 FROM 教师情 况表 ORDER BY出生日期
在SELECT短语中,经常要用到一些函数,如表4-2 所示,其中COUNT函数表示统计记录个数,经常 用COUNT(*)形式或COUNT(字段名)形式等。
表4.1以分类的形式给出了SQL语言的命令动词。
Visual FoxPro在SQL语言方面支持数据定义、 数据查询和数据操纵功能, 由于isualFoxPro自身在安全控制方面的缺陷, 它没有提供数据控制功能。
WHERE短语表示查询条件,查询条件是逻辑表达 FROM短语指定查询数据需要的表,可以基于单个 ORDER BY短语后面跟排序选项,对查询的结果进 SELECT短语指定要查询的数据。主要由表中的字 GROUP BY短语后跟分组字段,对查询结果进行分 4.1 数据查询功能 “输出去向”短语给出查询结果的去向。 GROUP BY短语后跟分组字段,常用的统计方式有 式或关系表达式。也可以用WHERE短语实现多表 表或多个表进行查询。表的形式为“数据库名!表名 行排序。用ASC选择升序(默认);用DESC选择降序。 段组成,可以用“数据库名!表名.字段名”的形式 组,可以使用它进行分组统计,HAVING短语通常跟 求和(SUM())、求平均值(AVG())、求最小值(MIN()、 “查询去向’’可以是临时表、永久表、数组、浏 查询。 ",数据库名可以省略。 当排序的值相同时,可用第二个排序选项。 给出,数据库名和表名均可以省略。 GROUP 览等。 BY短语连用,用来限定分组结果中必须满 求最大值(MAX())、统计记录个数COUNT())等。 SQL语言的查询功能由SELECT命令完成, 足的条件。 基本形式为: SELECT [ALL|DISTINCT] [TOP N[PERCENT]] 要查询的数据 FROM数据源1 [联接方式JOIN数据源2] [ON联接条件] [WHERE查询条件] [GROUP BY分组字段 [HAVING分组条件]] [ORDER BY排序选项][ASC|DESC] [,排序选 项2[ASC|DESC]…]] [输出去向]
第4章 关系数据库标准语言—SQL
SQL 语言
4.1.3 表与视图
按集合的观点,表是元组的集合,关系数据库是表的 集合。表是关系数据库的基本组成单位,数据库操作是对 表的操作。
SQL语言支持数据库的三级模式结构,如图4.1。 SQL的操作对象既可以是基本表,也可以是视图。从用户 的观点看,基本表和视图一样,都是关系。
SQL 语言
SQL 语言
4.1.2 SQL的分类与特点
1. SQL的主要功能
(1) 数据定义功能
定义关系数据库的模式、外模式和内模式,以实现对基本 表、视图以及索引文件的定义、修改和删除等操作。
(2) 数据操纵功能
包括数据查询和数据更新两种数据操作语句:数据查询指 对数据库中的数据查询、统计、分组、排序操作;数据更新指 数据的插入、删除、修改等数据维护操作。
SQL 语言
(3) 表级完整性约束条件
涉及到关系中多个列的限制条件。 1) UNIQUE约束。惟一性约束。 2) PRIMARY KEY约束。定义主码,保证惟一性 和非空性。
CONTRAINT〈约束名〉PRIMARY KEY [CLUSTERED] (〈列组〉)
3) FOREIGN KEY约束。用于定义参照完整性。
select xh,xm from s where bjbh=’0101’;
4.2.1 SQL常量与变量
SQL语句由SQL语言的动词、SQL对象和限定词等构成的。如语句:
常量:在程序执行过程中不变的量。 变量:其值在程序执行过程中可改变的量。 在SQL中常量与变量统称为预定义数据类型。 交互式SQL(Transact SQL,简称T-SQL)是SQL Server的查询语言, 它与SQL2标准兼容,并对其进行了扩张。
[ADD[<新列名><数据类型>] [ <完整性约束>]]
第4章 关系数据库标准语言SQL
20122012-4-19 15
LIKE运算符是字符串匹配运算符, LIKE运算符是字符串匹配运算符,可以用 运算符是字符串匹配运算符 %”表示 个或多个字符, 表示0 “%”表示0个或多个字符,另外还有一个 通配符“_”表示一个字符 表示一个字符。 通配符“_”表示一个字符。 查询出地址不在北京的所有供应商信息。 例13 查询出地址不在北京的所有供应商信息。 SELECT *FROM 供应商 WHERE地址! WHERE地址 地址! =“北京 =“北京” 北京”
第 4章
关系数据库标准语言SQL 关系数据库标准语言SQL
本章要点
SQL概述以及特点 SQL概述以及特点 查询功能,简单查、简单的联接查询、 查询功能,简单查、简单的联接查询、嵌套查 SELECT中特殊运算符 排序、 询 、SQL SELECT中特殊运算符 、排序、简单 的计算查询、分组与计算查询、利用空值查询、 的计算查询、分组与计算查询、利用空值查询、 别名与自联接查询、 别名与自联接查询、内外层相互关联的嵌套查 使用量词和谓词的查询、超联接查询、 询、使用量词和谓词的查询、超联接查询、集 合的并运算
20122012-4-19
14
4.2.4 几个特殊运算符
1.LIKE和 between … and LIKE和 2.举例: 举例: 检索出工资在1220元到 元到1240元范围内的 例4.11 检索出工资在1220元到1240元范围内的 职工信息 select * from 职工 where 工资 between 1220 and 1240这个条件等价于(工资>=1220) and(工 1240这个条件等价于 工资>=1220) and(工 这个条件等价于( 资<=1240) 从供应商表中查询出全部公司的信息, 例4.12 从供应商表中查询出全部公司的信息, 不要工厂或其他供应商信息。 不要工厂或其他供应商信息。
第4章 关系数据库标准语言SQL-1
表4-8 列名 Gno Gname Price Category Provider 说明 商品编号 商品名称 商品价格 商品类别 供应商 Goods表结构 数据类型 字符型,长度为4 字符型,长度为20 浮点型 字符型,长度为50 字符型,长度为20 约束 主码 非空 取值大于0
数据操纵(Data Manipulation)
指对数据库中数据内容的存取操作。包括数据检索和数据更 新两大类操作。
数据控制(Data Control)
包括对数据的安全性控制、完整性规则的描述以及对事务 的控制语句。
4.1.4 SQL的主要特点
综合统一
高度非过程化 面向集合的操作方式
| [ DROP <完整性约束名> ]
-- 删除完整性约束
2.修改基本表
例4-4 为Goods表添加“商品库存”列,此列的定义为Inventory INT ALTER TABLE Goods ADD Inventory INT 例4-5 将新添加的“Inventory”列的类型改为SMALLINT 。 ALTER TABLE Goods ALTER COLUMN Inventory SMALLINT 例4-6 为Goods表中的“Inventory”列添加一个完整性约束,限制其取值 只能大于0 ALTER TABLE Goods ADD CONSTRAINT CK_Inventory CHECK(Inventory>0)
FOREIGN KEY:定义本列为引用其他表的外码。使用形式为: [FOREIGN KEY][<列名>] REFERENCES <外表名>(<外表列名>)
第4章-关系数据库标准语言SQL_Z_New
DB
数据库技术及应用
21
4.1.3 创建数据库和基本表
创建数据库方法有三种: 创建数据库方法有三种: • 使用企业管理器创建数据库; 使用企业管理器创建数据库; • 使用 使用Transact-SQL语言创建 语言创建; 语言创建 • 使用向导创建数据库(略讲)。 使用向导创建数据库(略讲)。
本节介绍使用企业管理器创建数据库。 本节介绍使用企业管理器创建数据库。
DB
数据库技术及应用
22
4.1.3 创建数据库和基本表
使用企业管理器创建数据库 (电脑操作演示,建立 电脑操作演示, 数据库)如下图 电脑操作演示 建立student数据库 如下图 数据库
DB
数据库技术及应用
23
DB
数据库技术及应用
24
4.1.3 创建数据库和基本表 2. 创建基本表
每个数据库最多可创建200万个基本表,用 万个基本表, 每个数据库最多可创建 万个基本表 户创建基本表时,最多可以定义1024个字 户创建基本表时,最多可以定义 个字 段。 • 有两种方法创建基本表: 有两种方法创建基本表: a. 使用 使用Transact-SQL创建基本表; 创建基本表; 创建基本表 b. 使用企业管理器创建基本表。 使用企业管理器创建基本表。 本节介绍使用企业管理器创建基本表。 本节介绍使用企业管理器创建基本表。
DB
数据库技术及应用
4
4.1.1 SQL Server2000概述 概述
• SQL Server的软硬件平台要求 的软硬件平台要求: 的软硬件平台要求 硬件要求: ①硬件要求: 目前的计算机CPU、内存和硬盘等都能满足 目前的计算机 、 SQL Server2000的要求。 的要求。 的要求 软件要求: ②软件要求: SQL Server 2000标准版和企业版只能安装在 标准版和企业版只能安装在 标准版和企业版 服务器版的操作系统中。 服务器版的操作系统中。 Windows 2000和Windows XP操作系统,只 操作系统, 和 操作系统 能安装个人版和开发版 个人版和开发版的 能安装个人版和开发版的SQL Server 2000。 。
sql
(4) SQL语言可以直接以命令方式交互使用,也可以 嵌入到程序设计语言中以程序方式使用。现在很多数据 库应用开发工具都将SQL语言直接融入到自身的语言之 中,使用起来更方便,Visual FoxPro就是如此。这些使 用方式为用户提供了灵活的选择余地。
第4章 关系数据库标准语言SQL
Visual FoxPro在SQL方面支持数据定义、数据查询 和数据操纵功能,但在具体实现方面仍存在一些差异。 另外,由于Visual FoxPro自身在安全控制方面的缺陷, 因此它没有提供数据控制功能。
第4章 关系数据库标准语言SQL
例4.1 在jbqk表中,检索所有记录的所有字段。
SELECT * FROM
jbqk
命令中的*表示显示所有的字段,数据来源是jbqk表,
结果如图4.1所示。
第4章 关系数据库标准语言SQL
图4.1 例4.1查询结果
第4章 关系数据库标准语言SQL
例4.2 在jbqk表中,检索所有职称名称。 SELECT DISTINCT 职称 FROM jbqk
第4章 关系数据库标准语言SQL
SUM(字段名),求所有满足条件的记录在该字段的和。 COUNT(*或字段名),求所有满足条件的记录总数, 字段名可以不写。 ③ 除COUNT函数外,能进行统计的字段必须是表示数 值的数据类型。而且用了统计函数后,视情况会将统计的记 录压缩成一条或多条。 FROM 表文件名 设定查询的数据来源。 注意:① 书写应注意各个子句之间以空格分隔,子句 内部各个项目之间使用逗号分隔。 ② 通常每个子句写一行,每行后要用“;”续行。 下列用一些例子说明SELECT命令的使用,例ቤተ መጻሕፍቲ ባይዱ中所用 到的数据表——职工基本情况表(jbqk.dbf),具体内容如表 4.1所示。
vf第四章关系数据库标准语言SQL
vf第四章关系数据库标准语言SQL SQL(Structured Query Language),即结构化查询语言,是一种专门用于管理和操作关系数据库的标准语言。
本章将介绍SQL的基本语法和常用操作,包括数据查询、数据修改、数据删除和数据插入等。
下面将逐一详细介绍这些内容。
一、数据查询1.1 SELECT语句SELECT语句是SQL中最常用的查询语句,其基本语法如下所示:SELECT 列名 FROM 表名 WHERE 条件;其中,“列名”表示需要查询的列,可以使用“*”表示查询所有列;“表名”表示需要查询的表;“WHERE”子句用于设定查询条件,可以根据需要使用各种条件运算符(如“=、>、<、>=、<=、<>”)来进行查询。
示例如下:SELECT * FROM Employees;以上语句将查询名为“Employees”的表中的所有数据。
1.2 ORDER BY语句ORDER BY语句用于对查询结果进行排序,默认是按照升序排列,可以通过添加“DESC”关键字来改为降序排列。
示例如下:SELECT * FROM Employees ORDER BY Salary DESC;以上语句将按照“Salary”列对名为“Employees”的表中的数据进行降序排列。
二、数据修改2.1 UPDATE语句UPDATE语句用于修改表中的数据,其基本语法如下所示:UPDATE 表名 SET 列名=新值 WHERE 条件;其中,“表名”表示需要修改数据的表,“列名=新值”表示需要修改的列和对应的新值,“WHERE”子句用于设定需要修改的数据的条件。
示例如下:UPDATE Employees SET Salary=5000 WHERE EmployeeID=1001;以上语句将修改名为“Employees”的表中“EmployeeID”为1001的记录的“Salary”列的值为5000;2.2 DELETE语句DELETE语句用于删除表中的数据,其基本语法如下所示:DELETE FROM 表名 WHERE 条件;其中,“表名”表示需要删除数据的表,“WHERE”子句用于设定需要删除的数据的条件。
4关系数据库标准语言SQL
例4-12查询结果
例 4-12 查询结果
分组查询
【例4-13】 统计至少有两条销售记录的员工 的每次销售的平均数量。
SELECT 员工号,COUNT(*) AS 销售次数,AVG(数量) AS 平均数量; FROM 销售记录 GROUP BY 员工号 HAVING 销售次 数>=2
例4-13查询结果
例 4-19 改为全联接
联接查询
将例4-19中的联接分别改为全联接。
SELECT 姓名,销售记录.* FROM 销售员 FULL JOIN 销售记录 ; ON 销售员.员工号=销售记录.员工号
例4-19改为全联接的查询结 果
联接的查询结果
例 4-19 改为全联接的查询结果
指定查询去向
SQL SELECT语句默认在浏览窗口中显示查 询结果,可用INTO或TO字句指定查询结果 去向。
子查询
– 普通子查询 – 子查询相关的特殊运算
普通子查询
【例4-14】 查询每次销售数量不低 于平均销售数量的销售员的员工号。
SELECT DISTINCT 员工号 FROM 销售记录; WHERE 数量>(SELECT AVG(数量) FROM 销售记 录)
例4-14查询结果
例 4-14 查询结果
练习
查询入学分数大于平均分的学生信息
子查询相关的特殊运算
可使用下列与子查询相关的特殊运算:
–
–
表达式 IN (子查询):判断表达式的值是 否包含在查询结果中。 表达式 NOT IN (子查询):判断表达式 的值是否不包含在查询结果中。
子查询相关的特殊运算
– 表达式 比较运算符 ANY|ALL|SOME (子查 询):ANY和SOME作用相同,只要子查询 中有一个记录使比较运算结果为真,则结 果为真。 – [NOT] EXISTS (子查询):判断子查询是否 有返回结果。
第4章 关系数据库标准语言 SQL
第4章关系数据库标准语言SQL
4.2.3 修改表结构
1.语句格式: 1.语句格式: 语句格式 <表名 表名> Alter Table <表名>
4.2 数据定义
<新列名 <数据类型>[<完整性约束 新列名> 数据类型>[<完整性约束>][,……]] [Add <新列名> <数据类型>[<完整性约束>][,……]] [Drop[[[Constraint]<约束名>]|[C0lumn<列名>]][,……]] [Drop[[[Constraint]<约束名>]|[C0lumn<列名>]][,……]] 约束名>]|[C0lumn<列名 <列名 <数据类型>[,……]]; 列名> 数据类型>[,……]] [Alter <列名> <数据类型>[,……]]; 2.语句功能: 2.语句功能: 语句功能 修改以<表名>为名的表结构。 修改以<表名>为名的表结构。 例: Alter Table 交易 Add 备注
第4章关系数据库标准语言SQL
SQL语言的功能 4.1.2 SQL语言的功能
4.1 SQL语言概述
SQL语言具有以下5个方面的功能。 SQL语言具有以下5个方面的功能。 语言具有以下 1.数据定义功能 1.数据定义功能 (1)定义、删除与修改基本表;(2)建立与删除索引。 定义、删除与修改基本表;(2 建立与删除索引。 ;( 2.数据查询功能 2.数据查询功能 单表查询;( ;(2 多表查询(连接查询、嵌套查询); (1)单表查询;(2)多表查询(连接查询、嵌套查询); 使用集函数增加查询附加功能;( ;(4 集合查询。 (3)使用集函数增加查询附加功能;(4)集合查询。 3.数据更新功能 3.数据更新功能 (1)插入数据;(2)修改数据;(3)删除数据。 插入数据;(2 修改数据;(3 删除数据。 ;( ;( 4.视图管理功能 视图管理功能(*) 4.视图管理功能(*) 建立、删除视图;( ;(2 视图查询;( ;(3 视图更新。 (1)建立、删除视图;(2)视图查询;(3)视图更新。 5.数据控制功能 数据控制功能( 5.数据控制功能(*) 数据保护(安全性和完整性控制); (1)数据保护(安全性和完整性控制); (2)事务管理(数据库的恢复、并发控制)。 事务管理(数据库的恢复、并发控制)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、数据类型
SQL中域的概念用数据类型来实现 定义表的属性时 需要指明其数据类型及长度 选用哪种数据类型
取值范围ቤተ መጻሕፍቲ ባይዱ 要做哪些运算
二、数据类型
数据类型 CHAR(n) VARCHAR(n) 长度为n的定长字符串 最大长度为n的变长字符串 含义
INT SMALLINT
NUMERIC(p,d) REAL Double Precision FLOAT(n) DATE TIME
模式与表(续)
创建基本表(其他数据库对象也一样)时,若没有指定模
式,系统根据搜索路径来确定该对象所属的模式 RDBMS会使用模式列表中第一个存在的模式作为数据库 对象的模式名 若搜索路径中的模式名都不存在,系统将给出错误
显示当前的搜索路径: SHOW search_path;
搜索路径的当前默认值是:$user, PUBLIC
数据操纵 数据控制 嵌入式SQL
SQL概述
4.1.1 SQL 的产生与发展
4.1.2 SQL语言的基本概念 4.1.3 SQL的组成 4.1.4 SQL的特点
4.1.4 SQL的特点
1.综合统一
集数据定义语言(DDL),数据操纵语言(DML), 数据控制语言(DCL)功能于一体。 可以独立完成数据库生命周期中的全部活动:
定义关系模式,插入数据,建立数据库; 对数据库中的数据进行查询和更新; 数据库重构和维护 数据库安全性、完整性控制等
用户数据库投入运行后,可根据需要随时逐步修改 模式,不影响数据的运行。 数据操作符统一
2.高度非过程化
非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径
表 4.2 SQL 的数据定义语句 操 作 对 象 模式 表 视 图 索 引 操 作 方 式 创 建 CREATE SCHEMA CREATE TABLE CREATE VIEW CREATE INDEX 删 除 DROP SCHEMA DROP TABLE DROP VIEW DROP INDEX 修 改 ALTER TABLE
模式与表(续)
DBA用户可以设置搜索路径,然后定义基本表
SET search_path TO “S-T”,PUBLIC; Create table Student(......);
结果建立了S-T.Student基本表。
RDBMS发现搜索路径中第一个模式名S-T存在,就把该 模式作为基本表Student所属的模式。
<模式名>隐含为用户名WANG
如果没有指定<模式名>,那么<模式名>隐含为<用户名>
定义模式(续)
定义模式实际上定义了一个命名空间
在这个空间中可以定义该模式包含的数据库对象,例如基本表、
视图、索引等。
在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[< 表定义子句>|<视图定义子句>|<授权定义子句>]
四、修改基本表
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ]
每一个基本表都属于某一个模式
一个模式包含多个基本表 定义基本表所属模式
方法一:在表名中明显地给出模式名 Create table “S-T”.Student(......); /*模式名为 S-T*/ Create table “S-T”.Cource(......); Create table “S-T”.SC(......); 方法二:在创建模式语句中同时创建表 方法三:设置所属的模式
[例5] 建立“学生”表Student,学号是主码,姓名取值唯一。
CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件*/ Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );
基本表3
基本表4
模式
存储文件1
存储文件2
内模式
SQL语言的基本概念(续)
基本表
本身独立存在的表 SQL中一个关系就对应一个基本表 一个(或多个)基本表对应一个存储文件 一个表可以带若干索引
存储文件
逻辑结构组成了关系数据库的内模式 物理结构是任意的,对用户透明
视图
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] …
[,<表级完整性约束条件> ] );
如果完整性约束条件涉及到该表的多个属性列, 则必须定义在表级上,否则既可以定义在列级 也可以定义在表级。
学生表Student
SQL只要提出“做什么”,无须了解存取路径。
存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式
非关系数据模型采用面向记录的操作方式,操作对
象是一条记录
SQL采用集合操作方式
操作对象、查找结果可以是元组的集合 一次插入、删除、更新操作的对象可以是元组的集合
4.以同一种语法结构提供多种使用方式
学生选课表:SC(Sno,Cno,Grade)
Student表
学 号 Sno
姓 名 Sname
性 别 Ssex
年 龄 Sage
所在系 Sdept
200215121 200215122 200215123 200515125
李勇 刘晨 王敏 张立
男 女 女 男
20 19 18 19
CS CS MA IS
4.3 数据定义
4.3.1 模式的定义与删除
4.3.2 基本表的定义、删除与修改 4.3.3 索引的建立与删除
一、定义模式(续)
[例1]定义一个学生-课程模式S-T CREATE SCHEMA “S-T” AUTHORIZATION WANG;
为用户WANG定义了一个模式S-T
[例2]CREATE SCHEMA AUTHORIZATION WANG;
长整数(也可以写作INTEGER) 短整数
定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字 取决于机器精度的浮点数 取决于机器精度的双精度浮点数 浮点数,精度至少为n位数字 日期,包含年、月、日,格式为YYYY-MM-DD 时间,包含一日的时、分、秒,格式为HH:MM:SS
三、模式与表
第四章 关系数据库标准语言SQL
4.1 SQL概述
4.2 学生-课程数据库
4.3 数据定义
4.4 数据查询
4.5 数据更新
4.6 视图
4.7 小结
4.2 学生-课程 数据库
学生-课程模式 S-T :
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:Course(Cno,Cname,Cpno,Ccredit)
SQL概述(续)
4.1.1 SQL 的产生与发展
4.1.2 SQL的基本概念 4.1.3 SQL的组成 4.1.4 SQL的特点
SQL标准的进展过程
标准
SQL/86 SQL/89(FIPS 127-1) SQL/92 SQL99 SQL2003
大致页数
120页 622页 1700页
删除模式(续)
[例4] DROP SCHEMA ZHANG CASCADE;
删除模式ZHANG 同时该模式中定义的表TAB1也被删除
4.3 数据定义
4.3.1 模式的定义与删除
4.3.2 基本表的定义、删除与修改 4.3.3 索引的建立与删除
4.3.2 基本表的定义、删除与修改
一、定义基本表
主码
课程表Course
[例6] 建立一个“课程”表Course
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), 先修课 Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) );
SQL是独立的语言
能够独立地用于联机交互的使用方式 SQL又是嵌入式语言 SQL能够嵌入到高级语言(例如C,C++,Java) 程序中,供程序员设计程序时使用
5.语言简洁,易学易用
SQL功能极强,完成核心功能只用了9个动词。
表 3.1 SQL 语言的动词 SQL 功 能 数 据 查 询 数 据 定 义 数 据 操 纵 数 据 控 制 动 词 SELECT CREATE, DROP, ALTER INSERT,UPDATE DELETE GRANT,REVOKE
定义模式(续)
[例3]
CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) ); 为用户ZHANG创建了一个模式TEST,并在其中定义了一 个表TAB1。
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80