一、查看表的结构
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的外键