17 创建表的基本语法

在上一节中,我们详细讨论了PostgreSQL中常用的数据类型。理解了如何为表中的列选择合适的数据类型后,接下来我们将学习如何创建表。创建表是数据库操作中最基本的操作之一,理解其语法和选项对于后续的数据库设计和数据操作至关重要。

创建表的基本语法

在PostgreSQL中,创建表的基本语法如下:

1
2
3
4
CREATE TABLE 表名 (
列名 数据类型 [约束],
...
);
  • CREATE TABLE 是创建表的关键字。
  • 表名 是你要创建的表的名称。
  • 列名和数据类型定义了表中的列和相应的数据类型。
  • 约束是可选的,用于对列的数据施加更多限制。

示例:创建一个简单的用户表

我们现在来创建一个简单的用户表,称为 users,表中包括用户的ID、姓名和电子邮件地址。我们的SQL语句如下:

1
2
3
4
5
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);

在这个示例中:

  • user_id 是一个自增的整型字段,使用 SERIAL 数据类型,这意味着它会自动生成唯一的ID,并使用 PRIMARY KEY 约束来确保每个用户的ID是唯一的。
  • username 列的数据类型为 VARCHAR(50),表示可以存储长度不超过50个字符的字符串,并且使用了 NOT NULL 约束,要求该字段不能为空。
  • email 列的数据类型为 VARCHAR(100),同样加上了 NOT NULL 约束,同时使用了 UNIQUE 约束,确保电子邮件在表中是唯一的。

创建表的约束

在创建表时,我们可以应用多种约束来保证数据的完整性:

  • 主键约束 (PRIMARY KEY): 确保列的值唯一且不为空。通常用于标识每一行数据。
  • 唯一约束 (UNIQUE): 确保列的值不重复,允许空值。
  • 非空约束 (NOT NULL): 确保列的值不能为NULL。
  • 外键约束 (FOREIGN KEY): 确保列的值在另一张表中存在,通常用于维持表之间的关系。

示例:创建一个带外键的订单表

为了更好地理解外键,我们将创建一个新的表 orders,它将关联到之前创建的 users 表:

1
2
3
4
5
6
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
order_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
amount DECIMAL(10, 2) NOT NULL
);

在这个示例中:

  • order_id 是主键,标识每个订单。
  • user_id 是一个整型,使用 REFERENCES users(user_id) 设置了外键约束,确保每个订单都对应一个有效的用户。
  • order_date 是订单日期,使用 TIMESTAMP 类型,且默认值为当前时间。
  • amount 是订单金额,使用 DECIMAL(10, 2) 数据类型表示,确保金额到小数点后两位。

创建表的注意事项

  • 在定义表名时,应遵循命名约定,避免使用保留字。
  • 选择合适的数据类型能够帮助提高存储效率和查询性能。
  • 适当使用约束来保证数据的完整性和一致性。

总结

在本节中,我们讨论了创建表的基本语法和相关约束,学习了如何定义表结构以满足业务需求。掌握了创建表的基本知识后,我们可以继续进行更为复杂的操作,比如如何插入数据、修改表结构等。接下来,我们将进入下一章,学习如何使用 SELECT 语句进行数据查询,这将是我们与数据库进行交互的重要工具。

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论