继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

修改数据表-添加删除列,添加删除约束,修改表结构

落子鸢
关注TA
已关注
手记 9
粉丝 2
获赞 64

添加单列示例:ALTER TABLE users1(表名称) ADD password(要添加的列的名称) VARCHAR(32) NOT NULL AFTER username(添加到username列的后面); //添加到某数据库的某个数据表的某个列后
添加多列:ALTER TABLE tbl_name ADD (col_name column_definition,...);
删除列:ALTER TABLE tbl_name(表名称) DROP col_name(列名称);
展示表中的列:SHOW COLUMNS FROM users1(表名称);
删除多列示例:ALTER TABLE users1(表名称) DROP password(列名称),DROP age(列名称);

创建完表后往表中添加列:
ALTER TABLE user2 ADD id SMALLINT UNSIGNED PRIMARY KEY;
为列添加主键约束:
ALTER TABLE user2 ADD PRINMARY KEY (id);
为列添加唯一约束:
ALTER TABLE user2 ADD UNIQUE (username);
为列添加外键约束:
ALTER TABLE user2 ADD FOREIGN KEY (pid) REFERENCES province (id);
为列添加默认约束:
ALTER TABLE use2 ALTER age SET DEFAULT 20;
删除默认约束:
ALTER TABLE user2 ALTER age DROP DEFAULT;
删除表中的某一字段:
ALTER TABLE t3 DROP username;

删除主键约束
ALTER TABLE usern DROP PRIMARY KEY;
删除唯一约束
ALTER TABLE user DROP {INDEX | KEY} index;
删除外键约束
ALTER TABLE user DROP FOREIGN KEY fk_name;

修改列定义MODIFY :ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;//修改id字段的数据类型和在表users2中所处的位置
修改列名称:ALTER TABLE users2 CHANGE pid(旧的字段名称) p_id(新的字段名称) TINYINT UNSIGNED NOT NULL;//修改pid字段,改为p_id字段
数据表更名:ALTER TABLE users2 RENAME users3;//把表名users2改为新的users3


1、大的数据类型改变成小的数据类型,有可能造成数据丢失。
2、修改列的定义,可以使用modify:alter table tbname modify column column_definition;或者使用change来替代modify
3、change 不仅可以改列定义,还可以改列名称:alter table tbname change column new_column column_definition
4、修改表名有两种方法:alter table tbname rename to new_tbname和rename table tbname to new_tbname
删除唯一约束:ALTER TABLE user2 DROP INDEX index_name;为什么这里有索引的名字,原因在于一张表可以有多个唯一约束,一个字段有索引功能,那么这个字段就具有唯一约束。只有指定了索引的名字(也是字段名),才能确定是删除哪个字段的唯一约束。

删除主键约束:ALTER TABLE user2 DROP PRIMARY KEY;因为一个表只有一个字段能有主键约束,所以没必要指定字段名。

查看索引:SHOW INDEXES FROM user2;

删除索引和删除唯一约束是一样的。删除索引:ALTER TABLE user2 DROP INDEX index_name;

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP