1 数据库
存放数据的仓库。例如你的账号信息,订单记录等。
2 SQL
Structured Query Language,用于访问和处理关系数据库的标准的计算机语言。
按照功能又可分为四大类;
DQL
查询语言,基本语句 SELECT;
DML
操纵语言,主要有三种形式,INSERT、UPDATE 和 DELETE;
DDL
定义语言,创建表、视图、索引等,CREATE TABLE;
DCL
控制语言,用来授权或回收某种特权,基本形式有 GRANT、 COMMIT 和 ROLLBACK;
3 NoSQL
Not Only SQL,泛指非关系型的数据库,通常以键值对或者文档形式存储。例如 Redis、MongoDB。
关系型数据库(MySQL)能通过外键建立表之间的联系,且相比 NoSQL 而言,还具备 ACID 特性。
但 NoSQL 操作无须 SQL 解析,读写性能较高,相比关系型数据库来说,不用预设存储结构,且天然支持分布式存储。
4 范式
数据库满足一定要求的条件称为数据库范式。又能根据程度的不同,简称为第 N 范式。
第一范式 1NF
所有属性不可再分,例如属性 product 就不能分为 title 和 price,可以单独设置两个属性 productTitle、productPrice;
第二范式 2NF
每张表都有一个属性作为唯一标识,其他属性完全依赖该标识,例如自增主键ID;
第三范式 3NF
所有的非主属性不依赖于其他的非主属性。例如订单表中可以关联商品ID,但不应该关联商品非主属性 title 和 price 等;
为了提高查询效率,通常会添加冗余字段,这也就违背了 3NF,也称之为反三范式。
5 MySQL
MySQL 是一个 Oracle 旗下的关系型数据库,使用 SQL 语言进行增删改查操作。
开源免费,性能也比较好,和 PHP、Java 等 Web 开发语言完美配合,在中小型企业应用非常广泛。
后续内容都是基于 MySQL 数据库的前提下。
6 存储引擎
常见的有 MyISAM 和 InnoDB 引擎;
引擎
默认版本
外键
锁粒度
count(*)
事务
MyISAM
< 5.5
不支持
表锁
变量存储
不支持
InnoDB
>= 5.5
支持
行锁
全表扫描
支持
7 事务
一条或多条 SQL 组成一个事务(transaction)