mysql 从库修改表结构_在mysql数据库中---修改表结构

显示表结构

Show create table 表名

Show columns from 表名

修改数据表

添加单列:

Alter table tbl_names ADD [column] col_name column_definition [first|after col_name]

添加多列:

Alter table tbl_name ADD 【column】 (col_name coumn_definition,...)

注:不可以选择位置。只添加在最后

删除列:

Alter table tbl_name drop [column] col_name

删除多列:

Alter table tbl_name drop [column] col_name,drop [column] col_name,....

删除的同时添加

Alter table tbl_name drop [column] col_name,add [column] col_name column_definition [first|after col_name]

添加主键约束:

Alter table tbl_name add [constraint [symbol]] primary key [index_type] (index_col_names,....)

添加唯一约束

Alter table tbl_name add [constraint [symbol]] unique [index|key] [index_name][index_type] (index_col_name,....)

添加删除默认约束

Alter table tbl_name alter 【column】 col_name {set default literal | drop default}

数据表的修改操作:无非就是添加列,删除列,添加约束,删除约束。用的是ALTER,而INSERT是对数据表添加插入记录用的。

1.添加主键约束

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)

e.g:ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY (id);

2.添加唯一约束

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)

e.g:ALTER TABLE users ADD UNIQUE (username);

3.添加外键约束

添加外键约束

要求同之前相同

(1)相同的存储引擎

(2)数字的数据类型相同,本节中均为SMALLINT ,符号为UNSIGNED

因为参照列中存在PRIMARY KEY,有索引,所以外键列会自动创建索引格式

ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY index_name reference_definition

e.g:ALTER TABLE users ADD FOREIGN KEY (pid) REFERENCES provinces (id)

4.添加/删除默认约束 DEFAULT

ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

e.g:

ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL;

ALTER TABLE users ALTER age SET DEFAULT 15;

ALTER TABLE users ALTER age DROP DEFAULT;

查看key和索引: show indexes from 表名 [\G] // 可以查看key_name (和字段名相同)

查看外键: show create table 表名

删除主键约束 ALTER TABLE tbl_name DROP PRIMARY KEY; // 唯一所以不用key_name

删除唯一约束 ALTER TABLE tbl_name DROP {INDEX|KEY} key_name; // 唯一约束有多个, 需要具体的名字

删除外键约束 ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol // fk_symbol是外键约束的名字.系统会自动给外键列创建名称,通过SHOW CREATE TABLE 表名 来查看其中CONSTRAINT后加注的字段名称

修改列定义:modify,change:

ALTER TABLE 表名 MODIFY 列名 数据类型 其他属性

举例:ALTER TABLE users2 MODIFY id SMALLINT UNSIDNED FIRST;

ALTER TABLE 表名 CHANGE 列名 新列名 数据类型 其他属性

举例:ALTER TABLE users2 CAHNGE pid p_id SMALLINT UNSINGED NOT NULL;

表重命名的两种方法:rename和rename to

ALTER TABLE 表名 RENAME [TO|AS] 新表名

举例:ALTER TABLE users2 RENAME users3;

RENAME TABLE 表名 TO 新表名;

举例:RENAME TABLE users3 TO users2;

本节知识点

约束:

按功能划分:not null ,primary key, unique key,default,foreign key

按数据列的数目化为:表级约束,列级约束

修改数据表:

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值