当前位置: 首页 > news >正文

【MySQL】初识数据库

目录

一.什么是数据库

二.数据库和数据结构的关系

三. 数据库服务器、数据库与表之间的关系

四.关系型数据库

五. SQL介绍

SQL分类

六.MySQL架构(面试重点)

 七. 库的基本操作

1.查看数据库

 2.创建数据库

字符集编码和校验(排序)规则

3. 修改数据库

4.删除数据库

结语


一.什么是数据库

数据库其实就是数据结构来组织存储管理数据的仓库,数据库可以将数据按照一定的规则进行存储,以便于用户进行增删改查等操作。

数据库的特点:

  • 数据持久化:将数据保存在存储介质中,即使计算机断电关机后,数据也不会丢失
  • 数据结构化:数据库中的数据是按照一定的结构进行组织的,使得数据便于管理和查询
  • 数据共享性高:多个用户可以同时访问和使用数据库中的资源,提高数据的利用率
  • 安全性:数据库提供多种安全机制,保护数据不被未授权访问
  • 查询优化:数据库系统提供了高效的查询优化器,可以快速执行复杂的查询操作

二.数据库和数据结构的关系

  • 数据结构是组织数据的一种方式,数据库使用了合适的数据结构来组织数据,方便用户写入(数据写入最终会写入到一种存储介质中(磁盘等)和查询数据(存储就是为了方便读取)
  • 数据为什么要用存储介质存储起来呢?如果保存在内存中,电脑重启数据就没有了(数据丢失),我们就访问不到数据了

三. 数据库服务器、数据库与表之间的关系

数据库服务器是指在机器上安装了一个数据库管理系统程序(数据库服务器上运行着数据库软件),这个程序可以管理多个数据库,数据库中包含多张数据表,数据表中包含很多数据行,从上图看:从上到下依次是包含关系

四.关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库,以表格的形式存储数据,由行和列组成,关系模型可以理解为一个二维表格模型,通过SQL语言进行数据操作和管理

正常的单张表:

  • 单张表的情况下:如果我现在需要修改班级信息,那么我需要对每个同学的班级信息一个一个的进行修改(效率就非常的低)
  • 存在两个表之间通过编号建立连接的情况下:此刻只需要对班级表中的班级这一列及进行修改即可,此刻查询数据,学生表中的学生班级信息就会根据班级编号找到对应的班级(如果有多个学生的班级存在重复,那么就大大提高了我们的效率

五. SQL介绍

SQL(Structured Query Language)是结构化查询语言的简称,是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理关系数据库

SQL分类

那么SQL语言我们可以分为三类:DDL、DML、DCL

  1. DDL:数据定义语言,用来维护存储数据的结构,代表指令有 create(增)、drop(删)、alter(改),这些命令都是对数据库进行操作的
  2. DML:数据操作语言,用来对数据进行操作,代表指令有:insert(添加)、delete(删除)、update(修改)、select(查询),这些命令都是对数据进行操作的
  3. DCL:数据控制语言,主要负责权限管理和事物,代表指令有:grant(赋予权限)、revoke(撤销权限)、commit(提交事物)

六.MySQL架构(面试重点)

下图是整体架构图:接下来我来解析一下这张图每层的作用

  • 外部程序:客户端、应用程序,在这里充当的就是使用数据库的角色
  • MySQL服务器:
  1. 连接层:鉴权作用(当客户端连接到数据库之后,验证用户信息正确性,并且管理客户端的连接)
  2. 服务层:解析和优化SQL语句后发送到存储引擎层
  3. 存储引擎层:不同的存储引擎使用不同的数据结构来存储我们的数据(处理数据,这一层也是MySQL的核心)
  4. 文件系统层:保存数据

 举个例子:

1.下图就是客户端连接到数据库,连接层验证用户信息正确,连接成功的结果2.发送SQL语句,通过服务层解析SQL语句,再到存储引擎层处理数据,最后到文件系统层保存数据,返回结果 

 七. 库的基本操作

通过上述信息我们了解了数据库是做什么的,那么接下来我们就要学习一下如何对数据库进行操作。

1.查看数据库

那么在创建一个新的数据库之前,我们应该查看一下当前电脑中我们已经存在了哪些库,避免创建时出现错误,那么就引出了查看数据库的命令:

show databases;
  • show:是SQL语言中的关键字,表示显示的意思
  • databases:database指的就是数据库的意思,加上s就表示的是所有数据库的意思

注意:在MySQL中的每条SQL语句都要以分号结束,并且SQL中的字符是不区分大小写的 

 

 2.创建数据库

当我们查询完当前电脑中所有的数据库时,就可以创建自己想要的数据库了,语法如下:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...create_option: [DEFAULT] {CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'}
}
  • 大写部分表示关键字
  • db_name:表⽰⾃定义的数据库名
  • {}⼤插号表⽰必须选
  • | 表⽰任选其中⼀个
  • []中括号表⽰是可选项(可写可不写)
  • CHARSCTER SET:指定数据库采用的字符集
  • COLLATE:指定数据库字符集的校验规则
  • ENCRYPTION:表示是否要加密

 那么我们接下来就创建一个库看看:

那么大家有没有一个疑问呢?如果当前创建一个已经存在的库会发生什么呢?

此时就会发生报错,重复创建库这种现象在未来创建库的过程中是经常发生的,那么有没有办法能够及时防治这种情况的发生呢?其实是有的:

此时显示的也是成功的信息,但是我们真的会重复创建一个test1这个库嘛,实际上是不会的,if not exists 就是用来判断当前电脑中是否已经存在这个库了,如果不存在那么就创建,如果存在就会弹出一个warning的警告,我们来查看一下这个警告信息:

上述圈起来的部分的意思就是:“不能创建test1 这个库,这个库已经存在了”

字符集编码和校验(排序)规则

字符集编码可以理解为:假设有两个人进行交流,一个人说的是中文,一个人说的是英文,那么这就意味着双方都听不懂对方在说什么,那么对于我们的数据库来说,在写入数据和读取数据的时候应该使用相同的编码集,否则读取数据的时候可能就会出现乱码,我们查看一下有哪些编码集:

 MySQL8.0默认的字符集编码是 utf8mb4 MySQL5.7默认的字符集是 latin1

在上图中的Default collation 那一栏就是我们的排序规则

那么接下来我们来创建一个指定字符集编码和排序规则的库:

  • utf8mb4_0900_ai_ci 是MySQL8.0引⼊的新规则,在⽼版本中不能识别;
  • utf8mb4 编码是对 Unicode 字符集的⼀种实现,⽤1到4个字节表⽰⼀个字符,可以表⽰世界上⼏乎所有的字符,⽽且更节少空间
  • 0900 是基于 UCA 9.0.0算法,UCA是Unicode Collation Algorithm的缩写
  • ai是Accent-insensitive的缩写,表⽰⼝声不敏感
  • ci是Case-insensitive的缩写表⽰⼤⼩写不敏感
  • as是Accent-sensitive的缩写,表⽰⼝声敏感
  • cs是Case-sensitive的缩写,表⽰⼤⼩写敏感
  • bin表⽰⼆进制

3. 修改数据库

当创建好数据库后,我们难免会对数据库进行修改库中的一些信息,那么我们一起来看看该如何修改:

 对于数据库的修改主要是修改数据库的字符集,校验规则

4.删除数据库

当我们不想要之前创建的数据库时,则需要删除之前创建的数据库,那么接下来就是看看如何删除数据库:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

当前电脑中总共拥有这些数据库,那么我现在删除刚才创建的test1这个库:

此时test1 这个库就被删除了

结语

以上就是本章的全部内容了,希望大家看完本章后对数据库能够有一个初步的了解,并且能够学习到数据库增删改查操作,在此感谢大家的观看!!!

相关文章:

  • HDFS入门】HDFS安全与权限管理解析:从认证到加密的完整指南
  • TypeScript 从入门到精通:完整教程与实战应用(一)
  • git 出现 port 443 Connection timed out
  • AIGC产品如何平衡用户体验与内容安全?
  • 通过 Zotero 的样式编辑器(Style Editor)自定义文献引用和参考文献列表的格式
  • pdfjs库使用记录1
  • 2026《数据结构》考研复习笔记三(C++高级教程)
  • 【“星瑞” O6 评测】—NPU 部署 face parser 模型
  • Windows .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题
  • 基于DeepSeek的考研暑假日志分析
  • Transformer 架构 - 解码器 (Transformer Architecture - Decoder)
  • 【前端HTML生成二维码——MQ】
  • Web3区块链网络中数据隐私安全性探讨
  • 重构未来智能:Anthropic 解码Agent设计哲学三重奏
  • 【Pandas】pandas DataFrame isin
  • 4.17-4.18学习总结 多线程
  • 从零开始物理引擎(六)- 重构完成与MVP理解
  • 济南通过首个备案生活服务大模型,打造行业新标杆
  • MCP协议在纳米材料领域的深度应用:从跨尺度协同到智能研发范式重构
  • 详解STM32时基单元中参数 TIM_ClockDivision 的含义
  • 一季度煤价持续下探,多家煤炭巨头营收下滑、净利润降约两成
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布首度进军黄金矿产
  • 我国风电光伏装机历史性超过火电
  • 青海西宁市公安局原党委委员、副局长王小华被“双开”
  • 上海举行金融服务企业“走出去”推进大会
  • 何以中国|福建武夷山:千年茶道的文旅“破圈”与新生