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") );