🧠 1、简述
MySQL 是最流行的关系型数据库之一,适用于中小型系统、Web 应用与微服务架构。本文将梳理 MySQL 的常用操作语法,帮助你快速掌握基本增删改查、库表管理、索引使用等内容,并配以实践样例。
📁 2、数据库操作
2.1 创建数据库
CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2.2 查看所有数据库
SHOW DATABASES;
2.3 删除数据库
DROP DATABASE test_db;
2.4 使用数据库
USE test_db;
📂 3、表操作
3.1 创建表
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
age INT DEFAULT 18,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3.2 查看表结构
DESC user;
-- 或 SHOW COLUMNS FROM user;
3.3 修改表结构(添加字段)
ALTER TABLE user ADD gender VARCHAR(10);
3.4 删除表
DROP TABLE user;
✍️ 4、数据操作(增删改查)
4.1 插入数据
INSERT INTO user (username, email, age) VALUES ('alice', 'alice@example.com', 25);
4.2 批量插入
INSERT INTO user (username, email) VALUES
('bob', 'bob@example.com'),
('charlie', 'charlie@example.com');
4.3 查询数据(基本)
SELECT * FROM user;
SELECT username, email FROM user WHERE age > 20 ORDER BY age DESC LIMIT 5;
4.4 更新数据
UPDATE user SET age = 30 WHERE username = 'alice';
4.5 删除数据
DELETE FROM user WHERE username = 'bob';
🔍 5、索引操作
5.1 添加索引
CREATE INDEX idx_username ON user(username);
5.2 查看索引
SHOW INDEX FROM user;
5.3 删除索引
DROP INDEX idx_username ON user;
🔐 6、用户与权限管理
6.1 创建用户
CREATE USER 'dev'@'localhost' IDENTIFIED BY 'password123';
6.2 授权数据库操作权限
GRANT ALL PRIVILEGES ON test_db.* TO 'dev'@'localhost';
6.3 刷新权限
FLUSH PRIVILEGES;
🧪 7、常用函数与语法技巧
7.1 字符串拼接
SELECT CONCAT(username, '-', email) AS user_info FROM user;
7.2 当前时间
SELECT NOW(); -- 当前时间
7.3 条件判断 CASE
SELECT username,
CASE
WHEN age < 20 THEN 'teenager'
WHEN age >= 20 AND age <= 40 THEN 'adult'
ELSE 'senior'
END AS age_group
FROM user;
7.4 查询今天、昨天、7天、近30天、本月、上一月 数据
今天:select * from 表名 where to_days(时间字段名) = to_days(now());
昨天:SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
7天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
本周:SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d'))
= YEARWEEK(now());
近30天:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月:SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
上一月:SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) ,
date_format( 时间字段名, '%Y%m' ) ) =1
7.5 完整用户表操作流程
-- 1. 创建数据库与表
CREATE DATABASE demo_db;
USE demo_db;
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
age INT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 2. 插入数据
INSERT INTO user (username, email, age) VALUES
('alice', 'alice@example.com', 23),
('bob', 'bob@example.com', 35);
-- 3. 查询数据
SELECT * FROM user WHERE age > 25;
-- 4. 更新数据
UPDATE user SET age = 30 WHERE username = 'alice';
-- 5. 删除用户
DELETE FROM user WHERE username = 'bob';
-- 6. 创建索引
CREATE INDEX idx_username ON user(username);
📝 8、总结
操作分类 | 常用命令 |
---|---|
数据库 | CREATE DATABASE , USE , DROP |
表结构 | CREATE TABLE , ALTER , DESC , DROP TABLE |
增删改查 | INSERT , SELECT , UPDATE , DELETE |
索引 | CREATE INDEX , SHOW INDEX , DROP INDEX |
用户管理 | CREATE USER , GRANT , FLUSH PRIVILEGES |