Mysql的数据类型,查询与备份操作

一、数据类型

1. 数字类型

类型 字节数 取值范围 说明
TINYINT 1 -128 ~ 127 极小整数
SMALLINT 2 -32768 ~ 32767 小整数
MEDIUMINT 3 -8388608 ~ 8388607 中等整数
INT 4 -2147483648 ~ 2147483647 标准整数
BIGINT 8 -9223372036854775808 ~ 9223372036854775807 大整数
FLOAT 4 ±3.402823466E+38 单精度浮点数
DOUBLE 8 ±1.7976931348623157E+308 双精度浮点数
DECIMAL(M,D) 可变 取决于M和D M=总位数,D=小数位数,精确小数

2. 字符串类型

类型 说明 特点
CHAR(m) 定长字符串 固定长度,效率高,浪费空间
VARCHAR(m) 可变长字符串 根据内容长度存储,节省空间
TEXT 长文本 存储大段文本内容
ENUM('A','B') 枚举类型 限定只能取括号中列出的值

3. 日期时间类型

类型 格式 说明
DATE YYYY-MM-DD 日期,不含时间
TIME HH:MM:SS 时间,不含日期
DATETIME YYYY-MM-DD HH:MM:SS 日期+时间
TIMESTAMP YYYY-MM-DD HH:MM:SS 时间戳,受时区影响

二、表操作

创建时间自动生成

语法 说明
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP 插入时自动记录当前时间

修改时间自动更新

语法 说明
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 插入时记录当前时间,更新时自动刷新

软删除

操作 SQL语句 说明
添加删除标记列 ALTER TABLE 表名 ADD is_delete TINYINT DEFAULT 0; 默认0表示未删除
软删除记录 UPDATE 表名 SET is_delete = 1 WHERE id = 2; 标记为已删除
查询全部(含已删) SELECT * FROM 表名; 慎用,通常需过滤

三、查询语句(SELECT)

1. 基础查询

查询方式 语法 说明
查询全部列 SELECT * FROM 表名; 返回所有列
查询部分列 SELECT 列名1, 列名2 FROM 表名; 只返回指定列
指定表名 SELECT 表名.列名 FROM 表名; 多表查询时明确来源
列别名 SELECT 列名 AS 别名 FROM 表名; 为列起别名显示

2. 条件查询(WHERE)

比较运算符
运算符 含义 示例
= 等于 WHERE age = 18
!= 或 <> 不等于 WHERE age != 18 或 WHERE age <> 18
< 小于 WHERE age < 18
<= 小于等于 WHERE age <= 18
> 大于 WHERE age > 18
>= 大于等于 WHERE age >= 18
逻辑运算符
运算符 含义 示例
AND 与(同时满足) WHERE age > 18 AND gender = '男'
OR 或(满足其一) WHERE age < 18 OR age > 60
NOT 非(取反) WHERE NOT gender = '男'
空值判断
语法 说明
WHERE 字段 IS NULL 查询字段为空
WHERE 字段 IS NOT NULL 查询字段非空
范围查询
语法 说明 示例
BETWEEN a AND b 在a和b之间(含边界) WHERE age BETWEEN 18 AND 25
IN (a,b,c) 在枚举值列表中 WHERE id IN (1, 2, 3)
模糊查询(LIKE)
通配符 含义 示例
% 匹配任意个字符(含0个) WHERE name LIKE '黄%'(姓黄)
_ 匹配单个字符 WHERE name LIKE '黄_'(姓黄且名字2个字)

四、聚合函数

函数 作用 示例
MIN(列名) 求最小值 SELECT MIN(age) FROM 用户表;
AVG(列名) 求平均值 SELECT AVG(age) FROM 用户表;
SUM(列名) 求和 SELECT SUM(salary) FROM 员工表;
COUNT(列名) 统计个数 SELECT COUNT(*) FROM 用户表;

五、排序(ORDER BY)

关键词 含义
ASC 升序(默认,从小到大)
DESC 降序(从大到小)

排序语法

类型 语法 说明
单条件排序 ORDER BY 列名 ASC/DESC 按一列排序
多条件排序 ORDER BY 列名1 ASC, 列名2 DESC 先按列1排,再按列2排

六、分页(LIMIT)

语法 含义 示例
LIMIT n 返回前n条 LIMIT 10(前10条)
LIMIT start, count 从start开始返回count条(start从0开始) LIMIT 0, 10(第1页)
分页公式 LIMIT (n-1)*m, m 每页m条,第n页

七、分组与过滤

分组(GROUP BY)

语法 说明
GROUP BY 列名 按指定列分组
SELECT 列名, COUNT(*) FROM 表 GROUP BY 列名 分组后统计每组数量

过滤(HAVING)

语法 说明
HAVING 条件 对GROUP BY后的分组结果进行过滤
示例 GROUP BY is_delete HAVING COUNT(*) > 5(筛选分组数量大于5的组)

八、备份与恢复

操作 命令 说明
备份 mysqldump -uroot -p 数据库名 > 数据库名.sql 将数据库导出为SQL文件
恢复 mysql -uroot -p 数据库名 < 数据库名.sql 从SQL文件导入恢复数据库
相关推荐
阳光九叶草LXGZXJ7 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
字节渡客8 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
OnlineProxy10 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋20111 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_12 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼12 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川13 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路13 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna14 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白14 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库