mysql_单表

一、数据库的操作流程

  1. 查看数据库是否开启
  • 状态:service mysqld status
  • 关闭:service mysqld stop
  • 开启:service mysqld start
  • 重启:service mysqld restart
  1. 进入数据库:mysql -u root -p
  2. 现实所有的仓库:show databases【s 代表所有】
  3. 创建数据库:create database 库名
  4. 使用数据库:use 库名
  5. 显示所有表:show tables
  6. 建表:create table 表名(字段名 字符类型(字符长度),字段名 字符类型(字符长度));
  • 注意在末尾加上:DEFAULT CHARSET=utf8
  1. 查看表结构:desc 表名
  2. 查询表所有数据:select * from 表名
  3. 插入数据
  • 插入全部数据:insert into 表名 valuse(字段值1,字段值2)
  • 插入部分数据:insert into 表名(字段名) values(字段值)
  1. 删除表:drop table 表名
  2. 删除数据库:drop database 库名
  3. 删除数据
  • 删除所有的数据:delete from 表名
  • 删除指定条件的数据:delete from 表名 where 条件

二、数据库数据类型

  1. 数值类型
  • 整数型
类型 字节 说明
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

  1. 字符串类型
类型 最大长度 特点
CHAR(n) 0-255字符 定长,查询快,不足补空格;适合固定长度:手机号、身份证
VARCHAR(n) 0‑65535字符 变长,节省空间;姓名、地址、普通文本,最常用
TINYTEXT 255字节 短文本
TEXT 65535字节 大段文本,文章内容
MEDIUMTEXT 16M
LONGTEXT 4G 超大文本
  1. 日期时间类型
类型 格式 说明
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 年份
  1. 二进制&其他类型
类型 说明
BINARY / VARBINARY 二进制字符串,存字节流,区分大小写
BLOB系列 二进制大对象,存图片、文件字节流,不建议数据库存文件,存文件路径字符串
ENUM 枚举,只能取预设集合中的一个值,例 enum('男','女')
SET 集合,可以多选多个值

注意

  • id:优先BIGINT,数据量小用INT
  • 金额:必须 DECIMAL,禁止 float/double
  • 手机号:CHAR(11),固定长度
  • 简短文字:VARCHAR
  • 大文章:TEXT
  • 时间:DATETIME
  • 图片文件:数据库存路径,文件放磁盘 / 对象存储

三、表格的操作

  1. 添加表字段:alter table 表名 add 新字段名 字符类型(字符长度)
  2. 修改字段名:alter table 表名 change 原字段 新字段 字符类型(字符长度)
  3. 删除字段名:alter table 表名 drop 原字段名
  4. 修改表名:alter table 原表名 rename 新表名
  5. 字段调换:alter table 表名 modify 原字段 字符类型(字符长度) after 指定字段名
  6. 添加字段到第一位:alter table 表名 add 新字段 字符类型(字符长度) first

四、数据增删改查

查

  1. 查询整个表数据:select * from 表名【* 代表所有】
  2. 查询部分字段的数据:select 字段1,字段2 from 表名

备注:字段之间用英文逗号分隔;

  1. 查询字段可以通过as取别名【as也可以省略不写】:select 字段1 as "别名",字段2 "别名" from 表名
  2. 根据条件查询:select * from 表名 where 条件
  • 比较运算符
    • =:等于
    • !=|<>:不等于
    • <:小于
    • >:大于
    • >=:大于等于
    • <=:小于等于
  • 条件运算符
    • and:同时满足多个条件
    • or:只要满足其中一个条件
    • between...and:在...数据之间

备注:between...and包含了开始值和结束值

  • in:在一个范围内匹配
  • not in:匹配不在一个范围内的
  • is null:值为null
  • is not null:不为空
  1. 排序:order by
  • 降序【从小到大】:select * from 表名 order by 字段名 asc
  • 升序【从大到小】:desc
  • 二次排序:select * from 表名 order by 字段名 asc,字段名 desc
  1. 模糊查询:like
  • %:表示匹配一个或多个字符
  • _:表示只占用一个字符
  • 匹配xx开头的数据:select * from 表名 where 字段名 like "xx%"
  • 匹配xx结尾的数据:select * from 表名 where 字段名 like "%xx"
  • 匹配包含xx字符的数据:select * from 表名 where 字段名 like "%xx%"
  • 匹配指定位数的数据:select * from 表名 where 字段名 like "___"
  1. 显示指定的数据,限制:limit

根据索引位置来取值,从0开始,一个表第一行索引为0,第二行为1

  • xxx limit 1:只有一行
  1. 聚合函数
  • max:最大值
  • min:最小值
  • avg:平均数
  • count:统计
  • sum:求和
  • distinct:去重

    聚合函数,不加group by,整张表会合并成一行

  1. 分组:group by
  • select 字段名,聚合函数 from 表名 group by 字段名【与前面相同】
  • 加条件:having 条件【可接聚合函数】
  • select 字段名,聚合函数 from 表名 group by 字段名【与前面相同】having 条件

改

  1. 修改数据值:update 表名 set 字段名="新值" where 条件

删

  1. 删除整个表或整个库:drop 表名/库名
  2. 快速删除【比delete数据快】:truncate 表名
  3. 删除数据:delete
  • 删除整个表中的数据:delete from 表名
  • 删除表中符合条件的数据:delete from 表名 where 条件

drop > truncate > delete

五、其他

  1. 备份
  • 备份表结构:create table 新表名 like 旧表名
  • 备份表数据:insert into 表名 select * from 原表
  • 备份部分数据:insert into 新表名(字段1,字段2) select 字段1,字段2 from 原表
  • 备份表结构和表数据:create table 新表名 as (select * from 表名)
  1. 在linux中备份:mysqldump -u root -p 已经存在的库>备份的sql脚本.sql
  2. 还原:新建一个新库:mysql -u root -p 新库<备份好的数据库脚本
posted @ 2026-09-07 20:43  一只鹿吖  阅读(9)  评论(0)    收藏  举报