Skip to content

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 set

PHP / 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中创建数据库涉及:

基本数据库创建 选择适当的编码 定义比较规则 显示、修改、删除数据库 适当的用户权限


上一个:连接

下一个:删除数据库