6 DDL 操作表结构
6.1 创建表
CREATE TABLE 表名 (
字段名 1 字段类型 1,
字段名 2 字段类型 2
);
6.2 MySQL数据类型
| 类型 | 描述 |
|---|
| int | 整型 |
| double | 浮点型 |
| varchar | 字符串型 |
| date | ⽇期类型,格式为 yyyy-MM-dd,只有年⽉⽇,没有时分秒 |
| 分类 | 类型名称 | 类型说明 |
| 整型 | tinyInt | 微整型:很⼩的整数(占 8 位⼆进制) |
| smallint | ⼩整型:⼩的整数(占 16 位⼆进制) |
| mediumint | 中整型:中等⻓度的整数(占 24 位⼆进制) |
| int(integer) | 整型:整数类型(占 32 位⼆进制) |
| 小数 | float | 单精度浮点数,占 4 个字节 |
| double | 双精度浮点数,占 8 个字节 |
| 日期 | time | 表示时间类型 |
| date | 表示⽇期类型 |
| datetime | 同时可以表示⽇期和时间类型 |
| 字符串 | char(m) | 固定⻓度的字符串,⽆论使⽤⼏个字符都占满全部,M 为0~255之间的整数 |
| varchar(m) | 可变⻓度的字符串,使⽤⼏个字符就占⽤⼏个,M 为0~65535 之间的整数 |
| 大二进制 | tinyblob | 允许⻓度 0~255 字节 |
| blob | 允许⻓度 0~65535 字节 |
| mediumblob | 允许⻓度 0~167772150 字节 |
| longblob | 允许⻓度 0~4294967295 字节 |
| 大文本 | tinytext | 允许⻓度 0~255 字节 |
| text | 允许⻓度 0~65535 字节 |
| mediumtext | 允许⻓度 0~167772150 字节 |
| longtext | 允许⻓度 0~4294967295 字节 |
create table student (
id int,
name varchar(20),
birthday date
);
6.3 查看表
- 查看某个数据库中的所有表
SHOW TABLES; - 查看表结构
DESC 表名; - 查看创建表的SQL语句
SHOW CREATE TABLE 表名; - 具体操作
use day21;
show tables;
desc student;
- 执行结果:

- 执⾏结果:
CREATE TABLE `student` (
`id` int DEFAULT NULL,
`name` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
`` 存在的⽬的是为了避免关键字的冲突
6.4 快速创建⼀个表结构相同的表
- 语法
CREATE TABLE 新表名 LIKE 旧表名; - 具体操作
create table s1 like student;
desc s1;
6.5 删除表
- 直接删除表
DROP TABLE 表名; - 判断表是否存在,如果存在则删除表
DROP TABLE IF EXISTS 表名; - 具体操作
drop table s1;
drop table if exists `create`;
与直接删除的区别:如果表不存在,不删除,存在则删除
6.6 修改表结构
- 添加表列 ADD
ALTER TABLE 表名 ADD 列名 类型; - 具体操作
alter table student add remark varchar(20);
- 修改列类型 MODIFY
ALTER TABLE 表名 MODIFY 列名 新的类型; - 具体操作
alter table student modify remark varchar(100);
- 修改列名 CHANGE
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型; - 具体操作
alter table student change remark intro varchar(30);
- 删除列 DROP
ALTER TABLE 表名 DROP 列名; - 具体操作
alter table student change remark intro varchar(30);
- 修改表名
RENAME TABLE 表名 TO 新表名; - 具体操作
rename table student to student2;
- 修改字符集 character set
ALTER TABLE 表名 character set 字符集; - 具体操作
alter table student2 character set gbk;