作者:დ旧言~
座右铭:松树千年终是朽,槿花一日自为荣。目标:理解什么是MySQL,如何安装MySQL,简单使用MySQL。
毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!
专栏选自:带你玩转MySQL
望小伙伴们点赞👍收藏✨加关注哟💕💕
一、前言
想必大家在学校也学习过MySQL,可能学的懵懵懂懂,这个板块我们从入门开始,从最新的安装MySQL到学习MySQL语句,一步一步开始,一切都是新的,新的板块新的开始,大家一起努力,一起进步!!!
** 二、主体**
学习【MySQL】基础入门篇咱们按照下面的图解:
2.1 安装MySQL
2.1.1 安装前清理工作
清理原有的mysql数据库:
使用以下命令查找出安装的mysql软件包和依赖包:
rpm -qa | grep mysql
使用以下命令依次删除上面的程序:
yum remove 名字
再检查一遍是否有残留,没有的话进入下一步:
删除mysql的配置文件。
卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件:
find / -name mysql
使用以下命令依次删除上面的程序:
rm -rf 名字
删除MarinaDB的文件:
使用rpm指令查找出要删除的mariadb文件:
rpm -qa | grep mariadb
删除语句:
rpm -e 文件名
由于这里博主没有就不再演示了。
2.1.2 安装MySQL
下载Yum Repository:
网址:Index of /232905 (mysql.com)
根据不同版本的CentOS系统进行下载,点击Download:
上传mysql:
安装mysql80-community-release-el7-5.noarch.rpm包:
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
安装MySQL:
yum -y install mysql-community-server
启动mysql服务并查看mysql状态:
systemctl start mysqld.service
获取mysql的root用户初始密码并修改:
grep "password" /var/log/mysqld.log
2.2数据库基础
2.2.1什么是数据库
数据库:
是一个有组织的集合,用于存储和管理数据的系统。它是一个软件系统,被设计用来存储、检索和管理数据,并提供数据的快速访问和处理。数据库可以被看作是一种特殊的文件系统,但与传统的文件系统不同的是:它能够更加高效的存储和管理大量结构化数据。
数据库主要由数据库管理系统(DBMS)和数据库组成:
数据库管理系统(DBMS):
- 数据库管理系统是数据库的核心组成部分。它是一种软件系统,用于管理数据库的创建、维护、访问和操作。DBMS提供了一组功能,允许用户定义数据结构、存储数据、检索数据、更新数据、维护数据完整性、实施安全性控制、备份和恢复数据等。常见的DBMS包括MySQL、Oracle、SQL Server、PostgreSQL、SQLite等。不同的DBMS可能支持不同的数据模型,如关系型、文档型、图形型等,以满足不同类型的应用需求。
数据库:
- 数据库是一个有组织的数据集合,其中包含一个或多个数据表,每个数据表存储特定类型的数据。数据库用于持久性地存储和管理数据。数据可以以结构化的方式存储,允许用户定义数据表的结构、字段和数据类型。数据库中的数据可以根据需要进行增加、修改、删除和查询。数据库可以用于存储各种类型的数据,包括文本、数字、图像、音频、视频等。
2.2.2数据库和文件
文件保存数据缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库相比于传统的文件存储系统具有重要的优点如下:
- 数据结构化和一致性: 数据库强制数据以一种结构化的方式存储,这有助于确保数据的一致性和准确性。文件存储系统通常不提供此类数据结构化支持。
- 数据完整性: 数据库管理系统(DBMS)提供了强大的数据完整性约束,以确保数据的有效性。这包括主键、外键、唯一性约束等。
- 数据共享: 多个用户或应用程序可以同时访问数据库,而不会破坏数据的完整性。数据库提供了并发控制机制来管理同时访问数据的多个用户。
- 数据安全性: 数据库可以提供用户身份验证和访问控制,以保护敏感数据免受未经授权的访问。文件存储通常没有这种级别的安全性。
- 高性能和优化查询: 数据库系统经过优化,能够高效地处理数据检索和复杂查询。文件系统通常没有这种查询优化功能。
- 数据冗余减少: 数据库减少了数据冗余,因为相同数据只存储一次,而且可以通过外键建立关系,从而减少了数据存储和更新的复杂性。
- 数据一致性维护: 数据库提供了事务处理,允许多个操作被作为一个单一的、原子性的工作单元来执行。这有助于保持数据的一致性,即使在系统出现故障的情况下。
- 备份和恢复: 数据库提供了备份和恢复功能,以保护数据免受丢失或损坏。文件存储通常需要手动管理备份。
- 数据可扩展性: 数据库系统可以根据需求进行扩展,以处理大规模数据,而不会导致性能下降。
- 数据查询和分析: 数据库允许执行复杂的查询和分析操作,以从数据中提取有用的信息。这是文件存储系统所不具备的功能
2.2.3主流数据库
SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
**H2: **是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
图解了解mysql运行过程:
2.3MySQL的基本使用
2.3.1连接服务器
语句:
mysql -h 127.0.0.1 -P 3306 -u root -p
效果:
注意:
- 如果没有写 -h 127.0.0.1 默认是连接本地
- 如果没有写 -P 3306 默认是连接3306端口号
2.3.2服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
2.3.3使用案例
1.创建数据库:
create database helloworld;
2.使用数据库:
use helloworld;
helloworld是指要使用的数据库的名称,在MySQL服务器中,可以同时存在多个数据库,使用
use
语句可以让用户指定当前要使用哪个数据库,从而执行该数据库中的SQL操作。在使用use语句之前,必须先创建要使用的数据库。
3显示当前数据库:
select database();
database()
是一个SQL函数,用于返回当前使用的数据库的名称。
4.创建数据库表:
create table
语句用于在关系型数据库中创建新的数据表。数据表是用于存储和组织数据的一种结构化对象,其由列和行组成。
5.显示数据库所以表:
show tables
6.向表中插入数据:
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
7.查询数据表:
select * from helloworld;
8.获取数据表结构信息:
desc table_name;
执行该语句后,将返回一个结果集,其中包含数据表的结构信息。结果集中包含以下列:Field、Type、Null、Key、Default、Extra。\n\nField:数据表中列的名称。
- Type:数据表中列的数据类型。
- Null:列是否允许为空。
- Key:列是否为主键或索引。
- Default:列的默认值。
- Extra:包含有关列的其他信息。
2.4数据的逻辑存储和实际存储
逻辑存储:
数据库的数据逻辑存储是指在数据库中,如何将数据逻辑地组织和存储的问题。它是数据库设计的一个重要方面,对数据库的性能、可靠性和可扩展性等方面都有重要影响。
数据逻辑存储主要是通过表、视图、索引等方式实现的。具体来说,每个数据库包含多个数据表,每个数据表包含多个数据行和数据列,每个数据列定义了数据类型和其他属性。数据表之间可以通过关联关系进行连接,形成视图。而索引则是一种数据结构,用于快速定位和访问数据表中的数据。
实际存储:
数据库的数据实际存储结构包括数据页和数据行。
数据页是数据库管理系统存储数据的最小单位,通常是固定大小的二进制文件。每个数据页通常包含多个数据行和一些元数据信息。数据库会将数据表中的数据按照数据页的大小进行分割和存储,以提高数据的访问效率。\n\n数据行是数据表中的一条记录,也是数据库中存储数据的基本单位。每个数据行包含若干个列,每个列对应一个数据类型的值。数据行可以看作是数据库中的一个对象,它具有唯一的标识符和属性。
数据库的数据实际存储结构通常是由数据库管理系统自动维护的,用户只需要使用 SQL 语句进行操作即可。不过,在进行数据库设计时,需要考虑数据的存储方式和结构,以便提高数据库的性能和可维护性。
2.5MySQL的架构
图解:
2.6SQL分类
- DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter
- DML【data manipulation language】 数据操纵语言,用来对数据进行操作,代表指令: insert,delete,update
- DML中又单独分了一个DQL,数据查询语言,代表指令: select
- DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit
2.7存储引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。
查看引擎:
show engines;
存储引擎对比:
三、结束语** **
今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。
版权归原作者 დ旧言~ 所有, 如有侵权,请联系我们删除。