目录
2.1.4 DDL-表操作-修改和删除
一、DDL-表操作-修改
主要学习:
-
向表中添加字段
-
删除表中的字段
-
修改表中的字段
-
修改表名
1、添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束]
2、修改字段名和字段类型
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新的数据类型(长度)
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束]
3、删除字段
ALTER TABLE 表名 DROP 字段名;
4、修改表名
ALTER TABLE 表名 RENAME TO 新的表名;
二、DDL-表操作-删除
删除表
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建新的表(重新创建的表是一张空表,里面数据被全部删除)
TRUNCATE TABLE 表名;
* 案例:
对“MySQL数据类型及案例”案例中创建的emp表,实现以下操作
-- ---------- DDL 表操作:修改和删除 ----------
USE my_database;
-- 案例1:添加字段
-- 为emp表增加一个新的字段“昵称”为nickname,类型为VARCHAR(20)
ALTER TABLE emp ADD nickname VARCHAR(20) COMMENT '昵称';
# 查询表结构
DESC emp;
# 输出结果:
# +------------+------------------+------+-----+---------+-------+
# | Field | Type | Null | Key | Default | Extra |
# +------------+------------------+------+-----+---------+-------+
# | no | int | YES | | NULL | |
# | work_id | varchar(10) | YES | | NULL | |
# | name | varchar(10) | YES | | NULL | |
# | gender | char(1) | YES | | NULL | |
# | age | tinyint unsigned | YES | | NULL | |
# | id | char(18) | YES | | NULL | |
# | entry_date | date | YES | | NULL | |
# | nickname | varchar(20) | YES | | NULL | |
# +------------+------------------+------+-----+---------+-------+
# 8 rows in set (0.01 sec)
-- 案例2:修改字段
-- 将emp表的nickname字段修改为username,类型为VARCHAR(30)
ALTER TABLE emp CHANGE nickname username VARCHAR(30) COMMENT '用户名';
# 查询表结构
DESC emp;
# 输出结果:
# +------------+------------------+------+-----+---------+-------+
# | Field | Type | Null | Key | Default | Extra |
# +------------+------------------+------+-----+---------+-------+
# | no | int | YES | | NULL | |
# | work_id | varchar(10) | YES | | NULL | |
# | name | varchar(10) | YES | | NULL | |
# | gender | char(1) | YES | | NULL | |
# | age | tinyint unsigned | YES | | NULL | |
# | id | char(18) | YES | | NULL | |
# | entry_date | date | YES | | NULL | |
# | username | varchar(30) | YES | | NULL | |
# +------------+------------------+------+-----+---------+-------+
# 8 rows in set (0.00 sec)
-- 案例3:删除字段
-- 删除emp表中的username字段
ALTER TABLE emp DROP username;
# 查询表结构
DESC emp;
# 输出结果:
# +------------+------------------+------+-----+---------+-------+
# | Field | Type | Null | Key | Default | Extra |
# +------------+------------------+------+-----+---------+-------+
# | no | int | YES | | NULL | |
# | work_id | varchar(10) | YES | | NULL | |
# | name | varchar(10) | YES | | NULL | |
# | gender | char(1) | YES | | NULL | |
# | age | tinyint unsigned | YES | | NULL | |
# | id | char(18) | YES | | NULL | |
# | entry_date | date | YES | | NULL | |
# +------------+------------------+------+-----+---------+-------+
# 7 rows in set (0.00 sec)
-- 案例4:修改表名emp为employee
ALTER TABLE emp RENAME TO employee;
# 查询表
SHOW TABLES;
2.1.5 DDL小结
1、DDL-数据库操作
SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名;
SELECT DATABASE();
DROP DATABASE 数据库名;
2、DDL-表操作
SHOW TABLES;
CREATE TABLE 表名(字段 字段类型, 字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO ......;
DROP TABLE 表名;
TRUNCATE TABLE 表名;