00. MySQL Knowledge Overview

00. MySQL 知识概览

1. 学习分层

1.1. 基础篇

初级工程师

  • MySQL 基本概念

  • SQL

  • 函数

  • 约束

  • 多表查询

  • 事务

1.2. 进阶篇

中级工程师

  • 存储引擎

  • 索引

  • SQL 优化

  • 视图/存储过程/触发器

  • InnoDB 核心

  • MySQL 管理

1.3. 运维篇

高级工程师

  • 日志

  • 主从复制

  • 分库分表

  • 读写分离

2. 数据库相关概念

数据库(DataBase)

数据库管理系统(DataBase Management System)

  • 用来管理数据库的系统

  • 例:ORACLE,MySQL,SQL Server,PostgreSQL...

  • 上面的关系型数据库的操作语言其实都是通用的(SQL)

SQL(Structured Query Language)

  • 用来控制数据库管理系统的标准编程语言

3. MySQL 数据库

3.1. 启动与停止

  • 启动:

    • net start mysql80

  • 停止

    • net stop mysql80

  • 默认 mysql 是开机自启的

3.2. 客户端连接

  1. 客户端命令行输入密码:123456

  2. 命令行输入mysql [-h 127.0.0.1] [-P 3306] -u root -p

C:\Windows\System32>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.41 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  1. mysql -u root -p 在此之前要开启 mysql

3.3. 数据模型

客户端 -> DBMS -> 数据库 -> 多张表 -> 行数据

3.4. 数据库类型

关系型数据库 RDBMS

  • 建立在关系模型基础上,多张相互连接的二维表。(通过表结构来存储数据)

非关系型数据库

  • 反之

4. MySQL 数据类型

4.1. 数值类型

有符号:后面写上 UNSIGNED

无符号:默认

4.1.1. 整数

TINYINT(1 byte(-128, 127))、SMALLINT、MEDIUMINT、INT / INTEGER(4 bytes)、BIGINT

4.1.2. 浮点数

FLOAT(4 bytes)、DOUBLE(8 bytes)、DEIMAL(取决于 M (精度,整个数字的长度 ),D(标度,小数位数))

4.2. 字符串类型

带 BLOB 的是存二进制数据的(但一般不用),带 TEXT 的是存文本数据的

CHAR(定长)、VARCHAR(变长)、TINYBLOB(二进制数据)、TINYTEXT(文本数据)、BLOB、TEXT、MEDIUMBLOB、MEDIUMTEXT、LONGBLOB、LONGTEXT

char(10):占用十个空间。性能好。

varchar(10):占用只用的空间,<= 10。性能差。

4.3. 日期时间类型

DATE:YYYY-MM-DD 日期值

TIME:HH : MM : SS 时间值 或 持续时间

YEAR:YYYY 年份值

DATETIME:YYYY-MM-DD HH : MM : SS 混合日期和时间

TIMESTAMP:YYYY-MM-DD HH : MM : SS 混合日期和时间值,时间戳

Last updated