一、什么是数据库
数据库(DB,DataBase)
概念:数据仓库,相当于一款软件,安装在操作系统(Windows,Linux,mac,…)之上,可以存储大量的数据,500万!
作用:存储数据,管理数据,
二、数据库分类
关系型数据库(SQL):
- MySQL,Oracle,SQL Sever,DB2,SQLlite,…
- 通过表与表之间,行和列之间的关系进行数据的存储
- Oracle:收费的大型数据库,Oracle 公司的产品
- MySQL:开源免费的中小型数据库。后来Sun公司收购了MySQL,而Sun公司又被Oracle收购
- SQL Server: MicroSoft公司收费的中型的数据库。C#、.net等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2: IBM公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为Android内置数据库MariaDB:开源免费中小型的数据库
非关系型数据库(No SQL):
- Redis,MongDB
- 非关系型数据库,对象存储,通过对象的属性来决定
三、DBMS(数据库管理系统)
数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查洵、更新(包括插入、删除和修改)及各种控制都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。
四、SQL的概述
Structure Query Language
(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。
五、SQL的优点
- 简单易学,具有很强的操作性
- 绝大多数重要的数据库管理系统均支持SQL
- 高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成
六、SQL的分类
- DDL(
Data Definition Language
) 数据定义语言,用来操作数据库、表、列等; 常用语句:CREATE、 ALTER、DROP - DML(
Data Manipulation Language
) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE - DCL(
Data Control Language
) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY - DQL(
Data Query Language
) 数据查询语言,用来查询数据 常用语句:SELECT
七、SQL顺序
编写顺序:
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
执行顺序:
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
SELECT
字段列表
ORDER BY
排序字段列表
LIMIT
分页参数
八、MySQL查询过程
- 客户端向 MySQL 服务器发送一条查询请求
- 服务器首先检查查询缓存,如果命中缓存,则返回存储在缓存中的结果。否则进入下一阶段
- 服务器进行 SQL 解析、预处理、再由优化器生成对应的执行计划
- MySQL 根据执行计划,调用存储引擎的 API 来执行查询
- 将结果返回给客户端,同时缓存查询结果
注意:只有在8.0之前才有查询缓存,8.0之后查询缓存被去掉了
九、设计数据库
(1)抽取实体,如用户信息,商品信息,评论
(2)分析其中属性,如用户信息:姓名、性别…
(3)分析表与表之间的关联关系
然后可以参考三大范式进行设计,设计主键时,主键要尽量小并且定义为自增和不可修改。
十、三大范式
第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。