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

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

相关推荐
小小程序员.¥1 小时前
Oracle--查询语句
数据库·oracle
小猿姐3 小时前
# KubeBlocks for MSSQL 高可用实现
数据库·架构·sql server
码农阿豪8 小时前
行标识符的抉择:深入理解数据库领域的OID与ROWID机制
数据库·oracle
不剪发的Tony老师9 小时前
MyCLI:一个增强型MySQL命令行客户端
数据库·mysql
SHANGHAILINGEN9 小时前
2400 万个未培养病毒重新定义病毒多样性
数据库·测序·组学
刘晨鑫19 小时前
PostgreSQL日常维护
数据库·postgresql
xiaokangzhe9 小时前
PG数据库日常应用
数据库·oracle
XDHCOM9 小时前
MySQL ER_DD_VERSION_INSTALLED报错解析,数据字典版本问题,故障修复与远程处理指南
数据库·mysql
yaoyouzhong11 小时前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
NineData11 小时前
NineData V5.0 产品发布会:让 AI 成为数据管理的驱动力,4月16日!
数据库·人工智能·ai编程