数据库原理及应用开发技术-SQL3-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库原理及应用开发技术-SQL3-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 开发 技术 _SQL3 课件
- 资源描述:
-
1、讲义三 关系数据库标准语言SQL 1 SQL1 SQL简介简介 2 SQL2 SQL定义语言定义语言 3 SQL3 SQL操作语言操作语言 4 SQL4 SQL查询语言查询语言 5 SQL5 SQL的基本语言元素的基本语言元素 6 SQL6 SQL的操作符的操作符 7 SQL7 SQL表达式表达式 8 SQL8 SQL条件条件 9 SQL9 SQL函数函数 10 SQL10 SQL查询与子查询查询与子查询 总结总结3.1 SQL3.1 SQL简介简介 Structure Query Language(SQL)Structure Query Language(SQL)的历史的历史19701970
2、年年,Prof Codd Prof Codd 提出著名的关系数据模型提出著名的关系数据模型SQLSQL语言由语言由IBM Research LabIBM Research Lab首先开发创建首先开发创建System RSystem R时使用时使用19791979年年,关系软件公司关系软件公司(Oracle)Oracle)首先开发出实首先开发出实用的商业用的商业SQLSQL版本版本SQL SQL 是高级的非过程化编程语言。是高级的非过程化编程语言。3.1 SQL3.1 SQL简介简介 SQLSQL标准标准SQL-86SQL-86是第一个是第一个SQLSQL标准标准SQL-89SQL-89、SQL
3、-92(SQL2)SQL-92(SQL2)、SQL-99(SQL3)SQL-99(SQL3)关系型商业数据库遵守的查询语言规范关系型商业数据库遵守的查询语言规范各种通行的数据库系统在其实践过程中都对各种通行的数据库系统在其实践过程中都对 SQL SQL 规范作了某些编改和扩充规范作了某些编改和扩充 3.1 SQL3.1 SQL简介简介 SQLSQL的使用的使用直接使用直接使用 交互式查询工具(交互式查询工具(MS sql server:Transact-sqlMS sql server:Transact-sql)直接键入直接键入SQLSQL命令对数据库进行操作命令对数据库进行操作 由由DBMS
4、DBMS进行解释进行解释嵌入式嵌入式SQL(Embedded SQL)SQL(Embedded SQL)嵌入到高级编程语言嵌入到高级编程语言 使应用程序充分利用使应用程序充分利用SQLSQL访问数据库的能力、宿主访问数据库的能力、宿主语言的过程处理能力。语言的过程处理能力。需要将嵌入的需要将嵌入的SQLSQL语句转化为宿主语言编译器能处语句转化为宿主语言编译器能处理的语句理的语句3.1 SQL3.1 SQL简介简介 SQLSQL语句分类语句分类数据定义语言(数据定义语言(Data DefinitionData Definition)createcreate alteralter dropdro
5、p数据操作语言(数据操作语言(Data ManipulationData Manipulation)insertinsert updateupdate deletedelete数据查询语言数据查询语言 selectselect数据控制语言数据控制语言(Data Control)(Data Control)grantgrant rolerole revokerevoke3.5.1 3.5.1 数据类型数据类型 常用的数据类型常用的数据类型数据类型数据类型描述描述CHAR(size)CHAR(size)存储最长为存储最长为n n个字节的定长字符串个字节的定长字符串VARCHAR(size)VARC
6、HAR(size)存储最长为存储最长为n n个字节的变长字符串个字节的变长字符串NUMERIC(P,S)NUMERIC(P,S)存储任何类型的数字存储任何类型的数字DATETIMEDATETIME存储日期时间存储日期时间INTINT长整形长整形SMALLINTSMALLINT短整形短整形FLOAT(n)FLOAT(n)浮点数,精度至少为浮点数,精度至少为n n位数字位数字3.1 SQL3.1 SQL简介简介 数据定义语句格式数据定义语句格式1 1 创建表创建表 CREATE TABLE CREATE TABLE (列完整性约束条件列完整性约束条件,列完整性约束条件列完整性约束条件,列完整性约束
7、条件列完整性约束条件,););3.1 SQL3.1 SQL简介简介 数据定义语句格式数据定义语句格式2 2 更改表更改表 ALTER TABLE ALTER TABLE ADD ADD 列完整性约束条件列完整性约束条件,DROP DROP,MODIFY MODIFY ;3 3 删除表删除表 DROP TABLE DROP TABLE;3.1 SQL3.1 SQL简介简介 数据操作语句格式数据操作语句格式1 1 插入操作插入操作 INSERT INTO INSERT INTO (,1,)n)VALUES(VALUES(,2,);n);3.1 SQL3.1 SQL简介简介 数据操作语句格式数据操作
8、语句格式2 2 修改操作修改操作 UPDATE UPDATE SET SET=,=WHERE WHERE;3 3 删除操作删除操作 DELETEDELETE FROM FROM WHERE WHERE;3.1 SQL3.1 SQL简介简介 数据查询语句:数据查询语句:数据查询是数据库的核心操作数据查询是数据库的核心操作SELECTSELECT语句的格式为:语句的格式为:SELECT ALL|DISTINCT ALL|DISTINCT 别名别名 ,别名别名 FROM 别名别名,别名别名 WHERE GROUP BY 1 HAVING ORDER BY ASC|DESC,ASC|DESC,3 AS
9、C|DESCASC|DESC;3.1 SQL3.1 SQL简介简介 数据控制语句:授权数据控制语句:授权SQLSQL语言用语言用GRANTGRANT语句向用户授予操作权限,语句向用户授予操作权限,GRANTGRANT语句的一般格式为:语句的一般格式为:GRANT GRANT,ON ON TO TO,WITH GRANT OPTION;WITH GRANT OPTION;3.1 SQL3.1 SQL简介简介 数据控制语句:收回权限数据控制语句:收回权限授予的权限用授予的权限用REVOKEREVOKE语句收回,语句收回,REVOKEREVOKE语句语句的一般格式为:的一般格式为:REVOKE RE
10、VOKE,ON ON FROM FROM,;3.1 SQL3.1 SQL简介简介 数据控制语句:角色数据控制语句:角色创建角色创建角色 CREATE ROLE CREATE ROLE;分配角色:分配角色:GRANT GRANT TO TO;3.2 SQL3.2 SQL定义语言定义语言表、视图是数据库中的主体。表、视图是数据库中的主体。SQLSQL提供数据定提供数据定义语句对这些主体进行管理义语句对这些主体进行管理 SQLSQL的数据定义语句的数据定义语句 操作对象操作对象操操 作作 方方 式式创创 建建删删 除除修修 改改表表CREATE TABLEDROP TABLEALTER TABLE视
11、视 图图CREATE VIEWDROP VIEW3.2.1 3.2.1 表定义表定义1 表的创建SQLSQL语言使用语言使用CREATE TABLECREATE TABLE语句定义表,其一语句定义表,其一般格式如下:般格式如下:CREATE TABLE CREATE TABLE (列级完整性约束条件列级完整性约束条件 ,列级完整性约束条件列级完整性约束条件 ),);3.2.1 3.2.1 表定义表定义1 表的创建(1 1)实体完整性)实体完整性 例例 建立建立StudentStudent表,表,SnoSno作为主码。作为主码。CREATE TABLE StudentCREATE TABLE S
12、tudent (Sno CHAR(7)PRIMARY KEY,(Sno CHAR(7)PRIMARY KEY,Sname CHAR(8),Sname CHAR(8),Ssex CHAR(2),Ssex CHAR(2),Sage SMALLINT,Sage SMALLINT,Sdept CHAR(20);Sdept CHAR(20);3.2.1 3.2.1 表定义表定义1 表的创建(1 1)实体完整性)实体完整性 例例 建立建立SCSC表,表,SnoSno和和CnoCno是主码。是主码。CREATE TABLE SCCREATE TABLE SC (Sno CHAR(7),(Sno CHAR(7
13、),Cno CHAR(4),Cno CHAR(4),Grade SMALLINT,Grade SMALLINT,PRIMARY KEY(Sno,Cno);PRIMARY KEY(Sno,Cno);3.2.1 3.2.1 表定义表定义1 表的创建(2)参照完整性)参照完整性例例 建立建立SC表,表,Sno和和Cno是主码,且是主码,且Sno和和Cno也是外码,分别引也是外码,分别引用用Student表的表的Sno列和列和Course表的表的Cno列。列。CREATE TABLE SC (Sno CHAR(7),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,
14、Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno);3.2.1 3.2.1 表定义表定义1 表的创建(3)属性值约束)属性值约束 非空值限制非空值限制 指定允许的取值范围指定允许的取值范围当往表中插入元组或修改属性的值时,当往表中插入元组或修改属性的值时,数据库管理系统就检查属性上的限制是否数据库管理系统就检查属性上的限制是否被满足,如果不满足则操作被拒绝执行。被满足,如果不满足则操作被拒绝执行。3.2.1 3.2.1 表定义表定义1 表的创建(3 3)属性值约束)属性值约束例例
15、 当学生的性别是男时,其名字不能以当学生的性别是男时,其名字不能以Ms.打头。打头。CREATE TABLE Student (Sno CHAR(7)PRIMARY KEY,Sname CHAR(8)NOT NULL,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),CHECK(Ssex=女女 OR Sname NOT LIKE Ms.%);3.2.1 3.2.1 表定义表定义2 修改表一般格式为:一般格式为:ALTER TABLE ADD 完整性约束完整性约束 DROP MODIFY ;3.2.1 3.2.1 表定义表定义2 2 修改表修改表例例 向向Stu
16、dent表增加表增加“入学时间入学时间”列,其数据列,其数据类型为日期型。类型为日期型。ALTER TABLE Student ADD Scome DATE;不论表中原来是否已有数据,新增加的列一不论表中原来是否已有数据,新增加的列一律为空值。律为空值。例例 删除学生姓名不能取空值的约束。删除学生姓名不能取空值的约束。ALTER TABLE Student DROP NOT NULL(Sname);3.2.1 3.2.1 表定义表定义3、删除表、删除表当某个表不再需要时,可以使用当某个表不再需要时,可以使用DROP TABLE语句删除它。其一般格式为:语句删除它。其一般格式为:DROP TAB
17、LE 例例 删除删除Student表。表。DROP TABLE Student;3.2.2 3.2.2 试图定义试图定义1、视图的作用、视图的作用(1)视图能够简化用户的操作)视图能够简化用户的操作(2)视图可以减少冗余数据)视图可以减少冗余数据(3)视图对重构数据库提供了一定程度的逻)视图对重构数据库提供了一定程度的逻辑独立性辑独立性(4)视图能够对机密数据提供安全保护)视图能够对机密数据提供安全保护3.2.2 3.2.2 试图定义试图定义2、视图创建、视图创建SQL语言用语言用CREATE VIEW命令建立视命令建立视图,其一般格式为:图,其一般格式为:CREATE VIEW (,)AS
18、WITH CHECK OPTION;3.2.2 3.2.2 试图定义试图定义2 试图创建试图创建例例 建立计算机系学生的视图。建立计算机系学生的视图。CREATE VIEW Student_CSAS3.2.2 3.2.2 试图定义试图定义 2 试图创建试图创建例例 建立英语课(建立英语课(1156)成绩单的视图。)成绩单的视图。CREATE VIEW English_Grade(Sno,Sname,Grade)AS3.2.2 3.2.2 试图定义试图定义2 试图创建试图创建例例 建立英语课的成绩在建立英语课的成绩在80分以上的学生分以上的学生的视图。的视图。CREATE VIEW Englis
19、h_Grade_80AS3.2.2 3.2.2 试图定义试图定义3 删除视图删除视图当不再需要一个视图时,可以删除它,当不再需要一个视图时,可以删除它,语句格式为:语句格式为:DROP VIEW 例例 删除视图删除视图Student_CSDROP VIEW Student_CS;3.3 SQL3.3 SQL操作语言操作语言1 插入操作插入操作2 修改操作修改操作3 删除操作删除操作3.3.1 3.3.1 插入操作插入操作1、插入操作、插入操作插入语句的格式是:插入语句的格式是:INSERTINTO (,)VALUES(,);3.3.1 3.3.1 插入操作插入操作例例 将学生王林的信息插入到将
20、学生王林的信息插入到Student表中。表中。INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage)VALUES(2000012,王林王林,男男,计算机计算机,19);INTO子句指定子句指定Student表和要赋值的列,表和要赋值的列,VALUES子句对元组的各列赋值。子句对元组的各列赋值。3.3.1 3.3.1 插入操作插入操作例例 在表在表Course中增加课程离散数学的信中增加课程离散数学的信息。息。INSERTINTO Course(Cno,Cname,Cpno,Ccredit)VALUES(1136,离散数学离散数学,NULL,4);符号符号N
21、ULL的含义是赋予该列的值是空的含义是赋予该列的值是空值。值。3.3.2 3.3.2 修改操作修改操作2、修改操作、修改操作修改操作又称为更新操作,语句的一般修改操作又称为更新操作,语句的一般格式是:格式是:UPDATE SET=,=WHERE;3.3.2 3.3.2 修改操作修改操作例例 将学号为将学号为2000012的学生的年龄改为的学生的年龄改为18岁。岁。UPDATE StudentSET Sage=18WHERE Sno=2000012;例例6 将所有学生的年龄增加将所有学生的年龄增加1岁。岁。UPDATE StudentSET Sage=Sage+1;3.3.3 3.3.3 删除操
22、作删除操作3、删除操作、删除操作 语句的一般格式为:语句的一般格式为:DELETE FROM WHERE;3.3.3 3.3.3 删除操作删除操作例例 删除学号为删除学号为2000012的学生记录。的学生记录。DELETEFROM StudentWHERE Sno=2000012;例例 删除所有的学生选课记录。删除所有的学生选课记录。DELETEFROM SC;3.4 SQL3.4 SQL查询语音查询语音 1.1.查询基本结构概述查询基本结构概述 2.2.查询子句概述查询子句概述 3.SELECT 3.SELECT 列表列表 4.FROM4.FROM子句子句 5.WHERE5.WHERE子句子
23、句3.4.1 查询基本结构概述 查询基本结构概述:查询基本结构概述:SELECT 列表:指定列列表:指定列 FROM 指定表指定表 WHERE 指定行指定行 语义:语义:Select Select 子句中的属性列表,对上述结果作投子句中的属性列表,对上述结果作投影(影()操作。)操作。From From 子句:对指定关系,作笛卡儿积(子句:对指定关系,作笛卡儿积()Where Where 子句:进行选择(子句:进行选择()运算,找出符)运算,找出符合条件的元组。合条件的元组。3.4.2 查询子句概述 SELECT SELECT 子句指定您要检索的列。子句指定您要检索的列。FROM FROM 子
24、句指定从中请求列的表。在所有从表中检索数据子句指定从中请求列的表。在所有从表中检索数据的查询中都需要该子句。的查询中都需要该子句。ON ON 子句指定子句指定 FROM FROM 子句中的表将如何进行连接。该子句子句中的表将如何进行连接。该子句只用于多表查询。只用于多表查询。WHERE WHERE 子句指定表中您要查看的行。子句指定表中您要查看的行。GROUP BY GROUP BY 子句用于集合数据。子句用于集合数据。HAVING HAVING 子句指定要在其上收集集合数据的行。子句指定要在其上收集集合数据的行。ORDER BY ORDER BY 子句对结果集中的行进行排序。子句对结果集中的
25、行进行排序。3.4.3 SELECT 列表1从表中选择所有列 SELECT distinct SELECT distinct*FROM table-expression FROM table-expression2从表中选择特定的列 SELECT dept_id,dept_name FROM departmentSELECT dept_id,dept_name FROM department3重命名查询结果中的列 SELECT column-namecolumn-name AS aliasalias SELECT column-namecolumn-name aliasalias4查询结果中显
展开阅读全文