MySQL:基本操作语法的技术指南

admin
7
2025-08-04

🧠 1、简述

MySQL 是最流行的关系型数据库之一,适用于中小型系统、Web 应用与微服务架构。本文将梳理 MySQL 的常用操作语法,帮助你快速掌握基本增删改查、库表管理、索引使用等内容,并配以实践样例。

image-evk0.png


📁 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
动物装饰