数据表的修改操作
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];
注:::数据表和列,不要轻易更改,避免导致视图或存储过程无法正常工作