当前位置:Gxlcms > 数据库问题 > MySQL创建表

MySQL创建表

时间:2021-07-01 10:21:17 帮助过:36人阅读

要在数据库中创建一个新表,可以使用MySQL CREATE TABLE语句。 CREATE TABLE语句是MySQL中最复杂的语句之一。

下面以简单的形式来说明CREATE TABLE语句的语法:

  1. <code class=" language-sql"><span class="token keyword">CREATE <span class="token keyword">TABLE <span class="token punctuation">[<span class="token keyword">IF <span class="token operator">NOT <span class="token keyword">EXISTS<span class="token punctuation">] table_name<span class="token punctuation">(
  2. column_list
  3. <span class="token punctuation">) <span class="token keyword">engine<span class="token operator">=table_type<span class="token punctuation">;
  4. </span></span></span></span></span></span></span></span></span></span></span></span></code>
SQL

我们来更详细地来查看其语法:

  • 首先,指定要在CREATE TABLE子句之后创建的表的名称。表名在数据库中必须是唯一的。 IF NOT EXISTS是语句的可选部分,允许您检查正在创建的表是否已存在于数据库中。 如果是这种情况,MySQL将忽略整个语句,不会创建任何新的表。 强烈建议在每个CREATE TABLE语句中使用IF NOT EXISTS来防止创建已存在的新表而产生错误。

  • 其次,在column_list部分指定表的列表。字段的列用逗号()分隔。我们将在下一节中向您展示如何更详细地列(字段)定义。

  • 第三,需要为engine子句中的表指定存储引擎。可以使用任何存储引擎,如:InnoDBMyISAMHEAPEXAMPLECSVARCHIVEMERGEFEDERATEDNDBCLUSTER。如果不明确声明存储引擎,MySQL将默认使用InnoDB

注:InnoDB自MySQL 5.5之后成为默认存储引擎。 InnoDB表类型带来了诸如ACID事务,引用完整性和崩溃恢复等关系数据库管理系统的诸多好处。在以前的版本中,MySQL使用MyISAM作为默认存储引擎。

要在CREATE TABLE语句中为表定义列,请使用以下语法:

  1. <code class=" language-sql">column_name data_type<span class="token punctuation">[size<span class="token punctuation">] <span class="token punctuation">[<span class="token operator">NOT <span class="token boolean">NULL<span class="token operator">|<span class="token boolean">NULL<span class="token punctuation">] <span class="token punctuation">[<span class="token keyword">DEFAULT <span class="token keyword">value<span class="token punctuation">]
  2. <span class="token punctuation">[<span class="token keyword">AUTO_INCREMENT<span class="token punctuation">]
  3. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
SQL

以上语法中最重要的组成部分是:

  • column_name指定列的名称。每列具有特定数据类型和大小,例如:VARCHAR(255)
  • NOT NULLNULL表示该列是否接受NULL值。
  • DEFAULT值用于指定列的默认值。
  • AUTO_INCREMENT指示每当将新行插入到表中时,列的值会自动增加。每个表都有一个且只有一个AUTO_INCREMENT列。

如果要将表的特定列设置为主键,则使用以下语法:

  1. <code class=" language-sql"><span class="token keyword">PRIMARY <span class="token keyword">KEY <span class="token punctuation">(col1<span class="token punctuation">,col2<span class="token punctuation">,<span class="token punctuation">.<span class="token punctuation">.<span class="token punctuation">.<span class="token punctuation">)
  2. </span></span></span></span></span></span></span></span></span></code>
SQL

MySQL CREATE TABLE语句示例

下面让我们练习一个例子,在示例数据库(testdb)中创建一个名为tasks的新表,如下所示:

可以使用CREATE TABLE语句创建这个tasks表,如下所示:

  1. <code class=" language-sql"><span class="token keyword">CREATE <span class="token keyword">TABLE <span class="token keyword">IF <span class="token operator">NOT <span class="token keyword">EXISTS tasks <span class="token punctuation">(
  2. task_id <span class="token keyword">INT<span class="token punctuation">(<span class="token number">11<span class="token punctuation">) <span class="token operator">NOT <span class="token boolean">NULL <span class="token keyword">AUTO_INCREMENT<span class="token punctuation">,
  3. subject <span class="token keyword">VARCHAR<span class="token punctuation">(<span class="token number">45<span class="token punctuation">) <span class="token keyword">DEFAULT <span class="token boolean">NULL<span class="token punctuation">,
  4. start_date <span class="token keyword">DATE <span class="token keyword">DEFAULT <span class="token boolean">NULL<span class="token punctuation">,
  5. end_date <span class="token keyword">DATE <span class="token keyword">DEFAULT <span class="token boolean">NULL<span class="token punctuation">,
  6. description <span class="token keyword">VARCHAR<span class="token punctuation">(<span class="token number">200<span class="token punctuation">) <span class="token keyword">DEFAULT <span class="token boolean">NULL<span class="token punctuation">,
  7. <span class="token keyword">PRIMARY <span class="token keyword">KEY <span class="token punctuation">(task_id<span class="token punctuation">)
  8. <span class="token punctuation">) <span class="token keyword">ENGINE<span class="token operator">=<span class="token keyword">InnoDB<span class="token punctuation">;
  9. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
SQL

在本教程中,您已经学习了如何使用MySQL CREATE TABLE语句在数据库中创建新表。



MySQL创建表

标签:引擎   oct   例子   完整性   展示   数据   之一   date   名称   

人气教程排行