数据库系统3——结构化查询语言SQL。
SQL查询语言概览
SQL语言的几个部分
数据定义语言(DDL):提供定义关系模式、删除关系以及修改关系模式的命令
数据操纵语言(DML):提供从数据中查询信息、插入删除修改元组的能力
完整性:SQL DDL 包括定义完整性的约束命令
视图定义:SQL DDL 包括定义视图的命令
事务控制:定义事务的开始和结束
嵌入式SQL和动态SQL:如何将SQL陷入到通用编程语言
授权:SQL DDL 包括定义访问权限的命令
SQL语言特点:
- 综合统一
- 高度非过程化
- 面向集合的操作方式
- 简便易学易用
SQL数据定义
SQL查询
单表查询
- 最简单、仅涉及一个表
连接查询
- 同时涉及到多个表的查询
- 连接条件
嵌套子查询
- 将一个查询块嵌套在另一个查询块的where、from、having语句条件中的查询
- 由里向外处理
- 子查询不能使用order by
- 有些嵌套查询可以用连接运算替代
集合查询
- 并(union)、交(intersect)、差(except)
- 参加集合操作的各结果表列数和对应数据类型必须相同
SQL数据库的修改
SQL语言数据更新机制
- DBMS在执行插入、修改及删除语句时会检查元组是否会破坏表上已定义的完整性规则
SQL事务
事务是由查询或更新语句序列组成的
- Commit:提交当前事务(永久保存)
- Rollback:回滚当前事务(撤销该事务中所有SQL语句对数据库的更新)
- 事务具有原子性
- 定义语句:begin atomic … end
SQL触发器
触发器(trigger)
- 一条语句,对数据修改时自动执行
- 设置触发器机制的两个要求:
- 指明执行条件
- 指明触发器动作
- 一旦把一个触发器输入数据库,只要指定的事件发生,相应条件满足,数据库系统就有责任执行它
SQL数据库授权机制
嵌入式SQL语言
嵌入式SQL
- 可以在程序设计语言中使用的SQL语言
- 这种程序设计语言被称为宿主语言
嵌入SQL语句的宿主语言源程序的编译执行
- 预编译截断
- 编译阶段
- 连接装配阶段
- 执行阶段
宿主语言与SQL语言之间的数据传输
- 宿主变量:嵌入式SQL可以引用的语言变量
- 游标:存储查询结果集合
- 每个查询语句对应于一个游标
- 定义游标、打开游标、从游标读拆线呢结果、关闭游标
本章重点:熟练使用SQL语言进行数据定义、数据查询、数据修改;掌握完整性约束、视图操作。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!