SQL创建表

时间:2020-02-23 14:32:25  来源:igfitidea点击:

当我们必须将数据存储在关系数据库中时,第一部分是创建数据库。
下一步是在数据库中创建一个表来存储我们的数据。
在本教程中,我们将讨论如何在MySQL和PostgreSQL数据库中使用SQL查询创建表。

我没有介绍SQL Server创建表的示例,因为它们类似于PostgreSQL查询。

SQL创建表

为了将数据存储在表中,了解需要存储的数据类型非常重要。
让我们尝试了解创建表的语法。

SQL创建表语法

CREATE TABLE table_name( column1 datatype, column2 datatype,... column-N datatype, PRIMARY KEY(one or more column) );
  • CREATE TABLE是告诉数据库创建表的关键字。

  • table_name是用于表的唯一名称。

  • 表名称旁边的方括号包含列列表。

  • 该列表包含列名和可以存储在相应列中的数据类型。

  • PRIMARY KEY用于指定要用于主键的列。

具有一列主键的SQL创建表

创建表时,我们必须提供主键信息以及列结构。
让我们看一个示例,创建一个以单列为主键的表。

MySQL

CREATE TABLE `test`.`student` (
`studentId` INT NOT NULL,
`studentName` VARCHAR(45) NULL,
`State` VARCHAR(45) NULL,
`Country` VARCHAR(45) NULL,
PRIMARY KEY (`studentId`),
UNIQUE INDEX `studentId_UNIQUE` (`studentId` ASC) VISIBLE);

上面的查询将创建一个新表" Student",主键列为" studentId"。
请注意,每个列名都有一个定义的数据类型。
例如,我们只能在studentId列中存储INT数据,而可以在studentName列中存储VARCHAR数据。
VARCHAR(45)表示允许的字符串数据的最大大小为45个字符。
由于主键不能为null,因此我们在studentId列定义中进行指定。

PostgreSQL

我们可以使用以下查询在PostgreSQL数据库中创建表。

CREATE TABLE "test.student"(
"StudentId" integer NOT NULL,
"StudentName" character varying(45),
"State" character varying(45),
"Country" character varying(45),
PRIMARY KEY ("StudentId")
);

SQL创建具有多个主键的表

让我们看另一个示例,我们将在主键中使用多个列。

MySQL

CREATE TABLE `test`.`customer` (
`CustomerId` INT NOT NULL,
`CustomerName` VARCHAR(45) NULL,
`ProductId` VARCHAR(45) NOT NULL,
`State` VARCHAR(45) NULL,
PRIMARY KEY (`CustomerId`, `ProductId`),
UNIQUE INDEX `CustomrId_UNIQUE` (`CustomerId` ASC) VISIBLE);

上面的查询将在"测试"数据库模式中创建"客户"表。
该表的主键是CustomerId和ProductId的组合。

PostgreSQL

CREATE TABLE "test.customer"(
"CustomerId" integer NOT NULL,
"CustomerName" character varying(45),
"ProductId" character varying(45),
"Country" character varying(45),
PRIMARY KEY ("CustomerId","ProductId")
);