詳細講解數據庫與表的創建與管理
在這篇文章中,我們將詳細介紹如何在 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的基礎。本文詳細介紹了創建和管理數據庫與表的方法,包括基本操作、數據類型和約束的使用。通過實踐這些操作,你將能夠更好地設計和管理你的數據庫結構。良好的數據庫設計是高效和可維護的數據庫應用程序的基礎。在實際應用中,要根據具體需求選擇合適的數據類型和約束,以確保數據的完整性和一致性。