文章目录
- 简介
- 数据库
- 常用
- 增
- 删
- 改
- 查
- 数据表
- 常用
- 增
- 删
- 改
- 查
- 索引
- 常用
- 增
- 删
- 改
- 查
- 数据类型存储范围
- 参考文献
简介
DDL(数据定义语言),用于创建或删除数据库和数据库中表。包括:CREATE、DROP、ALTER
数据库
常用
使用数据库
USE dbname;
MySQL 8 之后字符集默认为这个,utf8mb4 可存表情
增
创建数据库
CREATE DATABASE dbname;
CREATE DATABASE `xxx` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
删
删除数据库(会删库和表,慎重!!!)
DROP DATABASE dbname;
改
MySQL ALTER DATABASE Statement
查
查询所有数据库
SHOW DATABASES;
SELECT * FROM information_schema.`SCHEMATA`;
数据表
常用
字段
名 | 类型 | 长度 | 小数点 | 不是 null | 键 | 注释 | 默认值 | 自动递增 |
---|---|---|---|---|---|---|---|---|
id | int | 11 | 0 | √ | 1 | ID | √ | |
uuid | varchar | 32 | 0 | √ | 唯一识别码 | |||
project_id | int | 11 | 0 | √ | 项目ID|fk:库.表.字段名 | |||
price | decimal | 12 | 2 | √ | 价格|fk:库.表.字段名 | |||
role_ids | text | 0 | 0 | √ | 角色IDs|fk:库.表.字段名 | |||
name | varchar | 255 | 0 | √ | 名称 | EMPTY STRING | ||
typ | tinyint | 4 | 0 | √ | 类型|em:1-A;2-B; | 0 | ||
status | tinyint | 4 | 0 | √ | 启用状态 | em:0-关;1-开; | 0 | |
md5 | varchar | 32 | 0 | 文件MD5 | ||||
create_at | datetime | 0 | 0 | √ | 创建时间 | |||
update_at | datetime | 0 | 0 | √ | 更新时间 | |||
delete_at | datetime | 0 | 0 | 删除时间 | NULL | |||
fk 指外键
em 指枚举
price 不涉及计算可以用varchar
树结构
名 | 类型 | 长度 | 不是 null | 注释 |
---|---|---|---|---|
root_id | int | √ | 根结点ID | |
father_key | varchar | 255 | 父结点 | |
key | varchar | 255 | √ | 当前结点 |
path | varchar | 2048 | √ | 路径 |
name | varchar | 255 | √ | 名 |
key 根据根节点的 id 生成
增
增加表字段
ALTER TABLE xxx ADD COLUMN <字段定义>;
ALTER TABLE emp ADD COLUMN age int(3);
ALTER TABLE `product` ADD `name` varchar(255) DEFAULT NULL COMMENT '商品名' AFTER `id`;
ALTER TABLE `product` ADD `regist_date` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '登记日期' AFTER `name`;
删
删除数据表
DROP TABLE Product;
删除字段
ALTER TABLE xxx DROP COLUMN <字段名>;
改
改表名
RENAME TABLE old TO new;
改表字段
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
查
查询所有数据表
SHOW TABLES;
SELECT * FROM information_schema.`TABLES`
WHERE TABLE_SCHEMA=DATABASE()
AND TABLE_TYPE!='VIEW';
索引
常用
索引
名 | 字段 | 索引类型 | 索引方法 | 注释 |
---|---|---|---|---|
UQE_id_uuid | `id`,`uuid` | UNIQUE | BTREE | |
IDX_uuid | `uuid` | NORMAL | BTREE | |
IDX_type | `type` | NORMAL | BTREE | |
选项
增
索引
# 主键索引
ALTER TABLE `product` ADD PRIMARY KEY (`id`);
# 唯一索引
ALTER TABLE `product` ADD UNIQUE KEY (`uuid`);
# 普通索引
ALTER TABLE `product` ADD INDEX ( `name` );
# 全文索引
ALTER TABLE `product` ADD FULLTEXT ( `col` );
CREATE INDEX `IDX_sap_id` USING BTREE ON `cluster_alias` (`sap_id`);
删
DROP INDEX index名 ON `表名`;
改
查
查询某张表的索引
SHOW INDEX FROM `xxx`;
SELECT * FROM information_schema.`STATISTICS`
WHERE TABLE_SCHEMA='某个库'
AND TABLE_NAME='某张表';
数据类型存储范围
MySQL 会自动分配 tinyint(4)、smallint(6)、mediumint(9)、int(11)、bigint(20),括号里的数值只影响 Shell 的显示,与实际存储范围无关
数据类型 | 存储字节数 | 带符号范围 | 不带符号范围 |
---|---|---|---|
TINYINT | 1 | -128 ~ 127 | 0 ~ 255 |
SMALLINT | 2 | -32768 ~ 32767 | 0 ~ 65535 |
MEDIUMINT | 3 | -8388608 ~ 8388607 | 0 ~ 16777215 |
INT | 4 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 |
BIGINT | 8 | -263 ~ 263-1 | 0 ~ 264-1 |
TEXT的范围
数据类型 | 字节数 | 人类可读大小 |
---|---|---|
TINYTEXT | 255 | 255 B |
TEXT | 65535 | 64 KB |
MEDIUMTEXT | 16777215 | 16 MB |
LONGTEXT | 6294967295 | 4 GB |
参考文献
- MySQL | 菜鸟教程
- MySQL DDL数据操作篇(一)
- MySQL ALTER TABLE Statement
- 阿里巴巴Java开发手册
- peewee.py
- 一文搞懂MySQL的数据类型中长度的含义
- MySQL Manual Integer Types
- Which MySQL type is most suitable for “price” column?
- MySql中varchar长度的设置问题
- MySQL 索引 | 菜鸟教程
- Understanding Storage Sizes for MySQL TEXT Data Types
更多推荐
MySQL常用DDL数据定义语言——创建修改删除数据库和数据库中表
发布评论