• SQL——数据定义


    SQL——数据定义

    SQL数据定义功能:定义各种数据库的“对象”

    • 模式定义
    • 表定义
    • 视图定义
    • 索引定义

    数据字典

    • 数据查字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有的对象的定义信息以及一些统计信息:
      • 关系模式、表、视图、索引的定义
      • 完整性约束的定义
      • 分类用户对数据库的操作权限
      • 统计信息
      • 关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。

    数据定义

    1.模式定义

    【例题】为用户WANG定义一个学生-课程模式S-T

    ​ 解: CREAT SCHEMA "S-T" AUTHORIZATION WANG;

    • 定义模式实际上定义了一个命名空间(或者说目录)

    • 在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

    • 在CREAT ACHEMA中可以接受CREAT TABLE,CREAT VIEW和GRANT子句。

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

    【例题】为用户ZHANG 创建了一个模式TEST,并且在其中定义一个表TAB1

    解:CREAT SCHEMA TEST AUTHORIZATION ZHANG

    ​ CREAT TABLE TAB1(COL1 SMALLINT,

    ​ COL2 INT

    ​ COL3 CHAR(20)

    ​ COL4 NUMERIC(10,3)

    ​ COL5 DECIMAL(5,2)

    ​ );

    删除模式

    DROP SCHEMA <模式名><CASCADE|RESTRICT>

    • CASCADE(级联)
      • 删除模式的同时把该模式下的所有数据库对象全部删除
    • RESTRICT(限制)
      • 如果该模式下定义了下属的数据库对象(如表、视图等),则拒绝删除语句的执行
      • 仅当该模式中没有任何下属的对象时才能执行

    【例题】DROP SCHEMA ZHANG CASCADE

    ​ 删除模式ZHANG

    ​ 同时删除该模式中定义的表TAB1也被删除

    2.表定义

    定义基本表

    CREAT TABLE <表名> /基本表的定义/

    (<列名><数据类型>[<列级完整性约束>] /总成该表的列/

    ​ [,<列名><数据类型>[<列级完整性约束>]]

    ...

    ​ [,<表级完整性约束>]);

    • <列级完整性约束>:涉及相应属性列的完整性约束条件
    • <表级完整性约束>:涉及一个或多个属性列的完整性约束条件
    • 如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上。

    【例题】建立“学生”表Student。学号是主码,姓名取值唯一。

    CREAT TABLE Student
    (Sno CHAR(9) PRIMARY KEY,   /*列级完整性约束条件,Son是主码
     Sname CHAR(20) UNIQUE,   /*Sname取值唯一*/
     Ssex CHAR(2),
     Sage SMALLINT,
     SDEPT CHAR(20)
    );
    
    • 关系模型中"域"的概念用数据类型来实现
    • 定义表的属性时需要指明其数据类型及长度
    • 选用哪种数据类型
      • 取值范围
      • 要做哪些运算

    模式与表

    • 每一个基本表需要属于某个模式

    • 定义基本表所属模式的方式:

      • 在表名中明显地给出模式名

        CREAT TABLE "S-T".Student(.......);

        CREAT TABLE "S-T".Course(.......);

        CREAT TABLE "S-T".SC(......);

      • 在创建模式时同时创建表

      • 设置所属模式

    • 创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式

    • 关系数据库管理系统会以“搜索路径”指向的模式作为数据库对象的模式名

    • 设置搜索路径方式:

      SET search_path TO "S-T",PUBLIC;
      -修改基本表
      -删除基本表

    3.索引定义

  • 相关阅读:
    ubuntu卸载vsftpd出错
    Eclipse: the import java.util cannot be resolved
    C# webBrowser 获取元素class属性值
    获取 user-agents
    Python获取当前年月日
    使用pip安装Scrapy出错
    使用pip安装Scrapy出错
    VMware全屏时, 隐藏上方工具栏横条
    HDFS 常用命令
    简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
  • 原文地址:https://www.cnblogs.com/Weber-security/p/12527140.html
Copyright © 2020-2023  润新知