关系型数据库
关系型数据库基本术语:
- 关系:一个关系对应一张二维表。
- 元组: 表中的一行作为一个元组。
- 属性: 表中的一列作为一个属性,每一列的第一行是属性名,其余行为属性值。
- 候选码:表中某个属性或属性组合。
- 主码: 在多个候选码选择一个作为主码,它还有一个名字叫做主键。
- 主码是一个能唯一标识一个元组的属性。
关系应该满足的特质:
- 关系必须是规范化的,即要求关系必须满足一定的规范条件,最基本的一条就是,关系的每一列不可再分。
- 关系中必须有主码(极少情况可以没有),用来标识元组,使得元组唯一。
- 元组的个数有限且元组顺序可以任意交换。
- 属性名唯一且属性列顺序可以任意交换。
关系完整性规则:
- 实体完整性规则: 主码的属性值不能为空值。如果允许空值,则无法保证元组的唯一性。
- 参照完整性规则: 关系之间的联系靠公共属性实现,如果这个公共属性是另外一个关系的主码,那么我们也会称之为外码(或外键)。
- 用户定义完整性: 反映某一具体应用所涉及的数据必须满足语义要求。
MySQL
MySQL 是一种关系型数据库,有社区开源版和商业支持版。
MySQL 的三种存储引擎: MyISAM、InnoDB、MEMMORY。
- InnoDB 存储引擎特点: 支持外键、支持事务,处于安全性考虑 InnoDB 引擎是一个很好的选择。
- MyISAM 存储引擎特点:具有检查和修复表的大多数工具、表可以被压缩,支持全文索引,不支持外键、不支持事务, 主要用于高负载的 select 查询。
- MEMMORY 存储引擎将所有数据都存储在内存,但安全性不高。而且相对存储的数据量较小。
SQL 语句
SQL 是用于访问和处理数据库的标准的计算机语言。有了它,就能够取回和更新数据库中的书籍。目前绝大多数的数据库都能使用标准的 SQL 命令,不过不同的数据库可能会做一些拓展命令。
SQL 语言的特点:
- 语言简洁,易学易用 (指的是语法简单,但场景可以超级复杂)
- 同一种语法结构提供两种使用方式,一种是 命令行(交互式)的使用,另一种是嵌入其他高级语言中使用
- 面向集合的操作方式
- 高度非过程化,只需要提出做什么,而不必知名怎么做
- 综合统一:语言风格统一、数据操作统一。
SQL 命令分为四种 : DDL 、 DML、 DCL、TCL。
| DML | DDL | DCL | TC |
|---|---|---|---|
| SELECT UPDATE INSERT ... | CREATE DROP ALTER ... | GRANT REVOKE ... | START TRANSACTION COMMIT ROLLBACK .... |
推荐一本书 SQL基础教程第2版,不过这本书是用的 PostgreSQL 数据库
另外推荐一个 同步的视频,UP主声音好好听。 SQL基础教程第2版-已获出版社授权
##其他链接