alter table 总结
2012-11-15 23:15 youxin 阅读(554) 评论(0) 编辑 收藏 举报增加列:
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 COLUMN column_name datatype
My SQL / Oracle:
增加约束.
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 有点不同
主键 = 非空 + 唯一
非空
唯一 = 有值的话 值要不同
外键 = 有值 一定要在被引用的表的数据中