MySQL数据库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 表注释;
字段约束
约束 | 描述 | 关键字 |
非空约束 | 限制该字段值不能为null | not null |
唯一约束 | 保证字段的所有数据都是唯一、不重复的 | unique |
主键约束 | 主键是一行数据的唯一标识,要求非空且唯一 | primary key |
默认约束 | 保存数据时,如果未指定该字段值,则采用默认值 | default |
外键约束 | 让两张表的数据建立连接,保证数据的一致性和完整性 | foreign key |
数据类型
数值类型
其中bigint和int最常用,可以不用太刻意地去考虑数值类型的范围。例如,表示年龄可以用int类型,不用刻意地用tinyint类型。主键一般使用自动增加生成,类型使用bigint类型。
类型 | 大小(byte) | 描述 |
tinyint | 1 | 小整数值 |
smallint | 2 | 大整数值 |
mediumint | 3 | 大整数值 |
int | 4 | 大整数值 |
bigint | 8 | 极大整数值 |
float | 4 | 单精度浮点数值 |
double | 8 | 双精度浮点数值 |
decimal | 小数值(精度更高) |
字符串类型
char(n),最多存储n个字符,不足n个字符,占用n个字符空间。性能高,浪费空间。
varchar(n),最多存储n个字符,不足n个字符,占用实际长度字符空间。性能低,节省空间。
类型 | 大小(bytes) | 描述 |
char | 0 - 255 bytes | 定长字符串 |
varchar | 0 - 65535?bytes | 变长字符串 |
tinyblob | 0 - 255?bytes | 不超过255个字符的二进制数据 |
tinytext | 0 - 255?bytes | 短文本字符串 |
blob | 0 - 65535?bytes | 二进制形式的长文本数据 |
text | 0 - 65535?bytes | 长文本数据 |
mediumblob | 0 - 16777215?bytes | 二进制形式的中等长度文本数据 |
mediumtext | 0 - 16777215?bytes | 中等长度文本数据 |
longblob | 0 - 4294967295?bytes | 二进制形式的极大文本数据 |
longtext | 0 - 4294967295?bytes | 极大文本数据 |
日期时间类型
字段create_time创建时间,字段update_time更新时间,都用datetime类型。
类型 | 格式 | 描述 |
date | YYYY - MM - DD | 日期值 |
time | HH : MM : SS | 时间值或持续时间 |
year | YYYY | 年份值 |
datetime | YYYY - MM - DD?HH : MM : SS | 混合日期和时间值 |
timestamp | YYYY - 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 表名;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!