MySQL 数据库管理
第六章:MySQL 数据库与表的管理
6.1 管理方法概述
6.1.1 图形化工具
| 工具名称 | 特点 |
|---|---|
| MySQL Workbench | 官方免费工具,功能全面 |
| Navicat | 商业软件,界面友好 |
| phpMyAdmin | 基于Web的免费工具 |
| DBeaver | 开源,支持多种数据库 |
| DataGrip | JetBrains出品,功能强大 |
6.1.2 命令行工具
# 连接 MySQL
mysql -u root -p
# 连接到指定数据库
mysql -u root -p 数据库名
6.2 SQL语言分类
| 类型 | 全称 | 作用 | 主要语句 |
|---|---|---|---|
| DQL | Data Query Language | 按条件检索数据 | SELECT |
| DDL | Data Definition Language | 定义数据库结构 | CREATE、ALTER、DROP、TRUNCATE |
| DML | Data Manipulation Language | 增删改数据 | INSERT、UPDATE、DELETE |
| DCL | Data Control Language | 权限控制、事务管理 | GRANT、REVOKE、COMMIT、ROLLBACK |
6.3 MySQL 与 SQL Server 的主要区别
| 对比项 | SQL Server | MySQL |
|---|---|---|
| 扩展语言 | T-SQL | 标准SQL + 扩展 |
| 管理工具 | SSMS | MySQL Workbench |
| 文件结构 | .mdf/.ndf/.ldf | 目录 + .ibd文件 |
| 文件组 | 支持 | 不支持 |
| 存储引擎 | 单一 | InnoDB/MyISAM等 |
| 标识列 | IDENTITY | AUTO_INCREMENT |
| 字符串连接 | + | CONCAT() |
6.4 MySQL 存储架构
注意:MySQL 不像 SQL Server 那样需要手动管理数据文件,文件管理由存储引擎自动完成。
6.5 数据库的创建
6.5.1 最简单的创建方式
CREATE DATABASE 学生管理;
6.5.2 指定字符集创建
CREATE DATABASE 学生管理
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
字符集说明:
| 字符集/排序规则 | 说明 |
|---|---|
| utf8mb4 | 完整的UTF-8编码,支持emoji表情 |
| utf8 | MySQL的UTF-8子集,最多3字节(不推荐) |
| utf8mb4_unicode_ci | 不区分大小写的排序规则 |
| utf8mb4_general_ci | 更快但不够精确的排序 |
| utf8mb4_bin | 二进制比较,区分大小写 |
6.5.3 完整语法
CREATE DATABASE 复习1
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
6.5.4 检查数据库是否存在
-- 如果已存在则不创建(避免报错)
CREATE DATABASE IF NOT EXISTS 学生管理
CHARACTER SET utf8mb4;
6.5.5 查看已创建的数据库
-- 查看所有数据库
SHOW DATABASES;
-- 查看某个数据库的创建语句
SHOW CREATE DATABASE 学生管理;
6.5.6 创建数据库注意事项
| 注意点 | 说明 |
|---|---|
| ✓ 数据库名不能重复 | 同一服务器上数据库名唯一 |
| ✓ 建议使用 utf8mb4 字符集 | 支持中文和emoji |
| ✓ 数据库名建议使用小写 | Linux系统区分大小写 |
| ✓ 避免使用 MySQL 保留字 | 如 order、select 等 |
| ✓ 如必须使用特殊字符 | 用反引号 ` 包围 |
-- 使用反引号处理特殊名称
CREATE DATABASE `order`; -- order是保留字
CREATE DATABASE `my-database`; -- 包含连字符
6.6 数据库的修改
6.6.1 修改字符集
ALTER DATABASE 学生管理
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
6.6.2 修改数据库名称
⚠️ 重要提示:MySQL 没有直接重命名数据库的命令!
方法:导出再导入
# 步骤1:导出旧数据库
mysqldump -u root -p 旧数据库名 > backup.sql
# 步骤2:创建新数据库
mysql -u root -p -e "CREATE DATABASE 新数据库名"
# 步骤3:导入到新数据库
mysql -u root -p 新数据库名 < backup.sql
# 步骤4:删除旧数据库
mysql -u root -p -e "DROP DATABASE 旧数据库名"
6.7 数据库的删除
6.7.1 删除单个数据库
DROP DATABASE 学生管理;
6.7.2 安全删除(存在才删除)
DROP DATABASE IF EXISTS 学生管理;
6.7.3 批量删除
-- MySQL 不支持一条语句删除多个数据库,需要分开写
DROP DATABASE IF EXISTS 数据库1;
DROP DATABASE IF EXISTS 数据库2;
DROP DATABASE IF EXISTS 数据库3;
6.7.4 删除前确认
-- 查看数据库中的表
USE 学生管理;
SHOW TABLES;
-- 确认后再删除
DROP DATABASE 学生管理;
⚠️ 警告:
DROP DATABASE会永久删除:
- 数据库中的所有表
- 表中的所有数据
- 所有视图、存储过程等对象
此操作不可恢复!请先备份重要数据!
⬅️ 逻辑设计与实施维护 🏠 00-数据库 ➡️ 数据表的创建与完整性约束
💬 评论