数据库操作
主要是对表和数据库的一些操作而非对里面数据的操作
mysql
-- 创建数据库(加上括号中的内容可以避免重复创建而报错)
create database [if not exists] base_name [default 字符集] [collate 排序规则];
-- 展示现在所有的数据库
show databases;
-- 查询当前数据库,可以看当前在哪个数据库
select databases();
-- 删除数据库
drop database [if exists] 数据库名;
-- 使用(切换到该数据库)
use 数据库名;
表操作-创建&查询
查询
mysql
-- 展示当前数据库中所有表
show tables;
-- 查看表结构
desc 表名;
-- 查询指定表的详细信息
show create table 表名;
创建
mysql
create table 表名(
字段1 字段1类型[comment 字段1注释]
)
create table tb_user(
-> id int comment '编号',
-> name varchar(50) comment '姓名',
-> age int comment '年龄',
-> gender varchar(1) comment '性别'
-> )comment '用户表';
数据类型
数字类型
| 分类 | 类型 | 大小 | 有符号 (SIGNED) 范围 | 无符号 (UNSIGNED) 范围 | 描述 |
|---|---|---|---|---|---|
| 数值类型 | TINYINT | 1 byte | −27∼27−1-2^7 \sim 2^7-1−27∼27−1 | 0∼28−10 \sim 2^8-10∼28−1 | 小整数值 |
| SMALLINT | 2 bytes | −215∼215−1-2^{15} \sim 2^{15}-1−215∼215−1 | 0∼216−10 \sim 2^{16}-10∼216−1 | 大整数值 | |
| MEDIUMINT | 3 bytes | −223∼223−1-2^{23} \sim 2^{23}-1−223∼223−1 | 0∼224−10 \sim 2^{24}-10∼224−1 | 大整数值 | |
| INT 或 INTEGER | 4 bytes | −231∼231−1-2^{31} \sim 2^{31}-1−231∼231−1 | 0∼232−10 \sim 2^{32}-10∼232−1 | 大整数值 | |
| BIGINT | 8 bytes | −263∼263−1-2^{63} \sim 2^{63}-1−263∼263−1 | 0∼264−10 \sim 2^{64}-10∼264−1 | 极大整数值 | |
| FLOAT | 4 bytes | −2128∼2128-2^{128} \sim 2^{128}−2128∼2128(近似) | 000 和 2−149∼21282^{-149} \sim 2^{128}2−149∼2128(近似) | 单精度浮点数值 | |
| DOUBLE | 8 bytes | −21024∼21024-2^{1024} \sim 2^{1024}−21024∼21024(近似) | 000 和 2−1074∼210242^{-1074} \sim 2^{1024}2−1074∼21024(近似) | 双精度浮点数值 | |
| DECIMAL | 依赖于 M (精度) 和 D (标度) 的值 | 依赖于 M (精度) 和 D (标度) 的值 | 依赖于 M (精度) 和 D (标度) 的值 | 精确定点小数 |
字符串类型
| 分类 | 类型 | 大小(2的幂次形式) | 描述 |
|---|---|---|---|
| 字符串类型 | CHAR | 0∼28−10 \sim 2^8-10∼28−1 bytes | 定长字符串 |
| VARCHAR | 0∼216−10 \sim 2^{16}-10∼216−1 bytes | 变长字符串 性能比char差 | |
| TINYBLOB | 0∼28−10 \sim 2^8-10∼28−1 bytes | 不超过255个字符的二进制数据 | |
| TINYTEXT | 0∼28−10 \sim 2^8-10∼28−1 bytes | 短文本字符串 | |
| BLOB | 0∼216−10 \sim 2^{16}-10∼216−1 bytes | 二进制形式的长文本数据 | |
| TEXT | 0∼216−10 \sim 2^{16}-10∼216−1 bytes | 长文本数据 | |
| MEDIUMBLOB | 0∼224−10 \sim 2^{24}-10∼224−1 bytes | 二进制形式的中等长度文本数据 | |
| MEDIUMTEXT | 0∼224−10 \sim 2^{24}-10∼224−1 bytes | 中等长度文本数据 | |
| LONGBLOB | 0∼232−10 \sim 2^{32}-10∼232−1 bytes | 二进制形式的极大文本数据 | |
| LONGTEXT | 0∼232−10 \sim 2^{32}-10∼232−1 bytes | 极大文本数据 |
日期格式
| 分类 | 类型 | 大小 | 范围 | 格式 | 描述 |
|---|---|---|---|---|---|
| 日期类型 | DATE | 3 | 1000-01-01 至 9999-12-31 | YYYY-MM-DD | 日期值 |
| TIME | 3 | -838:59:59 至 838:59:59 | HH:MM:SS | 时间值或持续时间 | |
| YEAR | 1 | 1901 至 2155 | YYYY | 年份值 | |
| DATETIME | 8 | 1000-01-01 00:00:00 至 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 | |
| TIMESTAMP | 4 | 1970-01-01 00:00:01 至 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |
修改操作
mysql
-- 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
alter table emp add nickname varchar(20) [comment '昵称']
-- 修改数据类型
alter table 表名 modify 字段名 新数据类型(长度)
-- 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释] [约束];
-- 删除字段
alter table 表名 drop 字段名;
-- 修改表名
alter table 表名 rename to 新表名;
-- 删除表
drop table [if exists] 表名;
-- 删除指定表并重新创建该表
truncate table 表名;