博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL ALTER用法(三)
阅读量:3889 次
发布时间:2019-05-23

本文共 3162 字,大约阅读时间需要 10 分钟。

ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

1、SQL Server

1)如需在表中添加列(不能为非空约束),请使用下列语法:需要注意的是添加字段的时候 ADD 后面没有COLUMN 关键字

ALTER TABLE table_name ADD column_name datatype;ALTER TABLE Persons ADD Adress varchar(255) NULL;

2)要删除表中的列,请使用下列语法:需要注意DROP 关键字后面有COLUMN 关键字

ALTER TABLE table_name DROP COLUMN column_name;ALTER TABLE Persons DROP COLUMN Adress ;

3)要改变表中列的数据类型,请使用下列语法:

ALTER TABLE table_name ALTER COLUMN column_name datatype;ALTER TABLE Persons ALTER COLUMN Adress int NULL;

4)给已创建的表添加约束:

添加约束有两种方式,一种是创建约束,并给创建的约束定义一个名字。这样可以再次进行操作。另一种就是直接创建约束,不命名,但是再次操作时候不方便。
第一种:

ALTER TABLE table_name ADD CONSTRAINT 约束名 约束类型(column_name);ALTER TABLE Persons ADD CONSTRAINT uq__Persons__1022 unique(ID);ALTER TABLE Persons ADD CONSTRAINT df_name_ID default 3 for c_ID;ALTER TABLE Persons ADD CONSTRAINT ck_name_ID (ID>0);

第二种:

ALTER TABLE table_name ADD 约束类型(column_name);ALTER TABLE Persons ADD unique(ID);

5)删除约束

ALTER TABLE table_name DROP CONSTRAINT constr_name;ALTER TABLE table_name DROP CONSTRAINT pk_name_ID;ALTER TABLE table_name DROP CONSTRAINT ck_name_ID;

2、MYSQL

1)增加列

ALTER TABLE table_name ADD column_name datatype;ALTER TABLE table_name ADD column column_name datatype;//这条语句向已有的表中加入新的一列,这一列在表的最后一列位置。如果希望添加在指定的一列,可以用:ALTER TABLE table_name ADD column new_column_name datatype after column_name ;//如果想添加到第一列,可以用:ALTER TABLE table_name ADD column new_column_name datatype first;

2)删除列

ALTER TABLE table_name DROP column_name;

3)要改变表中列的数据类型,请使用下列语法:

//mysql修改字段类型:ALTER TABLE table_name MODIFY COLUMN column_name new_datatype;//修改字段名:ALTER TABLE table_name CHANGE

4)给已创建的表添加约束:

ALTER TABLE Persons ADD PRIMARY KEY(ID);-- 通过修改列定义添加或者添加主键,修改约束一般是先删掉原有的后重新添加ALTER TABLE Persons MODIFY ID INT(10) PRIMARY KEY;ALTER TABLE Persons ADD CONSTRAINT GNAME_UNI UNIQUE KEY(ID);/*如果没有用CONSTRAINT设置约束名 系统会自动生成*/ -- 同理可用MODIFY COLUMN及CHANGE COLUMN方法添加ALTER TABLE Persons ADD FOREIGN KEY(c_ID) REFERENCES goods(c_ID);-- 非空约束以及自增约束:在定义时设置,或者通过MODIFY COLUMN 和 CHANGGE COLUMN设置及删除-- 一张表只能有一个自增长列,并且该列必须定义了约束(可以是主键约束,也可以是唯一约束,也可以是外键约束,但是不可以是非空和检查约束)

5)删除约束

语法:ALTER TABLE tab_name DROP PRIMARY KEY;/*主键是唯一的就这样就行了*/语法:ALTER TABLE tab_name DROP [INDEX | KEY] index_name_ID /*删除唯一性约束*/语法:ALTER TABLE tab_name DROP FOREIGN KEY fk_name_ID/*删除外键约束*/

3、ORACLE

1)添加字段:

alter table tablename modify (column datatype [default value][null/not null],....);  alter table tablename add (字段名 number(2),字段名 varchar2(13));

2)删除字段的语法:

alter table tablename drop column column_name;

3)更改列属性

--更改列属性ALTER TABLE Student modify city number(2);--更改默认值ALTER TABLE Student modify sex default 1;--增加表主键ALTER TABLE Student add constraint stu_pk primary key(student_id);--增加表外键ALTER TABLE Student add constraint stu_refforeign key(school) references school(schoolid);--更改非空约束ALTER TABLE Student modify sname not null;--增加检查约束ALTER TABLE Student add constraint check_stu_age check (age>10);--增加唯一性ALTER TABLE Student add constraint uqe_phone unique (phone);--删除约束ALTER TABLE Student drop constraint uqe_phone;--约束失效ALTER TABLE Student disable constraint uqe_phone;--约束复效ALTER TABLE Student enable constraint uqe_phone;--修改表名ALTER TABLE Student RENAME TO Student2--修改表列名ALTER TABLE Student RENAME COLUMN phone TO phoneno

转载地址:http://cushn.baihongyu.com/

你可能感兴趣的文章
TCP与UDP收发的时候TCP有缓冲区还是UDP有缓冲区,使用它们时该注意什么?
查看>>
C++中map、hash_map、unordered_map、unordered_set通俗辨析
查看>>
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
查看>>
运算符重载参数的顺序对运算是否有影响
查看>>
什么时候要用虚析构函数?
查看>>
序列化、反序列化与jsoncpp学习
查看>>
同步/异步与阻塞非阻塞的关系
查看>>
epoll模型讲解/源码分析
查看>>
ELF格式与bss段
查看>>
java继承 long和float小记点
查看>>
记录几点在开发中遇到的问题 2015-7-28 (会更新)
查看>>
网银在线的异步操作代码示意图
查看>>
火狐Firefox浏览器安装Selenium_IDE的步骤以及其使用规则
查看>>
记录运行代码的时间长短
查看>>
关于yii2的一些知识的学习笔述
查看>>
用纯php实现MVC框架,文件目录模仿yii2
查看>>
新开发的体重管理项目----用纯php模仿yii2框架建立的
查看>>
JavaScript面向对象编程指南 的笔记
查看>>
在 2016 年做 PHP 开发是一种什么样的体验?(一)
查看>>
PHP获取客户端的IP
查看>>