news 2026/4/15 3:44:28

MySQL 数据库基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 数据库基础

目录

什么是数据库

数据库分类

关系型数据库

非关系型数据库

SQL子语言

MySQL

MySQL 存储数据的组织方式

数据库操作

显示当前数据库

创建数据库

使用数据库

删除数据库


什么是数据库

数据库是一个用于存储、管理和检索数据的系统,可以组织和保存大量的数据,使得数据能够被高效地访问、更新和管理

文件也可以用来存储数据,那为什么还要使用数据库呢?

文件保存数据有以下缺点:

文件的安全性问题

文件不利于数据查询和管理

文件不利于存储海量数据

文件在程序中控制不方便

基于上述问题,就可以使用更利于管理数据的系统 —— 数据库,它能够更有效的管理数据,且可以提供远程服务,即 通过远程连接来使用数据库,因此,也称为数据库服务器

数据库分类

数据库大体可用分为两类:关系型数据库非关系型数据库

关系型数据库

关系型数据库(RDBMS)是指采用了关系模型来组织数据的数据库。关系模型,简单来说指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织

基于标准的 SQL,数据库只是内部一些实现有区别,常见的关系型数据库有:

Oracle:商业软件,功能强大,支持高并发事务处理,具备企业级特性和强大的安全性,适合大规模企业应用和复杂的数据处理需求

MySQL:开源,具有强大的功能和灵活性,支持复杂查询和数据完整性约束,因其开源、易于安装和配置,适合用于开发和托管中小型网站

SQLite:轻量级,嵌入式数据库,不需要单独的服务器进程,适用于桌面应用、移动应用和小型网站

非关系型数据库

**非关系型数据库(NoSQL数据库)**与关系型数据库不同,它们不使用传统的表格结构来存储数据,而是使用文档、键值对等来存储数据

常见的 NoSQL 数据库有:

redis:键值对存储数据库,支持多种数据结构,如字符串、哈希、列表、集合等,适用于缓存、会话管理、实时分析和消息队列等场景

MongoDB:文档型数据库,使用 JSON-like 的 BSON 格式存储数据。适合需要灵活数据结构、文档存储和快速开发的应用,例如内容管理系统和实时分析应用

Neo4j:图数据库,用于存储和查询图形结构的数据,如节点和边,适合需要处理复杂关系和网络结构的应用,例如社交网络、推荐系统和欺诈于检测

关系型数据库和非关系型数据库的区别:

关系型数据库

非关系型数据库

使用SQL

不强制要求,一般不基于 SQL 实现

事务支持

支持

不支持

复杂操作

支持

不支持

海量读写数据

效率低

效率高

基本结构

基于表和列,结构固定

灵活性比较高

适用场景

业务方面的 OLTP 系统

用于数据的缓存或基于统计分析的 OLAP

OLTP(On-Line Transaction Processing):联机事务处理

OLAP(On-Line Analytical Processing):联机分析处理

数据库的核心语言就是 SQL 语言,接下来我们就来学习 SQL

SQL子语言

在 **SQL(Structured Query Language)**中,命令被分类为不同的子语言,每种子语言用于处理数据库的不同方面。以下是四种主要的 SQL 子语言:

DDL(Data Definition Language,数据定义语言):用于定义和管理数据库的结构(模式),涉及数据库、表、视图、索引等对象的创建、修改和删除

常用指令:create、alter、drop

DML(Data Manipulation Language,数据操作语言):DML 主要关注数据的操作和管理,用于对数据库中的数据进行插入、更新、删除和查询操作

常用指令:select、insert、update、delete

DQL(Data Query Language,数据查询语言):专门用于从数据库中检索数据,DQL 实际上是一部分 DML,主要用于执行查询操作

常用指令:select

DCL(ata Control Language,数据控制语言):用于控制数据库中数据的访问权限和权限管理

常用指令:grant、revoke

即:

语言

功能

DDL

定义数据库结构(如 表、索引)

DML

操作数据(如 插入、更新、删除)

DQL

查询语句(select 语句)

DCL

控制权限(如 授权、撤销权限)

接下来,我们就来学习MySQL

MySQL

MySQL 是一个客户端-服务器(C/S)结构的程序

当我们安装好MySQL 后:

上述就是 MySQL 的客户端

输入密码,连接MySQL 的服务器

数据库服务器,是MySQL 的本体,负责 持有数据、管理数据 以及进行 增删查改

而 MySQL 客户端,只是一个用于和用户交互的界面,让用户能够通过客户端,给服务器发送指令,告诉服务器接下来要做什么,真正完成操作的是 数据库服务器

MySQL 存储数据的组织方式

数据库(database)逻辑上的数据集合,按照数据结构来组织、存储和管理数据的仓库,一个 MySQL 服务器上可以有多个这样的数据集合

例如,我们会将一些有关联的数据放到一起,就构成了数据集合:

学生信息(出勤信息、课程信息、身份信息…)

