> 作者:დ旧言~
> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:理解什么是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数据库和文件

文件保存数据缺点:

  • 文件的安全性问题
  • 文件不利于数据查询和管理
  • 文件不利于存储海量数据
  • 文件在程序中控制不方便

数据库相比于传统的文件存储系统具有重要的优点如下:

  1. 数据结构化和一致性: 数据库强制数据以一种结构化的方式存储,这有助于确保数据的一致性和准确性。文件存储系统通常不提供此类数据结构化支持。
  2. 数据完整性: 数据库管理系统(DBMS)提供了强大的数据完整性约束,以确保数据的有效性。这包括主键、外键、唯一性约束等。
  3. 数据共享: 多个用户或应用程序可以同时访问数据库,而不会破坏数据的完整性。数据库提供了并发控制机制来管理同时访问数据的多个用户。
  4. 数据安全性: 数据库可以提供用户身份验证和访问控制,以保护敏感数据免受未经授权的访问。文件存储通常没有这种级别的安全性。
  5. 高性能和优化查询: 数据库系统经过优化,能够高效地处理数据检索和复杂查询。文件系统通常没有这种查询优化功能。
  6. 数据冗余减少: 数据库减少了数据冗余,因为相同数据只存储一次,而且可以通过外键建立关系,从而减少了数据存储和更新的复杂性。
  7. 数据一致性维护: 数据库提供了事务处理,允许多个操作被作为一个单一的、原子性的工作单元来执行。这有助于保持数据的一致性,即使在系统出现故障的情况下。
  8. 备份和恢复: 数据库提供了备份和恢复功能,以保护数据免受丢失或损坏。文件存储通常需要手动管理备份。
  9. 数据可扩展性: 数据库系统可以根据需求进行扩展,以处理大规模数据,而不会导致性能下降。
  10. 数据查询和分析: 数据库允许执行复杂的查询和分析操作,以从数据中提取有用的信息。这是文件存储系统所不具备的功能

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分类

  1. DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter
  2. DML【data manipulation language】 数据操纵语言,用来对数据进行操作,代表指令: insert,delete,update
  3. DML中又单独分了一个DQL,数据查询语言,代表指令: select
  4. DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit

2.7存储引擎

存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看引擎:

show engines;

存储引擎对比:

三、结束语 

       今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

​​​ 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