MySQL数据库3------修改表

一、查看表的结构

1.查看表基本结构语句DESCRIBE
语法形式:

DESCRIBE 表名;

DESCRIBE可以缩写为DESC,查看方式相同

2.查看表的详细结构语句SHOW CREATE TABLE
语法形式:

SHOW CREATE TABLE 表名;

二、修改表:

1.修改表名:
语法形式:

ALTER TABLE 旧表名 RENAME [TO] 新表名;

例:将example1表修改为user表:

DESC example1;
ALTER TABLE example1 RENAME user;
DESC user;

代码解释:第一行:查看example1表的结构
第二行:修改表名
第三行:查看user的结构

2.修改列名的数据类型
语法:

ALTER TABLE 表名 MODIFY 列名 数据类型;

例:修改user表中name列的数据类型

DESC user;
ALTER TABLE user MODIFY name VARCHAR(30);
DESC user;

代码解释:第一行:查看user的结构,看是否有name列名
第二行:修改name列的数据类型
第三行:重新查看user表,看是否修改成功

3.修改列名
语法:

ALTER TABLE 表名 CHANGE 旧列名 新列名 新数据类型

1)只修改列名. 使用ALTER TABLE 语句可直接修改列名,不改变数据类型
例:将example1表中的stu_name列改为name

DESC example1;
ALTER TABLE example1 CHANGE stu_name name  VARCHAR(20);
DESC example1;

代码解释:第一行:查看example1表的结构
第二行:修改列名
第三行:重新查看example1的结构

2)修改列名和数据类型
例:将example1表中的stu_sex 列改为sex,数据类型改为:INT(2)

DESC example1;
ALTER TABLE example1 CHANGE stu_sex sex INT(2);
DESC example1;

代码解释:第一行:查看example1表的结构
第二行:修改列名和数据类型
第三行:重新查看example1表的结构

4.增加列:
语法:

ALTER TABLE 表名 ADD 列名1 数据类型 [完整性约束条件] [FIRST| AFTER 列名2];

1)增加无完整性约束条件的列
例:在user表中增加一个无完整性约束条件的phone列

DESC user;
ALTER TABLE user ADD phone VARCHAR(20);
DESC user;

代码解释:第一行:查看user表的结构
第二行:在user表中增加一个无完整性约束条件的phone列
第三行:重新查看user表的结构

2)增加完整性约束条件的列
例:在user表中增加一个有非空约束的列age

DESC user;
ALTER TABLE user ADD age INT(4) NOT NULL;
DESC user;

代码解释:第一行:查看user表的结构
第二行:在user表中增加一个有非空约束的列age
第三行:重新查看user表的结构

3)表的第一个位置增加列
例:在user表第一个位置增加num列,并设置为主键

DESC user;
ALTER TABLE user num INT(8) PRIMARY KEY FIRST;
DESC user;

代码解释:第一行:查看user表的结构
第二行:在user表中增加一个有非空约束的列age
第三行:重新查看user表的结构

4)在表的指定位置之后增加列
例:在user表的phone列后增加address列,并设置address列非空

DESC user;
ALTER TABLE user ADD address VARCHAR(30) NOT NULL AFTER phone;
DESC user;

代码解释:第一行:查看user表的结构
第二行:在user表的phone列后增加address列,并设置address列非空
第三行:重新查看user表的结构

5.删除字段
语法:

ALTER TABLE 表名 DROP 属性名;

例:从user表中删除id列

DESC user;
ALTER TABLE user DROP id;
DESC user;

代码解释:第一行:查看user表的结构
第二行:从user表中删除id列
第三行:重新查看user表的结构

6.修改列的排列位置
语法:

ALTER TABLE 表名 MODIFY 列名1 数据类型 FIRST|AFTER 列名2;

1)将列修改到第一个位置:使用FIRST参数
例:将user表中name列修改到该表的第一个列

DESC user;
ALTER TABLE user MODIFY name VARCHAR(30) FIRST;
DESC user;

代码解释:第一行:查看user表的结构
第二行:将user表中name列修改到该表的第一个列
第三行:重新查看user表的结构

2)将列修改到指定位置:使用AFTER参数
例:将user表的sex列修改到age列之后

DESC user;
ALTER TABLE user MODIFY sex TINYINT(1) AFTER age;
DESC user;

代码解释:第一行:查看user表的结构
第二行:将user表中的sex列修改到age列之后
第三行:重新查看user表的结构

7.修改表的储存引擎
语法:

ALTER TABLE 表名 ENGINE=存储引擎名

例:将user表的存储引擎改为MyISAM

SHOW CREATE TABLE user \G;
ALTER TABLE user ENGINE=MyISAM;
SHOW CREATE TABLE user \G;

代码解释:第一行:查看user表的引擎,\G可以使结果更加明显
第二行:将user表的存储引擎改为MyISAM
第三行:重新查看user表的引擎

8.删除表的外键约束:
语法:

ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;

例:删除example4的外键约束:

SHOW CREATE TABLE example4 \G;
ALTER TABLE example4 DROP FOREIGN KEY c_fk;
SHOW CREATE TABLE example4 \G;

代码解释:第一行:查看example4表的外键
第 二行:删除example4的外键约束删除,外键别名为:c_fk
第三行:重新查看example4的外键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值