6_数据库语言SQL.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6_数据库语言SQL.ppt

数据库系统原理 第6讲 数据库语言SQL 华侨大学计算机系 骆炎民 前一章内容回顾 要点:关系代数 关系代数操作 包上的关系操作 关系代数的扩展操作 用关系代数描述约束 本章内容概述 结构化查询语言SQL 支持对数据库的查询、修改和模式定义 既是数据操作语言,又是数据定义语言 SQL本质上是查询语言标准,对应几个版本 诞生简史 1974年,由Boyce(Boyce-Codd范式)和Chamberlin提出 1975~1979年,IBM的San Jose研究室的研究人员在数据库管理系统System R中实现了SQL语言。 1986年10月,美国国家标准局(ANSI)的数据库委员会批准SQL-86版为美国数据库语言的标准。 ANSI SQL(86||89):早期版本,较少见到技术介绍 本章内容概述 结构化查询语言SQL SQL本质上是查询语言标准,对应几个版本 (ANSI) SQL-92:SQL2 早期的SQL Server中的T-SQL是ANSI SQL的延伸,但最为符合SQL-92标准,更新版本已经在此基础上有所扩充 (ANSI) SQL-99:SQL3 一个区别实例:在ANSI SQL-92标准中,ORDER BY子句中不允许出现没有在SELECT清单中指定的表达式,但ANSI SQL-99标准允许 (ANSI)SQL-200n:最新标准,尚在制定中 SQL Server2005在部分功能上符合SQL2003的标准 教材是2003版的,但在新技术的描述方面已经落后,所以大家在学计算机相关课程时必须要多看多查新资讯 本章内容概述 结构化查询语言SQL 本章内容主要针对一般性的SQL结构,不考虑版本差异 具体在DBMS工具软件使用时可能会有细微差别 本章的SQL是作为独立的查询语言进行分析的 实际使用中经常将SQL嵌入到宿主语言Project的数据模块中 下一章针对约束和触发器进行分析,会涉及一些基本的建表语句和较为少用的触发器设计 再下一章通过存储过程介绍SQL嵌入具体宿主语言的程序语法结构以及SQL系统特性 包括事务处理机制、权限管理等 6.1 SQL中的简单查询 Select-from-where查询语句 基本查询类似关系代数中的选择操作 例6.1,比较简单,但要注意字段(属性)数据类型有不同 阅读和书写技巧 先看from子句,弄清设计的关系 再看where子句,了解要找的元组需要具备什么特征或者必须满足什么条件 最后看select子句,决定输出内容 大小写无关(跳到152页上方文本框内容) 但要注意单引号对括起来的字符串内容有区分大小写 6.1 SQL中的简单查询 SQL中的投影(跳回150页正文内容) 例6.2:简单说明句法结构 注意第151页该例分析内容最后一句话,对应第157页习题6.1.1 例6.3:投影同时更改属性名,注意新关系实例的模式发生变化 例6.4:不是直接投影到属性,而是属性的表达式 例6.5:例6.4的特例,表达式为常量。 可用于新关系的初始化过程设定属性值 SQL中的选择 关键是条件子句的内容 6.1 SQL中的简单查询 SQL中的选择 一个小例子6.6说明 在一个小例子pp.153 SQL查询和关系代数(文本框内容) 一句话归纳 标准SQL查询SELECT L FROM R WHERE C 等价于 关系代数表达式 πL (σC ( R ) ) 字符串比较(回到正文) SQL中支持两种不同类型字符串,即定长char (m)和可变长varchar (n) 这里只关心SQL语法,对于如何物理实现不做区别 6.1 SQL中的简单查询 字符串比较 字符串比较的原则 按字典顺序和字母表顺序从前往后 长短的影响 串模式 s LIKE p,其中s是字符串,p是模式,是使用通配符%(相当于*)和_ (相当于?)表示的字符串 例6.7 单引号用于表示字符串,所以其本身作为保留字符需要特别表示------两个连续单引号 例6.8 百分号和下划线需要转义字符表示 SQL中没有专门的转移字符,而是用ESCAPE ‘x’来指定任意字符x临时担任转移字符,此时x%( _ )表示%( _ ) 6.1 SQL中的简单查询 日期和时间 SQL的实现版本中通常将Date和Time作为独立的数据类型 TIMESTAMP可以组合日期和时间 空值和涉及空值的比较 SQL中空值的三种含义 未知:一般用作属性初始化 不适用具体值:表示该元组在该属性上不应该取任何具体的值,如教材上的例子,单身汉的配偶(姓名)属性只能是空,给任何具体值都不符合实情 保留:一般用在权限不足以获取实际取值时 相关旧知识小复习:之前在讲外连接中的悬浮元组时曾经出现过空值的用法 6.1 SQL中的简单查询 空值和涉及空值的比较 NULL的运算规则 NULL和其

文档评论(0)

克拉钻 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档