create table 用于创建新表,其基本语法包括表名、字段名、数据类型和约束条件;例如 create table users (id int primary key, name varchar(50), email varchar(100));使用约束如 primary key、foreign key、unique、not NULL 可提升数据规范性;常见数据类型包括 int、varchar、decimal、date 等;通过 auto_increment 或 default 可实现自动递增和默认值功能,简化数据插入操作。
在 sql 中,CREATE TABLE 是用来创建新表的基础语句。掌握它的基本用法和常见技巧,能帮助你更高效地设计数据库结构。
基本语法要清晰
使用 CREATE TABLE 时,最基本的格式包括表名、字段名、数据类型以及是否允许为空等约束条件。比如:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) );
这里定义了一个名为 users 的表,包含三个字段:id(整数类型,主键)、name 和 email(字符串类型)。
注意几点:
- 每个字段需要指定数据类型;
- 主键可以是单个字段,也可以是多个字段组合;
- 可以通过 NOT NULL 来限制字段不能为空。
约束条件别忽略
建表时加上合适的约束,能让数据更加规范和安全。常见的约束包括:
- PRIMARY KEY:主键,唯一标识一条记录;
- FOREIGN KEY:外键,用于关联其他表;
- UNIQUE:字段值必须唯一;
- NOT NULL:字段不能为 NULL;
- CHECK:对字段值进行条件检查(不是所有数据库都支持);
举个例子:
CREATE TABLE orders ( order_id INT PRIMARY KEY, user_id INT, amount DECIMAL(10,2) NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) );
这段代码中,amount 字段不允许为空,而且 user_id 要引用 users 表的 id 字段。
数据类型选择有讲究
不同数据库系统支持的数据类型略有差异,但常见的几种一定要熟悉:
- 整数类型:INT, BIGINT;
- 浮点类型:DECIMAL(p, s)、Float;
- 字符串类型:CHAR(n)、VARCHAR(n);
- 日期时间:DATE, DATETIME, timestamp;
- 布尔值:有些数据库用 Boolean,有些用 TINYINT 或 BIT;
比如:
CREATE TABLE products ( product_id INT, product_name VARCHAR(100), price DECIMAL(8,2), created_at DATE );
选择合适的数据类型不仅能节省存储空间,还能提升查询性能。
自动递增和默认值可以简化操作
很多数据库支持字段自动赋值功能,例如:
- AUTO_INCREMENT(mysql)或 IDENTITY(postgresql/SQL Server)可以让主键自动增长;
- DEFAULT 可以为字段设置默认值;
示例:
CREATE TABLE logs ( log_id INT AUTO_INCREMENT PRIMARY KEY, message TEXT, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
这样插入数据时就不用手动写 log_id 和 created,数据库会自动处理。
基本上就这些内容了。虽然看起来不复杂,但在实际开发中,建表时考虑周全,能避免后期很多麻烦。