SQL表操作是數(shù)據(jù)庫管理的核心技能,涵蓋結(jié)構(gòu)定義(創(chuàng)建/修改/刪除表)與元數(shù)據(jù)查詢(查看表結(jié)構(gòu))四大操作。下面按SQL表操作的操作類型進(jìn)行解析:
一、創(chuàng)建表(CREATE TABLE)
作用:定義新表的結(jié)構(gòu)(字段名、數(shù)據(jù)類型、約束等)
基本語法:
CREATE TABLE 表名 (
字段名1 數(shù)據(jù)類型 [約束條件],
字段名2 數(shù)據(jù)類型 [約束條件],
...
);
語法元素說明
| | |
---|
CREATE TABLE | | |
表名 | 需遵循數(shù)據(jù)庫命名規(guī)范(通常小寫+下劃線) | |
字段名 | | |
數(shù)據(jù)類型 | 定義字段存儲(chǔ)格式(如整數(shù)、文本、日期等) | |
約束條件 | 可選規(guī)則(如主鍵PRIMARY KEY 、非空NOT NULL ) | |
數(shù)據(jù)類型說明
| | |
---|
INT | | 18 |
VARCHAR(n) | | '張三' |
CHAR(n) | | 'M' |
DATE | | '2005-08-12' |
DECIMAL(p,s) | 精確小數(shù)(p=總位數(shù), s=小數(shù)位數(shù)) | 99.95 |
BOOLEAN | | TRUE |
返回值
- 成功:無直接數(shù)據(jù)返回,在系統(tǒng)表(如
information_schema.tables
)中注冊(cè)新表 - 失敗:返回錯(cuò)誤信息(如語法錯(cuò)誤、表名沖突)
應(yīng)用示例:創(chuàng)建學(xué)生表
需求描述:建立學(xué)生信息表,包含:
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
gender CHAR(1) CHECK (gender IN ('M', 'F')),
class_code VARCHAR(10),
birth_date DATE
);
關(guān)鍵約束說明:
PRIMARY KEY
:強(qiáng)制學(xué)號(hào)唯一且非空
二、修改表(ALTER TABLE)
作用:動(dòng)態(tài)調(diào)整已存在的表結(jié)構(gòu)
基本語法:
ALTER TABLE 表名
[ADD | DROP | MODIFY | CHANGE] 列名 [新數(shù)據(jù)類型] [位置選項(xiàng)];
子命令解析
1. 新增字段(ADD COLUMN)
ALTER TABLE 表名
ADD COLUMN 新字段名 數(shù)據(jù)類型 [FIRST|AFTER 已有字段];
位置選項(xiàng):
2. 刪除字段(DROP COLUMN)
ALTER TABLE 表名
DROP COLUMN 字段名;
?? 風(fēng)險(xiǎn)提示:該操作直接刪除列及數(shù)據(jù),無確認(rèn)步驟
3. 修改字段類型(MODIFY COLUMN)
ALTER TABLE 表名
MODIFY COLUMN 字段名 新數(shù)據(jù)類型;
限制:僅兼容數(shù)據(jù)類型轉(zhuǎn)換(如VARCHAR(10)
→VARCHAR(20)
),非兼容轉(zhuǎn)換(如文本→數(shù)字)需數(shù)據(jù)清洗
4. 重命名字段(CHANGE COLUMN)
ALTER TABLE 表名
CHANGE COLUMN 舊字段名 新字段名 數(shù)據(jù)類型;
注:必須攜帶數(shù)據(jù)類型(即使不改類型)
5. 表重命名(RENAME TO)
ALTER TABLE 舊表名
RENAME TO 新表名;
返回值
- 失?。哄e(cuò)誤提示(如字段不存在、數(shù)據(jù)類型沖突)
應(yīng)用示例:班級(jí)表結(jié)構(gòu)迭代
初始表結(jié)構(gòu):
CREATE TABLE classes (
class_id INT,
class_name VARCHAR(20)
);
需求變更:
- 添加班主任字段(
head_teacher VARCHAR(30)
)
-- 添加班主任字段(置于末尾)
ALTER TABLE classes
ADD COLUMN head_teacher VARCHAR(30);
-- 重命名字段(需保留數(shù)據(jù)類型)
ALTER TABLE classes
CHANGE COLUMN class_name name VARCHAR(20);
-- 刪除舊ID列
ALTER TABLE classes
DROP COLUMN class_id;
三、刪除表(DROP TABLE)
作用:徹底移除表結(jié)構(gòu)及所有數(shù)據(jù)
基本語法:
DROP TABLE [IF EXISTS] 表名;
語法元素說明
| | |
---|
DROP TABLE | | |
IF EXISTS | 防錯(cuò)機(jī)制(表不存在時(shí)不報(bào)錯(cuò)) | |
表名 | | |
返回值
- 失敗:表不存在且未用
IF EXISTS
時(shí)返回錯(cuò)誤
應(yīng)用示例:清理臨時(shí)表
-- 安全刪除寫法(避免因表不存在導(dǎo)致腳本中斷)
DROP TABLE IF EXISTS temp_log_data;
-- 傳統(tǒng)寫法(表不存在時(shí)報(bào)錯(cuò))
DROP TABLE debug_records;
?? 重要提醒:生產(chǎn)環(huán)境務(wù)必通過權(quán)限控制限制DROP
操作,并搭配備份機(jī)制
四、查看表結(jié)構(gòu)(DESCRIBE/DESC)
作用:獲取表的字段定義元數(shù)據(jù)
基本語法:
DESC 表名;
-- 或
DESCRIBE 表名;
返回結(jié)果字段說明
| | |
---|
Field | | student_id |
Type | | int(11) |
Null | | NO |
Key | | PRI |
Default | | NULL |
Extra | | |
應(yīng)用示例:查看學(xué)生表結(jié)構(gòu)
DESC students;
典型輸出:
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| student_id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | NO | | NULL | |
| gender | char(1) | YES | | NULL | |
| class_code | varchar(10) | YES | | NULL | |
| birth_date | date | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
五、綜合應(yīng)用:全流程模擬數(shù)據(jù)操作
步驟1:創(chuàng)建模擬表(公司部門表)
CREATE TABLE departments (
dept_id INT PRIMARY KEY AUTO_INCREMENT,
dept_name VARCHAR(50) NOT NULL UNIQUE,
create_date DATE DEFAULT '2023-01-01'
);
步驟2:插入模擬數(shù)據(jù)
INSERT INTO departments (dept_name, create_date)
VALUES
('技術(shù)研發(fā)部', '2018-05-10'),
('市場(chǎng)運(yùn)營部', '2019-11-22'),
('人力資源部', '2020-03-15');
步驟3:結(jié)構(gòu)變更(添加預(yù)算字段)
ALTER TABLE departments
ADD COLUMN annual_budget DECIMAL(12,2) NOT NULL DEFAULT 100000.00;
步驟4:驗(yàn)證操作
-- 查看最新表結(jié)構(gòu)
DESC departments;
-- 查詢數(shù)據(jù)
SELECT * FROM departments;
輸出樣例:
+-----------+------------------+------------+----------------+
| dept_id | dept_name | create_date| annual_budget |
+-----------+------------------+------------+----------------+
| 1 | 技術(shù)研發(fā)部 | 2018-05-10 | 100000.00 |
| 2 | 市場(chǎng)運(yùn)營部 | 2019-11-22 | 100000.00 |
| 3 | 人力資源部 | 2020-03-15 | 100000.00 |
+-----------+------------------+------------+----------------+
語法要點(diǎn)總結(jié)
- 創(chuàng)建表 → 定義數(shù)據(jù)結(jié)構(gòu)基石
- 修改表 → 支撐業(yè)務(wù)動(dòng)態(tài)演進(jìn)
- 刪除表 → 謹(jǐn)慎操作的數(shù)據(jù)回收
- 查看結(jié)構(gòu) → 元數(shù)據(jù)快速探查
?? 擴(kuò)展提示:
- 表操作常配合約束(
PRIMARY KEY
, FOREIGN KEY
)保證數(shù)據(jù)質(zhì)量 - 生產(chǎn)環(huán)境建議使用可視化工具(如MySQL Workbench)輔助生成DDL語句
- 所有表結(jié)構(gòu)變更操作應(yīng)在測(cè)試環(huán)境充分驗(yàn)證后執(zhí)行
閱讀原文:原文鏈接
該文章在 2025/9/1 12:06:22 編輯過