关系数据库标准语言——SQL
更新时间:2023-09-05 03:57:01 阅读量: 教育文库 文档下载
数据库系统原理
2014-2-9
第5章
关系数据库标准语言—SQL
5.1 SQL概述及特点
5.2 数据定义语句5.3 数据查询语句
5.4 数据更新语句5.5 嵌入式SQL 5.6 数据控制机制和语句
5.1
SQL概述及特点
1. SQL的主要功能 (1) 数据定义功能 定义关系数据库的模式、外模式和内模式,以实 现对基本表、视图以及索引文件的定义、修改和删除等 操作。 (2) 数据操纵功能 包括数据查询和数据更新两种数据操作语句:数据 查询指对数据库中的数据查询、统计、分组、排序操作; 数据更新指数据的插入、删除、修改等数据维护操作。 (3) 数据控制功能 通过对数据库用户的授权和收权命令来实现有关数 据的存取控制,以保证数据库的安全性。
2. SQL的特点(1) SQL具有自含式和嵌入式两种形式。(2) SQL具有语言简洁、易学易用的特点。 (3) SQL支持三级模式结构。① 全体基本表构成了数据库的模式。 ② 视图和部分基本表构成了数据库的外模式。
③ 数据库的存储文件和它们的索引文件构成了关系数据库的内模式。
5.25.2.1
数据定义语句
基本表的定义和维护
1. 定义基本表 定义基本表语句的一般格式为:
CREATE TABLE [〈库名〉]〈表名〉(〈列名〉〈数据类型〉[〈列级完整性约束条件〉] , 〈列名〉〈数据类型〉[〈列级完整性约束条件〉]] [, n] [,〈表级完整性约束条件〉]
[, n] );
(1) SQL支持的数据类型类型表示 类型说明
SMALLINT数值型 数据 INTEGER或INT
半字长二进制整数。15bits数据全字长(四字长)整数。31bits数据 十进制数,共p位,其中小数点后q位。 0≤q≤p,q=0时可省略不写 双字长浮点数 长度为n的定长字符串 最大长度为n的变长字符串 长度为n的定长图形字符串 最大长度为n的变长图形字符串 日期型,格式为YYYY-MM-DD 时间型,格式为HH.MM.SS 日期加时间
DECIMAL(p[,q])FLOAT
字符型 数据
CHARTER(n)或 CHAR(n) VARCHAR(n) GRAPHIC(n) VARGRAPHIC(n) DATE
特殊数据类型
日期时 间型
TIME TIMESTAMP
(2) 列级完整性的约束条件针对属性值设置的限制条件。 1) NOT NULL或NULL约束。NOT NULL约束不允许字段值为空,
而NULL约束允许字段值为空。2) UNIQUE约束。惟一性约束,即不允许列中出现重复的属 性值。
3) DEFAULT约束。默认值约束。DEFAULT〈约束名〉〈默认值〉FOR〈列名〉 4) CHECK约束。检查约束。 CONSTRAINT〈约束名〉CHECK (〈约束条件表达式〉)
(3) 表级完整性约束条件 涉及到关系中多个列的限制条件。 1) UNIQUE约束。惟一性约束。 2) PRIMARY KEY约束。定义主码,保证惟一性和非空性。
CONTRAINT〈约束名〉PRIMARY KEY [CLUSTERED] (〈列组〉) 3) FOREIGN KEY约束。用于定义参照完整性。 CONTRAINT〈约束
名〉FOREIGN KEY(〈外码〉) REFERENCES〈被参照表名〉(〈与外码对应的主码名〉)
建立基本表: 学生(学号,姓名,年龄,性别,所在系); 【例5-1】 课程(课程号,课程名,先行课); 选课(学号,课程号,成 绩).
CREATE TABLE 学生(学号 CHAR(5) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL,年龄 SMALLINT, 性别 CHAR(2),所在系 CHAR(20), DEFAULT C1 20 FOR 年龄, CONSTRAINT C2 CHECK(性别 IN (‘男’,‘女’))); CREATE TABLE 课程(课程号 CHAR(5) PRIMARY KEY, 课程名 CHAR(20),先行课 CHAR(5)); CREATE TABLE 选课(学号 CHAR(5),课程号 CHAR(5), 成绩 SMALLINT, CONSTRAINT C3 CHECK(成绩 BETWEEN 0 AND 100), CONSTRAINT C4 PRIMARY KEY(学号,课程号), CONSTRAINT C5 FOREIGN KEY(学号) REFERENCES 学生(学号), CONSTRAINT C6 FOREIGN KEY(课程号) REFERENCES 课程(课程号));
2. 修改基本表和删除基本表ALTER TABLE〈表名〉 [ADD(〈新列名〉〈数据类型〉[完整性约束] [,… n])] [DROP〈完整性约束名〉] [MODIFY(〈列名〉〈数据类型〉[,…n])]; (1) 使用ADD子句增加新列 【例5-2】向课程表中增加“学时”字段。 ALTER TABLE 课程 ADD 学时 SMALLINT; (2) 使用MODIFY子句修改列的原定义 (3) 使用DROP子句删除指定的完整性约束条件 【例5-3】删除学生表中对年龄的默认值的定义。 ALTER TABLE 学生 DROP C1; 删除基本表的一般格式为: DROP TABLE〈表名〉;
5.2.2
索引的定义和维护
1. 索引的作用 1) 使用索引可以明显地加快数据查询的速度。 2) 使用索引可保证数据的惟一性。 3) 使用索引可以加快连接速度。 2. 建立索引的原则 1) 索引的建立和维护由DBA和DBMS完成。 2) 大表应当建索引,小表则不必建索引。 3) 对于一个基本表,不要建立过多的索引。 4) 根据查询要求建索引。
3. 建立和删除索引的格式建立格式为: CREATE [UNIQUE] [CLUSTER] INDEX 〈索引名〉 ON〈表名〉 (〈列名〉[〈次序〉][,〈列名〉[〈次序〉]]…); 删除索引格式为: DROP INDEX 〈索引名〉; 【例5-4】为学生_课程数据库中的学生、课程和选课三个表建 立索引。其中,学生表按学号升序建立索引;课程表按课程 号升序建惟一索引;选课表按学号升序和课程号降序建惟一 索引。 CREATE UNIQUE INDEX 学号ON 学生(学号); CREATE UNIQUE INDEX 课程号 ON 课程(课程号); CREATE UNIQUE INDEX 选课号 ON 选课(学号 ASC,课程号 D ESC);
5.2.3
视图的定义和维护
1. 视图的优点 1) 视图能够简化用户的操作。 2) 视图机制可以使用户以不同的方式看待同一数据。 3) 视图对数据库的重构提供了一定程度的逻辑独立性。 4) 视图可以对机密的数据提供安全保护。2. 视图定义的格式 一般格式为: CREATE VIEW〈视图名〉[(列名组)] AS〈子查询〉 [WITH CHECK OPT
ION];
视图举例【例5-6】建立计算机系学生的视图。 CREATE VIEW 计算机系学生 AS SELECT 学号,姓名,年龄 FROM 学生 WHERE 所在系=‘计算机系’; 【例5-7】由学生、课程和选课三个表,定义一个计算机系的 学生成绩视图,其属性包括学号、姓名、课程名和成绩。CREATE VIEW 学生成绩(学号,姓名,课程名,成绩) AS SELECT 学生.学号,学生.姓名,课程.课程名,选课.成绩
FORM
学生,课程,选课AND 学生.所在系='计算机系';
WHERE 学生.学号=选课.学号 AND 程.课程名=选课.课程号
3. 视图的删除 、查询和维护视图删除语句的一般格式为: DROP VIEW〈视图名〉; 视图可以和基本表一样被查询,其使用方法与基本表 相同,但利用视图进行数据增、删、改操作,会受到 一定的限制。
5.35.3.1
数据查询语句数据查询的基本语法
1. SELECT语句的语法
SELECT〈目标列组〉FROM〈数据源〉 [WHERE〈元组选择条件〉] [GROUP BY〈分列组〉[HAVING 〈组选择条件〉]] [ORDER BY〈排序列1〉〈排序要求1〉 [,…n]];
语法说明(1) SELECT子句:指明目标列(字段、表达式、函数表达式、 常量)。基本表中相同的列名表示为:〈表名〉.〈列名〉 (2) FROM子句:指明数据源。表间用“,”分割。数据源不在 当前数据库中,使用“〈数据库名〉.〈表名〉”表示。一表 多用,用别名标识。定义表别名:〈表名〉〈别名〉 (3) WHERE子句:元组选择条件。
(4) GROUP BY子句:结果集分组。当目标列中有统计函数,则 统计为分组统计,否则为对整个结果集统计。子句后带上HA VING子句表达组选择条件(带函数的表达式)。 (5) ORDER BY 子句:排序。当排序要求为 ASC 时升序排序;排 序要求为DESC时降序排列。
2. SELECT语句的操作符(1) 算术操作符+(加号)、-(减号)、*(乘号)和 /(除号)。 (2) 比较操作符 =(等于)、>(大于)、<(小于)、<=(小于等 于)、>=(大于等于)、!=(不等于)、<>(小于
大于)、!>(不大于)和 !<(不小于),共9种操作符。
(3) 逻辑操作符语义 在[不在]其中 任何一个 全部(每个) [不]存在 在[不在]范围 操作符 [NOT] IN ANY ALL EXISTS BETWEEN…AND… 使用格式或示例 〈字段〉 IN (〈数据表|子查询〉) 〈字段〉〈比较符〉ANY (数据表|子查询) 〈字段〉〈比较符〉ALL (数据表|子查询) EXISTS (〈子查询〉) 〈字段〉 BETWEEN 小值 AND 大值
是[不是]空值模式比较 与运算 或运算 非运算
IS [NOT] NULL[NOT] LIKE AND OR NOT
〈字段〉 IS [NOT] NULL〈字段〉 LIKE 〈字符常数〉 其中, “_” 单字符通配符和 “%” 多字符通配符 〈条件1〉AND〈条件2〉 〈条件1〉OR〈条件2〉 NOT〈条件〉
正在阅读:
关系数据库标准语言——SQL09-05
小学英语句型转换总结及练习05-01
厉庄高级中学高二语文清明节假期作业答案06-06
文明寄语有哪些02-10
鹿茸怎么吃效果最好02-09
计算机病毒与安全防治选择题06-29
2014年陕西省造价员考试电气复习资料03-20
硬质合金烧结车间设计 - 图文10-05
啤酒工艺计算05-05
习惯的力量02-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 标准语
- 关系
- 数据库
- 言——
- SQL
- 2017年石家庄铁道大学土木工程学院901材料力学考研仿真模拟题
- 软件工程实验报告实验一
- TBP丰田工作方法(TBP)
- 双涧小学先进班集体的评选方案
- (2019-2020)【知识点】统编版人教版小学数学三年级下册(第二学期):名校数学竞赛测试卷【必备资料】
- 【新课标人教A版】2014届高考数学(理)总复习限时规范训练:8.5 椭圆 Word版含解析]
- 德语单词记忆
- 转的 旅游用车合同(非原创哦)
- 复旦大学上海医学院 工作简报
- 军事理论2016-张国清版 答案
- 散文翻译练习1
- (遵义专版)2017-2018学年八年级英语上册 Unit 9 Can you come to my party语法小专题同步练习 (新版)人
- 种植知识培训记录
- 江西省高安市二中2015-2016学年高一上学期期中考试化学试卷(平行班)
- 棉花大宗商品价格走势综合分析及战略采购销售决策报告
- 北师大七年级(上)第四章:动点、动角模型(无答案)
- 房地产经纪公司销售实战培训_126P
- 全日制劳动合同1
- 2018年中国家用豆浆机现状调研及市场前景预测(目录)
- 冀教版数学六年级下册第三单元第五课时 圆柱 面积问题 导学案