⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

SQL CREATE TABLE 建表语句完全指南

全面掌握SQL建表语法:数据类型选择、约束定义、主键外键、默认值、自增列、索引创建 · 难度:入门 · +20XP

CREATE TABLE 概述

CREATE TABLE 是DDL中最核心的语句,用于定义数据库表的结构——列名、数据类型和约束条件

基本语法

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    ...
    table_constraints
);

完整建表示例

CREATE TABLE students (
    id          INT AUTO_INCREMENT PRIMARY KEY,  -- 主键,自增
    name        VARCHAR(50) NOT NULL,            -- 姓名,非空
    age         INT DEFAULT 18,                  -- 年龄,默认18
    gender      ENUM('男','女'),                 -- 性别枚举
    email       VARCHAR(100) UNIQUE,             -- 邮箱唯一
    class_id    INT,                             -- 班级ID
    created_at  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (class_id) REFERENCES classes(id)  -- 外键
);

常用数据类型

类型说明示例
INT / BIGINT整数age INT
DECIMAL(M,N)精确小数price DECIMAL(10,2)
VARCHAR(N)变长字符串name VARCHAR(100)
TEXT长文本content TEXT
DATE日期birth_date DATE
TIMESTAMP时间戳created_at TIMESTAMP
BOOLEAN布尔值is_active BOOLEAN
ENUM枚举status ENUM('a','b')

约束详解

约束关键字作用
主键PRIMARY KEY唯一标识每行,自动NOT NULL+UNIQUE
非空NOT NULL该列不能为空
唯一UNIQUE该列值不能重复
默认值DEFAULT没提供值时使用的默认值
外键FOREIGN KEY ... REFERENCES引用另一张表的主键
检查CHECK自定义约束条件
CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT NOT NULL,
    total DECIMAL(10,2) CHECK (total > 0),       -- 金额必须>0
    status VARCHAR(20) DEFAULT 'pending',
    FOREIGN KEY (user_id) REFERENCES users(id)
        ON DELETE CASCADE  -- 用户删除时级联删除订单
);

常用DDL操作

-- 修改表结构
ALTER TABLE students ADD COLUMN phone VARCHAR(20);
ALTER TABLE students MODIFY COLUMN age SMALLINT;
ALTER TABLE students DROP COLUMN phone;

-- 删除表
DROP TABLE IF EXISTS temp_data;

-- 创建索引
CREATE INDEX idx_name ON students(name);
CREATE UNIQUE INDEX idx_email ON students(email);

💡 练习任务

创建一套课程管理系统的表:courses(课程)、enrollments(选课记录),包含适当的数据类型、主键、外键和约束。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0