欢迎光临白事网
详情描述

CREATE TABLEDROP TABLE 语句实现。以下是详细说明和示例:

一、创建表(增)

1. 基本语法

CREATE TABLE 表名 (
    列名1 数据类型 [约束条件],
    列名2 数据类型 [约束条件],
    ...
    [表级约束条件]
);

2. 常用示例

-- 创建学生表
CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 创建带外键的表
CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    customer_id INT,
    order_date DATE,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

3. 创建表时添加约束

CREATE TABLE employees (
    emp_id INT PRIMARY KEY,
    emp_name VARCHAR(50) NOT NULL,
    dept_id INT,
    salary DECIMAL(10,2) CHECK (salary > 0),
    hire_date DATE DEFAULT (CURDATE()),
    -- 表级约束
    CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

4. 基于现有表创建新表

-- 复制表结构(不复制数据)
CREATE TABLE new_students LIKE students;

-- 复制表结构和数据
CREATE TABLE students_backup AS SELECT * FROM students;

-- 复制部分数据
CREATE TABLE students_over20 AS 
SELECT * FROM students WHERE age > 20;

二、删除表(删)

1. 基本语法

DROP TABLE 表名;

2. 安全删除

-- 普通删除
DROP TABLE students;

-- 安全删除(如果表存在才删除)
DROP TABLE IF EXISTS students;

-- 删除多个表
DROP TABLE table1, table2, table3;

-- 级联删除(删除表及其依赖对象)
DROP TABLE orders CASCADE;  -- PostgreSQL

3. 清空表数据(保留表结构)

-- 删除所有数据(不可回滚)
TRUNCATE TABLE students;

-- 删除所有数据(可回滚)
DELETE FROM students;

三、高级操作

1. 临时表

-- 创建临时表(会话结束时自动删除)
CREATE TEMPORARY TABLE temp_data (
    id INT,
    value VARCHAR(100)
);

-- 临时表插入数据
INSERT INTO temp_data VALUES (1, 'test');

2. 全局临时表(SQL Server)

CREATE TABLE ##GlobalTemp (
    id INT,
    data VARCHAR(50)
);

3. 分区表(MySQL)

CREATE TABLE sales (
    sale_id INT,
    sale_date DATE,
    amount DECIMAL(10,2)
)
PARTITION BY RANGE (YEAR(sale_date)) (
    PARTITION p2020 VALUES LESS THAN (2021),
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION p2022 VALUES LESS THAN (2023)
);

四、注意事项

⚠️ 删除表的注意事项:

数据丢失DROP TABLE 会永久删除表结构和所有数据 权限要求:需要相应权限 依赖关系:有外键引用时需要先删除或使用 CASCADE 备份:重要数据应先备份

✅ 最佳实践:

-- 1. 删除前先检查
SHOW TABLES LIKE 'students';

-- 2. 使用IF EXISTS避免错误
DROP TABLE IF EXISTS old_students;

-- 3. 重要操作前备份
CREATE TABLE students_backup AS SELECT * FROM students;

-- 4. 在生产环境使用事务(如果支持)
BEGIN TRANSACTION;
DROP TABLE IF EXISTS temp_table;
COMMIT;

5. 不同数据库的差异

-- MySQL
CREATE TABLE IF NOT EXISTS table_name ...
DROP TABLE IF EXISTS table_name;

-- SQL Server
IF OBJECT_ID('table_name', 'U') IS NOT NULL
    DROP TABLE table_name;

-- Oracle
DROP TABLE table_name PURGE;  -- 立即释放空间

五、完整示例

-- 创建数据库
CREATE DATABASE school_db;
USE school_db;

-- 创建院系表
CREATE TABLE departments (
    dept_id INT PRIMARY KEY AUTO_INCREMENT,
    dept_name VARCHAR(50) NOT NULL UNIQUE
);

-- 创建学生表
CREATE TABLE students (
    student_id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(50) NOT NULL,
    age INT CHECK (age >= 0),
    dept_id INT,
    admission_date DATE DEFAULT (CURRENT_DATE),
    FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

-- 创建备份表
CREATE TABLE students_archive LIKE students;

-- 删除表(如果有)
DROP TABLE IF EXISTS old_students;

-- 清空测试数据
TRUNCATE TABLE test_data;

记住:删除操作不可逆,执行前务必确认和备份!

相关帖子
创建家庭农场或合作社,在土地流转与政策对接方面需要注意什么?
创建家庭农场或合作社,在土地流转与政策对接方面需要注意什么?
未来“数字黄金”概念的出现,会对实物黄金需求有影响吗?
未来“数字黄金”概念的出现,会对实物黄金需求有影响吗?
申请育儿补贴需要准备哪些材料及具体流程详解
申请育儿补贴需要准备哪些材料及具体流程详解
宿州市白事丧事一条龙服务|殡葬追悼会服务,1小时随叫随到
宿州市白事丧事一条龙服务|殡葬追悼会服务,1小时随叫随到
宿州市企业获客助手&网站搭建服务,一站式建站服务
宿州市企业获客助手&网站搭建服务,一站式建站服务
hpsysdrv.exe是什么进程?hpsysdrv.exe是病毒吗?
hpsysdrv.exe是什么进程?hpsysdrv.exe是病毒吗?
汕尾市AI数字人制作小视频#企业网站建设公司,专业开发团队
汕尾市AI数字人制作小视频#企业网站建设公司,专业开发团队
湘潭市小视频制作与剪辑&商城网站定制,专业设计团队
湘潭市小视频制作与剪辑&商城网站定制,专业设计团队
coreldraw怎么勾画轮廓图?coreldraw勾画轮廓图方法
coreldraw怎么勾画轮廓图?coreldraw勾画轮廓图方法
Pandas索引器 loc 和 iloc 比较及代码示例
Pandas索引器 loc 和 iloc 比较及代码示例
MYSQL的日志文件详解
MYSQL的日志文件详解
益阳市殡葬一条龙公司电话|家庭白事服务,24小时服务热线
益阳市殡葬一条龙公司电话|家庭白事服务,24小时服务热线
2026年婚纱租赁店的卫生管理,是否有相关的行业规范或标准可以参考?
2026年婚纱租赁店的卫生管理,是否有相关的行业规范或标准可以参考?
面对一些生活必需品的价格波动,普通家庭可以采取哪些策略来平稳开支?
面对一些生活必需品的价格波动,普通家庭可以采取哪些策略来平稳开支?
手机号不再使用,但忘记绑定了哪些应用,有什么方法可以全面查询和解绑?
手机号不再使用,但忘记绑定了哪些应用,有什么方法可以全面查询和解绑?
对于网络上流传的历史类或社会类文章,普通读者可以从哪些角度评估其可信度?
对于网络上流传的历史类或社会类文章,普通读者可以从哪些角度评估其可信度?
Tomcat服务器日志超详细讲解
Tomcat服务器日志超详细讲解
AJAX POST数据中有特殊符号(转义字符)导致数据丢失的解决方法
AJAX POST数据中有特殊符号(转义字符)导致数据丢失的解决方法
明明知道熬夜不好,为什么就是控制不住自己?如何克服报复性熬夜?
明明知道熬夜不好,为什么就是控制不住自己?如何克服报复性熬夜?
不同城市间关于父母随迁落户的具体执行细则,主要差异体现在哪里?
不同城市间关于父母随迁落户的具体执行细则,主要差异体现在哪里?