MySQL:库操作和常用数据类型
文章目录
- 前言
- 一,库操作
- 1-1 查找库
- 1-2 创建库
- 1-3 删除库
- 1-4 修改库
- 二,数据类型
- 2-1 数值类型
- 2-2 字符串类型
- 2-3 日期和时间类型
前言
一,库操作
本篇博客将会在8.0.33 MySQL Community Server
环境中讲解和演示库的操作,表的操作
1-1 查找库
命令
show databases;
演示结果
1-2 创建库
CREATE DATABASE db_name;
演示结果
自定义一个数据库名,如果数据库不存则创建
create database if not exists newdata
在这里我们触发了一个警报warning
,我们可以查询警报信息
查询警报信息
show warning;
1-3 删除库
drop database if exists myqal;
演示结果
1-4 修改库
==“修改库” ==在 MySQL
里主要指 修改数据库的属性(比如字符集、排序规则),因为数据库本身不像表那样能随便改字段,只能改一些元信息
mysql> ALTER DATABASE gch CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
二,数据类型
MySQL 数据类型分为三大类:数值类型、字符串类型、日期和时间类型。以下是每类中的常用类型、用途及简单示例。
2-1 数值类型
用于存储整数或小数,适用于数字计算或计数场景。
-
TINYINT
:存储小型整数,如年龄、状态码(0/1)
,范围为-128
到127
(有符号)或0
到255
(无符号)占1
字节,节省空间,示例:存储是否启用(0=禁用,1=启用) -
INT / INTEGER
:存储标准整数,如ID
、计数,范围为-2^31 到 2^31-1
(约 ±21 亿),占4
字节,可用UNSIGNED
扩展到0
到2^32-1
,示例:用户 ID、订单编号 -
BIGINT
:存储大整数,如金融数据、时间戳,范围为-2^63
到2^63-1
,占8
字节,适合超大数据,全局唯一 ID -
DECIMAL / NUMERIC
:存储精确小数,如货币、价格,范围为由定义决定(如DECIMAL(10,2)
表示10
位数字,2
位小数),无精度损失,适合财务计算,示例:产品价格(如 999.99) -
FLOAT / DOUBLE
:存储近似浮点数,如科学数据、百分比,范围为FLOAT
(7 位小数精度),DOUBLE
(15 位小数精度),可能有精度误差,不适合货币,示例:温度、坐标
示例代码
CREATE TABLE products (id INT UNSIGNED, -- 产品 IDprice DECIMAL(10,2), -- 价格,如 12345.67stock TINYINT UNSIGNED -- 库存量,0-255
);
演示结果
2-2 字符串类型
用于存储文本或二进制数据,适用于名字、描述等场景。
-
CHAR(n)
:存储固定长度字符串,如国家代码、状态码,特点为固定长度,填充空格,最大255
字节,查询效率高。示例:存储固定 2 字符的省份代码(如 “BJ”) -
VARCHAR(n)
:存储可变长度字符串,如用户名、标题,特点为最大65,535
字节,节省空间,适合动态长度文本,示例:用户邮箱地址 -
TEXT
:存储大文本,如文章内容、评论,特点为不同子类型(TINYTEXT
、TEXT
、MEDIUMTEXT
、LONGTEXT
)有不同最大长度,最大4GB
,示例:博客文章正文 -
BINARY / VARBINARY
:存储二进制数据,如文件、图像数据,特点为类似CHAR/VARCHAR
,但按字节存储,不考虑字符编码,示例:存储加密密钥
演示代码
CREATE TABLE users (username VARCHAR(50), -- 用户名,最大 50 字符status CHAR(1), -- 状态,如 "A"(活跃)bio TEXT -- 用户简介
);
演示结果
2-3 日期和时间类型
用于存储日期、时间,适用于记录事件时间、持续时间等。
-
DATE
:存储日期,如生日、注册日期,格式为YYYY-MM-DD
,范围1000-01-01
到9999-12-31
,示例:2025-09-21 -
DATETIME
:存储日期和时间,如订单创建时间,格式:YYYY-MM-DD HH:MM:SS
,示例:2025-09-21 23:15:00。 -
TIMESTAMP
:存储时间戳,记录数据更新时间,特点为支持自动更新(如CURRENT_TIMESTAMP
),考虑时区,示例:记录最后登录时间 -
TIME
:存储时间段,如事件持续时间,格式为HH:MM:SS
,范围-838:59:59
到838:59:59
,示例:会议时长(如 02:30:00)
演示代码
CREATE TABLE events (event_date DATE, -- 事件日期created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 自动记录创建时间duration TIME -- 持续时间
);
演示结果