SQL表操作是数据库管理的核心技能,涵盖结构定义(创建/修改/删除表)与元数据查询(查看表结构)四大操作。下面按SQL表操作的操作类型进行解析:
一、创建表(CREATE TABLE)
作用:定义新表的结构(字段名、数据类型、约束等)
基本语法:
CREATE TABLE 表名 (
    字段名1 数据类型 [约束条件],
    字段名2 数据类型 [约束条件],
    ...
);
语法元素说明
|  |  |  | 
|---|
| CREATE TABLE |  |  | 
| 表名 |  |  | 
| 字段名 |  |  | 
| 数据类型 |  |  | 
| 约束条件 | 可选规则(如主键 PRIMARY KEY、非空NOT NULL) |  | 
数据类型说明
|  |  |  | 
|---|
| INT |  | 18 | 
| VARCHAR(n) |  | '张三' | 
| CHAR(n) |  | 'M' | 
| DATE |  | '2005-08-12' | 
| DECIMAL(p,s) |  | 99.95 | 
| BOOLEAN |  | TRUE | 
返回值
- 成功:无直接数据返回,在系统表(如information_schema.tables)中注册新表
应用示例:创建学生表
需求描述:建立学生信息表,包含:
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
);
关键约束说明:
二、修改表(ALTER TABLE)
作用:动态调整已存在的表结构
基本语法:
ALTER TABLE 表名
    [ADD | DROP | MODIFY | CHANGE] 列名 [新数据类型] [位置选项];
子命令解析
1. 新增字段(ADD COLUMN)
ALTER TABLE 表名 
ADD COLUMN 新字段名 数据类型 [FIRST|AFTER 已有字段];
位置选项:
2. 删除字段(DROP COLUMN)
ALTER TABLE 表名 
DROP COLUMN 字段名;
⚠️ 风险提示:该操作直接删除列及数据,无确认步骤
3. 修改字段类型(MODIFY COLUMN)
ALTER TABLE 表名 
MODIFY COLUMN 字段名 新数据类型;
限制:仅兼容数据类型转换(如VARCHAR(10)→VARCHAR(20)),非兼容转换(如文本→数字)需数据清洗
4. 重命名字段(CHANGE COLUMN)
ALTER TABLE 表名 
CHANGE COLUMN 旧字段名 新字段名 数据类型;
注:必须携带数据类型(即使不改类型)
5. 表重命名(RENAME TO)
ALTER TABLE 旧表名 
RENAME TO 新表名;
返回值
应用示例:班级表结构迭代
初始表结构:
CREATE TABLE classes (
    class_id INT,
    class_name VARCHAR(20)
);
需求变更:
- 添加班主任字段(head_teacher VARCHAR(30))
-- 添加班主任字段(置于末尾)
ALTER TABLE classes 
ADD COLUMN head_teacher VARCHAR(30);
-- 重命名字段(需保留数据类型)
ALTER TABLE classes 
CHANGE COLUMN class_name name VARCHAR(20);
-- 删除旧ID列
ALTER TABLE classes 
DROP COLUMN class_id;
三、删除表(DROP TABLE)
作用:彻底移除表结构及所有数据
基本语法:
DROP TABLE [IF EXISTS] 表名;
语法元素说明
返回值
应用示例:清理临时表
-- 安全删除写法(避免因表不存在导致脚本中断)
DROP TABLE IF EXISTS temp_log_data;
-- 传统写法(表不存在时报错)
DROP TABLE debug_records;
📌 重要提醒:生产环境务必通过权限控制限制DROP操作,并搭配备份机制
四、查看表结构(DESCRIBE/DESC)
作用:获取表的字段定义元数据
基本语法:
DESC 表名;    
-- 或
DESCRIBE 表名;
返回结果字段说明
|  |  |  | 
|---|
| Field |  | student_id | 
| Type |  | int(11) | 
| Null |  | NO | 
| Key |  | PRI | 
| Default |  | NULL | 
| Extra |  |  | 
应用示例:查看学生表结构
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    |       |
+-------------+-------------+------+-----+---------+-------+
五、综合应用:全流程模拟数据操作
步骤1:创建模拟表(公司部门表)
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:插入模拟数据
INSERT INTO departments (dept_name, create_date) 
VALUES 
    ('技术研发部', '2018-05-10'),
    ('市场运营部', '2019-11-22'),
    ('人力资源部', '2020-03-15');
步骤3:结构变更(添加预算字段)
ALTER TABLE departments 
ADD COLUMN annual_budget DECIMAL(12,2) NOT NULL DEFAULT 100000.00;
步骤4:验证操作
-- 查看最新表结构
DESC departments;
-- 查询数据
SELECT * FROM departments;
输出样例:
+-----------+------------------+------------+----------------+
| dept_id   | dept_name        | create_date| annual_budget  |
+-----------+------------------+------------+----------------+
| 1         | 技术研发部       | 2018-05-10 | 100000.00      |
| 2         | 市场运营部       | 2019-11-22 | 100000.00      |
| 3         | 人力资源部       | 2020-03-15 | 100000.00      |
+-----------+------------------+------------+----------------+
语法要点总结
🔍 扩展提示:
- 表操作常配合约束(PRIMARY KEY,FOREIGN KEY)保证数据质量
- 生产环境建议使用可视化工具(如MySQL Workbench)辅助生成DDL语句
阅读原文:原文链接
该文章在 2025/9/1 12:06:22 编辑过