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

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

相关推荐
gp3210262 小时前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb
SelectDB技术团队2 小时前
PostgreSQL + Apache Doris:构建用于实时分析的 HTAP 架构
数据库·postgresql·架构·实时数仓·湖仓一体·apache doris·selectdb
禁默2 小时前
金仓数据库SQL防火墙构建主动防御,让恶意SQL无处遁形
数据库·金仓
xgstb2 小时前
MySQL root用户密码忘记怎么办(Reset root account password)
数据库·mysql·adb
2401_873587822 小时前
MySQL——索引
数据库·mysql
core5122 小时前
深入浅出 Milvus 向量数据库:从核心原理到 Python 实战指南
数据库·python·milvus·向量数据库·语义检索
user_admin_god2 小时前
服务器安装向量数据库-Docker版本
服务器·数据库·docker
什么时候才能变强2 小时前
如何快速高效备份数据库
数据库
七夜zippoe3 小时前
MongoDB聚合框架与性能优化实战指南
数据库·python·mongodb·性能优化·聚合框架