数据库系统概论(第五版)第3章_第1页
数据库系统概论(第五版)第3章_第2页
数据库系统概论(第五版)第3章_第3页
数据库系统概论(第五版)第3章_第4页
数据库系统概论(第五版)第3章_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DATABASESYSTEMS数据库系统概论(第五版)第3章SQL·数据定义·数据查询·数据更新授课教师:待定日期2026年SQL的产生与发展从时间脉络引出SQL的起源与标准化进程发展时间轴SQL已经成为关系数据库领域中应用最广泛的数据库语言。SQL全称StructuredQueryLanguage,即结构化查询语言。主流数据库支持目前几乎所有主流关系数据库管理系统(Oracle、MySQL、SQLServer

等)均支持SQL。1974年提出Boyce和Chamberlin提出最早在IBM的SystemR上实现1986年ANSI标准ANSI公布SQL标准成为标准化起点1987年ISO采纳ISO采纳为国际标准走向国际通用持续演进功能扩展历经多个版本迭代SQL-89、SQL-92、SQL:1999、SQL:2003,功能持续扩展SQL的四大特点综合统一集数据定义、数据查询、数据操纵、数据控制于一体高度非过程化用户只需提出"做什么",不必指明"怎么做",系统自动完成存取路径选择面向集合的操作方式操作对象和结果都是元组的集合,一次可处理多条记录多种使用方式既是自含式语言(独立交互),又是嵌入式语言(嵌入高级语言程序)SQL的三级模式结构三级模式与SQL对象对应外模式对应视图(View)和部分基本表模式对应基本表(BaseTable)内模式对应存储文件(StoredFile)三个核心概念基本表独立存在的表,一个关系对应一个基本表视图从基本表或其他视图导出,只存放定义不存放数据存储文件逻辑结构组成关系数据库的内模式模式的定义与删除模式是数据库对象的命名空间SQL语法定义模式CREATESCHEMA<模式名>AUTHORIZATION<用户名>使用方式模式名:对象的命名空间AUTHORIZATION:指定模式属主权限控制:按模式管理基本表的定义01SQL语法创建基本表CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件],[表级完整性约束条件])列级约束表级约束钥常见列级约束PRIMARYKEY主键约束FOREIGNKEY外键约束UNIQUE唯一约束检其他完整性约束CHECK检查约束NOTNULL非空约束修改与删除基本表01ALTERTABLE修改基本表ALTERTABLE<表名>ADDCOLUMN<新列名><数据类型>;ALTERCOLUMN<列名><数据类型>;DROPCOLUMN<列名>;通过

ADDCOLUMN

增加新列,并指定其数据类型。通过

ALTERCOLUMN

修改列定义。通过

DROPCOLUMN

删除列。增加新列修改列定义删除列02DROPTABLE删除基本表DROPTABLE<表名>通过

DROPTABLE

删除整张表的

表结构。同时删除该表中存储的全部

表数据。删除表结构删除表数据建立与删除索引索引是加快查询速度的有效手段,由系统自动选择使用。索引是加快查询速度的有效手段,由系统自动选择使用。系统自动选择建CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[ASC|DESC],...);ON<表名>指定索引所在表ASC|DESC索引排序方向删除索引DROPINDEX<索引名>单表查询之选择列列指定列语法SELECT<目标列表达式>功能查询指定列全全部列语法SELECT*功能查询全部列算计算值语法SELECT<计算表达式>功能计算表达式去DISTINCT去重语法SELECTDISTINCT<目标列>功能去重查询单表查询之条件与排序筛选与排序是查询的基本加工手段WHERE+ORDERBY先按条件筛选出目标行,再按指定列排序输出结果集。常用查询条件谓词比较=、>、<、>=、<=、<>确定范围BETWEEN...AND...、NOTBETWEEN确定集合IN、NOTIN字符匹配LIKE

配合

%(任意长)、_(单字符)空值判断ISNULL、ISNOTNULL多重条件AND、OR、NOT组合排序输出ORDERBY<列名>[ASC|DESC],...;规则1默认升序ASC,可指定

