MySQL 的学习

一、MySQL 基本概念

1. 什么是 MySQL

MySQL是一种关系型数据库管理系

2. 数据库基本结构

复制代码

二、数据库操作(DDL)

1. 创建数据库

复制代码
CREATE DATABASE db_name;

2. 查看数据库

复制代码
SHOW DATABASES;

3. 使用数据库

复制代码
USE db_name;

4. 删除数据库

复制代码
DROP DATABASE db_name;

三、表操作(DDL)

1. 创建表

复制代码
CREATE TABLE table_name (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

2. 查看表

复制代码
SHOW TABLES; 
DESC table_name;

3. 修改表

复制代码
ALTER TABLE table_name ADD column_name INT;
ALTER TABLE table_name MODIFY column_name VARCHAR(100);
ALTER TABLE table_name DROP column_name;

4. 删除表

复制代码
DROP TABLE table_name;

四、数据操作(DML)

1. 插入数据

复制代码
INSERT INTO table_name VALUES (1, 'Tom', 20);
INSERT INTO table_name (name, age) VALUES ('Alice', 25);

2. 查询数据(重点)

复制代码
SELECT * FROM table_name;
SELECT name, age FROM table_name;

条件查询

复制代码
SELECT * FROM table_name WHERE age > 18;

排序

复制代码
SELECT * FROM table_name ORDER BY age DESC;

限制条数

复制代码
SELECT * FROM table_name LIMIT 10;

3. 更新数据

复制代码
UPDATE table_name SET age = 30 WHERE id = 1;

4. 删除数据

复制代码
DELETE FROM table_name WHERE id = 1;

五、数据类型

1. 数值类型

  • INT(整数)
  • BIGINT(大整数)
  • FLOAT / DOUBLE(浮点数)
  • DECIMAL(精确小数)

2. 字符串类型

  • VARCHAR(可变长度)
  • CHAR(固定长度)
  • TEXT(长文本)

3. 日期类型

  • DATE(YYYY-MM-DD)
  • DATETIME(YYYY-MM-DD HH:MM:SS)
  • TIMESTAMP

六、约束(Constraints)

常见约束

  • PRIMARY KEY(主键)
  • NOT NULL(非空)
  • UNIQUE(唯一)
  • DEFAULT(默认值)
  • FOREIGN KEY(外键)

示例

复制代码
CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT DEFAULT 18
);

七、索引(Index)

1. 什么是索引

  • 提高查询效率的数据结构(类似目录)

2. 创建索引

复制代码
CREATE INDEX idx_name ON table_name(column_name);

3. 分类

  • 普通索引
  • 唯一索引
  • 主键索引
  • 组合索引

八、SQL 高级查询

1. 聚合函数

复制代码
COUNT() SUM() AVG() MAX() MIN()

2. 分组

复制代码
SELECT age, COUNT(*) FROM table_name GROUP BY age;

3. HAVING

复制代码
SELECT age, COUNT(*) 
FROM table_name 
GROUP BY age 
HAVING COUNT(*) > 1;

4. JOIN(连接查询)

内连接

复制代码
SELECT * 
FROM A 
INNER JOIN B 
ON A.id = B.id;

左连接

复制代码
LEFT JOIN

右连接

复制代码
RIGHT JOIN

九、事务(Transaction)

1. 什么是事务

一组操作,要么全部成功,要么全部失败

2. 事务特性(ACID)

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

3. 使用事务

复制代码
START TRANSACTION;
UPDATE ...
COMMIT;
ROLLBACK;

十、存储引擎

常见引擎

  • InnoDB(默认)
  • MyISAM

InnoDB特点

  • 支持事务
  • 支持外键
  • 行级锁

十一、锁机制

分类

  • 行锁
  • 表锁

示例

复制代码
SELECT * FROM table_name FOR UPDATE;

十二、视图(View)

复制代码
CREATE VIEW view_name AS
SELECT name, age FROM table_name;

十三、存储过程(Stored Procedure)

复制代码
DELIMITER //
CREATE PROCEDURE proc_name()
BEGIN
    SELECT * FROM table_name;
END //
DELIMITER ;

十四、触发器(Trigger)

复制代码
CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
SET NEW.created_at = NOW();

十五、权限管理

复制代码
GRANT ALL PRIVILEGES ON db.* TO 'user'@'localhost';
REVOKE ALL PRIVILEGES ON db.* FROM 'user'@'localhost';

顺便吐槽一下自己的雷霆课表,我认为并不合理(小声)

相关推荐
憧憬成为web高手2 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学2 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh4 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z123456789865 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD5 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo5 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward6 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记6 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发7 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序
SelectDB7 小时前
PostgreSQL 实时同步到 Apache Doris:一站式 CDC 解决方案
数据库