zoukankan      html  css  js  c++  java
  • SQL基础

    数据查询:SELECT

    数据定义:CREATE,DROP,ALTER

    数据操纵:INSERT,UPDATE,DELETE

    数据控制:GRANT,REVOKE

    数据定义:

    操作对象 操作方式
    创建 删除 修改
    模式 CREATE SCHEMA DROP SCHEMA  
    CREATE TABLE DROP TABLE ALTER TABLE
    视图 CREATE VIEW DROP VIEW  
    索引 CREATE INDEX DROP INDEX ALTER INDEX

     

     

     

     

     

     


    创建模式:

    1. CREATE SCHEMA SCHEMA_NAME
    2. 定义模式实际上定义了一个命名空间(或者说目录)。
    3. 在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。
    4. 在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。

    CREATE SCHEMA <模式名>

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

    CREATE SCHEMA Test --SQL SERVER 2008 创建模式Test

     

    删除模式:

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

    • CASCADE(级联)

        删除模式的同时把该模式中所有的数据库对象全部删除

    • RESTRICT(限制)

        如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。
        仅当该模式中没有任何下属的对象时才能执行

    例:

    DROP SCHEMA Test; --SQL SERVER不支持级联删除,要想删除架构必须首先删除架构所包含的表。

    创建表:

    CREATE TABLE <表名> /* 基本表的名称*/
    (<列名> <数据类型>[ <列级完整性约束条件> ] /*组成该表的列*/
    [,<列名> <数据类型>[ <列级完整性约束条件>] ]

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

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

    例:

    1、建立“学生”表Student。学号是主码,姓名取值唯一

    CREATE TABLE Test.Student(
    Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码*/
    Sname CHAR(20) UNIQUE,     /* Sname取唯一值*/
    Ssex CHAR(2),
    Sage SMALLINT,
    Sdept CHAR(20)
    );

    2、建立一个“课程”表Course

    CREATE TABLE Test.Course(
    Cno CHAR(4) PRIMARY KEY,
    Cname CHAR(40),
    Cpno CHAR(4),
    Ccredit SMALLINT,
    FOREIGN KEY (Cpno) REFERENCES Test.Course(Cno) /*表级约束*/
    );

    3、建立一个学生选课表SC

    CREATE TABLE Test.SC(
    Sno CHAR(9),
    Cno CHAR(4),
    Grade SMALLINT,

    /* 主码由两个属性构成,必须作为表级完整性进行定义*/
    PRIMARY KEY (Sno,Cno),
    /* 表级完整性约束条件,Sno是外码,被参照表是Student */
    FOREIGN KEY (Sno) REFERENCES Test.Student(Sno),
    /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
    FOREIGN KEY (Cno)REFERENCES Test.Course(Cno)
    )

    修改表:

    ALTER TABLE <表名>
    [ADD[COLUMN] <新列名> <数据类型> [ 完整性约束] ]
    [ADD <表级完整性约束>]
    [DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
    [DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
    [ALTER COLUMN <列名><数据类型> ] ;

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

        如果指定了CASCADE短语,则自动删除引用了该列的其他对象
        如果指定了RESTRICT短语,则如果该列被其他对象引用,关系数据库管理系统将拒绝删除该列

    • DROP CONSTRAINT子句用于删除指定的完整性约束条件
    • ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型

    例:

    ALTER TABLE TEST.STUDENT ADD Birthday DATE; --添加新列

    ALTER TABLE TEST.COURSE ADD UNIQUE(Cname); --添加完整性约束

    ALTER TABLE TEST.STUDENT DROP COLUMN Birthday; --删除列

    ALTER TABLE TEST.SC ALTER COLUMN GRADE TINYINT; --修改选课表中的分数类型

    /*添加主键约束*/
    ALTER TABLE TEST.SC ADD CONSTRAINT add_pk PRIMARY KEY(Sno, Cno)

    /*添加外键约束*/
    ALTER TABLE TEST.SC ADD CONSTRAINT add_fk FOREIGN KEY (Sno) REFERENCES Test.Student(Sno);

    ALTER TABLE TEST.SC ADD CONSTRAINT add_fk2 FOREIGN KEY (Cno)REFERENCES Test.Course(Cno);

    /*删除约束,必须在添加约束时指定约束名称才能删除*/
    ALTER TABLE TEST.SC DROP CONSTRAINT add_fk;

    删除表:

    DROP TABLE <表名>[RESTRICT| CASCADE];

    • RESTRICT:删除表是有限制的。

        欲删除的基本表不能被其他表的约束所引用
        如果存在依赖该表的对象,则此表不能被删除

    • CASCADE:删除该表没有限制。

        在删除基本表的同时,相关的依赖对象一起删除

    例:

    /*SQL Server不支持级联删除,如果存在依赖该表的对象,则此表不能被删除*/

    DROP TABLE TEST.Course;

  • 相关阅读:
    struts2.1.6教程七、国际化
    SRCNN之后的深度学习超分辨率
    文献学习:基于深度学习的图像超分辨率最新进展与趋势
    Canny边缘检测——学习笔记
    Facebook开源技术识别网购评论
    忆长安
    Fast-RCNN
    SPP-Net
    R-CNN目标检测的selective search(SS算法)
    CSS Table(表格)
  • 原文地址:https://www.cnblogs.com/xhcdream/p/8318416.html
Copyright © 2011-2022 走看看