- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 创建表
本教程将教你如何使用 SQL 在 RDBMS 中创建表。我们使用 **CREATE TABLE 命令** 在数据库中创建一个表。
在 RDBMS 中,数据库表用于以某种结构(字段和记录)的形式存储数据。这里,**字段** 是定义要存储在表中的数据类型的列,而 **记录** 是包含实际数据的行。简单来说,我们可以说表是行和列的组合。
SQL 提供各种查询,以便以方便的方式与数据交互。我们可以使用 SQL 语句创建和删除表,以及插入、更新和删除这些表中的数据。
有关与 RDBMS 相关的不同概念的更多详细信息,请查看 RDBMS 概念 教程。
SQL CREATE TABLE 语句
SQL 提供 CREATE TABLE 语句来在给定数据库中创建一个新表。创建表的 SQL 查询必须定义表的结构。该结构包括表名以及表中列的名称,以及每列的数据类型。请注意,每个表在数据库中都必须具有唯一的名称。
语法
CREATE TABLE 语句用于在数据库中创建新表。
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
以下是关键点:
- CREATE TABLE 是告诉数据库系统您想要做什么的关键字。在本例中,您想要创建一个新表。表的唯一名称或标识符位于 CREATE TABLE 语句之后。
- 列参数(例如 column1、column2、column3 等)指定表的列名。
- 数据类型参数指定列可以容纳的数据类型(例如整数、varchar、字符串等)。
- PRIMARY KEY 约束唯一标识表中的每条记录。主键必须包含唯一值,并且不能包含 NULL 值。
示例:在 SQL 中创建表
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
以下是关键点:
- 以下代码块是一个示例,它创建一个 CUSTOMERS 表,列名为 ID、NAME、AGE、ADDRESS 和 SALARY,并将 ID 作为主键。
- NOT NULL 是约束条件,表示在创建此表中的记录时,这些字段不能为 NULL。
验证
创建表后,您可以检查它是否已成功创建。您可以使用 SQL **DESC table_name** 命令列出表的描述,如下所示
DESC CUSTOMERS;
这将显示创建的表的结构:列名、各自的数据类型、约束(如有)等。
字段 | 类型 | Null | 键 | 默认值 | 额外 |
---|---|---|---|---|---|
ID | int(11) | 否 | PRI | NULL | |
NAME | varchar(20) | 否 | NULL | ||
AGE | int(11) | 否 | NULL | ||
ADDRESS | char(25) | 是 | NULL | ||
SALARY | decimal(18,2) | 是 | NULL |
现在,您的数据库中已经有了一个 CUSTOMERS 表,您可以使用它来存储与客户相关的所需信息。
SQL CREATE TABLE IF NOT EXISTS
考虑这样一种情况:您将尝试创建一个已经存在的表,在这种情况下,MySQL 将抛出以下错误。
ERROR 1050 (42S01): Table 'CUSTOMERS' already exists
因此,为了避免此类错误,我们可以使用 SQL 命令 **CREATE TABLE IF NOT EXISTS** 来创建表。
语法
以下是 CREATE TABLE IF NOT EXISTS 语句的基本语法:
CREATE TABLE IF NOT EXISTS table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
示例:创建表(如果不存在)
以下 SQL 命令仅在不存在同名表时才创建 **CUSTOMERS** 表,否则它将退出而不会出现任何错误。
CREATE TABLE IF NOT EXISTS CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
从现有表创建表
无需每次都创建新表,也可以将现有表及其内容(包括其结构)复制到新表中。这可以使用 CREATE TABLE 语句和 SELECT 语句的组合来完成。由于复制了其结构,因此新表将具有与原始表相同的列定义。此外,将使用旧表中的现有值填充新表。
语法
从另一个表创建表的基本语法如下:
CREATE TABLE NEW_TABLE_NAME AS SELECT [column1, column2...columnN] FROM EXISTING_TABLE_NAME WHERE Condition;
这里,column1、column2…是现有表的字段,并将用于创建新表的字段。
示例:从现有表创建表
以下是一个示例,它将使用 CUSTOMERS 表创建一个 SALARY 表,并包含客户 ID 和客户 SALARY 字段:
CREATE TABLE SALARY AS SELECT ID, SALARY FROM CUSTOMERS;
这将创建一个新的 SALARY 表,该表将具有以下结构:
字段 | 类型 | Null | 键 | 默认值 | 额外 |
---|---|---|---|---|---|
ID | int(11) | 否 | PRI | NULL | |
SALARY | decimal(18,2) | 是 | NULL |