mysql_单表
一、数据库的操作流程
- 查看数据库是否开启
- 状态:
service mysqld status - 关闭:
service mysqld stop - 开启:
service mysqld start - 重启:
service mysqld restart
- 进入数据库:
mysql -u root -p - 现实所有的仓库:
show databases【s 代表所有】 - 创建数据库:
create database 库名 - 使用数据库:
use 库名 - 显示所有表:
show tables - 建表:
create table 表名(字段名 字符类型(字符长度),字段名 字符类型(字符长度));
- 注意在末尾加上:
DEFAULT CHARSET=utf8
- 查看表结构:
desc 表名 - 查询表所有数据:
select * from 表名 - 插入数据
- 插入全部数据:
insert into 表名 valuse(字段值1,字段值2) - 插入部分数据:
insert into 表名(字段名) values(字段值)
- 删除表:
drop table 表名 - 删除数据库:
drop database 库名 - 删除数据
- 删除所有的数据:
delete from 表名 - 删除指定条件的数据:
delete from 表名 where 条件
二、数据库数据类型
- 数值类型
- 整数型
| 类型 | 字节 | 说明 |
|---|---|---|
| smallint | 2 | 少量数字 |
| int | 4 | 最常用,id |
| bigint | 8 | 大id,雪花id |
UNSIGNED:无符号,只存正数;int (10) 只是显示宽度,不限制存储大小。
- 浮点数
| 类型 | 字节 | 说明 |
|---|---|---|
| FLOAT | 4 | 单精度浮点数,有精度丢失,不适合金额 |
| DOUBLE | 8 | 双精度,依然存在精度误差 |
| DECIMAL | (M,D) | 定点数,财务金额必用 |
M 总位数,D 小数位,例 DECIMAL(10,2):最大 99999999.99
- 字符串类型
| 类型 | 最大长度 | 特点 |
|---|---|---|
| CHAR(n) | 0-255字符 | 定长,查询快,不足补空格;适合固定长度:手机号、身份证 |
| VARCHAR(n) | 0‑65535字符 | 变长,节省空间;姓名、地址、普通文本,最常用 |
| TINYTEXT | 255字节 | 短文本 |
| TEXT | 65535字节 | 大段文本,文章内容 |
| MEDIUMTEXT | 16M | |
| LONGTEXT | 4G | 超大文本 |
- 日期时间类型
| 类型 | 格式 | 说明 |
|---|---|---|
| DATE | YYYY‑MM‑DD | 日期,如2026‑09‑07 |
| TIME | HH:MM:SS | 时间 |
| DATETIME | YYYY‑MM‑DD HH:MM:SS | 日期时间,范围 1000‑9999,不会自动更新 |
| TIMESTAMP | 时间戳转日期 | 1970‑2038,可自动更新ON UPDATE CURRENT_TIMESTAMP |
| YEAR | YYYY | 年份 |
- 二进制&其他类型
| 类型 | 说明 |
|---|---|
| BINARY / VARBINARY | 二进制字符串,存字节流,区分大小写 |
| BLOB系列 | 二进制大对象,存图片、文件字节流,不建议数据库存文件,存文件路径字符串 |
| ENUM | 枚举,只能取预设集合中的一个值,例 enum('男','女') |
| SET | 集合,可以多选多个值 |
注意
- id:优先BIGINT,数据量小用INT
- 金额:必须 DECIMAL,禁止 float/double
- 手机号:CHAR(11),固定长度
- 简短文字:VARCHAR
- 大文章:TEXT
- 时间:DATETIME
- 图片文件:数据库存路径,文件放磁盘 / 对象存储
三、表格的操作
- 添加表字段:
alter table 表名 add 新字段名 字符类型(字符长度) - 修改字段名:
alter table 表名 change 原字段 新字段 字符类型(字符长度) - 删除字段名:
alter table 表名 drop 原字段名 - 修改表名:
alter table 原表名 rename 新表名 - 字段调换:
alter table 表名 modify 原字段 字符类型(字符长度) after 指定字段名 - 添加字段到第一位:
alter table 表名 add 新字段 字符类型(字符长度) first
四、数据增删改查
查
- 查询整个表数据:
select * from 表名【* 代表所有】 - 查询部分字段的数据:
select 字段1,字段2 from 表名
备注:字段之间用英文逗号分隔;
- 查询字段可以通过as取别名【as也可以省略不写】:
select 字段1 as "别名",字段2 "别名" from 表名 - 根据条件查询:
select * from 表名 where 条件
- 比较运算符
=:等于!=|<>:不等于<:小于>:大于>=:大于等于<=:小于等于
- 条件运算符
and:同时满足多个条件or:只要满足其中一个条件between...and:在...数据之间
备注:
between...and包含了开始值和结束值
in:在一个范围内匹配not in:匹配不在一个范围内的is null:值为nullis not null:不为空
- 排序:order by
- 降序【从小到大】:
select * from 表名 order by 字段名 asc - 升序【从大到小】:
desc - 二次排序:
select * from 表名 order by 字段名 asc,字段名 desc
- 模糊查询:
like
%:表示匹配一个或多个字符_:表示只占用一个字符- 匹配xx开头的数据:
select * from 表名 where 字段名 like "xx%" - 匹配xx结尾的数据:
select * from 表名 where 字段名 like "%xx" - 匹配包含xx字符的数据:
select * from 表名 where 字段名 like "%xx%" - 匹配指定位数的数据:
select * from 表名 where 字段名 like "___"
- 显示指定的数据,限制:
limit
根据索引位置来取值,从0开始,一个表第一行索引为0,第二行为1
- xxx limit 1:只有一行
- 聚合函数
max:最大值min:最小值avg:平均数count:统计sum:求和distinct:去重聚合函数,不加
group by,整张表会合并成一行
- 分组:
group by
select 字段名,聚合函数 from 表名 group by 字段名【与前面相同】- 加条件:
having 条件【可接聚合函数】 select 字段名,聚合函数 from 表名 group by 字段名【与前面相同】having 条件
改
- 修改数据值:
update 表名 set 字段名="新值" where 条件
删
- 删除整个表或整个库:
drop 表名/库名 - 快速删除【比delete数据快】:
truncate 表名 - 删除数据:
delete
- 删除整个表中的数据:
delete from 表名 - 删除表中符合条件的数据:
delete from 表名 where 条件
drop > truncate > delete
五、其他
- 备份
- 备份表结构:
create table 新表名 like 旧表名 - 备份表数据:
insert into 表名 select * from 原表 - 备份部分数据:
insert into 新表名(字段1,字段2) select 字段1,字段2 from 原表 - 备份表结构和表数据:
create table 新表名 as (select * from 表名)
- 在linux中备份:
mysqldump -u root -p 已经存在的库>备份的sql脚本.sql - 还原:新建一个新库:
mysql -u root -p 新库<备份好的数据库脚本

浙公网安备 33010602011771号