目录
数据库基础
1.1:什么是数据库
1.2:常见数据库
1.3:数据库的基本使用
1.4:mysql的架构
1.5:sql分类
1.6:存储引擎
数据库基础
1.1:什么是数据库
数据库是指存储和管理结构化数据的系统。它是一个组织数据的集合,这些数据可以被访问、管理和更新。数据库通常用于在计算机系统中存储大量数据,并提供对数据的高效访问和操作。
数据库可以存储各种类型的数据,例如文本、数字、图像、音频和视频等。它们被组织成表的形式,每个表包含多个列和行,其中每一列代表一个属性,每一行代表一个记录或数据项。
数据库管理系统(Database Management System,简称DBMS)是用于管理数据库的软件。它提供了一组功能和工具,用于创建、访问、更新和管理数据库。DBMS允许用户执行各种操作,例如插入、查询、修改和删除数据,同时还提供了数据完整性、安全性和并发控制等功能。
常见的关系型数据库管理系统(Relational Database Management System,简称RDBMS)包括MySQL、Oracle、Microsoft SQL Server和PostgreSQL等。除了关系型数据库,还有其他类型的数据库,如面向对象数据库、NoSQL数据库和图形数据库等,它们根据不同的数据模型和访问方式提供了不同的功能和特性。
数据库的存储介质:内存和硬盘
1.2:常见数据库
以下是一些主流的数据库管理系统(DBMS):
-
MySQL:MySQL是一种开源的关系型数据库管理系统,广泛用于Web应用程序和小型到中型企业的数据存储和管理。
-
Oracle Database:Oracle是一种功能强大的商业关系型数据库管理系统,被广泛用于大型企业和复杂的数据处理环境。
-
Microsoft SQL Server:Microsoft SQL Server是微软开发的关系型数据库管理系统,适用于Windows平台,并提供广泛的企业级数据管理功能。
-
PostgreSQL:PostgreSQL是一种功能强大的开源关系型数据库管理系统,具有可扩展性和高级特性,适用于各种规模的应用。
-
MongoDB:MongoDB是一种开源的NoSQL数据库,采用文档存储模型,适用于大规模数据的存储和处理。
-
Redis:Redis是一种开源的内存数据库,用于高速读写操作和缓存数据,常用于缓存和会话管理等场景。
-
SQLite:SQLite是一种嵌入式关系型数据库引擎,以其轻量级和零配置的特性而闻名,适用于移动应用和小型项目。
1.3:数据库的基本使用
1.3.1:连接数据库
-h 指的是连接数据库的ip地址,不写默认是本地数据库
-P 指的是连接的数据库的端口号,不写默认是3306,注意是大写P
-u 值得是连接的数据库用户名
-p 是连接的密码
1.3.2:服务器,数据库,表关系
在一个典型的应用程序中,服务器、数据库和表之间存在以下关系:
1. 服务器(Server):服务器是一台计算机或计算机系统,用于运行数据库管理系统(DBMS)和提供数据库服务。服务器负责管理数据库的存储、访问和处理请求。
2. 数据库(Database):数据库是在服务器上创建和管理的数据存储系统。一个服务器可以承载多个数据库,每个数据库都是一个独立的数据集合,包含多个表和其他数据库对象。
3. 表(Table):表是数据库中的基本组织单位,用于存储数据。每个表由一组命名的列和多行数据记录组成。表的结构定义了每列的数据类型和其他约束条件。
在关系型数据库中,表可以通过主键和外键来建立关系:
- 主键(Primary Key):主键是表中的一个列或一组列,用于唯一标识表中的每个记录。主键值必须是唯一且不为空的。常用的主键类型是自增长整数(例如,自动递增的ID值)。
- 外键(Foreign Key):外键是一个或多个列,用于建立与其他表的关联。外键在一个表中引用另一个表的主键,以建立表之间的关系。外键用于实现表之间的数据一致性和关联性。
通过在表之间建立主键和外键关系,可以实现数据的关联、查询和数据完整性的维护。这种关系能够帮助有效地组织和管理复杂的数据结构,并支持数据的查询、过滤和连接操作。
除了关系型数据库,其他类型的数据库(如文档型数据库、图形数据库等)可能采用不同的数据组织和关系模型,但仍然具有类似的概念和关系概念来管理数据。
1.4:mysql的架构
1.5:sql分类
SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。根据功能和用途的不同,SQL 可以被分类为以下几种类型:
1. 数据定义语言(Data Definition Language,DDL):DDL 用于定义数据库结构和模式的语言元素。它包括创建、修改和删除数据库、表、视图、索引等数据库对象的语句。常见的 DDL 命令有 CREATE、ALTER 和 DROP 等。
2. 数据操纵语言(Data Manipulation Language,DML):DML 用于操作数据库中的数据的语言元素。它包括插入、更新、删除和查询数据的语句。常见的 DML 命令有 INSERT、UPDATE、DELETE 和 SELECT 等。
3. 数据控制语言(Data Control Language,DCL):DCL 用于控制数据库的安全性、权限和事务的语言元素。它包括授予或撤销用户对数据库对象的访问权限的语句。常见的 DCL 命令有 GRANT 和 REVOKE 等。
4. 事务控制语言(Transaction Control Language,TCL):TCL 用于控制数据库事务的语言元素。它包括开始、提交或回滚事务的语句。常见的 TCL 命令有 BEGIN、COMMIT 和 ROLLBACK 等。
除了上述分类,还有其他类型的 SQL 扩展和变体,如存储过程语言(如PL/SQL和T-SQL)、动态 SQL、嵌入式 SQL 等,它们提供了更高级的功能和特性,用于编写复杂的数据库逻辑和业务规则。
需要注意的是,虽然 SQL 是一个标准的数据库查询语言,但不同的数据库管理系统(如MySQL、Oracle、SQL Server等)可能会在语法和功能上有所差异,因此需要根据具体的数据库系统来使用相应的 SQL 特性和语法。
1.6:存储引擎
1.6.1:存储引擎的作用
存储引擎是数据库管理系统中的组件,负责管理数据的存储和检索。它决定了数据在磁盘上的组织方式、访问方法和支持的功能。存储引擎的作用包括:
1. 数据存储和检索:存储引擎负责将数据持久化到磁盘,并提供数据的读取和写入操作。它定义了数据在磁盘上的存储格式和索引结构,以便有效地访问和检索数据。
2. 数据完整性和约束:存储引擎可以定义和强制执行数据的完整性和约束条件。例如,它可以定义主键、唯一性约束、外键关系等,确保数据的有效性和一致性。
3. 并发控制:存储引擎负责处理并发访问数据库的请求,并提供合适的锁定机制来保护数据的一致性。不同的存储引擎可能具有不同的锁定级别和并发控制机制。
4. 事务支持:一些存储引擎提供了事务的支持,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID属性)。这使得应用程序可以在复杂的操作中保持数据的完整性。
5. 查询性能和优化:存储引擎的选择可以对数据库的查询性能产生影响。不同的存储引擎具有不同的查询优化策略、索引实现和数据缓存机制,可以根据具体的应用需求进行调整和优化。
6. 可扩展性和可靠性:一些存储引擎具有分布式存储和复制机制,可以实现数据的分片和复制,以提供高可用性和可伸缩性。
通过选择合适的存储引擎,可以根据应用程序的需求优化数据库的性能、数据完整性和可靠性。不同的存储引擎具有不同的特性和适用场景,因此在选择存储引擎时需要考虑应用程序的读写比例、并发访问要求、数据一致性要求等因素。
1.6.2:查看存储引擎