mysql建立存数据的表(一)

sql这是查数据的语句

我们来理一下思路

首先我们要知道sql语句是用来查数据的。

关于这个mysql提供了哪些数据类型,用来存储数据,建表。

这个也是一个学问,比方说枚举类型。

要熟练的掌握这些数据类型,现在做一个轻量级的列举

好的,这是一份 MySQL常用数据类型快速掌握清单,分为 五大核心类型,每个类型记住最常用的1-2种即可。

MySQL数据类型轻量级速查

一、整数类型(存数字,无小数)

类型 范围(有符号) 用途 记忆点

TINYINT -128 ~ 127 状态值(如:1是/0否) 小整数,适合状态码

INT ±21亿 用户ID、数量、年龄 最常用,够用90%场景

BIGINT ±922亿亿 大数据量ID、订单号 超大整数,像订单号

技巧:

主键用 INT 或 BIGINT

状态/性别用 TINYINT(1字节省空间)

二、小数/浮点类型(带小数点的数)

类型 特点 用途

DECIMAL(总位数,小数位) 精确小数,不丢失精度 金额、价格(如:DECIMAL(10,2)存99999999.99)

FLOAT / DOUBLE 近似小数,可能丢失精度 科学计算、地理位置

黄金法则:

涉及钱一定用 DECIMAL,其他可选 FLOAT/DOUBLE。

三、字符串类型(存文本)

类型 最大长度 特点 用途

VARCHAR(n) 65,535字符 变长,用多少占多少 用户名、地址、描述(n填合理值如255)

CHAR(n) 255字符 定长,不够补空格 固定长度内容(如:身份证号CHAR(18))

TEXT 65KB~4GB 大文本,不能设默认值 文章内容、长描述

选择技巧:

不确定长度用 VARCHAR(255)

绝对固定长度用 CHAR(如:手机号CHAR(11))

超过5000字用 TEXT

四、时间日期类型

类型 格式 用途

DATE YYYY-MM-DD 生日、创建日期

DATETIME YYYY-MM-DD HH:MM:SS 最常用,记录创建时间

TIMESTAMP 同DATETIME 自动记录修改时间,范围较小

对比:

DATETIME:存任意时间(如:1990-01-01 00:00:00)

TIMESTAMP:存1970~2038年,但支持自动更新

建表示例:

sql

CREATE TABLE users (

created_at DATETIME DEFAULT NOW(), -- 记录创建时间

updated_at TIMESTAMP ON UPDATE NOW() -- 自动更新时间

);

五、特殊类型

类型 用途 示例

ENUM('值1','值2') 枚举,固定几个选项 ENUM('男','女')

SET('值1','值2') 多选集合(不常用) SET('篮球','足球')

BOOLEAN 其实就是 TINYINT(1) 存TRUE/FALSE

ENUM的优缺点:

✅ 数据一致性高,输入错误值会报错

❌ 改选项需改表结构,不灵活

建表实战模板

sql

CREATE TABLE users (

id INT PRIMARY KEY AUTO_INCREMENT, -- 主键自增

username VARCHAR(50) NOT NULL, -- 用户名,非空

age TINYINT UNSIGNED, -- 年龄,无符号

balance DECIMAL(10,2) DEFAULT 0.00, -- 余额,默认0

gender ENUM('男','女','保密'), -- 枚举三选一

created_at DATETIME DEFAULT NOW() -- 创建时间

);

快速选择指南

存整数 → INT(不够用升BIGINT)

存金额 → DECIMAL(10,2)(10位总长,2位小数)

存普通文本 → VARCHAR(255)(不够升VARCHAR(500))

存长文章 → TEXT

存时间 → DATETIME

存状态 → TINYINT(1启用/0禁用)

存固定选项 → ENUM('选项1','选项2')

一句话避坑

不要用 VARCHAR(10000) → 改用 TEXT

不要用 INT 存手机号 → 用 CHAR(11) 或 VARCHAR(11)

不要用 FLOAT 存金额 → 一定用 DECIMAL

主键永远用 INT AUTO_INCREMENT 或 BIGINT

掌握这7个常用类型,就能覆盖95%的建表需求了。

相关推荐
脑子进水养啥鱼?31 分钟前
PostgreSQL .history 文件
数据库·postgresql
饭小猿人44 分钟前
Android 腾讯X5WebView如何禁止系统自带剪切板和自定义剪切板视图
android·java
倔强的石头_1 小时前
5 个真实案例带你避坑:DolphinDB 实时写入、流订阅与高可用调优
数据库
虹科网络安全1 小时前
艾体宝新闻|Redis 月度更新速览:2026 年 3 月
数据库·redis·缓存
Nturmoils1 小时前
DolphinDB 实时时序数据处理踩坑实录:5 类生产故障排查与优化
数据库
_李小白1 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
美狐美颜SDK开放平台1 小时前
多场景美颜SDK解决方案:直播APP(iOS/安卓)开发接入详解
android·人工智能·ios·音视频·美颜sdk·第三方美颜sdk·短视频美颜sdk
csdn2015_1 小时前
postgresql 拼接字段
数据库
\xin1 小时前
pikachu自编SQL(POST)
java·数据库·sql
oldking呐呐1 小时前
MySQL从建库到删库跑路 -- 4.表的操作
后端·mysql