Skip to content

数据库操作

本章将介绍MySQL数据库的创建、查看、选择和删除等基本操作。

创建数据库

基本语法

sql
-- 创建数据库的基本语法
-- CREATE DATABASE [IF NOT EXISTS] 数据库名 
-- [DEFAULT] CHARACTER SET 字符集名
-- [DEFAULT] COLLATE 校对规则名;

-- 创建简单数据库
CREATE DATABASE mydb;

-- 创建数据库前检查是否存在
CREATE DATABASE IF NOT EXISTS mydb;

-- 创建数据库并指定字符集
CREATE DATABASE mydb 
DEFAULT CHARACTER SET utf8mb4;

-- 创建数据库并指定字符集和校对规则
CREATE DATABASE mydb 
DEFAULT CHARACTER SET utf8mb4 
DEFAULT COLLATE utf8mb4_unicode_ci;

-- 创建数据库示例
CREATE DATABASE IF NOT EXISTS shop_db
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;

数据库命名规范

sql
/*
 * 数据库命名规范:
 * 
 * 1. 使用小写字母
 * 2. 使用下划线分隔单词
 * 3. 名称要有意义
 * 4. 避免使用MySQL保留字
 * 5. 名称长度不超过64个字符
 */

-- 推荐的命名方式
CREATE DATABASE online_shop;      -- 在线商店
CREATE DATABASE blog_system;      -- 博客系统
CREATE DATABASE user_management;  -- 用户管理

-- 不推荐的命名方式
-- CREATE DATABASE MyDatabase;    -- 大小写混合
-- CREATE DATABASE my-database;   -- 使用连字符
-- CREATE DATABASE 123db;         -- 数字开头
-- CREATE DATABASE select;        -- 使用保留字

查看数据库

sql
-- 查看所有数据库
SHOW DATABASES;

/*
 * 输出示例:
 * +--------------------+
 * | Database           |
 * +--------------------+
 * | information_schema |
 * | mysql              |
 * | performance_schema |
 * | sys                |
 * | mydb               |
 * +--------------------+
 */

-- 查看数据库创建语句
SHOW CREATE DATABASE mydb;

/*
 * 输出示例:
 * CREATE DATABASE `mydb` 
 * /*!40100 DEFAULT CHARACTER SET utf8mb4 
 * COLLATE utf8mb4_unicode_ci */
 */

-- 模糊查询数据库
SHOW DATABASES LIKE 'my%';

-- 查看当前选择的数据库
SELECT DATABASE();

系统数据库说明

sql
/*
 * MySQL系统数据库:
 * 
 * 1. information_schema
 *    - 存储数据库元数据
 *    - 包含所有数据库的结构信息
 *    - 如表、列、索引等
 * 
 * 2. mysql
 *    - 存储用户账户和权限信息
 *    - 存储系统配置信息
 * 
 * 3. performance_schema
 *    - 存储性能监控数据
 *    - 用于性能分析和调优
 * 
 * 4. sys
 *    - 基于performance_schema的视图
 *    - 提供易读的性能数据
 */

-- 查询information_schema中的表
USE information_schema;
SHOW TABLES;

-- 查询所有数据库中的表数量
SELECT table_schema, COUNT(*) as table_count
FROM information_schema.tables
GROUP BY table_schema;

选择数据库

sql
-- 选择/切换数据库
USE mydb;

-- 选择数据库后显示
-- Database changed

-- 查看当前数据库
SELECT DATABASE();

-- 查看当前数据库中的表
SHOW TABLES;

-- 创建数据库后直接选择
CREATE DATABASE IF NOT EXISTS mydb;
USE mydb;

修改数据库

sql
-- 修改数据库字符集
ALTER DATABASE mydb 
DEFAULT CHARACTER SET utf8mb4;

-- 修改数据库字符集和校对规则
ALTER DATABASE mydb 
DEFAULT CHARACTER SET utf8mb4 
DEFAULT COLLATE utf8mb4_unicode_ci;

-- 查看修改后的结果
SHOW CREATE DATABASE mydb;

删除数据库

sql
-- 删除数据库的基本语法
-- DROP DATABASE [IF EXISTS] 数据库名;

-- 删除数据库
DROP DATABASE mydb;

-- 删除前检查是否存在
DROP DATABASE IF EXISTS mydb;

-- 注意:删除数据库会删除其中所有数据,谨慎操作!

数据库操作实例

sql
-- 完整的数据库操作流程

-- 1. 创建数据库
CREATE DATABASE IF NOT EXISTS shop_system
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;

-- 2. 查看数据库
SHOW DATABASES LIKE 'shop%';

-- 3. 选择数据库
USE shop_system;

-- 4. 查看当前数据库
SELECT DATABASE();

-- 5. 修改数据库字符集
ALTER DATABASE shop_system
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_0900_ai_ci;

-- 6. 查看修改结果
SHOW CREATE DATABASE shop_system;

-- 7. 删除数据库(谨慎操作)
-- DROP DATABASE IF EXISTS shop_system;

数据库文件存储

sql
/*
 * MySQL数据库文件存储位置:
 * 
 * Windows:C:\ProgramData\MySQL\MySQL Server 8.0\Data\
 * Linux:/var/lib/mysql/
 * macOS:/usr/local/mysql/data/
 * 
 * 每个数据库对应一个文件夹
 * 文件夹中包含:
 * - db.opt:数据库配置文件
 * - 表结构文件:表名.frm
 * - 数据文件:表名.ibd(InnoDB)
 * - 索引文件:表名.MYI(MyISAM)
 * - 数据文件:表名.MYD(MyISAM)
 */

-- 查看数据目录位置
SHOW VARIABLES LIKE 'datadir';

本章小结

本章学习了:

  • 创建数据库:CREATE DATABASE语法和字符集设置
  • 查看数据库:SHOW DATABASES和相关查询
  • 选择数据库:USE命令切换数据库
  • 修改数据库:ALTER DATABASE修改配置
  • 删除数据库:DROP DATABASE删除数据库
  • 系统数据库:information_schema、mysql等系统库
  • 数据库命名规范:小写、下划线、有意义

下一章,我们将学习数据类型,了解MySQL支持的各种数据类型。