SQL CREATE TABLE
语句用于创建数据库表。我们使用此表来存储记录(数据)。例如,
示例
-- create a table named Companies with different columns
CREATE TABLE Companies (
id int,
name varchar(50),
address text,
email varchar(50),
phone varchar(10)
);
这里,SQL 命令创建了一个名为 Companies 的数据库,包含以下列:id、name、address、email 和 phone。
SQL CREATE TABLE 语法
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
这里,
- table_name 是您要创建的表的名称
- column 是表中的列名
- datatype 是列可以保存的数据类型(例如,整数、可变字符、日期)
示例:SQL CREATE TABLE
-- create a table Students with different columns
CREATE TABLE Students(
id int,
name varchar(50),
address text,
grades varchar(50),
phone varchar(10)
);
这里,我们创建了一个名为 Students 的表,包含五列。

我们创建的表将不包含任何数据,因为我们没有向表中插入任何内容
这里,int
、varchar(50)
和 text
指定了可以在相应列中存储的数据类型。
注意:在创建表时,我们必须为每个列提供数据类型。要了解更多信息,请访问SQL 数据类型。
CREATE TABLE IF NOT EXISTS
如果我们尝试创建一个已经存在的表,我们会收到错误消息 'Error: table already exists'
。
为了解决这个问题,我们可以在创建表时添加可选的 IF NOT EXISTS
命令。
让我们看一个例子。
-- create a Companies table if it does not exist
CREATE TABLE IF NOT EXISTS Companies (
id int,
name varchar(50),
address text,
email varchar(50),
phone varchar(10)
);
这里,SQL 命令检查是否存在名为 Companies 的表,如果不存在,则创建一个具有指定列的表。
使用另一个现有表创建表
在 SQL 中,我们可以通过复制现有表的结构来创建新表。
让我们看一个例子。
-- create a backup table from the existing table Customers
CREATE TABLE CustomersBackup
AS
SELECT *
FROM Customers;
此 SQL 命令创建名为 CustomersBackup 的新表,复制 Customers 表的结构。
注意:您可以选择复制所有列或特定列。
更多关于 CREATE TABLE
要创建带主键的表,我们可以编写以下命令。
在 MySQL 中
CREATE TABLE Companies (
id int,
name varchar(50),
address text,
email varchar(50),
phone varchar(10),
PRIMARY KEY (id)
);
在 Oracle 和 SQL Server 中
CREATE TABLE Companies (
id int NOT NULL PRIMARY KEY,
name varchar(50),
address text,
email varchar(50),
phone varchar(10)
);
要了解更多信息,请访问SQL PRIMARY KEY。
我们还可以在创建表时添加不同类型的约束。例如,
CREATE TABLE Companies (
id int NOT NULL,
name varchar(50) NOT NULL,
address text,
email varchar(50) NOT NULL,
phone varchar(10)
);
这里,约束 NOT NULL
已添加到列 id、name 和 email。它简单地表示这些列不能为空(NULL)。
要了解更多信息,请访问SQL 约束。
注意:有时这些约束是特定于数据库的,这意味着这些关键字可能因数据库而异。
另请阅读