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';

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

相关推荐
农村小镇哥29 分钟前
C#读取CSV文件的方法
服务器·数据库·c#
IMPYLH38 分钟前
HTML 的 <embed> 元素
前端·数据库·html
油丶酸萝卜别吃1 小时前
Redis 布隆过滤器快速实现
数据库·redis·缓存
深念Y1 小时前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
whn19771 小时前
oracle 的ora-19633处理
数据库·oracle
x-cmd1 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
小弥儿1 小时前
Firecrawl:把整个网页变成 AI 可查询的数据库
数据库·人工智能·学习
swordbob2 小时前
mysql数据库,明明有索引为啥不用
数据库·mysql
晴天¥2 小时前
Oracle ASM、ACFS、FLEX ASM三者之间的关系?
数据库·oracle
Leon-Ning Liu2 小时前
Oracle GoldenGate Replicat Abend:Key Column Missing 根因分析与修复
数据库·oracle