MySQL创建数据库
概述
创建数据库是使用MySQL时的首要任务之一。数据库是保存相关数据和数据库对象(如表、视图和索引)的容器。
数据库概念
数据库:表和其他对象的容器 字符集:数据存储的字符编码 排序规则:比较和排序字符串的规则 模式:数据库结构定义
CREATE DATABASE语句
基本语法
sql
-- Create a new database
-- Create if not exists (recommended)完整语法
sql
| [DEFAULT] COLLATE collation_name示例
sql
-- Create basic database
-- Create with specific character set
-- Create with specific collation
-- Create with both character set and collation
-- Create if not exists字符集和排序规则
常见字符集
| 字符集 | Description / 描述 |
|---|---|
| 拉丁1(西欧) | |
| UTF-8(每个字符最多3字节) | |
| UTF-8(完整Unicode,最多4字节) |
常见排序规则
| 排序规则 | Description / 描述 |
|---|---|
| 一般不区分大小写 | |
| Unicode不区分大小写 | |
| Unicode 9.0,不区分重音 | |
| Unicode 9.0,区分重音 |
设置字符集和排序规则
sql
-- Check available character sets
-- Check available collations
-- Create database with UTF-8
-- Create database for Chinese
-- Create database for case-sensitive data不同方式创建数据库
使用mysqladmin
bash
# Create database from command line
# Create with character set
# Drop database使用MySQL工作台
使用编程语言
Python / Python
python
# With character setPHP / PHP
php
带选项的命令行
bash
# Create and use database
# Create multiple databases管理数据库
显示数据库
sql
-- List all databases
-- List databases matching pattern
-- List databases with extended info
-- Using information_schema选择数据库
sql
-- Use database
-- Check current database
-- Set default database in connection数据库信息
sql
-- Get database character set
-- Get database size
-- Get table count in database修改数据库
sql
-- Change character set
-- Change collation
-- Change both
-- Change database comments (MySQL 8.0+)删除数据库
sql
-- Drop database
-- Drop if exists (recommended)
-- Drop with patterns重命名数据库
sql
-- Method 1: Use RENAME (MySQL 8.0+)
-- Method 2: Create new and migrate
-- ... repeat for all tables数据库模板
默认数据库
MySQL包含模板数据库:
| 数据库 | Purpose / 用途 |
|---|---|
| 所有数据库的元数据 | |
| 系统数据库 | |
| 性能指标 | |
| 用于诊断的系统视图 |
克隆数据库
bash
# Export and import
# Using MySQL Shell实用示例
示例1:开发数据库
sql
-- Create development database
-- Add comment示例2:生产数据库
sql
-- Create production database with strict mode
-- Production settings示例3:多租户数据库
sql
-- Create tenant database
-- Use tenant database示例4:带区域设置的数据库
sql
-- Database for Chinese users
-- Database for German users
-- Database for Japanese users最佳实践
命名约定
sql
-- Use descriptive names
-- Use lowercase with underscores
-- Avoid reserved words安全考虑
sql
-- Create dedicated user for database
-- Restrict network access
-- In my.cnf:性能考虑
sql
-- Choose appropriate character set
-- utf8mb4 is recommended for Unicode support
-- Use consistent collation across databases故障排除
常见错误
sql
-- Database already exists
-- Error: Can't create database 'name'; database exists
-- Solution: Use IF NOT EXISTS
-- Permission denied
-- Error: Access denied for user to create database
-- Solution: Grant CREATE privilege or use root user
-- Invalid character set
-- Error: Unknown character set or collation
-- Solution: Use SHOW CHARACTER SET to check available
-- Database doesn't exist
-- Error: Unknown database
-- Solution: Check database name with SHOW DATABASES检查数据库状态
sql
-- Check if database exists
-- Get database details
-- List databases with sizes小结
在MySQL中创建数据库涉及:
基本数据库创建 选择适当的编码 定义比较规则 显示、修改、删除数据库 适当的用户权限
上一个:连接
下一个:删除数据库