SQL表创建完全指南:从基础到高级的数据库表设计教程
这是文章《创建SQL表》的第1部分(共1部分)。
内容片段: 当我们需要在关系型数据库中存储数据时,第一步是创建数据库。接下来的步骤是在数据库中创建一张表来存储我们的数据。在本教程中,我们将讨论如何使用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);
以上查询将在”test”数据库模式中创建”customer”表。该表的主键为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")
);
