从 01 开始 从 01 开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • Git
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 微信
  • 各大平台
  • RSS
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • 三国杀
  • 关于本站
  • 关于我
  • 网站动态
  • 友人帐
  • 打赏
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 年度总结

    • 2022 年度总结
    • 2023 年度总结
  • 文章分类
  • 文章标签
  • 文章归档

PeterJXL

首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • Git
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 微信
  • 各大平台
  • RSS
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • 三国杀
  • 关于本站
  • 关于我
  • 网站动态
  • 友人帐
  • 打赏
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 年度总结

    • 2022 年度总结
    • 2023 年度总结
  • 文章分类
  • 文章标签
  • 文章归档
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • Git

  • 计算机小知识

  • MySQL

    • 教程概述
    • 数据的存储
    • 数据库的安装
    • 数据库的启停与连接
    • 数据库的管理
      • DBMS的概念
      • CS结构
      • 执行SQL的方法
      • 数据库的管理
      • 查看建库语句
    • SQL概述
    • 表的管理
    • seletct基础
    • 运算符
    • 聚合查询
    • 排序
    • 数据的插入
    • 数据的删除
    • 数据的更新
    • 事务
    • 视图
    • 子查询
    • 函数
    • 谓词
    • CASE表达式
    • 集合运算
    • 联结-join
    • SQL入门小结
    • 更多数据库
    • MySQL的数据类型
    • 命令行的一些用法
    • 用户与权限管理
    • MySQL的权限管理
    • mysqldump
    • mysqladmin
    • Liquibase
    • 表注释与字段注释
    • 编码类型
  • 计算机基础
  • MySQL
2024-01-21
目录

数据库的管理

# 40.数据库的管理

‍

‍

# DBMS的概念

这里先说一个概念:数据库管理系统,Database Management System,简称DBMS。平时我们所说的MySQL,Oracle等都是数据库管理系统。关系型数据库还可以称为RDBMS(R指的是Relational,关系的意思)

在MySQL里可以创建多个数据库,每个数据库里则存储一张张表的数据。

表里面存储的数据,才是真正的数据。

‍

例如,

  • 一个MySQL可以创建3个数据库,每个数据库存储一个项目的所有数据,例如教务系统,商城,银行

  • 每个数据库可以创建多个表,例如教务系统有学生表,教师表等;商城数据库有订单表,商品表等;

  • 每个表内在存储具体的数据,例如一个商品表可能有如下数据:

    商品编号 商品名称 商品种类 销售单价 进货单价 登记日期
    0001 T 恤衫 衣服 1000 500 2009-9-20
    0002 打孔器 办公用品 500 320 2009-9-11
    0003 运动 T 恤 衣服 4000 2800
    0004 菜刀 厨房用具 3000 2800 2009-9-20
    0005 高压锅 厨房用具 6800 5000 2009-1-15
    0006 叉子 厨房用具 500 2009-9-20
    0007 擦菜板 厨房用具 880 790 2008-4-28
    0008 圆珠笔 办公用品 100 2009-11-11

‍

‍

示意图:

未命名文件

‍

DBMS 和 Excel 类比:

  • Excel程序本身,可以视为一个DBMS
  • 一个Excel文件,则可以视为数据库
  • 一个Excel文件里可以由多张表(sheet页)

平时我们使用Excel表,都是修改具体某个sheet里的内容。

需要注意的是,在DBMS中表不能合并单元格,而Excel是可以的。

‍

# CS结构

目前DBMS常采用的系统结构是客户端 / 服务器类型(C/S 类型)。通过C/S结构,可以实现多个客户端访问同一个DBMS。

我们可以将MySQL(其他DBMS也是类似的)分为两部分:

  • MySQL Server,真正的MySQL服务器
  • MySQL Client,一个命令行客户端,可以通过它来连接MySQL

示意图:


┌──────────────┐  SQL   ┌──────────────┐
│ MySQL Client │───────>│ MySQL Server │
└──────────────┘  TCP   └──────────────┘
1
2
3
4

MySQL Client的可执行程序是mysql,MySQL Server的可执行程序是mysqld。这也就是为什么之前我们讲Linux下启停MySQL的时候,用的是mysqld。

然后由Server来处理请求,包括读取数据,修改数据。怎么处理的呢?通过磁盘IO,此时示意图如下:


┌──────────────┐  SQL   ┌──────────────┐  IO    ┌──────────────┐
│ MySQL Client │───────>│ MySQL Server │───────>│ Disk		   │
└──────────────┘  TCP   └──────────────┘  IO    └──────────────┘
1
2
3
4

‍

‍

# 执行SQL的方法

接下来就开始边执行SQL边学习了。

如果是在命令行执行SQL:输入完SQL后,按下回车执行;

如果是在可视化工具执行:点击具体的执行按钮来执行。

例如Navicat的执行按钮:

‍

‍

# 数据库的管理

‍

‍

# 查看数据库版本

如下两个SQL都能查询到版本:

select @@version;
select version();

-- 结果:
+-----------+
| @@version |
+-----------+
| 8.1.0     |
+-----------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10

如果是通过命令行来连接的,那么刚登录的时候也能看到版本信息

‍

‍

‍

# 查看数据库

可以用show databases; 查看当前DBMS下,有多少个数据库:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
11
12

‍

可以看到有6个,这6个是安装完MySQL后自动创建的。

‍

简单说明这几个数据库是干嘛的:

  • information_schema:用于记录其他数据库的基本信息;
  • mysql:用于记录 MySQL 相关,包括权限、用户、历史操作等核心信息;
  • performance_schema:用于记录数据库运行信息;
  • sakila:示例数据库,用来练习,由Oracle提供,用于模拟一个DVD租赁店,并且包含了更多表格以及更复杂的表格关系。
  • sys:用于记录操作系统相关的内容。
  • world:有3张表city,country和countrylanguage,主要是记录了全球的国家、城市和语言信息

‍

‍

# 创建数据库

我们可以用create database 数据库名;的方式来新建一个数据库:

mysql> create database shop;
Query OK, 1 row affected (0.00 sec)
1
2

‍

我们再次查询下,可以看到创建成功了,目前MySQL下有7个数据库。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| shop               |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
11
12
13

‍

‍

‍

# 删除数据库

语法:

drop database 数据库名;
1

‍

‍

例如:

mysql> drop database shop;
Query OK, 0 rows affected (0.01 sec)
1
2

‍

删除需谨慎,特别是没有备份的情况下。

‍

‍

‍

# 指定数据库

对一个数据库进行操作时(例如查询表的数据,修改表的数据),要首先将其切换为当前数据库:

mysql> use shop;
Database changed
1
2

‍

‍

# 查看当前指定的数据库

语法:select database();

mysql> use shop;
Database changed


mysql> select database();
+------------+
| database() |
+------------+
| shop       |
+------------+
1 row in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
11

‍

‍

# 查看建库语句

有时候想看该数据库是使用什么语句创建出来的,就可以用show create database 数据库名; 命令,例如:

show create database shop;

-- 结果:
+----------+-------------------------------+
| Database | Create Database                                                                                                                |
+----------+-----------------------------------+
| shop     | CREATE DATABASE `shop` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+---------------------------------------+
1 row in set (0.01 sec)
1
2
3
4
5
6
7
8
9

‍

‍

(完)

‍

上次更新: 2024/5/30 15:25:05
数据库的启停与连接
SQL概述

← 数据库的启停与连接 SQL概述→

Theme by Vdoing | Copyright © 2022-2024 | 粤 ICP 备 2022067627 号-1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式