MySQL CREATE TABLE
简介:在本教程中,我们将向您展示如何使用MySQL CREATE TABLE语句在数据库中创建新表 。
MySQL CREATE TABLE语法
要在数据库中创建新表,请使用MySQLCREATE TABLE
语句。CREATE TABLE
语句是MySQL中最复杂的语句之一。
以下说明了语句简化版的语法 CREATE TABLE
:
CREATE TABLE [IF NOT EXISTS] table_name( column_list ) ENGINE=storage_engine让我们更详细地研究一下语法。 首先,指定要在
CREATE TABLE
子句之后创建的表的名称。表名在数据库中必须是唯一的。IF NOT EXISTS
子句是可选,允许您检查您正在创建的表是否已存在于数据库中。如果是这种情况,MySQL将忽略整个语句,不会创建任何新表。强烈建议你在每个CREATE TABLE
语句中使用IF NOT EXISTS
,以避免创建已存在的新表时出错。
其次, 您在column_list
部分列中为表指定列,列以逗号分隔。
第三,您可以选择在ENGINE
子句中为表指定存储引擎。您可以使用任何存储引擎,如InnoDB和MyISAM。如果您没有明确声明存储引擎,MySQL将默认使用InnoDB。
自MySQL版本5.5以来,InnoDB成为默认的存储引擎。InnoDB存储引擎带来了关系数据库管理系统的许多好处,例如ACID事务,参照完整性和崩溃恢复。在以前的版本中,MySQL使用MyISAM作为默认存储引擎。
要在CREATE TABLE
语句中为表定义列,请使用以下语法:
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT]上面语法中最重要的组件是:
- 将
column_name
指定列的名称。每列都有特定的数据类型和最大长度,例如:VARCHAR(255)
NOT NULL
指示列不允许NULL
值。- 将
DEFAULT value
用于指定列的默认值。 - 这
AUTO_INCREMENT
表示只要将新行插入表中,就会自动生成一列的值。每个表只有一AUTO_INCREMENT
列。
PRIMARY KEY (col1,col2,...)
MySQL CREATE TABLE语句示例
以下语句创建一个名为的新表tasks
:
CREATE TABLE IF NOT EXISTS tasks ( task_id INT AUTO_INCREMENT, title VARCHAR(255) NOT NULL, start_date DATE, due_date DATE, status TINYINT NOT NULL, priority TINYINT NOT NULL, description TEXT, PRIMARY KEY (task_id) ) ENGINE=INNODB;任务表包含以下列:
- 这
task_id
是一个自动增量列。如果使用INSERT
语句向表中添加新行而未指定task_id列的值,则task_id列将采用以1开头的自动生成的整数。这task_id
是主键列。 title
列是一个可变字符串列,其最大长度为255.这意味着您不能将长度大于255的字符串插入此列。NOT NULL
表示列必须有一个值。换句话说,您必须在插入或更新此列时提供值。start_date
和due_date
是其接受NULL日期列。status
和priority
是TINYINT
不容许NULL列。description
列是一个TEXT
接受NULL 的列。