zoukankan      html  css  js  c++  java
  • alter table 总结

    增加列:

    alter tabel table_name  add column_name datatype;

    删除列:

    alter tabel table_name  drop column column_name;

    要改变表中列的数据类型,不同的系统命令不同:

    To change the data type of a column in a table, use the following syntax:

    SQL Server / MS Access:

    ALTER TABLE table_name
    ALTER COLUMN column_name datatype

    My SQL / Oracle:

    ALTER TABLE table_name  MODIFY column_name datatype

    增加约束.

    alter table table_name  add constraint 约束名称 增加的约束类型 (列名)

     

    NOT NULL 约束

     不能像这样:alter table emp add constraint not_null_name not null(name)

    NOT NULL constraint can't be added at table level 

    not null不像其他的约束,不能在表级定义。这个很多人都不知道,值得注意。如果硬要加,用modify,数据类型还是原来的类型,最后加上not null。

    to add the constraint u need to modify the column

       alter table emp modify ename char(10)  not null;

    unique约束:

    ALTER TABLE Persons  ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

    主键约束:

    ALTER TABLE Persons   ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
    如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)

    外键约束:
    CREATE TABLE Orders
    (
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    Id_P int,
    PRIMARY KEY (O_Id),
    CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
    )
    ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders  FOREIGN KEY (Id_P)  REFERENCES Persons(Id_P)

    SQL CHECK 约束

    CHECK 约束用于限制列中的值的范围。

    如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

    如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

    ALTER TABLE Persons  ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')


    取消约束:

    alter table table_name drop constraint constraint_name;

    DEFAULT 约束

    DEFAULT 约束用于向列中插入默认值。

    如果没有规定其他的值,那么会将默认值添加到所有的新纪录。

    参见:http://www.w3cschool.cn/sql_default.html  有点不同

    主键 = 非空 + 唯一

     非空

    唯一 = 有值的话 值要不同

    外键 = 有值 一定要在被引用的表的数据中

  • 相关阅读:
    网站、数据库的衍变之路(三)
    脚本嵌入式抓取引擎
    db4objects 7.4应用笔记
    网站、数据库的衍变之路(二)
    IIS连接数实验——Web开发必读
    攻破WebService,WCF的改进
    C#使用BerkeleyDB操作简介
    面试两个星期来的一点体会
    Lucene.Net 2.3.1开发介绍 —— 四、搜索(三)
    轻量级爬虫+全文检索解决方案项目——NukeLite(20081114 更新r24版 引入新线程机制)
  • 原文地址:https://www.cnblogs.com/youxin/p/2772467.html
Copyright © 2011-2022 走看看