[MySQL] 01 – MySQL 概述和 SQL 通用语法


1.1 – 数据库相关概念

数据库(DataBase):是按照数据结构来组织、存储和管理数据的仓库。

数据库管理系统(DBMS):操作和管理数据库的软件。

SQL(Structured Query Language):操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。

关系型数据库流行趋势

1.2 – MySQL 安装和配置

一、安装、配置和启动

在官网下载 MySQL 安装文件(8.0.x 版)

MySQL Community Downloads
https://dev.mysql.com/downloads/

MySQL Windows 10/11 安装 – 菜鸟教程
https://www.runoob.com/w3cnote/windows10-mysql-installer.html

下载最新的社区版本后,一路点击下一步即可

安装后,需要将 MySQL Server 80 的 bin 文件夹添加到 Windows 环境变量,才能直接使用 MySQL 的命令行工具。

启动和停止 MySQL:

  • 如果在安装时没有特别设置,那么 MySQL 会注册为 Windows 系统服务并开机自启;
  • 使用 net start/stop mysql80 就可以启动、停止 MySQL 服务(需要管理员权限;以实际的服务名称为准,不区分大小写)。

二、客户端连接

客户端连接指的就是一个客户端程序与 MySQL 服务器建立会话的过程。

MySQL 采用客户端 / 服务器架构:

  • 服务器:mysql80 进程,监听某个端口(默认 3306)或 socket,负责存储数据、实行 SQL 语句;
  • 客户端:主动连接到 MySQL 服务器,发送 SQL 或管理命令、接收结果的程序。

方式一:命令行工具

MySQL 提供了一个命令行客户端工具 mysql

在 cmd 中使用命令 mysql -u root -p 就可以建立客户端连接:

  • -u root:选择用户 root;
  • -p:交互式地输入密码。
MySQL 已经配置成功

方式二:专用管理工具

MySQL 还附带了一些专用的命令行客户端,用于特定任务

  • mysqldump:用于数据库备份,连接方式与 mysql 命令相同。
  • mysqladmin:用于执行管理操作(如查看状态、关闭服务)。
  • mysqlshow:用于快速查看数据库、表或列的信息。

三、客户端如何连接服务器

  • 首先,需要先建立并认证连接,确保只有合法的客户端才能接入;
  • 然后,客户端通过 MySQL 协议发送 SQL 语句,服务器将查询缓存、解析、优化和执行;
  • 最后,服务器会将结果返回给客户端,并等待客户端确认收到后,关闭连接。

1.3 – 关系型数据库

一、什么是关系型数据库

关系型数据库(RDBMS)是建立在关系模型的基础上,由多张互相连接的二维表组成的数据库;

  • 使用表存储数据,格式统一,便于维护;
  • 使用 SQL 语言操作,标准统一,使用方便。

二、MySQL 的数据模型

从我们写 SQL、建表的角度来看,MySQL 采用的是经典的关系模型。数据被组织成结构化的二维表。

  • 核心元素
    • 表(Table):数据存储的基本单元,由行和列组成;
    • 行(Row/Record):代表一条具体的数据实体(如一个用户);
    • 列(Column/Field):代表实体的一个属性(如姓名、年龄),并且有严格的数据类型限制。
  • 关系与约束
    • 表与表之间可以通过主键(Primary Key)和外键(Foreign Key)建立关联(一对多、多对多等);
    • 遵循 ACID 原则(原子性、一致性、隔离性、持久性),保证数据的一致性。
  • 层级结构:
    • 数据库实例(Instance)
      ↓
    • 数据库(Database/Schema)
      ↓
    • 表(Table)
      ↓
    • 行 / 列
一个 DBMS 可以有多个数据库,一个库可以有许多表

1.4 – SQL 通用语法和分类

一、SQL 通用语法

  • 可以单行、多行书写,以分号结尾;
  • 可以使用空格、缩进增强可读性;
  • SQL 语句不区分大小写,但关键字建议全大写;
  • 注释:
    • 单行注释:-- 开头或 # 开头(MySQL 特有);
    • 多行注释:/* 注释内容 */。

二、SQL 语句的分类

SQL 语句分为四类:

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增、删、改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户、控制数据库的访问权限