数据库系统概论(第三章关系数据标准语言SQL)

第3章关系数据库标准语言SQL

3.1SQL概述

SQL的定义:

  • 结构化查询语言
  • 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
  • SQL只要提出“做什么”,无须了解存取路径。操作对象是一条记录

SQL的特点:

  • 综合统一
  • 高度非过程化
  • 面向集合的操作方式
  • 以同一种语法结构提供多种使用方式
  • 语言简洁,易学易用
SQL的动词
SQL功能 动词
数据查询 select
数据定义 create、drop、alter
数据操纵 insert、update、delete
数据控制 grant、revoke

3.1.3SQL的基本概念 

基本表

  • 基本表示本身独立存在的表,
  • 在关系数据库管理系统中一个关系就对应一个基本表
  • 一个或多个基本表对应一个存储文件
  • 一个表可以带若干索引,索引也存放在存储文件中

存储文件

  • 存储文件的逻辑结构组成了关系数据库的内模式
  • 存储文件的物理结构对最终用户是隐蔽的

视图

  • 从一个或几个基本表导出的表
  • 数据库中只存放视图的定义而不存放视图对应的数据
  • 视图是一个虚表
  • 用户可以在视图上再定义视图

3.3数据定义

一个关系数据库管理系统的实例可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象

3.3.1模式的定义与删除

定义

CREATE SCHEMA <模式名>AUTHORIZATION<用户名> [<表定义子句>|<视图定义子句>|<授权定义子句>];

删除模式

DROP SCHEME <模式名>

3.3.2基本表的定义、删除与修改

定义

    create table 表名(
        列名 数据类型 not null, //非空性约束
        列名 数据类型 unique, //唯一性约束
        列名 数据类型 check(检查条件),//检查性约束
        ............
        constraint 主键名 primary key(主属性列表),
        constraint 外键名 foreign key (外键属性列表) references 被参考表名(参考列),
        constraint 检查名 check(校验条件)
    )

[例3.10] 增加课程名称必须取唯一值的约束条件。

     ALTER TABLE Course ADD UNIQUE(Cname);

 UNIQUE:不能重复可以为空

 主码:不能重复不可以为空

 3.3.3索引的建立与删除

建立索引的目的:加快查询速度

  • 顺序文件上的索引
  • B+树索引
  • 散列索引
  • 位图索引

3.4数据查询

SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>]···

FROM <表名或视图名> [,<表名或视图名>···]|(