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进行投诉反馈,一经查实,立即删除!