这篇博客文章《MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)》是一篇非常全面的MySQL基础教程,适合初学者和需要复习MySQL知识的开发者。以下是文章的核心内容整理:
一、SQL 简述
• SQL 概述:SQL(Structured Query Language)是关系型数据库的标准语言,用于定义和操作数据。
• SQL 优点:简单易学、高度非过程化、被大多数数据库管理系统支持。
• SQL 分类:
• DDL(数据定义语言):CREATE、ALTER、DROP。
• DML(数据操作语言):INSERT、UPDATE、DELETE。
• DCL(数据控制语言):GRANT、DENY。
• DQL(数据查询语言):SELECT。
二、数据库的三大范式
• 第一范式(1NF):表的每一列都是不可分割的基本数据项。
• 第二范式(2NF):在1NF基础上,非主键列必须完全依赖于主键。
• 第三范式(3NF):在2NF基础上,非主键列之间不能存在依赖关系。
三、数据库的数据类型
• 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
• 浮点数和定点数类型:FLOAT、DOUBLE、DECIMAL。
• 字符串类型:CHAR、VARCHAR、TEXT(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)。
• 日期与时间类型:YEAR、TIME、DATE、DATETIME、TIMESTAMP。
• 二进制类型:BLOB(TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB)。
四、数据库、数据表的基本操作
• 数据库操作:
• 创建数据库:`CREATE DATABASE`。
• 删除数据库:`DROP DATABASE`。
• 查看数据库:`SHOW DATABASES`。
• 数据表操作:
• 创建表:`CREATE TABLE`。
• 查看表:`SHOW TABLES`、`DESCRIBE`。
• 修改表:`ALTER TABLE`。
• 删除表:`DROP TABLE`。
五、数据表的约束
• 主键约束:`PRIMARY KEY`,用于唯一标识记录。
• 非空约束:`NOT NULL`,字段值不能为空。
• 默认值约束:`DEFAULT`,字段的默认值。
• 唯一性约束:`UNIQUE`,字段值必须唯一。
• 外键约束:`FOREIGN KEY`,用于表之间的关联。
六、数据表插入数据
• 插入数据:`INSERT INTO`。
• 插入多条记录:`INSERT INTO ... VALUES (...), (...);`。
七、更新数据
• 更新数据:`UPDATE ... SET ... WHERE ...;`。
八、删除数据
• 删除数据:`DELETE FROM ... WHERE ...;`。
• 清空表:`TRUNCATE TABLE`。
九、MySQL数据表简单查询
• 查询所有字段:`SELECT * FROM ...;`。
• 查询指定字段:`SELECT field1, field2 FROM ...;`。
• 使用`DISTINCT`去除重复数据。
• 使用算术运算符进行计算。
十、函数
• 聚合函数:`COUNT()`、`MAX()`、`MIN()`、`SUM()`、`AVG()`。
• 其他常用函数:时间函数、字符串函数、数学函数。
十一、条件查询
• 使用关系运算符(`=`,`<>`,`>`,`<`,`>=`,`<=`)。
• 使用`IN`、`BETWEEN AND`、`IS NULL`、`AND`、`OR`、`LIKE`。
• 使用`LIMIT`限制查询结果数量。
• 使用`GROUP BY`分组查询,结合`HAVING`过滤分组。
• 使用`ORDER BY`排序查询结果。
十二、别名设置
• 为表取别名:`SELECT * FROM table AS alias;`。
• 为字段取别名:`SELECT field AS alias FROM table;`。
十三、表的关联关系
• 多对一:通过外键关联。
• 多对多:通过中间表关联。
• 一对一:较少使用,通常合并到一张表中。
十四、多表连接查询
• 交叉连接:`CROSS JOIN`。
• 内连接:`INNER JOIN`。
• 外连接:
• 左外连接:`LEFT JOIN`。
• 右外连接:`RIGHT JOIN`。
十五、子查询
• 带比较运算符的子查询。
• 带`EXISTS`关键字的子查询。
• 带`ANY`关键字的子查询。
• 带`ALL`关键字的子查询。
下面是详细版本
https://www.yuque.com/u2228905/rut9ig/xkscqnt8kp40umm4?#《详细版本》https://www.yuque.com/u2228905/rut9ig/xkscqnt8kp40umm4