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%的建表需求了。

相关推荐
清风6666665 小时前
基于单片机的8路抢答器设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭5 小时前
基于单片机的智能污水有害气体电子鼻检测系统
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
spencer_tseng5 小时前
MySQL backup.bat
mysql
似霰5 小时前
传统 Hal 开发笔记1----传统 HAL简介
android·hal
Zsh-cs6 小时前
Spring
java·数据库·spring
曹牧6 小时前
Oracle:Replace
数据库·oracle
程序员水自流6 小时前
MySQL InnoDB存储引擎详细介绍之事务
java·数据库·mysql·oracle
Knight_AL6 小时前
MySQL STORED 生成列(Generated Column)详解:让 SQL 变快的秘密武器
数据库·sql·mysql
煎蛋学姐6 小时前
SSM社区疫苗接种预约系统hulgj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架