【MySQL】(3)约束以及修改数据表(二)

2015-07-24 06:02:53 · 作者: · 浏览: 1
R TABLE users2 ALTER age DROP DEFAULT; SHOW COLUMNS FROM users2; (6). 删除主键约束

?

ALTER TABLE tbl_name DROP PRIMARY KEY;

例如:

?

ALTER TABLE users2 DROP PRIMARY KEY;
# 查看
SHOW COLUMNS FROM users2;
(7). 删除唯一约束

?

ALTER TABLE tbl_name DROP {INDEX | KEY} index_name;

例如:

# 查看索引
SHOW INDEXES FROM users2\G;
ALTER TABLE users2 DROP INDEX username;
#查看
SHOW COLUMNS FROM users2;
# 再查看索引
SHOW INDEXES FROM users2\G;

?

(8). 删除外键约束

ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol;

例如:

?

SHOW CREATE TABLE users2;
ALTER TABLE users2 DROP FOREIGN KEY users2_ibfk_1;
# 查看外键不见了,但是pid索引还在
SHOW CREATE TABLE users2;
ALTER TABLE users2 DROP INDEX pid;
# pid索引也删除了
SHOW CREATE TABLE users2;
(9). 修改列定义

?

ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name];

例如:

?

SHOW CREATE TABLE users2;
# 将id放在最前面
ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED FIRST;
SHOW COLUMNS FROM users2;
# 修改字段类型。 注意:由大类型修改为小类型有可能会造成数据的丢失。
ALTER TABLE users2 MODIFY id TINYINT UNSIGNED FIRST;
(10). 修改列名称

?

ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name];

例如:

?

#修改列名称和类型
ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED NOT NULL;
SHOW COLUMNS FROM users2;
(11). 数据表更名

?

方法一:

ALTER TABLE tbl_name RENAME [TO | AS] new_tbl_name;

方法二:

RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2]...;

例如:

?

ALTER TABLE users2 RENAME users3;
SHOW TABLES;
RENAME TABLE users3 TO users2;
SHOW TABLES;

?


5. 总结

?

(1). 约束:

按功能划分:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT, FOREIGN KEY

按数据列的数目划分:表级约束、列级约束

(2). 修改数据表:

针对字段的操作:添加/删除字段、修改列定义、修改列名称等

针对约束的操作:添加/删除各种约束

针对数据表的操作:数据表更名(两种方式)