第三章-SQL
SQL概述
SQL特点
综合统一
集数据定义语言、数据操纵语言、数据控制语言、事务控制语言于一体。
数据定义语言(Data Definition Language, DDL)
Create/Alter/Drop:数据库结构schema定义;
数据操纵语言(Data Manipulation Language, DML)
- CRUD(Create, Retrieve, Update, Delete): Insert, Select, Update, Delete:数据查询与修改
数据控制语言(Data Control Language)
- Grant/Revoke:权限控制
事务控制语言(Transaction Control Language)
- Begin Transaction/Commit/Rollback:保障数据修改的原子性
可以独立完成数据库生命周期中的全部活动
用户数据库投入运行后允许随时逐步修改模式
数据操作统一
高度非过程化
非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径;
SQL的存取路径的选择及操作过程由DBMS自动完成。
面向集合的操作模式
非关系数据模型面向记录,操作对象为一条记录
SQL采用集合操作模式
以同一种语法结构提供多种使用方式
SQL是独立语言
SQL是嵌入式语言,可以嵌入到高级语言程序中
可以采用数据库驱动程序API
语言简洁,易学易用
- DDL语句引导词:Create, Alter, Drop
- DML语句引导词:Insert, Delete, Update, Select
- DCL语句引导词:Grant, Revoke
SQL的基本概念
SQL支持关系数据库的三级模式结构(内模式-模式-外模式)
基本表
- 本身独立存在的表
- SQL关系与表一一对应
- 一个或多个基本表对应一个存储文件
- 取决于具体的DBMS实现
- 一个表可以有若干索引
- 同样取决于具体的DBMS实现
存储文件
- 逻辑结构(schema)组成了关系数据库的模式,由用户定义
- 物理结构(内模式)对用户是隐蔽的、透明的
- 文件路径和文件名可由用户配置或指定
- 由DBMS进行管理,实现各异
- 用户修改模式,DBMS实现模式到内模式的自动映射与管理
视图
- 从一个或几个基本表通过查询而导出的表
- 数据库中只存放视图的定义,不存放视图对应的数据
- 视图是虚表
- 用户可以在视图上再定义视图
数据定义
SQL的数据定义功能
- 模式定义
- 表定义
- 视图和索引的定义
模式的定义与删除
- 模式规定了一个命令空间
- 在命令空间中可以定义该模式包含的数据库对象
- 数据库对象:基本表、视图、索引、数据类型、同义词等
- Schema包含的对象可以是表(table)、列(column)、数据类型(data视图(view)、存储过程(stored procedures)、关系type) relationships)、主键(primary key)、外键(foreign key)等
- MySQL Schema
- 在MySQL中,Schema和Database等价,Database之下是数据库对象。
- Oracle Schema
- Database和Instance一对一关系,Database指服务器上所有数据文件日志文件等总和,而Instance指运行在服务器的一组后台进程
- Schema是指某个User名下所有数据库对象的总和,而不是一个独立存在的实体。如果user名下没有创建任何数据库对象,则不存在schema
- Oracle的schema相当于数据库对象的命名空间,和UserName是等价的。