zoukankan      html  css  js  c++  java
  • MySQL创建表

    在本教程中,我们将向您展示如何使用MySQL CREATE TABLE语句在数据库中创建新表。

    MySQL CREATE TABLE语法

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

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

    CREATE TABLE [IF NOT EXISTS] table_name(
            column_list
    ) engine=table_type;
    
    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语句中为表定义列,请使用以下语法:

    column_name data_type[size] [NOT NULL|NULL] [DEFAULT value] 
    [AUTO_INCREMENT]
    
    SQL

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

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

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

    PRIMARY KEY (col1,col2,...)
    
    SQL

    MySQL CREATE TABLE语句示例

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

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

    CREATE TABLE IF NOT EXISTS tasks (
      task_id INT(11) NOT NULL AUTO_INCREMENT,
      subject VARCHAR(45) DEFAULT NULL,
      start_date DATE DEFAULT NULL,
      end_date DATE DEFAULT NULL,
      description VARCHAR(200) DEFAULT NULL,
      PRIMARY KEY (task_id)
    ) ENGINE=InnoDB;
    
    SQL

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



  • 相关阅读:
    【leetcode】1020. Partition Array Into Three Parts With Equal Sum
    【leetcode】572. Subtree of Another Tree
    【leetcode】123. Best Time to Buy and Sell Stock III
    【leetcode】309. Best Time to Buy and Sell Stock with Cooldown
    【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
    【leetcode】467. Unique Substrings in Wraparound String
    【leetcode】823. Binary Trees With Factors
    【leetcode】143. Reorder List
    【leetcode】1014. Capacity To Ship Packages Within D Days
    【leetcode】1013. Pairs of Songs With Total Durations Divisible by 60
  • 原文地址:https://www.cnblogs.com/borter/p/12452689.html
Copyright © 2011-2022 走看看