目录
一、简介
二、引擎
1、InnoDB
2、MyISAM
3、MEMORY
三、3大范式
四、索引
主键索引(PRIMARY)
唯一索引(UNIQUE)
普通索引(INDEX)
全文索引(FULLTEXT)
空间索引(SPATIAL)
五、常用表字段类型
六、语法
新增一条数据:
更新数据:
删除数据:
查询数据:
排序并分页:
分组计数:
左连接:
七、事务
数据库事务特性:
事务的隔离级别:
八、视图、存储过程、触发器
视图
存储过程
触发器
MySQL 是一个开源的数据库管理系统,具有灵活性和可扩展性,适用于各种规模的应用程序。MySQL还支持多种存储引擎,如 InnoDB、MyISAM 等,可以根据需要选择不同的存储引擎以满足特定的性能和可靠性需求。MySQL 还提供了丰富的查询功能和强大的事务处理能力,可以高效地处理大量数据和复杂的事务操作。
MySQL提供了多种存储引擎,有InnoDB、MyISAM、MEMORY、CSV、ARCHIVE等,其中最为常见的是InnoDB、MyISAM、MEMORY,MySQL5.5之前默认引擎是MyISAM, 从MySQL5.5版本开始,默认引擎是InnoDB
提供了事务支持、行级锁定和外键约束等功能,适用于高并发读写场景。(InnoDB会将每一条SQL都默认封装成事务自动提交)
不支持事务和行级锁定,在执行简单的查询操作时速度较快,因为它没有事务和行级锁定的开销,空间占用小,不需要像InnoDB那样使用额外的空间来存储事务和锁定信息,适用于简单的读操作场景。(注意MyISAM用 一个变量保存了整个表的行数,所以查整表行数快)
MEMORY是MySQL中用于临时表的存储引擎,它将数据存储在内存中,适用于临时数据的处理和快速查询。
MySQL的3大范式是数据库设计的理论框架,它们分别关注于减少数据冗余、确保数据完整性和减少数据复杂度。理解和应用这些范式可以设计出更加高效、可维护和可扩展的数据库模型。
第一范式(1NF):确保每列保持原子性,列不可再分。比如地址可以分为省、市、区等。
第二范式(2NF):在第一范式的基础上,非主键列必须完全依赖于主键,区分行。
第三范式(3NF):在第二范式的基础上,一个表中不包含其他表中非主键的字段信息。
就是表主键,的值必须是唯一的,不允许有空值。
这是最基本的索引类型,它没有任何限制,可以创建在任何列上。
全文索引对文本进行了预处理,能够更快地搜索和匹配文本数据。(只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引)
用于空间数据类型。
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
UPDATE 表名
SET column1 = value1, column2 = value2, ...
WHERE 条件;
DELETE FROM 表名 WHERE 条件;
SELECT * FROM 表名 WHERE 条件;
SELECT * FROM 表名
ORDER BY 排序列名
LIMIT 页面大小 OFFSET 分页偏移量;
排序列名
:您希望根据其进行排序的列的名称。页面大小
:每页显示的行数。分页偏移量
:要跳过的行数,以确定开始位置。
SELECT 列1, 列2, COUNT(*) as 计数
FROM 表名
GROUP BY 列1, 列2;
SELECT *
FROM 左表
LEFT JOIN 右表 ON 左表.列 = 右表.列;
原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durabiliy)。简称ACID。
注意:
视图是一种虚拟表,是执行查询语句后所返回的结果集。视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表,与真实表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据。视图只是定义了一个查询,视图中的数据是从基表中获取,这些数据在视图被引用时动态的生成。
存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译。MySQL存储过程封装了一组SQL语句,在需要时可以方便地调用。