31概述32数据定义33查询34数据更新35视图36数据控内容摘要:

说明:修改列的定义可能破坏原有数据。 169。 2020 by 36 An Introduction to Database System 表的定义、删除与修改 [例 4] 删除教师姓名必须取唯一值的约束。 alter table T drop unique(姓名 ) [例 5] 将表 T中的 “ 参加工作时间 ” 列去掉。 alter table C drop column 参加工作时间 169。 2020 by 37 An Introduction to Database System 数据定义  表的定义、删除与修改  建立与删除索引 169。 2020 by 38 An Introduction to Database System 建立与删除索引  建立索引是加快查询速度的有效手段  建立索引  DBA或表的属主 ( 即建立表的人 ) 根据需要建立  有些 DBMS自动建立以下列上的索引 • PRIMARY KEY • UNIQUE  维护索引  DBMS自动完成  使用索引  DBMS自动选择是否使用索引以及使用哪些索引 169。 2020 by 39 An Introduction to Database System 建立与删除索引 1. 建立索引  语法 : create [unique/distinct] [cluster] index 索引名 on 表名 (列名 [asc/desc] [ , 列名 asc/desc]]…) unique( distinct) : 唯一性索引,不允许表中不同的行在索引列上取相同值。 若已有相同值存在,则系统给出提示信息,不建此索引。 系统还拒绝违背唯一性的插入、更新 cluster: 聚簇索引,表中元组按索引项的值排序并物理地聚集在一起。 一个基本表上只能建一个聚簇索引 asc/desc: 索引表中索引值的排序次序,缺省为 asc 169。 2020 by 40 An Introduction to Database System 建立与删除索引 [例 6] 对教师表按姓名的字典升序建立简单索引。 create index tname_idx on T (姓名 ) [例 7] 下面的示例为 emp_pay 表的 employeeID 列创建索引 , 并 且强制唯一性。 因为指定了 CLUSTERED 子句 , 所以该索 引将对磁盘上的数据进行物理排序。 CREATE TABLE emp_pay ( employeeID int NOT NULL, base_pay money NOT NULL, mission decimal(2, 2) NOT NULL ) CREATE UNIQUE CLUSTERED INDEX employeeID_ind ON emp_pay (employeeID) 169。 2020 by 41 An Introduction to Database System 建立与删除索引 [例 8] 下面的示例为 order_emp 表的 orderID 列和 employeeID 列创建简单的组合索引。 CREATE TABLE order_emp ( orderID int IDENTITY(1000, 1), employeeID int NOT NULL, orderdate datetime NOT NULL DEFAULT GETDATE(), orderamount money NOT NULL ) CREATE INDEX emp_order_ind ON order_emp (orderID, employeeID) 169。 2020 by 42 An Introduction to Database System 建立与删除索引 思考 (提问 ): 什么情况下适合建立聚簇 (cluster)索引。 适用情况  被索引的列被经常用于检索  很少对基表进行增删操作  很少对其中的变长列进行修改操作 169。 2020 by 43 An Introduction to Database System 建立与删除索引 2. 删除索引 语法 : drop index 索引名  Why not : on 表名。 (提问 )  [例 9] 删除 order_emp 表中 orderID 列和 employeeID列的组合索引 emp_order_ind。 Drop index emp_order_ind 169。 2020 by 44 An Introduction to Database System 概述 数据定义 查询 数据更新 视图 数据控制 嵌入式 SQL 小结 第 3章 SQL 169。 2020 by 45 An Introduction to Database System 概述 单表查询 连接查询 嵌套查询 集合查询 小结 查询 169。 2020 by 46 An Introduction to Database System 概述 1. 基本结构 select A1 , A2 , … , A n from r1 , r2 , … , rm where P  ∏A1 , A2 , … , An (p(r1  r2  …  rm)) 169。 2020 by 47 An Introduction to Database System 概述 2. 语法 (简化 ) SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ] [ WITH TIES ]] 选择列表 [ INTO 新表名 ] [ FROM { 表来源 } [ ,...n ] ] [ WHERE 条件表达式 ] [ GROUP BY 分组表达式 [ ,...n ] ] [ HAVING 组条件 ] [ ORDER BY { 排序表达式 | 列序号 [ ASC | DESC ] } [ ,...n ] ] 169。 2020 by 48 An Introduction to Database System 概述  SELECT子句 :指定要显示的属性列  FROM子句 :指定查询对象 (基本表或视图 )  WHERE子句 :指定查询条件  GROUP BY子句 :对查询结果按指定列的值分组 , 该属性列值相等的元组为一个组。 通常会在每组中作用集函数 (如求和 、 平均 )。  HAVING短语 :筛选出只有满足指定条件的组 (作用于组的集函数计算结果满足条件 )  ORDER BY子句 :对查询结果表按指定列值的升序或降序排序 169。 2020 by 49 An Introduction to Database System 3. SELECT 子句 指定由查询返回的列。 语法 SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ]] 选择列表 选择列表 ::= { * | { 表名 | 视图名 | 表别名 }.* | { 列名 | 表达式 } [ [ AS ] 列别名 ] | 列别名 = 表达式 } [ ,...n ] 概述 169。 2020 by 50 An Introduction to Database System 4. FROM 子句 指定数据的来源。 语法 表来源 ::= 表名 [ [ AS ] 表别名 ] | 视图名 [ [ AS ] 表别名 ] | 返回行集的函数 [ [ AS ] 表别名 ] | 联接表 概述 169。 2020 by 51 An Introduction to Database System 4. FROM 子句 (续 ) 联接表 ::= 表来源 联接类型 表来源 ON 条件表达式 | 表来源 CROSS JOIN 表来源 | 联接表 联接类型 ::= [ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ] JOIN 概述 169。 2020 by 52 An Introduction to Database System 学号 Sno 姓名 Sname 性别 Ssex 生日 Sbirth 系别 Sdept 05001 李勇 男 8611 CS 05002 刘晨 女 8738 IS 05003 王敏 女 8751 MA 05004 张立 男 8882 IS Student 课程号 Cno 课程名 Cname 先行课 Cpno 学分 Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 PASCAL 6 4 Course 学号 Sno 课程号 Cno 成绩 Grade 05001 1 92 05001 2 85 05001 3 88 05002 2 90 05002 3 80 SC 概述 4. 背景 169。 2020 by 53 An Introduction to Database System 系号 DeptId 系名 DeptName CS 计算机 IS 信息系 MA 数学系 EN 英文系 Dept 概述 169。 2020 by 54 An Introduction to Database System  创建数据库 CREATE DATABASE [Example]。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。