ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库概论----SQL数据定义

2021-10-28 19:01:35  阅读:138  来源: 互联网

标签:删除 CREATE DROP 模式 ---- 索引 SQL ALTER 概论


  关系数据库系统系统支持三级模式结构,其模式,外模式和内模式中的基本对象有模式,表,视图和索引等。因此SQL的数据定义功能包括模式定义,表定义,视图和索引的定义。

   一个数据库管理系统中可以建立多个数据库,一个数据库可以建立多个模式,一个模式下有多个表,视图和索引等。

(一) 模式

  1.定义模式:

    CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;

    //当模式名为空时,默认为用户名

    例:为用户SONG创建一个模式TEST。

    CREATE SCHEMA TEST AUTHORIZATION SONG;

    

    在CREATE SCHEMA 中可以接受CREATE TABLE ,CREATE VIEW和GRANT子句。

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

    例:为用户ZHANG创建一个模式TEST,并且在其中定义一个表TAB1。

    CREATE  SCHEMA TEST AUTHORIZATION ZHANG;

    CREATE  TABLE TAB1( COL1  SMALLINT,

               COL2  INT,

               COL3  CHAR(20)

               );

  2.删除模式:

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

    其中CASCDE(级联)表示在删除模式的同时把该模式中所有的数据库对象全部删除;RESTRICT(限制)表示如果该模式已经定义了下属的数据库对象(如表,视图等)则拒绝该删除语句的执行。

 

(二)基本表

  1.定义基本表:

    CREATE<表名>(<列名><数据类型>[列级完整性约束条件]

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

           ...

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

    例:建立一个Student表。

      CREATE  TABLE  Student

        (Sno CHAR(9)PRIMARY  KEY,       /*Sno是主码*/

        Sname  CHAR(20)UNIQUE.   /*Sname取唯一值*/

        Ssex  CHAR(2),

        Sdept  CHAR(20)

        Sage  SMALLINT

        );

  2.删除基本表:

    DROP  TABLE  <表名>  [RESTRICT  |  CASCADE]

    若选择RESTRICT,则该表的删除是有限制的,欲删除的表不能被其他表的约束所引用,不能有视图,触发器,存储过程或函数;若选择CASCADE,则该表的删除没有限制条件,相关内容一起删除。

 

  3.修改基本表:

    ALTER TABLE <表名>

    [ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]

    [ ADD <表级完整性约束>]

    [ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]

    [ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]

    [ALTER COLUMN <列名><数据类型> ] ;


    ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件;DROP COLUMN子句用于删除表中的列;DROP CONSTRAINT子句用于删除指定的完整性约束条件。

    例:向Student表增加“入学时间”列,其数据类型为日期型。

    ALTER TABLE Student ADD S_entrance DATE;

    例:将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。

     ALTER TABLE Student ALTER COLUMN Sage INT;

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

    ALTER TABLE Course ADD UNIQUE(Cname);

 

(三)索引

  1.索引的建立:

    CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

    ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

    <表名>:要建索引的基本表的名字 

    <次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC

    UNIQUE:此索引的每一个索引值只对应唯一的数据记录

    CLUSTER:表示要建立的索引是聚簇索引

   2.索引的修改:

    ALTER INDEX <旧索引名> RENAME TO <新索引名>

    例:将SC表的SCno索引名改为SCSno。

      ALTER INDEX SCno RENAME TO SCSno;

  3.索引的删除:

    DROP INDEX <索引名>;

    例:删除Student表的Stusname索引。

      DROP INDEX Stusname;

    

 

    

 

标签:删除,CREATE,DROP,模式,----,索引,SQL,ALTER,概论
来源: https://www.cnblogs.com/yihong-song/p/15476293.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有