DESC

降序规则2多列排序时,先按第一列排,再按后续列依次排聚集函数与分组查询聚集函数函数功能COUNT(*)统计元组个数COUNT(列名)统计该列非空值个数SUM(列名)计算列值总和AVG(列名)计算列值平均值MAX/MIN求列的最大/最小值分组查询GROUPBY<分组列>[HAVING<条件>];分组列:按指定列聚合HAVING:对分组结果过滤WHERE与HAVING:前者过滤行、后者过滤组,注意区别连接查询连接查询同时涉及两个及以上的表,用连接条件关联。等值连接连接条件为

表1.列=表2.列,SELECT中去除重复列即为自然连接非等值连接连接条件使用

>、<、BETWEEN

等非等值比较自身连接同一张表起两个别名,实现表内记录的关联外连接左外连接、右外连接保留一侧表在结果中未匹配的元组嵌套查询一个SELECT-FROM-WHERE查询块嵌套在另一个查询块的WHERE或HAVING条件中,称为子查询。外层查询与内层子查询的嵌套结构,遵循先内后外的求解顺序外层查询含WHERE/HAVING条件的SELECT-FROM-WHERE块›内层子查询嵌套的SELECT-FROM-WHERE块›执行顺序内层先于外层执行结果供上层使用限制:子查询不能使用ORDERBY子句带谓词的典型形式IN带IN的子查询判断值是否在子查询结果集合中=>带比较运算符需保证子查询返回单个值,常配合聚集函数ANY带ANY/ALL与某个或全部子查询结果比较EX带EXISTS判断子查询结果是否非空,只返回逻辑值集合查询多个SELECT语句的结果可以进行集合操作。多个SELECT语句的结果可以进行集合操作。01左并集UNION合并两个查询结果,自动去除重复元组(UNIONALL

保留重复)。02中交集INTERSECT保留同时出现在两个结果中的元组。03右差集EXCEPT保留属于第一个结果但不属于第二个结果的元组。注意事项·参与集合运算的各查询结果的列数必须相同,对应列数据类型需兼容。·集合运算的结果列名以第一个查询为准。·不同数据库系统对

INTERSECT、EXCEPT

的支持程度有差异。数据更新之插入插入单个元组INSERTINTO<表名>[(<列名1>[,<列名2>]...)]VALUES(<常量1>[,<常量2>]...);单行装载,显式赋值VALUES数量与列数一致未指定列自动取默认或空值插入子查询结果INSERTINTO<表名>[(<列名1>[,<列名2>]...)]子查询批量装载,整体写入子查询结果整体装载行数等于子查询元组数数据更新之修改与删除修改元组

UPDATEUPDATE<表名>SET<列名>=<表达式>

[,...][WHERE<条件>];按

WHERE条件

定位待更新的元组可一次

更新多列可能触发

完整性约束检查删除元组

DELETEDELETEFROM<表名>[WHERE<条件>];按

WHERE条件

定位待删除的元组删除后

不可恢复空值的处理空值的含义4项含义定义空值(NULL)表示

不知道、不存在或无意义本质区分与数值

0

和空字符串本质不同参与运算空值参与运算时,结果仍为空值参与比较空值参与比较时,逻辑结果为

UNKNOWN空值的产生3项插入元组未指定值的列,自动取空值外连接未匹配的元组,相应列取空值属性允许属性本身允许为空,如

"出生日期不详"判断空值2项ISNULL判断是否为空值ISNOTNULL判断是否为非空值视图的定义与作用视图是数据库向用户提供的数据窗口,它让用户以更聚焦、更安全的方式访问底层数据表。01建立视图使用

CREATEVIEW

语句定义视图结构02查询视图视图作为数据窗口供用户查询03消解视图系统将视图查询转换为对基表的操作视图的核心作用封装复杂查询:简化用户访问提供数据窗口:按需展示数据控制数据可见性:限制访问范围简化权限管理:按视图授权隔离数据变化:屏蔽表结构变更视图的更新与删除不可更新情形一视图中包含分组、聚合函数或DISTINCT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论