在这篇文章中,我们将详细介绍如何在 MySQL 中创建和管理数据库与表。这些是数据库开发中最基础的操作,掌握了它们,你就能够有效地管理和维护数据库。文章将以简明易懂的方式,通过示例代码帮助你更好地理解每一个操作。
一、创建数据库的方法
创建数据库是使用MySQL的第一步。以下是创建数据库的基本方法:
CREATE DATABASE database_name;
例如,创建一个名为 my_company 的数据库:
CREATE DATABASE my_company;
如果你想要在数据库不存在时才创建它,可以使用:
CREATE DATABASE IF NOT EXISTS my_company;
你还可以在创建数据库时指定字符集和排序规则:
CREATE DATABASE my_company
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
二、数据库的基本操作
1. 查看数据库
要查看所有存在的数据库:
SHOW DATABASES;
要查看特定数据库的创建语句:
SHOW CREATE DATABASE my_company;
2. 修改数据库
你可以修改数据库的字符集和排序规则:
ALTER DATABASE my_company
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
3. 删除数据库
删除数据库的语法如下:
DROP DATABASE my_company;
为了安全起见,你可以加上 IF EXISTS 子句:
DROP DATABASE IF EXISTS my_company;
三、创建表的语法与结构
创建表是组织数据的关键步骤。以下是创建表的基本语法:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
column3 datatype constraint,
....
);
例如,创建一个 employees 表:
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE,
salary DECIMAL(10, 2)
);
这个例子展示了几个重要的概念:
- AUTO_INCREMENT: 自动递增
- PRIMARY KEY: 主键约束
- NOT NULL: 非空约束
- UNIQUE: 唯一约束
四、表的基本操作
1. 查看表
查看数据库中所有的表:
SHOW TABLES;
查看表的结构:
DESCRIBE employees;
或者:
SHOW COLUMNS FROM employees;
2. 修改表
添加新列:
ALTER TABLE employees
ADD COLUMN department VARCHAR(50);
修改列的数据类型:
ALTER TABLE employees
MODIFY COLUMN salary DECIMAL(12, 2);
删除列:
ALTER TABLE employees
DROP COLUMN department;
3. 删除表
删除表的语法如下:
DROP TABLE employees;
同样,为了安全起见,可以加上 IF EXISTS:
DROP TABLE IF EXISTS employees;
五、数据类型与约束
1. 常用数据类型
(1) 数值类型:
- INT: 整数
- DECIMAL(M,D): 精确小数,M是总位数,D是小数位数
(2) 字符串类型:
- VARCHAR(n): 可变长字符串
- CHAR(n): 固定长度字符串
- TEXT: 长文本
(3) 日期和时间类型:
- DATE: 日期
- TIME: 时间
- DATETIME: 日期和时间
- TIMESTAMP: 时间戳
(4) 布尔类型:
- BOOLEAN 或 BOOL: 布尔值(TRUE 或 FALSE)
2. 约束
- PRIMARY KEY: 主键约束
- FOREIGN KEY: 外键约束
- UNIQUE: 唯一约束
- NOT NULL: 非空约束
- CHECK: 检查约束(MySQL 8.0.16 及以上版本支持)
- DEFAULT: 默认值约束
例如,创建一个带有这些约束的 orders 表:
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(10, 2) CHECK (total_amount > 0),
status ENUM('pending', 'shipped', 'delivered') DEFAULT 'pending',
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
这个例子展示了:
- 主键约束(PRIMARY KEY)
- 非空约束(NOT NULL)
- 默认值约束(DEFAULT)
- 检查约束(CHECK)
- 外键约束(FOREIGN KEY)
结语
掌握数据库和表的创建与管理是使用MySQL的基础。本文详细介绍了创建和管理数据库与表的方法,包括基本操作、数据类型和约束的使用。通过实践这些操作,你将能够更好地设计和管理你的数据库结构。良好的数据库设计是高效和可维护的数据库应用程序的基础。在实际应用中,要根据具体需求选择合适的数据类型和约束,以确保数据的完整性和一致性。