拓展:MYSQL ALTER命令详解

当需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

修改表名
语法格式:ALTER TABLE old_table_name RENAME TO new_table_name
查看表结构
语法格式: SHOW COLUMNS FROM table_name
查看数据表类型
语法格式:SHOW TABLE STATUS LIKE 'table_name'

修改数据表类型
语法:ALTER TABLE testalter_tbl ENGINE = 新的数据类型;

如果一个系统有很多数据库,在找某张表的时候可以使用如下sql
SELECT table_schema FROM information_schema.TABLES WHERE table_name = '表名';

查看表的建表语句
语法格式:SHOW CREATE TABLE table_name

删除,添加或修改表字段

1.删除

语法格式:ALTER TABLE table_name DROP i

i:为字段名

如果数据表中只剩余一个字段则无法使用DROP来删除字段。

2.添加

语法格式:ALTER TABLE table_name ADD i int [ FIRST | AFTER column ]

添加使用add,后面紧跟你要添加的字段及字段类型。

[ FIRST | AFTER column ]:为可选参数。

FIRST:添加至表的第一列。
AFTER column:添加至某个字段column的后面。
修改字段类型及名称

语法格式:
1 ALTER TABLE table_name MODIFY 字段名称 字段数据类型

2 ALTER TABLE table_name CHANGE 旧字段名称 新字段名称 新字段数据类型

方法1:只修改字段的数据类型。方法2:可以修改字段名称和数据类型。

ALTER TABLE 对 NULL 值和默认值的影响

语法格式:ALTER TABLE table_name MODIFY 字段名称 字段类型 是否为NULL 默认值

示例:alter table test modify c varchar(10) not null default 100
MYSQL设置字段时,不设置默认值,MYSQL会自动设置该字段默认为 NULL。

修改和删除字段的默认值

1.修改

语法格式:ALTER TABLE table_name ALTER 字段名称 SET DEFAULT 数值

2.删除

语法格式:ALTER TABLE table_name ALTER 字段名称 DROP DEFAULT
添加,删除表中的主键或者外键

Mysql的两种主键。Primary key 和not null auto_incriment在建立mysql表时,给一个字段添加了主键primary key 在insert数据时可以不用insert主键,mysql会自动添加0,但是在第二次insert时没有填写值mysql数据库还是默认添加0,会导致 有重复的主键,这是不可以的。所有在定义了primary key时,在insert数据时要给主键填写值。

添加主键

语法格式:

1   ALTER  TABLE  table_name  ADD  PRIMARY  KEY( id )

 2   ALTER  TABLE  table_name  MODIFY   id  int(10)  NOT  NULL AUTO_INCREMENT

删除主键:

语法格式:

 1   ALTER  TABLE  table_name  CHANGE   id   id  int(10)  //先删除自增长

 2   ALTER  TABLE  table_name  DROP  PRIMARY  KEY   //再删除主键

添加外键

语法格式:

ALTER TABLE 表1 ADD CONSTRAINT 外键名 FOREIGN KEY(表1中得到字段名) REFERENCES 表2(表2中的字段名)

删除外键

语法格式:ALTER TABLE table_name DROP FOREIGN KEY 外键名称
添加和删除索引

查看索引

语法格式:SHOW INDEX FROM table_name

添加索引

1.唯一索引 unique

语法格式: ALTER TABLE table_name ADD UNIQUE ( 字段名称 )

2.普通索引

语法格式:ALTER TABLE test ADD INDEX 索引名称 ( 字段名称 )

3.全文索引

语法格式:ALTER TABLE table_name ADD FULLTEXT ( 字段名称 )

备注:如果是InnoDB,改为MyISAM,InnoDB不支持FULLTEXT类型的索引

InnoDB会报错: [Err] 1214 - The used table type doesn’t support FULLTEXT indexes

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值