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 != 18WHERE 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文件导入恢复数据库
相关推荐
程序猿_极客36 分钟前
【免费】分享一套优质的基于Php+Mysql的电子购物网站的设计与实现,校园小卖部系统
数据库·mysql·php·购物商城系统
fīɡЙtīиɡ ℡37 分钟前
LLM/Agent 安全实战核心要点总结
网络·数据库·安全
程序员夏洛38 分钟前
MySQL 中有哪些锁类型?
数据库·mysql
Hive_MOM39 分钟前
制造企业技术文件与图纸管理数字化(DCC):从“图纸满天飞“到版本受控
服务器·数据库·制造
咋的啥名都用不了呢~40 分钟前
Oracle数据库1
数据库
小则又沐风a1 小时前
MySQL表的约束详解
数据库·mysql
赵渝强老师1 小时前
【赵渝强老师】崖山数据库的联机重做日志文件
数据库·国产数据库·yashandb·崖山数据库
南城以南溫暖如初1471 小时前
树洞交友系统架构设计与匿名聊天实战指南
java·spring boot·mysql·系统架构·vue·mybatis·交友
家有娇妻张兔兔1 小时前
Redis 报错 “MISCONF Redis is configured to save RDB snapshots“?一文讲透根因与根除方案
数据库·redis·故障排查·misconf