数据库知识复习01

张开发
2026/4/9 13:10:06 15 分钟阅读

分享文章

数据库知识复习01
第一部分MySQL 数据库1 数据库介绍1.1 什么是数据库数据描述事物的符号记录可以是数字、文字、图形、图像、声音、语言等经过数字化后可存入计算机。数据库存储数据的仓库是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按特定数据模型组织、描述和存储核心特点包括数据结构化共享性高、冗余度低、易扩充数据独立性高由 DBMS 统一管理和控制涵盖安全性、完整性、并发控制、故障恢复等1.2 什么是数据库管理系统数据库系统成熟的标志是数据库管理系统的出现其核心定义与功能如下全称DataBase Management System简称 DBMS本质管理数据库的专用软件充当所有数据的知识库负责数据的存储、安全、一致性、并发操作、恢复和访问。核心价值实现数据的快速检索和维护保障数据的安全性、完整性、并发控制和数据恢复内置数据字典又称系统表存储元数据关于数据的数据如数据的名字、结构、位置和类型。1.3 常见数据库分类数据库主要分为关系型数据库和非关系型数据库NoSQL两大类具体说明如下1.3.1 关系型数据库核心定义建立在关系模型基础上的数据库借助集合代数等数学概念处理数据。现实世界中的实体及实体间联系均通过关系模型表示本质是由多张可互相联接的二维行列表格组成。关系模型即二维表格模型关系型数据库由二维表及表间联系构成数据组织。主流产品Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL、浪潮 K-DB、武汉达梦、南大通用、人大金仓等。设计工具实体关系模型E-R 模型通过实体 - 关系图表示数据库概念设计助力设计构思与沟通。1.3.2 非关系型数据库核心定义又称 NoSQLNot Only SQL意为 “不仅仅是 SQL”是轻量、开源、不兼容 SQL 功能的数据库。最普遍定义是 “非关联型”核心强调 Key-Value 存储和文档数据库的优点而非单纯反对 RDBMS关系型数据库管理系统。2 MySQL 服务器部署在Linux 系统中通过官方 YUM 仓库部署 MySQL 8.4 LTS 版本的完整流程包含下载、安装、验证、卸载清理全步骤。2.0 安装前说明安装环境LinuxCentOS/RHEL/Rocky 9 系列安装方式官方 YUM 仓库在线安装最稳定、最推荐安装版本MySQL 8.4.3 LTS长期支持版官方下载地址MySQL 官网2.1 官方下载页面导航打开 MySQL 官方首页找到顶部导航栏【DOWNLOADS】选项卡进入下载页面在下载页面中选择【MySQL Community (GPL) Downloads】社区免费版社区版页面提供三种安装方式MySQL Yum RepositoryYUM 在线仓库安装MySQL Community Server二进制 / 源码手动安装MySQL Installer for WindowsWindows 老版本安装工具2.2 配置 MySQL YUM 在线仓库2.2.1 下载并安装官方 YUM 仓库我们直接在 Linux 系统中使用wget/rpm命令安装官方仓库无需手动下载上传。执行以下命令安装 MySQL 8.4 官方 YUM 源# 下载仓库安装包 wget https://repo.mysql.com/mysql84-community-release-el9-1.noarch.rpm # RPM 方式安装仓库二选一执行即可推荐直接 rpm 安装 rpm -i mysql84-community-release-el9-1.noarch.rpm # 或者直接通过网络链接安装无需提前下载 rpm -i https://repo.mysql.com/mysql84-community-release-el9-1.noarch.rpm安装过程可能出现密钥提示属于正常现象warning: /var/tmp/rpm-tmp.QsZluK: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY2.2.2 验证仓库是否安装成功安装完成后查看系统可用仓库确认 MySQL 仓库已添加dnf repolist出现以下仓库即表示成功mysql-8.4-lts-community MySQL 8.4 LTS Community Server mysql-connectors-community MySQL Connectors Community mysql-tools-8.4-lts-community MySQL Tools 8.4 LTS Community2.3 安装 MySQL 8.4 服务器使用dnf命令直接安装 MySQL 服务器包系统会自动解决依赖。dnf install mysql-server -y2.3.1 安装过程说明执行后系统会自动下载mysql-community-server主程序自动安装依赖包client、libs、plugins、common 等导入 MySQL 官方 GPG 密钥完成完整安装典型安装日志如下Dependencies resolved. Install 6 Packages Total download size: 59 M Installed size: 330 M Importing GPG key 0xA8D3785C: Userid : MySQL Release Engineering mysql-buildoss.oracle.com From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 Installed: mysql-community-server mysql-community-client mysql-community-client-plugins mysql-community-common mysql-community-icu-data-files mysql-community-libs Complete!安装完成当前版本MySQL 8.4.3-1.el92.4 MySQL 卸载与完全清理如果需要重装、更换版本可执行以下命令彻底清理 MySQL不留残留文件。# 1. 卸载 mysql-server dnf remove mysql-server -y # 2. 删除数据目录 rm -rf /var/lib/mysql # 3. 删除日志文件 rm -rf /var/log/mysqld.log # 4. 删除 mysql 用户及残留文件 userdel -r mysql执行后可能出现提示userdel: mysql mail spool (/var/spool/mail/mysql) not found userdel: mysql home directory (/var/lib/mysql) not found属于正常现象不影响清理结果。2.5 二进制本地安装RPM Bundle 方式二进制本地安装适用于无网络环境或需精准控制安装包版本的场景通过下载官方 RPM 捆绑包本地解压后安装步骤如下2.5.1 安装前清理可选避免冲突若之前安装过 MySQL 相关组件先执行清理操作# 卸载已安装的 MySQL 服务 dnf remove mysql-server -y # 删除数据目录 rm -rf /var/lib/mysql # 删除日志文件 rm -rf /var/log/mysqld.log # 删除 MySQL 用户 userdel -r mysql注执行userdel时若提示 “目录不存在”属于正常现象不影响清理效果。2.5.2 下载 RPM 捆绑包导航至 MySQL 官方下载页面进入 MySQL 官网 → 【DOWNLOADS】→ 【MySQL Community (GPL) Downloads】→ 【MySQL Community Server】选择下载类型在下载列表中找到【RPM Bundle】选项对应系统版本el9.x86_64点击【Download】进入确认页面下载安装包方式 1浏览器下载后上传至 Linux 服务器方式 2Linux 系统中直接用wget命令下载推荐wget https://cdn.mysql.com/Downloads/MySQL-8.4/mysql-8.4.3-1.el9.x86_64.rpm-bundle.tar提示文档中部分下载链接因时效问题可能出现 “link dead” 报错可前往 MySQL 官网获取最新 RPM Bundle 下载地址。2.5.3 解压 RPM 捆绑包下载完成后执行解压命令查看包含的所有 RPM 组件# 解压 tar 包无需指定解压目录直接解压到当前目录 tar xf mysql-8.4.3-1.el9.x86_64.rpm-bundle.tar # 查看解压后的 RPM 文件 ll mysql-*解压后会生成多个 RPM 包核心组件包括mysql-community-server-8.4.3-1.el9.x86_64.rpm服务端主程序mysql-community-client-8.4.3-1.el9.x86_64.rpm客户端工具mysql-community-libs-8.4.3-1.el9.x86_64.rpm依赖库mysql-community-common-8.4.3-1.el9.x86_64.rpm公共组件其他辅助组件如 debug 包、devel 包按需安装2.5.4 本地安装 MySQL 组件使用dnf localinstall命令安装核心服务端组件自动解决依赖关系# 安装服务端主程序会自动安装所需依赖组件 dnf localinstall mysql-community-server-8.4.3-1.el9.x86_64.rpm -y2.5.5 安装过程说明执行命令后系统会自动解析依赖客户端、libs、common 等组件下载缺失的依赖包约 8.9MB验证并安装所有组件最终安装 6 个核心包总安装大小约 330MB安装完成后提示Complete!表示 MySQL 服务端已安装成功2.6 容器平台安装Docker 方式通过 Docker 容器安装 MySQL无需复杂环境配置隔离性强、部署快速步骤如下2.6.1 安装前清理可选清理旧版 Docker 或 MySQL 残留# 卸载旧版 Docker 相关组件 dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ podman \ runc -y # 清理 MySQL 残留同 2.2.1 步骤 dnf remove mysql-server -y rm -rf /var/lib/mysql /var/log/mysqld.log userdel -r mysql2.6.2 配置 Docker YUM 仓库安装 Docker 依赖工具dnf -y install dnf-plugins-core添加 Docker 官方 YUM 仓库dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo仓库配置详情来自文档内置配置[docker-ce-stable] nameDocker CE Stable - $basearch baseurlhttps://download.docker.com/linux/rhel/$releasever/$basearch/stable enabled1 gpgcheck1 gpgkeyhttps://download.docker.com/linux/rhel/gpg [docker-ce-stable-source] nameDocker CE Stable - Sources baseurlhttps://download.docker.com/linux/rhel/$releasever/source/stable enabled0 gpgcheck1 gpgkeyhttps://download.docker.com/linux/rhel/gpg [docker-ce-test] nameDocker CE Test - $basearch baseurlhttps://download.docker.com/linux/rhel/$releasever/$basearch/test enabled0 gpgcheck1 gpgkeyhttps://download.docker.com/linux/rhel/gpg2.6.3 安装 Docker 相关组件dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y安装完成后会自动部署 10 个组件包括docker-ceDocker 引擎核心docker-ce-cliDocker 命令行工具containerd.io容器运行时其他辅助插件buildx、compose 等2.6.4 启动 Docker 服务# 设置 Docker 开机自启并立即启动 systemctl enable --now docker验证 Docker 状态systemctl status docker显示active (running)表示启动成功。2.6.5 拉取 MySQL 8.4.3 镜像# 拉取指定版本的 MySQL 镜像8.4.3 docker pull mysql:8.4.3拉取完成后查看镜像docker images会显示mysql:8.4.3镜像大小约 594MB。2.6.6 启动 MySQL 容器# 创建并启动 MySQL 容器 # --name容器名称mysqltest # -e MYSQL_ROOT_PASSWORD设置 root 密码123456 # -d后台运行容器 docker run --name mysqltest -e MYSQL_ROOT_PASSWORD123456 -d mysql:8.4.32.6.7 验证容器与 MySQL 服务查看运行中的容器docker ps会显示容器 ID、镜像名称、状态Up 表示运行中。进入容器并登录 MySQL# 进入容器终端交互式 docker exec -it mysqltest /bin/bash # 登录 MySQL输入设置的密码 123456 mysql -uroot -p测试 MySQL 功能-- 查看 MySQL 版本 select version(); -- 查看默认数据库 show databases;正常输出版本号8.4.3和默认数据库列表说明安装成功。2.6.8 容器与镜像管理可选停止并删除容器# 停止容器 docker stop mysqltest # 删除容器 docker rm mysqltest镜像导出与导入无网络环境可用# 导出镜像为本地文件MySQL843.tar docker save -o MySQL843.tar mysql:8.4.3 # 导入本地镜像文件 docker load -i MySQL843.tar三种安装方式对比总结安装方式优点缺点适用场景YUM 在线仓库自动解决依赖、安装简单、易升级依赖网络、版本受仓库限制有网络环境、快速部署二进制本地RPM Bundle无网络依赖、版本精准控制需手动解压、依赖需手动处理无网络环境、定制化安装Docker 容器环境隔离、部署快速、无冲突依赖 Docker 环境、性能略有损耗开发 / 测试环境、快速迭代2.7 MySQL 源码部署源码部署适合需要高度定制化、优化编译、无网络环境的场景编译过程较长但可灵活控制功能与路径。环境Linux EL9 系统MySQL 8.4.3 源码版本。2.7.1 下载源码包进入 MySQL 官网下载页面选择Source Code下载。也可直接在 Linux 使用wget下载wget https://cdn.mysql.com/Downloads/MySQL-8.4/mysql-8.4.3.tar.gz2.7.2 安装前环境清理dnf remove mysql-server -y rm -rf /var/lib/mysql rm -rf /var/log/mysqld.log userdel -r mysql2.7.3 创建目录并移动源码mkdir /mysql mv mysql-8.4.3.tar.gz /mysql cd /mysql ll2.7.4 解压源码tar xf mysql-8.4.3.tar.gz cd mysql-8.4.3 pwd2.7.5 创建专用用户与权限groupadd mysql useradd -r -g mysql -s /bin/false mysql chmod 777 /mysql/ -R2.7.6 安装编译依赖dnf install cmake openssl-devel ncurses-devel rpcgen gcc-toolset-12-gcc gcc-toolset-12-gcc-c gcc-toolset-12-binutils -y安装额外依赖包rpm -i https://yum.oracle.com/repo/OracleLinux/OL9/codeready/builder/x86_64/getPackage/libtirpc-devel-1.3.3-9.el9.x86_64.rpm2.7.7 创建编译目录并编译mkdir bld cd bld cmake .. make make install编译时间较长耐心等待。2.7.8 初始化 MySQLcd /usr/local/mysql mkdir mysql-files chown mysql:mysql mysql-files chmod 750 mysql-files bin/mysqld --initialize --usermysql记住输出的临时密码例如A temporary password is generated for rootlocalhost: H2!Ygartiz2.7.9 启动 MySQLbin/mysqld_safe --usermysql 2.7.10 登录并修改密码mysql -S /tmp/mysql.sock -uroot -p输入临时密码后必须修改密码才能使用alter user rootlocalhost identified by redhat; show databases;2.7.11 源码卸载清理make clean rm -rf /usr/local/mysql/2.8 Windows 平台安装 MySQL2.8.1 服务端安装官网下载 MySQL Windows 安装包双击运行选择Typical典型安装点击 Install 开始安装安装完成后启动MySQL Configurator一路默认设置 root 密码执行配置完成安装2.8.2 命令行测试打开 MySQL 命令行客户端select version(); show databases;2.8.3 图形客户端MySQL Workbench安装mysql-workbench-community-8.0.40-winx64解决字符集报错进入目录C:\Program Files\MySQL\MySQL Workbench 8.0\workbench编辑os_utils.py找到第356 行将utf-8改为gbk保存。2.8.4 Windows 环境变量配置此电脑 → 属性 → 高级系统设置 → 环境变量系统变量 → Path → 编辑新建路径C:\Program Files\MySQL\MySQL Server 8.4\bin确定保存重启 cmd 即可使用mysql命令。2.8.5 Windows 卸载清理控制面板 → 卸载 MySQL删除以下目录C:\Program Files\MySQL C:\ProgramData\MySQL C:\Users\用户\AppData\Roaming\MySQL删除注册表项HKEY_CURRENT_USER\Software\MySQL HKEY_CURRENT_USER\Software\MySQL AB HKEY_CURRENT_USER\Software\Oracle\MySQL Workbench HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB3、SQL 语句基础3.1 SQL 简介SQLStructured Query Language结构化查询语言是基于关系模型的数据库标准操作语言。SQL 发展历史起源于20 世纪 70 年代由 IBM 研究员 E.F. Codd 提出关系模型最初作为 IBM 关系数据库原型System R的关系语言实现数据检索1986 年ANSI美国国家标准学会发布第一个 SQL 标准SQL-86后续被 ISO国际标准化组织采纳为国际标准标准持续演进SQL-89 → SQL-92 → SQL:2016 → 最新标准从基础数据操作逐步扩展到复杂事务、面向对象、分布式等高级功能SQL 核心作用定义数据库结构增删改查数据管理用户权限控制数据库安全与事务3.2 SQL 语句分类SQL 语言功能强大仅用 9 个核心动词即可完成数据库几乎所有操作。分类英文全称功能说明核心动词DDL数据定义语言定义 / 删除 / 修改数据库、表、索引等对象CREATE、DROP、ALTERDML数据操纵语言对表数据进行增、删、改INSERT、DELETE、UPDATEDQL数据查询语言从表中查询 / 检索数据SELECTDCL数据控制语言管理用户权限、访问控制GRANT、REVOKE动词说明CREATE创建库、表、视图等DROP删除库、表等ALTER修改表结构INSERT插入数据DELETE删除数据UPDATE更新数据SELECT查询数据最常用GRANT授予权限REVOKE收回权限3.3 SQL 语言的特点SQL 是一门简洁、高效、通用的数据库语言具备五大特点综合统一一套语法完成数据库全生命周期操作定义 → 操纵 → 查询 → 权限控制。高度非过程化只需告诉数据库“做什么”无需关心“怎么做”由数据库自动优化执行。面向集合以数据集合为单位操作一次性处理多行数据结果也是集合。两种使用方式直接交互式使用独立语言嵌入 Java/Python/PHP 等语言中使用嵌入式语言简洁、易学易用语法接近自然英语无编程经验也可快速上手。3.4 SQL 语句书写规范为保证代码可读性、规范性、可维护性必须遵守以下规则基本规范SQL 关键字建议大写SELECT、FROM、WHERE、INSERT 等库名、表名、字段名建议小写必须使用英文半角符号逗号、括号、分号等适当使用空格、缩进提高可读性必须添加注释方便理解3.5 MySQL 注释语法三种MySQL 支持三种注释方式必须掌握。1# 单行注释# 这是单行注释 SELECT * FROM user;2-- 单行注释注意后面必须加空格-- 这是另一种单行注释 SELECT * FROM product;3/* */ 多行注释/* 这是多行注释 可以写多行内容 */ SELECT * FROM orders;3.6 权限语句示例DCL-- 给 user1 用户授予 Teach 库下 Student 表的查询权限 GRANT SELECT ON Teach.Student TO user1; -- 收回 user1 用户的查询权限 REVOKE SELECT ON Teach.Student FROM user1;

更多文章