跳到主要内容

SQL创建表(CREATE TABLE)

提示
  1. 基本用途:SQL中的CREATE TABLE语句用于创建存储数据的数据库表。
  2. 语法要求:创建表时,必须指定表名、列名以及每列的数据类型(如int, varchar, text等)。
  3. 高级选项:可以使用IF NOT EXISTS来避免创建重复的表名,或者使用CREATE TABLE AS从现有表中复制数据创建新表。

数据库表用于存储记录(数据)。要创建数据库表,我们使用 SQL 的 CREATE TABLE 语句。

示例

CREATE TABLE Companies (
id int,
name varchar(50),
address text,
email varchar(50),
phone varchar(10)
);

这里,SQL 命令创建了一个名为 Companies 的表,包含列:idnameaddressemailphone

CREATE TABLE 语法

SQL CREATE TABLE 语句的语法是:

CREATE TABLE table_name(
column1 data type, column2 data type, ...
);

这里,

  • table_name 是表的名称
  • column1, column2, ... 是表中列的名称
  • data type 是列的数据类型(可以是整数、字符串、日期等)

示例:创建 SQL 表

CREATE TABLE Students(
id int,
name varchar(50),
address text,
grades varchar(50),
phone varchar(10)
);

这里,intvarchar(50)text 是数据类型,说明可以在该字段中存储什么数据。一些常用的数据类型如下:

数据类型描述示例
int可以存储数字400, -300
varchar(x)可以存储最大长度为 x 的可变字符John Doe, United States of America
text可以存储最多 65535 个字符的文本这是一个可以超过多行的非常长的段落。

注意: 在创建表时,我们必须为每个列提供数据类型。了解更多关于 SQL 数据类型

CREATE TABLE IF NOT EXISTS

如果您创建与现有表同名的表,将收到错误消息。为解决此问题,我们可以在创建表时添加可选的 IF NOT EXISTS 命令。

例如,

CREATE TABLE IF NOT EXISTS Companies (
id int,
name varchar(50),
address text,
email varchar(50),
phone varchar(10)
);

这里,SQL 命令只在不存在同名表时创建 Companies 表。

CREATE TABLE AS

我们还可以使用 CREATE TABLE AS 命令,利用任何其他现有表的记录来创建表。例如,

-- 通过复制 Customers 表中国家为 USA 的记录来创建表
CREATE TABLE USACustomers
AS (
SELECT *
FROM Customers
WHERE country = 'USA'
);

这里,SQL 命令创建了一个名为 USACustomers 的表,并将嵌套查询的记录复制到新表中。

推荐阅读