0%

SQL

第三章-SQL

SQL概述

SQL特点

  1. 综合统一

    • 集数据定义语言、数据操纵语言、数据控制语言、事务控制语言于一体。

      • 数据定义语言(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:保障数据修改的原子性
    • 可以独立完成数据库生命周期中的全部活动

    • 用户数据库投入运行后允许随时逐步修改模式

    • 数据操作统一

  2. 高度非过程化

    • 非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径;

    • SQL的存取路径的选择及操作过程由DBMS自动完成。

  3. 面向集合的操作模式

    • 非关系数据模型面向记录,操作对象为一条记录

    • SQL采用集合操作模式

  4. 以同一种语法结构提供多种使用方式

    • SQL是独立语言

    • SQL是嵌入式语言,可以嵌入到高级语言程序中

    • 可以采用数据库驱动程序API

  5. 语言简洁,易学易用

    • 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是等价的。
-------------终了-------------

欢迎关注我的其它发布渠道