SQL CREATE表
在任何RDBMS中,数据库表用于以一些结构(字段和记录)的形式存储数据。在这里, 字段 是定义表中要存储数据的数据类型的列, 记录 是包含实际数据的行。SQL提供了各种查询来方便地与数据交互。我们可以使用SQL语句来创建和删除表,向这些表中插入、更新和删除数据。本教程将教你如何使用SQL创建表。有关与RDBMS相关的不同概念的更详细信息,请参阅RDBMS概念教程。
SQL CREATE TABLE语句
SQL提供了 CREATE TABLE 语句来在给定的数据库中创建一个新表。用于创建表的SQL查询必须定义表的结构。结构包括表的名称和表中每个列的名称及其数据类型。请注意,在数据库中每个表必须具有唯一的名称。
语法
以下是SQL CREATE TABLE语句的基本语法:
CREATE TABLE是关键字,告诉数据库系统你想要做什么。在这种情况下,你想创建一个新表。表的唯一名称或标识符在CREATE TABLE语句后面。
然后在括号中列出了每个列的定义以及它是什么数据类型。以下示例可以使语法更清晰。
示例
以下代码块是一个示例,它创建了一个名为CUSTOMERS的表,其中ID是主键,NOT NULL是表示在创建记录时这些字段不能为空的约束条件。
验证
创建表后,您可以检查它是否成功创建。您可以使用SQL命令 DESC table_name 列出表的描述信息,如下所示:
这将显示所创建的表的结构:列名、对应的数据类型、约束(如果有)等。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
ID | int(11) | NO | PRI | NULL | |
NAME | varchar(20) | NO | NULL | ||
AGE | int(11) | NO | NULL | ||
ADDRESS | char(25) | YES | NULL | ||
SALARY | decimal(18,2) | YES | NULL |
现在,您的数据库中有一个名为CUSTOMERS的表,您可以用它来存储与客户相关的所需信息。
SQL CREATE TABLE IF NOT EXISTS
考虑一种情况,您将尝试创建一个已经存在的表,在这种情况下,MySQL将抛出以下错误。
为了避免这种错误,我们可以使用SQL命令 CREATE TABLE IF NOT EXISTS 来创建一个表。
语法
以下是CREATE TABLE IF NOT EXISTS语句的基本语法:
示例
下面的SQL命令只有在不存在同名表时才会创建 CUSTOMERS 表,否则它将以无错误的方式退出。
从现有的表创建一个表
而不是每次都创建一个新的表,也可以复制现有的表及其内容,包括其结构,到一个新的表中。这可以通过使用CREATE TABLE语句和SELECT语句的组合来实现。由于其结构被复制,新表将具有与原始表相同的列定义。此外,新表将使用旧表中的现有值进行填充。
语法
从另一个表创建表的基本语法如下 –
在这里,column1、column2等是现有表的字段,也将用于创建新表的字段。
示例
以下是一个示例,它将使用CUSTOMERS表创建一个名为SALARY的表,其中包含customer ID和customer SALARY字段。
这将创建一个新表SALARY,其中将具有以下结构 –
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
ID | int(11) | NO | PRI | NULL | |
SALARY | decimal(18,2) | YES | NULL |