MySQL数据库DDL回顾

2023-12-16 06:35:13

目录

什么是DDL

数据库操作

查询

使用

创建

删除

表操作

创建

字段约束

数据类型

数值类型

字符串类型

日期时间类型

查询

修改

删除


什么是DDL

DDL英文全称是Data Definition Language,数据定义语言,用来定义数据库对象(数据库、表)。

数据库操作

查询

查询所有数据库:show databases;

查询当前数据库:select database();

使用

使用数据库:use 数据库名;

创建

创建数据库:create database if not exists 数据库名;

删除

删除数据库:drop database if exists 数据库名;

上述语法中的database,也可以替换成schema。例如:show schemas;

表操作

创建

create table 表名(

? ? ? ? 字段1 字段类型 约束 comment 字段1注释,

? ? ? ? ······

? ? ? ? 字段n 字段类型?约束 comment 字段n注释

) comment 表注释;

字段约束
约束描述关键字
非空约束限制该字段值不能为nullnot null
唯一约束保证字段的所有数据都是唯一、不重复的unique
主键约束主键是一行数据的唯一标识,要求非空且唯一primary key
默认约束保存数据时,如果未指定该字段值,则采用默认值default
外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key
数据类型
数值类型

其中bigintint最常用,可以不用太刻意地去考虑数值类型的范围。例如,表示年龄可以用int类型,不用刻意地用tinyint类型。主键一般使用自动增加生成,类型使用bigint类型。

类型大小(byte)描述
tinyint1小整数值
smallint2大整数值
mediumint3大整数值
int4大整数值
bigint8极大整数值
float4单精度浮点数值
double8双精度浮点数值
decimal小数值(精度更高)
字符串类型

char(n),最多存储n个字符,不足n个字符,占用n个字符空间。性能高,浪费空间。

varchar(n),最多存储n个字符,不足n个字符,占用实际长度字符空间。性能低,节省空间。

类型大小(bytes)描述
char0 - 255 bytes定长字符串
varchar0 - 65535?bytes变长字符串
tinyblob0 - 255?bytes不超过255个字符的二进制数据
tinytext0 - 255?bytes短文本字符串
blob0 - 65535?bytes二进制形式的长文本数据
text0 - 65535?bytes长文本数据
mediumblob0 - 16777215?bytes二进制形式的中等长度文本数据
mediumtext0 - 16777215?bytes中等长度文本数据
longblob0 - 4294967295?bytes二进制形式的极大文本数据
longtext0 - 4294967295?bytes极大文本数据
日期时间类型

字段create_time创建时间,字段update_time更新时间,都用datetime类型。

类型格式描述
dateYYYY - MM - DD日期值
timeHH : MM : SS时间值或持续时间
yearYYYY年份值
datetimeYYYY - MM - DD?HH : MM : SS混合日期和时间值
timestampYYYY - MM - DD?HH : MM : SS混合日期和时间值,时间戳

查询

查询当前数据库所有表:show tables;

查询表结构:desc 表名;

查询建表语句:show create table 表名;

修改

添加字段:alter table 表名 add 字段名 类型 comment 注释 约束;

修改字段类型:alter table 表名 modify 字段名 新数据类型;

修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型 comment 注释 约束;

删除字段:alter table 表名 drop column 字段名;

修改表名:rename table 表名 to 新表名;

删除

删除表:drop table if exists 表名;

文章来源:https://blog.csdn.net/qq_74312711/article/details/134904359
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。