用户信息(个人信息、浏览信息、个性推荐信息…)

这些数据都可以在同一个 MySQL 服务器上存储,为了将它们从逻辑上区分开,就可以使用不同的数据库来区分

数据表(table):在同一个数据库中,还可以存储不同的数据,每组数据使用数据表来存储。数据表是 数据库中最基本的存储结构,用于组织和存储数据

数据表 相当于表格,类似于 excel,

在一个表中有很多行(row),每一行都是一条记录(或称为 数据)

而每一行中又包含很多列,每一列也称为一个 字段(field)

例如:

学生信息:学生编号、姓名、年龄…

上述信息就构成一个数据表:

数据库服务器中,主要通过 数据库 和 数据表 来组织存储数据:

接下来,我们就来学习数据库相关操作

数据库操作

显示当前数据库

SHOW DATABASES;

注意:不要忘记 ;

创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name [character_set charset_name] [collate collation_name];

其中,大写的表示关键字在 MySQL 中,SQL 关键字和函数名不区分大小写,CREATE 和 create 是相同的,在拼写时注意不要拼错

[]:可选项,可以指定,也可以不指定

IF NOT EXISTS:可选的,若指定,只有在数据库不存在时才会创建,可以避免数据库已经存在时出现错误

database_name:要创建的数据库的名称,数据库名称可以随便起,但要注意不要和关键字重复,一个服务器上数据库的名字也不能重复

character_set charset_name:可选的,指定数据库使用的字符集

collate collation_name:可选的,指定数据库使用的字符排序规则

什么是字符集?

字符集(Character Set)是用于表示文本数据的编码系统。在 MySQL 中,字符集定义了如何将字符映射到字节

常见字符集

ASCII:仅支持基本的英文字符,适用于只包含英文字符的情况

utf8:支持大多数常用Unicode 字符,但不支持一些特殊字符,如表情符号

utf8mb4:支持所有 Unicode 字符,包括表情符号,建议使用

GBK:用于简体中文字符,扩展了 GB2312 编码,支持更多汉字

什么是排序规则?

排序规则(Collation):确定如何比较和排序字符,每个字符集都有多个排序规则,每种排序规则适用于不同的语言或比较需求

创建示例:

创建一个名为 my_database 的数据库:

CREATE DATABASE my_database;

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,默认排序规则:utf8_general_ci

若数据库不存在,创建 my_database:

CREATE DATABASE IF NOT EXISTS my_database;

创建一个名为 my_database 的数据库,并指定字符集为 utf8mb4 排序规则为utf8mb4_general_ci:

CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

当我们创建好数据库后,由于数据库服务器上有多个数据库,因此,在进行后续表操作之前,我们需要先选中这个数据库

使用数据库

use database_name;

删除数据库

DROP DATABASE [IF EXISTS] database_name;

数据库删除后,里面的表和数据全部都被删除了,因此,删除数据库操作需谨慎使用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 3:44:21

K8S网络和基本命令 【 K8S (二)】

目录 一、Flannel 的核心基础(通信前的准备) 二、Flannel 的三种核心通信模式 场景 1:同节点内 Pod 通信(无需 Flannel 隧道) 场景 2:跨节点 Pod 通信(Flannel 核心) 模式 1&…

作者头像 李华
网站建设 2026/4/12 9:28:29

自考必备!10个高效降AI率工具推荐

自考必备!10个高效降AI率工具推荐 AI降重工具,助你轻松应对论文挑战 随着人工智能技术的广泛应用,越来越多的学生在撰写论文时会使用AI辅助工具。然而,这些工具生成的内容往往带有明显的AI痕迹,容易被查重系统识别&…

作者头像 李华
网站建设 2026/4/13 12:31:24

福特汽车准备在车载系统中引入AI智能助手

在拉斯维加斯举办的年度消费电子展正如火如荼地进行中,按照近十年来的传统,汽车制造商及其供应商会利用这个会议宣布他们的技术计划。今晚轮到了福特汽车,其展示的内容非常符合2026年的发展趋势。如果你猜测这意味着AI将要进入福特的车载体验…

作者头像 李华
网站建设 2026/3/28 13:27:28

印度和新加坡在智能体AI采用方面超越全球同行

亚洲市场的组织在人工智能货币化方面比西方同行行动更快,印度和新加坡在从成本削减向收入增长的全球转型中处于领先地位。技术咨询公司Thoughtworks的最新研究显示,"效率时代"实际上已经结束。这项研究调查了全球3500名IT决策者和高管&#xf…

作者头像 李华
网站建设 2026/4/9 20:24:35

深度学习毕设项目:基于深度学习算法python训练数字识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/7 13:49:51

分糖果(candy)(信息学奥赛一本通- P1380)

【题目描述】童年的我们,将和朋友分享美好的事物作为自己的快乐。这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们。已知糖果从一个人传给另一个人需要1 秒的时间,同一个小朋友不会重复接受糖果。由于糖果足…

作者头像 李华