> 文档中心 > 【MySQL】DDL 操作数据表

【MySQL】DDL 操作数据表

目录

一、MySQL 数据类型

二、创建表

三、查看表

四、删除表

五、修改表结构


一、MySQL 数据类型

分类 类型名称 类型说明
整数 tinyInt 微整型:很小的整数(1字节)
smallint 小整型:小的整数(2字节)
mediumint 中整型:中等长度的整数(3字节)
int(integer) 整型:整数类型(4字节)
bigint 大整型:大长度的整数(8字节)
小数 float[(n,m)] 单精度浮点数(4字节) 十进制的浮点数无法用二进制精确表达
double[(n,m)] 双精度浮点数(8字节)十进制的浮点数无法用二进制精确表达
decimal(n,m) decimal(10,2)  10代表整数位加小数位一共10位,2代表精确到小数点后2位
日期 time 表示时间类型,只包含时间,HH:mm:ss
date 表示日期类型,只包含年月日,yyyy-MM-dd
year 表示年份,只包含年份
datetime 同时可以表示日期和时间类型, 包含年月日时分秒  yyyy-MM-dd HH:mm:ss
timestamp 时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss,
如果不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
字符串 char(m) 固定长度的字符串,无论使用几个字符都占满全部,m 为 1~255 之间的整数
varchar(m) 可变长度的字符串,使用几个字符就占用几个,M 为 1~65535 之间的整数
tinytext 允许长度 0~255 字节
text 不确定长度的字符串,允许长度 0~65535 字节
mediumtext 不确定长度的字符串,允许长度 0~167772150 字节
longtext 不确定长度的字符串,允许长度 0~4294967295 字节
大二进制 tinyblob Big Large Object 允许长度 0~255 字节
blob 允许长度 0~65535 字节
mediumblob 允许长度 0~167772150 字节
longblob 允许长度 0~4294967295 字节

二、创建表

语句 描述
careate table 表名 (
    列名1  数据类型  [约束]  [comment  注释],
    列名2  数据类型  [约束]  [comment  注释],
    ......
)[comment  注释];
创建表
CREATE:创建
TABLE:表
create table 新表名 like 旧表名; 快速创建一个表结构相同的表
-- 创建 student 表包含 id,name,birthday 字段create table student (    id int unsigned primary key , -- 整数   unsigned(无符号整数)    name varchar(20) not null,-- 字符串    birthday date not null-- 生日,最后没有逗号);-- 创建 s1 表,s1 表结构和 student 表结构相同create table s1 like student;desc s1;

三、查看表

语句 描述
show tables; 查看某个数据库中的所有表
desc 表名; 查看表结构
show create table 表名; 查看创建表的 SQL 语句(为了避免关键字的冲突)
-- 查看 day21 数据库中的所有表use day21;show tables;-- 查看 student 表的结构desc student;-- 查看 student 的创建表 SQL 语句show create table student;

四、删除表

语句 描述
drop table 表名; 直接删除表
drop table if exists 表名; 判断表是否存在,如果存在则删除表
-- 直接删除表 s1 表drop table s1;-- 判断表是否存在并删除 s1 表drop table if exists `create`;

五、修改表结构

语句 描述
alter table 表名
    add  列名1  数据类型  [约束]  [comment  注释],
    add  列名2  数据类型  [约束]  [comment  注释],
    ...... ;
添加字段(表列)
alter table 表名 
    modify  列名1  数据类型  [约束]  [comment  注释],
    modify  列名2  数据类型  [约束]  [comment  注释],
...... ;
修改列类型
alter table 表名
    change 旧列名1 新列名1 数据类型  [约束]  [comment  注释],
    change 旧列名2 新列名2 数据类型  [约束]  [comment  注释],
...... ;
修改列名
alter table 表名
    drop 列名1,
    drop 列名2,
...... ;
删除列
rename table 表名 to 新表名; 修改表名
alter table 表名 character set 字符集; 修改字符集
-- 为学生表添加一个新的字段 remark,类型为 varchar(20)alter table student add remark varchar(20);-- 将 student 表中的 remark 字段的改成 varchar(100)alter table student modify remark varchar(100);-- 将 student 表中的 remark 字段名改成 intro,类型 varchar(30)alter table student change remark intro varchar(30);-- 删除 student 表中的字段 home_tel 和 home_addressalter table studentdrop home_tel,drop home_address;-- 将学生表 student 改名成 student2rename table student to student2;-- 将 student2 表的编码修改成 gbkalter table student2 character set gbk;