数据表的修改操作

1. 添加单列(可以指定位置关系)

ALTER TABLE user1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10; --默认添加到所有列之后
ALTER TABLE user1 ADD passwd VARCHAR(32) NOT NULL AFTER username; --确定添加到username之后
ALTER TABLE user1 ADD truename VARCHAR(20) NOT NULL FIRST; --添加到所有列的前面

2.添加多列(不能指定位置关系,只能在所有列的后面添加)

ALTER TABLE table_name ADD Column1 varchar(50), ADD Column2 varchar(50), ADD Column3 varchar(50);

3.删除列

ALTER TABLE table_name DROP Column_name;
ALTER TABLE table_name DROP Column1,DROP Column2;

4.添加多个索引

ALTER TABLE table_name ADD INDEX idx1 ( `func`), ADD INDEX idx2 ( `func`,`gene`), ADD INDEX idx3( `genedetail`);

5.添加主键约束(CONSTRAINT约束)

ALTER TABLE user2 ADD CONSTRAINT PK_user2_id PRIMARY KEY (id); --id字段添加主键约束,主键名为:PK_user2_id

注:主键约束只能添加一个字段

删除主键约束(任何数据表有且只有一个主键,不需要指定字段名)

ALTER TABLE table_name DROP PRIMARY KEY;

6.添加唯一约束(CONSTRAINT可以省略不写)

ALTER TABLE user2 ADD UNIQUE (username); --username字段添加唯一约束

注:唯一约束可以添加多个

删除唯一约束(索引)(一张数据表可以有多个唯一约束)

SHOW INDEXES FROM user2\G; --查看表中所有索引
ALTER TABLE table_name DROP INDEX/KEY index_name; --删除约束(索引)

7.添加外键约束

ALTER TABLE user2 ADD FOREIGN KEY (pid) REFERENCES provinces (id); --pid字段 添加外键约束

删除外键约束

SHOW CREATE DATABASE user2; --查看数据库创建时使用的指令
ALTER TABLE table_name DROP FOREIGN KEY foreign_key_name;

8.添加/删除默认约束(literal字段的约束值)

ALTER TABLE table_name ALTER [COLUMN] Column_name SET DEFAULT literal;
ALTER TABLE table_name ALTER [COLUMN] Column_name DROP DEFAULT;

 

修改列定义(MODIFY Column_name)
把id字段修改放在首位

ALTER TABLE user2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;

修改数据类型

ALTER TABLE user2 MODIFY id TINYINT UNSIGNED NOT NULL; 

注:大范围向小范围 修改数据类型,可能会造成数据的丢失;

修改列名称(CHANGE Column_name)--可以修改列名称,也能修改列定义

ALTER TABLE table_name CHANGE old_Column_name new_Column_name ...;
例:ALTER TABLE user2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL;

数据表更名

方法1:ALTER TABLE table_name [TO/AS] RENAME new_table_name;
方法2:RENAME TABLE table_name TO new_table_name [,table_name2 TO new_table_name2];

注:::数据表和列,不要轻易更改,避免导致视图或存储过程无法正常工作

posted on 2018-12-27 20:04  荆棘Study  阅读(642)  评论(0编辑  收藏  举报