序言:
在上期,我们已经安装好了【mysql】。在本期,我将给大家介绍关于数据库的基本知识。
目录
(一)登陆选项
(二)基本介绍
1、什么是数据库
2、主流数据库
3、见一见数据库
4、服务器管理
5、服务器,数据库,表关系
6、数据逻辑存储
(三)MySQL架构
(四)SQL分类
(五)存储引擎
1 、存储引擎
2、 查看存储引擎
3 、存储引擎对比
总结
首先要连接数据库,你需要使用相应的数据库管理系统提供的连接工具或者编程语言的库来进行连接。
下面我将介绍常见的使用命令行连接数据库的方式:
mysql -h 主机名 -P 端口号 -u 用户名 -p
【分析】
例如,当我想连接数据库时,可以进行以下操作:
mysql -h 127.0.0.1 -P 3306 -u root -p
【分析】
mysql
:这是 MySQL 命令行工具的名称,用于与 MySQL 数据库进行交互
-h
【
127.0.0.1】
:这是指定连接主机的参数。127.0.0.1
表示本地主机(即连接到本地计算机上的 MySQL 服务器)
-P 【3306】
:这是指定连接端口的参数。3306
是 MySQL 默认的端口号
-u 【root】
:这是指定要使用的用户名的参数。root
是 MySQL 中的超级用户,默认拥有所有权限
-p
:这是提示输入密码的参数。在输入该命令后,系统将要求输入密码以验证用户身份。
通过执行这个命令,将能够使用 MySQL 命令行工具连接到本地的 MySQL 服务器,并使用超级用户 "root" 进行身份验证。一旦成功连接,你可以在命令行工具中输入和执行各种 SQL 查询和命令。
【注意】
此外,因此之前我已经对mysql进行了配置,所以在登陆的时候可以像如下这样:
在之前,不管是安装还是连接mysql的时候,会发现一个问题:
那么上述这两个到底是什么东西呢?接下来,我给大家进行解释说明:
【分析】
因此,我们现在已经知道mysql是一个网络服务。此时,我们就可以查出对应的端口号:
【netstat -lntp
】是一个用于显示网络连接、路由表和网络接口统计信息的命令。
下面对该命令的参数进行详细解释:
-l
: 仅显示监听状态的连接。-n
: 以数字形式显示 IP 地址和端口号,而不进行反向域名解析。这样可以提高命令执行的速度。-t
: 仅显示 TCP 协议相关的连接。-p
: 显示与每个连接关联的进程 ID(PID)和程序名称。执行【netstat -lntp
】 命令后,会列出所有正在监听状态的 TCP 连接,并显示它们的相关信息,包括本地地址、外部地址、端口号、状态(LISTENING)、PID 和程序名称。
例如,以下是 【netstat -lntp
】命令的示例输出:
【分析】
上述输出显示了三个正在监听的 TCP 连接。
此命令对于诊断网络问题和查看正在监听的端口非常有用,可以帮助我们了解系统中哪些服务正在运行并侦听连接。
有了以上的知识,接下来我们就聊聊什么是 “数据库”:
首先就是存储数据用文件就可以了,为什么还要弄个数据库?
1、其实一般文件只提供数据额存储功能,但是文件并没有提供非常好的数据管理能力(从用户角度)
2、其次,文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
因此,使用数据库相比简单的文件存储方式有以下优势:
数据结构化:数据库可以提供数据的结构化存储,使得数据的组织和管理更加方便。你可以定义表格、列和数据类型等,确保数据的一致性和完整性。
高效查询:数据库提供了强大的查询功能,可以根据特定条件快速检索和过滤数据。通过索引和优化算法,可以提高数据的查询效率,对大规模数据进行高效处理。
并发处理:数据库具备并发处理能力,可以同时支持多个用户对数据进行读写操作,避免了数据冲突和资源竞争的问题。
安全性和权限控制:数据库可以提供安全的访问控制机制,只允许授权用户访问和修改数据。你可以设置用户权限、加密数据、备份和恢复数据等安全策略,保护数据的机密性和完整性。
扩展性和可靠性:数据库系统通常具备良好的扩展性和可靠性。数据库提供了备份和恢复机制,可以防止数据丢失和系统故障。
当数据量较大、复杂查询需求较多、并发访问较频繁、数据安全性要求较高或者需要长期保持数据的可靠性和持久性时,使用数据库会更加合适。但如果数据量较小、查询需求简单、并发访问少且不需要强大的安全和扩展性,简单的文件存储方式也可以满足要求。需要根据实际情况综合考虑使用何种存储方式。
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电 商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研 究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库 中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
上述,我已经对数据库进行了介绍。接下来,我带大家以样例具体的见一见:
create database helloworld;
输出展示:
当我们再次【show databas;】时,可以发现多出了我们创建的数据库
而当我们到存放数据库文件的路径下去查看时,当我们创建了一个数据库之后,多出了一个【hello world】的目录:
use helloworld;
helloworld
的数据库中,以便后续的 SQL 查询和操作可以针对该数据库进行。
具体如下:
同时,我们也可以在我们相应的【helloworld】目录下查看到相关信息:
插入数据如下:
以上便是一个简单的创建数据库的样例。
在Windows下我们通过以下指令查看:
总体是按照行列式结果展开的:
MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体 系结构的一致性。
SQL可以根据其功能和用途进行分类。下面是一些常见的 SQL 分类:
DDL【data definition language】 数据定义语言,用来维护存储数据的结构
DML【data manipulation language】 数据操纵语言,用来对数据进行操作
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
存储引擎是:
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
我们可以使用以下指令进行操作:
show engines;
输出如下:
具体参照下图:
到此,关于数据库的基础知识便讲解完毕了。接下来,我们简单的回顾一下本文都学了什么
本文主要讲解的大致可以分为三个类容:
以上便是本文的全部内容了,感谢各位的观看与支持!!!