Z
ZHANK
编程在线教程SQL 教程CREATE TABLE 建表
表设计与索引

CREATE TABLE 建表

掌握数据类型、主键、默认值、AUTO_INCREMENT

CREATE TABLE 建表

数据存在表里,表结构的设计直接影响查询性能和开发体验。

学完本章你将: 掌握数据类型、主键、默认值、AUTO_INCREMENT。


基本语法

sql
CREATE TABLE students (
    id INTEGER PRIMARY KEY,      -- 主键(唯一标识)
    name TEXT NOT NULL,           -- 不允许 NULL
    age INTEGER DEFAULT 18,      -- 默认值
    email TEXT UNIQUE,            -- 唯一
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

常用数据类型

类型说明示例值
INTEGER整数42, -1
REAL浮点数3.14
TEXT字符串'Hello'
BLOB二进制图片、文件
DATETIME日期时间'2024-07-22'

SQLite 只有这 5 种类型,MySQL 有 VARCHAR/INT/DECIMAL 等更丰富的类型。


主键 PRIMARY KEY

每张表都应该有主键,它唯一标识每一行。

sql
-- 自然主键
CREATE TABLE users (email TEXT PRIMARY KEY, name TEXT);

-- 自增主键(推荐)
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,  -- SQLite
    name TEXT
);
-- MySQL: id INT AUTO_INCREMENT PRIMARY KEY

修改与删除表

sql
-- 添加列
ALTER TABLE users ADD COLUMN phone TEXT;

-- 删除表
DROP TABLE IF EXISTS old_data;