要在 SQL 中创建表,您需要使用 CREATE TABLE
语句。此命令通过指定列名、数据类型和可选约束(如主键或唯一值)来定义表的结构。一个基本的例子是 CREATE TABLE users (id INT, name VARCHAR(50));
,它创建了一个名为 users
的表,其中包含一个整数 id
和一个字符串 name
列(限制为 50 个字符)。每列必须具有数据类型,例如 INT
表示整数,VARCHAR(n)
表示可变长度字符串,DATE
表示日期,或 BOOLEAN
表示真/假值。像 NOT NULL
这样的约束可以强制执行规则,例如,email VARCHAR(100) NOT NULL
确保 email
列不能为空。
高级表创建包括定义主键、索引和关系。主键唯一标识行,通常使用 id INT PRIMARY KEY
或 PRIMARY KEY (column1, column2)
表示复合键。例如,CREATE TABLE products (product_id INT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2));
确保每个产品都有一个唯一的 ID。您可以添加默认值(例如,stock_quantity INT DEFAULT 0
)或自动递增 ID(MySQL 中的 id INT AUTO_INCREMENT
)。外键链接表:CREATE TABLE orders (order_id INT, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id));
通过 user_id
将 orders
绑定到 users
。像 INDEX(name)
这样的索引可以提高频繁搜索列的查询速度。
最佳实践包括使用清晰的命名约定(例如,snake_case
),避免将保留关键字用于表/列名,以及选择最小化存储的数据类型(例如,如果值很小,则使用 SMALLINT
代替 INT
)。始终使用约束来加强数据完整性,例如 UNIQUE(email)
来防止重复的电子邮件。诸如模式设计器或 ORM 迁移之类的工具可以帮助管理复杂的表。从简单开始:过早地过度设计包含过多的列或索引可能会使维护复杂化。例如,一个基本的 employees
表可能包括 id
、first_name
、last_name
和 hire_date
,并根据需要稍后添加可选字段。使用示例数据测试您的模式,以确保它满足应用程序要求。