什么是数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库类型
关系型数据库
关系型数据库基于关系模型创建,以 二维表 形式组织数据,并建立 一对一、一对多、多对多 等关系。
它适用于存储关联数据,例如:
- 一对多:一本书对应多个作者
- 多对多:一个老师对应多个学生
- 一对一:一本书对应一个出版日期
关系模型由 数据结构(二维表)、操作指令(SQL 语句)、完整性约束(数据与表间约束) 组成。
非关系型数据库(NoSQL)
NoSQL(非关系型数据库)用于应对大规模数据存储和高并发需求,特别适用于 Web 2.0 纯动态网站和大数据应用。
NoSQL 通常解释为 “Non-Relational”,也有人将其理解为 “Not Only SQL”。它不同于关系型数据库,不保证 ACID 特性,强调灵活性和扩展性,采用键值、文档、列族、图数据库等多种存储方式。
NoSQL 的主要优势包括易扩展、读写性能高、适应大数据量需求和数据结构灵活。它并非取代关系型数据库,而是为特定场景提供更优的解决方案。
数据库管理系统
数据库管理系统(DBMS)是一种用于管理数据库的计算机软件,具备存储、查询、安全保障和备份等功能。
DBMS 是数据库系统的核心,负责数据库的创建、查询、添加、修改、删除以及用户和权限管理。
常见的数据库管理系统包括 MySQL、Oracle、DB2、MS SQL Server、SQLite、PostgreSQL 和 Sybase。
什么是SQL
结构化查询语言(SQL)是一种用于查询、存取、更新和管理关系型数据库的编程语言。
SQL 是高级的非过程化语言,允许用户在高层数据结构上操作,而无需了解数据的具体存储方式。不同数据库系统即使底层结构不同,也可以使用相同的 SQL 作为数据管理接口。SQL 语句支持嵌套,具有灵活性和强大的功能。
SQL的分类
- DQL(数据查询语言)
负责查询数据,不修改数据本身,主要使用
SELECT
语句,并常与FROM
、WHERE
、GROUP BY
、HAVING
、ORDER BY
等子句配合使用。
- DDL(数据定义语言)
负责定义数据库结构和对象,包括
CREATE
(创建)、ALTER
(修改)、DROP
(删除)等语句。
- DML(数据操纵语言)
负责对数据进行操作,核心语句包括
INSERT
(插入)、UPDATE
(更新)、DELETE
(删除)。
- DCL(数据控制语言)
用于管理用户权限,包括
GRANT
(授权)和REVOKE
(撤销权限)。
- TPL(数据事务管理语言)
用于事务管理,确保 DML 语句的影响能正确提交或回滚,主要包括
BEGIN TRANSACTION
、COMMIT
、ROLLBACK
语句。
- CCL(指针控制语言)
主要用于操作数据指针,对单行数据进行精细控制,常用语句包括
DECLARE CURSOR
(声明游标)、FETCH INTO
(获取数据)、UPDATE WHERE CURRENT
(更新当前数据)。
DBMS、SQL 和 DB 之间的关系
- DB(数据库):存储数据的集合。
- DBMS(数据库管理系统):管理数据库的系统软件,负责数据的存储、查询和维护。
- SQL(结构化查询语言):用于与 DBMS 交互,执行查询、插入、更新、删除等操作。
关系: DBMS 通过执行 SQL 语句来操作数据库(DB)中的数据。