MySQL初阶入门的第一步

文章目录

  • [*1. 前言*](#1. 前言)
  • [*2. 正文*](#2. 正文)
    • [1. MySQL简介](#1. MySQL简介)
      • [1.1 什么是MySQL和数据库](#1.1 什么是MySQL和数据库)
      • [1.2 数据库的作用](#1.2 数据库的作用)
      • [1.3 数据库的特殊性](#1.3 数据库的特殊性)
      • [1.4 常见的数据库](#1.4 常见的数据库)
    • [2. 数据库服务](#2. 数据库服务)
      • [2.1 MySQL下载](#2.1 MySQL下载)
      • [2.2 数据库服务是什么](#2.2 数据库服务是什么)
      • [2.3 数据库服务的配置](#2.3 数据库服务的配置)
    • [3. MySQL客户端](#3. MySQL客户端)
      • [3.1 MySQL数据库构成](#3.1 MySQL数据库构成)
      • [3.2 客户端的进入方式](#3.2 客户端的进入方式)
      • [3.3 C/S架构](#3.3 C/S架构)
    • [4. 数据库操作](#4. 数据库操作)
      • [4,1 SQL语言介绍](#4,1 SQL语言介绍)
      • [4.2 创建数据库](#4.2 创建数据库)
      • [4.2 删除数据库(==危险==)](#4.2 删除数据库(==危险==))
  • [*3. 结语*](#3. 结语)

"不要放弃,最终你会发现一切都是值得的!"

1. 前言

好久不见各位朋友们,经过一个假期的放松,相信状态都调整的差不多了(小编有点划水),在之前我们完成了数据结构和Java的学习,下面将开展一个全新的章节MySQL的学习!


2. 正文

1. MySQL简介

1.1 什么是MySQL和数据库

在进入MySQL的学习中,我们要先了解什么是MySQL? 众所周知在学习计算机的道

路上你必须要学会数据库这方面的知识,而MySQL就是数据库

那么什么是数据库呢? 数据库就是组织和保存数据的应用程序,它的底层用了许多对应的数据结构,以便进行增删查改! 我们学习的大方向就是使用数据库对数据进行增删查改

我们举一个例子来更清楚的了解数据库,相信各位朋友小时候都用过账本,账本就可以看做一个数据库! 例如 2026-03-14 买冰箱 -5000 ;2026-03-13 生活费+2000,以上的操作就是看做对数据库的操作

MySQL的创始人是Michael Widenius (别名:Monty)这位先生是非常的伟大


1.2 数据库的作用

数据库最大的作用就是管理数据,我们使用数据库就是来增删查改(再次强化一下)


1.3 数据库的特殊性

我们之前学习过数据结构,例如顺序表ArrayList,当把数据存放在顺序表中电脑进行关机后,再次打开重新运行IDEA数据就会丢失,这是因为这种数据是储存在内存上的

数据库是将数据存储在磁盘上,这样就保证了数据的不易丢失性,每次加载数据都可从数据库读取以前的数据。下面就有小伙伴有疑问了,什么是磁盘,什么是内存啊?

如图就是内存,是在电脑中的,大家可能都听说了最近内存条价格疯狂的上涨,这也证明了内存是非常稀有和昂贵的,并且速度快,但是断电后数据易丢失

如图就是电脑中的磁盘,相信大家也非常的了解了,磁盘也可以成为外存,外存相较于内存,价格就低很多了,但速度慢,可以永久保存数据


1.4 常见的数据库

首先我们提出两个新的概念就是关系型数据库非关系型数据库

关系型数据库 : "关系" 二字证明关系型数据库中数据肯定具有联系,采用二维表 格(行和列)来组织数据,就像 Excel 表格一样。数据之间通过主键外键建立严格的关联关系。 (这里先做个了解即可,后面我们会一点点渗透)

非关系型数据库:打破了表格的限制,采用更灵活的数据模型来存储数据,通常用于处理海量、非结构化的信息。

我们所要学习的MySQL就是常见的关系型数据库,数据和数据是有联系的,下面我们介绍一下其他的数据库!

常用关系型数据库:

数据库 开发公司和应用场景
ACESS 微软OFFICE中的小型数据库
SQLite 小型数据库,常用与手机端的app
SQL Server 微软推出的专业级别的大型数据库
MySQL 使用量最多的数据库,开源免费
Oracle 业内最好用的数据库,但收费,大型公司常用

常用非关系型数据库:

数据库 应用场景
Redis 内存级别的数据库
MongoDB 文档数据库

2. 数据库服务

2.1 MySQL下载

下载这里小编就不演示了,大家可以直接去官网下载,小编这里用的是MySQL8.0.33版本。


2.2 数据库服务是什么

首先我们先弄清一个概念,我们学习的不是MySQL数据库而是MySQL数据库服务器!
我们可以看上图,数据库是包含在数据库服务器提供的服务当中,我们也叫数据库服务,这里就可以把数据库比作家电,如果没有房子那家电放在哪里? 所以数据库服务就起到了房子的作用。

而数据库中又有很多内容了,数据库中有表,表中有行,行中有列,这才构成了整个我们要学习的数据库

在我们下载好MySQL数据库后,系统会自动提供数据库服务,我们如果想要编写任何代码都是在客户端去完成的,数据库服务会根据我们的代码进行响应来返还结果


2.3 数据库服务的配置

首先我们在C盘的ProgramData目录下找到MySQL再进入MySQL Server进入my.ini这个文件,这是数据库提供服务的主要文件
进入后我们会看到一堆注释(#开头),我们来慢慢解析
这里我们看到了注释以CLIENT SECTION 开头,这代表这部分是客户端配置 都在[client]节点下
在bin目录下,后缀名为.exe 文件的都是经过了MySQL客户端的配置,其中mysqld这个文件有些特殊,我们稍后来讲


首先我们来看mysql节点下的部分,no-beep是mysql.exe文件的配置,mysql.exe也是我们所使用的客户端,mysql客户端与服务器是紧密相连的!!

我们可以看上图清晰地明确客服端与服务器之间的关系,mysqld.exe就是服务器对应的文件,也是MySQL 数据库系统的核心引擎客户端发送请求,服务器进行响应。


上图就是mysqld.exe文件的配置,也是服务器的配置,其中d代表daemon守护,port代表端口号,可以理解为电脑连接的锁孔,3306是默认值,在后续的学习中我们会重点关注端口port,现在只需做一个初步的了解。那mysqld有什么作用呢?

mysqld是 MySQL 数据库系统的核心引擎,负责:
1. 启动服务:运行它意味着启动了 MySQL 数据库服务。
2. 管理数据:负责所有数据的存储、读取、修改和删除操作。
3. 处理连接:监听网络端口(默认 3306),接收来自客户端(如 mysql.exe、应用程序)的连接请求。
4. 执行 SQL:解析并执行客户端发送的 SQL 语句,返回结果。

这里SQL语句是什么呢?? 小编在这里做一个解释,我们所学习的MySQL是数据库服务器,而SQL是实现数据库的一种语言,与我们所学的JAVA,C语言一样,所以要分清数据库与SQL语言的区别!


我们接着往下看日志这一部分,general_log代表通用日志,slow_query_log代表慢日志。其中集群环境代表很多台电脑一起在公司中运作的环境,大致了解即可。


接下来我们继续介绍编码集部分,小编所使用的是MYSQL8.0.33,大版本是8.0的话MySQL默认编码集都为**'utf8mb4',如果大版本为5.3的话则为 latin**,二者的编码规则差别很大,utf8mb4是支持中文的编码集 ,把大部分汉字当作3个字节,而latin编码集是不支持中文的编码集,这点也是很不友好,所以无论是哪个版本,我们都可以在MySQL的配置文件中去修改编码集

我们先根据上图找到注释,接着把character-set-server从默认修改成utf8mb4,

这里我们接着加上collation-server的配置,代表排序规则 ! 也是utf8mb4的编码集,后面紧跟着的ai,ci有特殊的含义,ai代表口音不敏感,ci代表大小写不敏感这样我们在编码中关键字无论是大写还是小写字母都不会影响到我们编码


3. MySQL客户端

3.1 MySQL数据库构成

MySQL在安装完成后mysqld会提供网络服务,如果把它配置成自动开启mysqld就会7*24小时不间断提供网络服务。下面我们彻底介绍一下MySQL
数据库服务器提供数据服务->数据库->数据表(表)->数据行(行)->数据列(列/字段)

我们下面举一个简单的例子:

例如在学校中的教务系统都有每个班的同学的基本信息,教务系统是一个大的数据库;一个班的所有同学信息是一个数据表;每个同学有名字,各科成绩,构成一个个数据行;名字这一块,成绩这一块就是一个个数据列,字段。


3.2 客户端的进入方式

  1. 我们可以通过终端点击mysql.exe程序,这个我们就不介绍了;
  2. 利用cmd命令提示符直接进入客户端,但是要先配置环境变量,这里我们也不介绍;
  3. MySQL下载后会提供一个快捷方式

    点击进入,输入密码正确即开启客户端,输入错误即自动退出。
    这里我们注意一下,这个快捷方式中默认的编码集就是utf8mb4
  4. 图形化客户端,例如MySQL提供的Workbench,这是免费的,还有Navicat,这是一个付费的工具但十分好用,现在有免费版,小编也主要使用这个工具

3.3 C/S架构

我们在上面介绍了客户端与服务器之间的通讯方式,对于这种通过网络访问的交互模型我们就称之为C/S架构,C:client ; S:Server

那么接下来有一个问题: 客服端与服务器之间是通过网络进行交互的,那么本机的客户端访问本机的服务器是不是C/S架构呢?

答案是:是C/S架构! 虽然访问的是本机的服务,但是还是通过网络访问的,只不过客户端和服务器在同一台电脑上,这里用到了电脑中的环回网卡,每个电脑的本地都有一个固定IP:127.0.0.1,这个IP代表着本机IP,任何电脑访问这个IP都只会访问自己!

可是如果真是这样的话,只要通过网络得到对方的IP,那么就可以访问对方的数据库,这样会不会有安全性的问题呢?? MySQL敏锐的发现了这一点,所以内部实施了名为白名单的操作,也就是当我们的数据库安装完成后,只允许本机链接,如果有其他机器想连接那么就需要把其他机器的IP加入到白名单,其余的一切机器都不可连接!


4. 数据库操作

4,1 SQL语言介绍

MySQL是我们要学习的数据库,SQL是实现数据库操作的语言,这门语言与我们所学习的Java C语言相比非常的简单,现在只需要掌握增删改查操作即可。

下面我们看一下SQL语言的分类

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

4.2 创建数据库

对于简单的代码我们直接使用mysql提供的快捷方式客户端来完成!

  1. 首先,我们要检查一下数据库服务器中都有哪些数据库,利用SQL语句 show databases ;就可以查看当前数据库服务中的数据库(show 是关键字,database代表数据库的意思,每一行SQL语句都以mysql>开头)

    我们发现这里面有默认的五个数据库! 这五个都是系统自带的数据库,千万不要改动和删除! 使用数据库的时,只使用自己创建的数据库,别的不管什么名字都不要动!
    这里结果的 4 rows 代表查询到了四条记录, set是结果集的意思,(0.00sec)代表这条语句执行时间不超过10ms。

  1. 创建数据库

    我们可以在MySQL官网去查询创建数据库标准的SQL语句

    这里用"{ }"标注的代表必须要有这个关键字, | 代表或者的意思,"[ ]"代表可有可无的意思。 这里相信不少小伙伴看得有点蒙,在实际创建库时不需要写这么标准的代码,我们只需要读懂即可。

    (1) 下面来让我们创建一个名字为Panxon123的数据库

    这是最简单的一种方式直接create database+数据库名称即可 ,执行结果中的Query OK 代表创建成功!

    (2) 当然我们可以严谨点去完善创建panxon123数据库的操作

    我们加上了"if not exists"代表如果不存在再去创建这个数据库,加上这个语句有什么好处呢?我们用实例说话

    在数据库服务中已经有panxon123数据库的前提下,我们再去创建一个名字相同的数据库会发现直接报错:"ERROR" 这也证明了MySQL中不能存在两个名称相同的数据库,但如果我们加入if not exists 语句的话,我们看看结果

    并没有报错,但是出现了一条警告信息"warning",我们可以用SQL语句查看一下这个警告信息

    我们发现警告的内容与上方报错的内容一样,这就说明了如果加入if not exists 这层校验,MySQL代码中出现两个相同的数据库,并不会因此停止编译,而是会继续执行,这样能使我们减轻不少的麻烦!!

    (3) 下面我们再完善一下创建数据库这一操作,去指定字符集和排序规则

    我们加上了 character set utf8mb4 collate utf8mb4_0900_ai_ci 这两句SQL语句,设置了我们当前panxon123数据库的字符集为utf8mb4,以及排序规则,这样我们的数据库的创建就非常的完善了!我们再利用show databases 展示数据库可以看到panxon123 在数据库服务当中

    (4) 我们可以利用SQL语句去查看当前数据库服务全局的默认字符集
    "show variables like '%character" 这里可以不需要掌握,我们后面会学习到

    注意每一个客户端的默认字符集都有可能不同,如图mysqld提供的快捷方式客户端,是my.ini文件配置过后的字符集,如果是终端cmd字符集设置也是不一样的,应该为gbk

    (5) 这里还有一个小的问题: 能否使用关键字作为数据库的名称 ,我相信大部分小伙伴都认为绝对不可以,但是MySQL这里是可以用关键字作为数据库名称只需要加上" ` "这个符号!

    使用关键字创建数据库也是完全没问题的!


4.2 删除数据库(危险)

首先我们明确一点,删除数据库是一个非常危险的从操作,在项目或者公司中不能这么做,使用这个操作之前一定要深思熟虑!!

我们先来看一下删除库操作的SQL 语法

这里的schema 也代表数据库的意思,我们大多数都使用databasedb_name是我们数据库的名称。

下面我们来实操,删除名称为create的数据库
这是最简单的drop删除语句,我们也可以把他完善一下
也是没有任何问题的

这里在强调一遍,删除库是一个非常危险的操作!!能不用尽量就不用!


以上就是数据库入门第一步的全部知识,包括认识数据库,了解SQL语言,认识数据库服务与数据库的关系,以及创建库和删除库的操作,也是非常容易的!


3. 结语

以上就是本文主要的内容,我们已经迈出数据库学习的第一步,下面小编会讲解数据库中的数据类型以及表的操作,有不明白的地方可以留言小编会回复,希望读者们多提建议,小编会改正,共同进步!谢谢大家。 🌹🌹🌹

相关推荐
littlegirll2 小时前
一个KADB报错分析及实验
java·javascript·数据库
十年编程老舅2 小时前
吃透 Linux 内核 IO 体系:块缓存与页缓存的核心设计与实现逻辑
linux·数据库·c++·spring·后端技术·页缓存
XDHCOM2 小时前
PHP用来把Oracle的数据搬到Mysql里边的一个具体操作示范过程
mysql·oracle·php
数据知道2 小时前
MongoDB批量操作优化:bulkWrite提升写入性能的实战方法
数据库·mongodb
无风听海2 小时前
LangGraph 控制流原语解析:Edge、Command、Send、Interrupt
java·数据库·edge
数据知道2 小时前
MongoDB读写关注设置:如何平衡数据一致性与系统性能?
数据库·mongodb
数据知道2 小时前
MongoDB大数据量分页优化:避免skip()性能陷阱的替代方案
网络·数据库·mongodb
2401_883035462 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
蒋大钊!2 小时前
[MySQL] 大厂开发常用 Explain 字段快记
数据库·mysql