SQL基础知识 - 数据定义

来源:互联网 发布:郑州软件技术培训学校 编辑:程序博客网 时间:2024/06/06 00:00
关键字:SCHEMA,TABLE,ADD,ALTER,DROP,INDEX
  • 模式的定义与删除
    • 模式定义语句:CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 
    •                          CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [可选:<表,视图,授权定义子句>]
      • 创建之前,必须拥有DBA权限或者有授予的CREATE SCHEMA权限
      • 如果没有指定<模式名>,<模式名>隐含为<用户名>
      • 定义模式实际是定义一个命名空间,然后进一步定义该模式包括的数据库对象,基本表,视图,索引等。

    • 模式删除语句:DROP SCHEMA <模式名> <CASCADE | RESTRICT>
      • CASCADE(级联,删除模式中所有对象)与RESTRICT(限制,只有该模式中没有任何下属对象才执行删除)二选一。
  • 表的基本定义,删除与修改
    • 定义基本表
      • CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件(这是可选项)],...);
      • 例如:CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE, ... FOREIGN KEY Cpno REFERENCES Course(Cno));
        • Sno是主码,字符长度为9;
        • Sname取唯一的值。
        • Cpno是外码,被参照表是Course,被参照列是Cno。
    • 数据类型
      • CHAR(n)    长度为n的定长字符串
      • VARCHAR(n)    最大长度为n的边长字符串
      • INT / INTEGER 长整数
      • SMALLINT 短整数
      • NUMERIC(p, d)   定点数,由p位数字组成,小数后面有d位数字
      • REAL取决于机器精度的浮点数
      • Double Precision取决于机器精度的双精度浮点数
      • FLOAT(n)浮点数,精度至少为n为数字
      • DATE日期,包含年月日,格式为YYYY-MM-DD
      • TIME时间,包含时分秒,格式为HH:MM:SS
    • 模式与表
      • 每个基本表属于某个模式,一个模式包含多个基本表。
      • 在定义基本表时定义所属模式的三种方式:
        • (1) 在表明中明显地给出模式名
          • 例如:CREATE TABLE "S-T".Student(...);  # Student所属的模式是S-T
        • (2) 在创建模式语句中同时创建表
          • CREATE SCHEMA ...... CREATE TABLE Student();
        • (3) 设置所属的模式,这样在创建表时不必给出模式名
    • 修改表
      • 一般格式
        • ALTERTABLE <表名>                                   # 表名是需要修改的基本表
        • [ ADD <新列名> <数据类型> [完整性约束] ]    # ADD用于增加新列和新的完整性约束条件
        • [ DROP <完整性约束名>]                               # DROP用于删除指定的完整性约束条件
        • [ MODIFY COLUMN <列名> <数据类型>];        # ALTER COLUMN 用于修改原有的列定义,包括列名和数据类型
      • 例如:
        • ALTER TABLE Student ADD S_entence DATE;  # 向表Student中添加入学日期列S_entence,类型为日期型,值为空
        • ALTER TABLE Student ADD UNIQUE(Cname);   # 增加Cname名词唯一值的约束条件
        • ALTER TABLE Student MODIFY COLUMN Sage INT;    # 修改Sage的职位类型为整型
    • 删除表
      • 基本格式
        • DROPTABLE <表名> [RESTRICT | CASCADE];  # 缺省为RESTRICT
          • RESTRICT:如果该表不被其他表约束引用,无视图,无触发器,无存储过程或函数,才能删除。
          • CASCASDE:该表删除无条件限制,删除时同事相关依赖对象也被删除。
  • 索引的建立与删除
    • 建立索引(方便查询)
      • 索引一经建立,,就由系统使用和维护它,不需要用户干预。
      • 一般格式
        • CREATE [UNIQUE] [CLUSTER]INDEX<索引名> ON <表名> (<列名> [<次序>] [, <列名> [<次序>]]...);
        • 索引可以建立在表的一列或者多列上,<次序>可选ASC(升序,默认)或者DESC(降序).
        • UNIQUE:表示此索引的每一个索引值只对应唯一的数据记录
        • CLUSTER:表示要简历的索引是聚簇索引,索引项的顺序与表中记录的物理顺序一致的索引组织。
        • 例如:CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);    # 按照学号升序和课程号升序建立唯一索引。
    • 删除索引
      • DROP INDEX <索引名>;
    • 查看索引
      • SHOW INDEX FROM TABLE;
原创粉丝点击