php 怎么做 网站,nodejs的网站开发,洛阳霞光seo网络公司,市场推广工作内容目录 1. 什么是数据库1.1 数据库的定义1.2 mysql 和 mysqld1.3 文件和数据库 2. 数据库的分类3. 连接数据库3.1 数据库的安装3.2 连接服务器#xff08;数据库#xff09;3.3 服务器 数据库 表 三者的关系 4. 数据库-表 和目录-文件 的关系5. MySQL 框架6. SQL 分类7. 储存引… 目录 1. 什么是数据库1.1 数据库的定义1.2 mysql 和 mysqld1.3 文件和数据库 2. 数据库的分类3. 连接数据库3.1 数据库的安装3.2 连接服务器数据库3.3 服务器 数据库 表 三者的关系 4. 数据库-表 和目录-文件 的关系5. MySQL 框架6. SQL 分类7. 储存引擎 1. 什么是数据库
1.1 数据库的定义
数据库Database是一种按照数据结构来组织、存储和管理数据的仓库。通过数据库管理系统Database Management System, DBMS用户可以方便地对数据进行创建、查询、更新和删除等操作。数据库的主要目的是有效地存储和管理数据以便于多个用户或应用程序能够高效、安全地访问和共享数据。 简单的说就是一套给我们提供数据存储的服务的网络程序。
口头上的数据库一般指在磁盘或者内存中存储特定结构的数据 — 在磁盘上存储的一套数据方案
数据库的主要特征
数据结构化 数据库中的数据是以特定的结构组织的例如表格形式关系型数据库、文档形式NoSQL 数据库等。这种结构化的方式使得数据更容易管理和查询。数据独立性 数据独立性是指数据的物理存储与逻辑结构之间的分离。这意味着用户可以不必关心数据是如何存储的只需关注如何使用数据。数据独立性分为物理数据独立性和逻辑数据独立性。数据共享 多个用户或应用程序可以同时访问同一个数据库中的数据从而实现数据的共享和协作。数据控制 数据库管理系统提供了多种机制来控制数据的访问和操作包括用户权限管理、事务管理、备份和恢复等确保数据的安全性和一致性。数据冗余减少 通过数据的集中管理和规范化设计数据库可以减少数据冗余提高数据的一致性和完整性。数据持久性 数据库中的数据是持久化的即使系统关闭或重启数据也不会丢失。
1.2 mysql 和 mysqld 客户端 (mysql) 定义mysql 是一个命令行工具用于连接到 MySQL 服务器并执行 SQL 命令。它是用户与 MySQL 服务器进行交互的主要方式。 用途用户通过 mysql 客户端发送 SQL 查询、查看查询结果、管理数据库等。 使用场景当你需要手动执行 SQL 语句、查看数据库状态、创建和删除数据库、表等操作时通常会使用 mysql 客户端。 服务器端 (mysqld) 定义mysqld 是 MySQL 的数据库服务器进程。它是后台运行的守护进程负责处理来自客户端的所有请求。 用途mysqld 负责管理数据文件、处理查询、执行事务、维护数据的一致性和完整性等。 使用场景通常情况下mysqld 会在系统启动时自动运行并在后台持续运行等待客户端的连接请求。
那MySQL数据库是 mysql 还是 mysqld 呢 我们使用的抖音也有客户端和服务端好比回答 抖音是客户端还是服务端呢抖音的客户端和服务端一起工作保证正常使用抖音。
mysql本质基于C(mysql) S(mysqld)模式的一种网络服务。
既然是一种网络服务那么会绑定端口号启动服务器需要使用端口号
查询端口号netstat -lntp
1.3 文件和数据库
存储数据用文件就可以了为什么还要弄个数据库?
文件保存数据有以下几个缺点
文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便
一般的文件确实提供了数据的存储功能但文件没有提供非常好的数据管理能力用户角度
什么是数据管理能力
比如给你一个文件里面包含一万条手机号码请你找出180开头的所有手机号。普通的文件能快出的找出吗程序员自己找吗
数据库作用
对数据内容存储的一套解决方案给数据库服务端要求找出所有180开有的手机号数据库服务端直接给出结果不用程序员自己去找。 为了解决上述问题专家们设计出更加利于管理数据的东西——数据库它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。
2. 数据库的分类
主流数据库
SQL Sever 微软的产品.Net程序员的最爱中大型项目。Oracle 甲骨文产品适合大型项目复杂的业务逻辑并发一般来说不如MySQL。MySQL世界上最受欢迎的数据库属于甲骨文并发性好不适合做复杂的业务。主要用在电 商SNS论坛。对简单的SQL处理效果好。PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库不管是私用商用还是学术研 究使用可以免费使用修改和分发。SQLite 是一款轻型的数据库是遵守ACID的关系型数据库管理系统它包含在一个相对小的C库 中。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的 低在嵌入式设备中可能只需要几百K的内存就够了。H2 是一个用Java开发的嵌入式数据库它本身只是一个类库可以直接嵌入到应用项目中。
数据库的类型
关系型数据库Relational Database 关系型数据库是最常见的数据库类型数据以表格的形式存储每个表由行和列组成。常用的 SQL 语言用于查询和管理数据。典型的例子包括 MySQL、Oracle、Microsoft SQL Server 和 PostgreSQL。非关系型数据库NoSQL Database 非关系型数据库用于处理大规模、非结构化或半结构化数据。它们通常具有灵活的 schema 设计和水平扩展能力。常见的 NoSQL 数据库包括 MongoDB、Cassandra、Redis 和 DynamoDB。对象关系型数据库Object-Relational Database 对象关系型数据库结合了关系型数据库和面向对象数据库的特点支持对象的封装、继承和多态等特性。例如PostgreSQL 就支持对象关系型特性。层次型数据库Hierarchical Database层次型数据库以树状结构组织数据每个记录有一个父记录和多个子记录。典型的例子包括 IBM 的 IMS 系统。网络型数据库Network Database 网络型数据库允许每个记录有多个父记录和多个子记录形成更为复杂的网状结构。典型的例子包括 IDMSIntegrated Data Management System。
数据库管理系统DBMS
数据库管理系统Database Management System, DBMS是用于创建、管理、维护和操作数据库的软件。DBMS 提供了用户与数据库交互的接口支持数据的定义、查询、更新和管理。常见的 DBMS 包括
关系型数据库管理系统RDBMS如 MySQL、Oracle、SQL Server、PostgreSQL。非关系型数据库管理系统NoSQL DBMS如 MongoDB、Cassandra、Redis。对象关系型数据库管理系统ORDBMS如 PostgreSQL。层次型数据库管理系统如 IBM IMS。网络型数据库管理系统如 IDMS。
数据库的应用
数据库广泛应用于各种领域包括但不限于
企业信息系统管理客户关系、供应链、库存等。电子商务处理订单、支付、物流等。金融系统管理账户、交易、风险管理等。医疗保健存储患者记录、医疗影像等。社交媒体管理用户信息、动态、消息等。物联网收集和分析传感器数据。
3. 连接数据库
3.1 数据库的安装
保姆级安装教程
3.2 连接服务器数据库 命令mysql -h 8.148.27.113 -P 3306 -u root -p 说明 -h登录mysql的主机的地址 -Pmysql在该主机的端口号 -u登录mysql的用户名称 -p密码我的mysql没有设置密码不需要输入 如果没有写 -h 127.0.0.1 默认是连接本地如果没有写 -P 3306 默认是连接3306端口号 在本地主机中有配置文件可以直接去掉-h和-P 命令mysql -u root -P 在mysql服务中退出mysql 命令quit
3.3 服务器 数据库 表 三者的关系
所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多 个数据库一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下 表是数据逻辑存储结构行列式结构二维
4. 数据库-表 和目录-文件 的关系
使用mysql建立一个数据库在数据库中建立一张表结构插入一些数据 ------ 对比一下mysql在linux中是如何表现的 先查询数据库存储在哪个目录 命令vim /etc/my.cnf 我的数据的数据库存储在/var/lib/mysql 目录中 进入到该目录 命令cd /var/lib/mysql 查看数据库文件命令ls 标记的就是当前的数据库 进入mysql客户端在mysql中查询数据库 命令show databases; 观察 同学们可以观察到 Linux 中标记的目录就是当前 mysql 的数据库的名称 此时我在创建一个study_1 数据库然后再进入到 /var/lib/mysql 目录并打开可以看看发生了什么 所以我们在mysql中新建的数据库其实就是在linux中新建一个目录。 我们打开这个数据库的目录 在mysql的study_1数据库中创建一个表后再次打开数据库目录 在mysql的study_1数据库中创建一个表test不用管命令是什么意思我们证明的是数据库中的数据是文件 1创建一个表格 2再打开目录后发现有新文件产生 我们还可以查看文件的大小 命令ls -l study_1 记住此时文件的大小标记处是文件的大小 在表中插入数据 再次查看文件的大小 命令ls -l study_1
我们发现文件的大小没有改变但并不是没有数据而是mysql内部的优化造成的。其实已经把数据存入文件中了。
总结: 建立数据库本质是在linux中创建一个目录 在数据库中创建表本质是在linux中创建对应的文件。
这个工作时谁做的呢
答mysqld 做的。/var/lib/mysql 中的文件不需要我们来操作mysqld 自己去操作。
5. MySQL 框架
MySQL 是一个可移植的数据库几乎能在当前所有的操作系统上运行如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同但是 MySQL 基本上能保证在各个平台上的物理体 系结构的一致性。 Client Connectors: 连接器层提供了多种语言的接口例如 JDBC、ODBC、.NET、PHP、Python、Perl 和 C API用于连接到 MySQL 服务器。应用程序可以通过这些接口发送查询请求并接收响应结果。 MySQL Server: MySQL 服务器是整个系统的中心负责处理来自客户端的各种请求。它由多个模块组成如下所示 Services utilities: 提供备份恢复、安全、复制和分区等功能的服务和实用工具。SQL Interface: 解析和执行 SQL 查询的接口。Connection Pool: 连接池管理、认证和安全性相关的功能。Parser: 分词器、语法分析器和语义分析器用于解析 SQL 查询。Optimizer: 查询优化器用于确定最佳查询执行计划。Caches: 包括全局缓存和引擎特定缓存提高性能。 Pluggable Storage Engines: MySQL 支持可插拔式存储引擎每个引擎都有自己的特性。MyISAM 是一个非事务性引擎适用于读取密集型应用InnoDB 则是一个事务性引擎支持 ACID 事务和外键约束Federated 引擎将多个 MySQL 实例链接在一起Archive 引擎适合存储大量数据而不需要频繁更新的应用Merge 引擎用于合并多个 MyISAM 表Memory 引擎将数据存储在内存中速度非常快Cluster 引擎用于分布式环境Example 引擎是一个示例引擎用于演示目的。 File System: MySQL 使用底层文件系统如 NTFS、ext4、SAN 或 NAS来存储数据和日志文件。Logs and Files: MySQL 产生的各种日志文件包括二进制日志记录所有更改、错误日志、慢查询日志、一般查询日志、重做日志、回滚日志以及数据和索引文件。
总这张图清晰地展示了 MySQL 服务器如何处理客户端请求以及不同组件之间的交互关系。客户端通过连接器发送 SQL 请求给 MySQL 服务器服务器解析请求、优化查询、访问存储引擎并最终将结果返回给客户端。同时MySQL 也利用缓存、索引和日志机制来提升性能和可靠性。
6. SQL 分类 DDL【data definition language】 数据定义语言用来维护存储数据的结构 代表指令: create, drop, alter DML【data manipulation language】 数据操纵语言用来对数据进行操作 代表指令 insertdeleteupdate DML中又单独分了一个DQL数据查询语言代表指令 select DCL【Data Control Language】 数据控制语言主要负责权限管理和事务 代表指令 grantrevokecommit
7. 储存引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。
MySQL的核心就是插件式存储引擎支持多种存储引擎。
查看存储引擎 show engines 在Linux中设置默认存储引擎 命令vim /etc/my.cnf 我设置的默认存储引擎。