​ 数据库系统3——结构化查询语言SQL。

SQL查询语言概览

SQL语言的几个部分

数据定义语言(DDL):提供定义关系模式、删除关系以及修改关系模式的命令

数据操纵语言(DML):提供从数据中查询信息、插入删除修改元组的能力

完整性:SQL DDL 包括定义完整性的约束命令

视图定义:SQL DDL 包括定义视图的命令

事务控制:定义事务的开始和结束

嵌入式SQL和动态SQL:如何将SQL陷入到通用编程语言

授权:SQL DDL 包括定义访问权限的命令

SQL语言特点:

  • 综合统一
  • 高度非过程化
  • 面向集合的操作方式
  • 简便易学易用

SQL数据定义

image-20200629215355571

image-20200629215530535

image-20200629215715100

image-20200629215841656

SQL查询

单表查询

  • 最简单、仅涉及一个表
  • image-20200629221054876

连接查询

  • 同时涉及到多个表的查询
  • 连接条件
  • image-20200629221144057

嵌套子查询

  • 将一个查询块嵌套在另一个查询块的where、from、having语句条件中的查询
  • 由里向外处理
  • 子查询不能使用order by
  • 有些嵌套查询可以用连接运算替代

集合查询

  • 并(union)、交(intersect)、差(except)
  • 参加集合操作的各结果表列数和对应数据类型必须相同

SQL数据库的修改

SQL语言数据更新机制
  • DBMS在执行插入、修改及删除语句时会检查元组是否会破坏表上已定义的完整性规则

SQL事务

事务是由查询或更新语句序列组成的

  • Commit:提交当前事务(永久保存)
  • Rollback:回滚当前事务(撤销该事务中所有SQL语句对数据库的更新)
  • 事务具有原子性
  • 定义语句:begin atomic … end

SQL触发器

触发器(trigger)

  • 一条语句,对数据修改时自动执行
  • 设置触发器机制的两个要求:
    • 指明执行条件
    • 指明触发器动作
  • 一旦把一个触发器输入数据库,只要指定的事件发生,相应条件满足,数据库系统就有责任执行它
  • image-20200629223204596

SQL数据库授权机制

image-20200629224049807

image-20200629224100841

嵌入式SQL语言

嵌入式SQL

  • 可以在程序设计语言中使用的SQL语言
  • 这种程序设计语言被称为宿主语言

嵌入SQL语句的宿主语言源程序的编译执行

  • 预编译截断
  • 编译阶段
  • 连接装配阶段
  • 执行阶段

宿主语言与SQL语言之间的数据传输

  • 宿主变量:嵌入式SQL可以引用的语言变量
  • 游标:存储查询结果集合
    • 每个查询语句对应于一个游标
    • 定义游标、打开游标、从游标读拆线呢结果、关闭游标
本章重点:熟练使用SQL语言进行数据定义、数据查询、数据修改;掌握完整性约束、视图操作。


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!