前言
一,库操作
本篇博客将会在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, -- 产品 ID
price DECIMAL(10,2), -- 价格,如 12345.67
stock 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 -- 持续时间
);
演示结果


被折叠的 条评论
为什么被折叠?



