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

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

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 分钟前
获取容器mysql管理员密码命令
数据库·mysql
JAVA学习通7 分钟前
《大营销平台系统设计实现》 - 营销服务 第5节:抽奖前置规则过滤
java·数据库·github
斯特凡今天也很帅9 分钟前
新建数据源报错No bean named ‘SqlSessionFactorykf‘ available
java·数据库·spring boot·mybatis
Trouvaille ~11 分钟前
【Redis篇】为什么需要 Redis:从单机到分布式的架构演进之路
数据库·redis·分布式·缓存·中间件·架构·后端开发
ID_1800790547314 分钟前
Taobao & 1688 Product API Technical Overview and JSON Response Reference
数据库
June`20 分钟前
多线程redis项目之aof
数据库·redis·缓存
Peter-OK30 分钟前
Redis从3.x到8.4的核心新特性深度解析与实战学习指南
数据库·redis·缓存
文青小兵34 分钟前
云计算Linux——数据库MySQL读写分离、数据库备份、恢复(十八)
linux·运维·服务器·数据库·mysql·云计算
@我漫长的孤独流浪44 分钟前
SQL触发器实战:银行系统数据完整性控制
数据库·oracle
清平乐的技术专栏1 小时前
【FlinkSQL笔记】(一)什么是Flink SQL
笔记·sql·flink