MySQL 建表语句详解

07-11 1021阅读

目录

MySQL 建表语句详解
(图片来源网络,侵删)

基本建表语句

数据类型

列级约束

表级约束

表选项

示例


 

基本建表语句

CREATE TABLE table_name (
    column_name1 data_type(size) [column_constraints],
    column_name2 data_type(size) [column_constraints],
    ...
    [table_constraints]
) [table_options];
  • table_name: 新建表的名称。
  • column_name1, column_name2, ...: 表中各列的名称。
  • data_type: 列的数据类型,如 INT, VARCHAR, TEXT, DATE, TIMESTAMP 等。
  • size: 数据类型的长度或大小(对于某些数据类型适用)。
  • [column_constraints]: 列级约束,例如 NOT NULL, AUTO_INCREMENT, DEFAULT, PRIMARY KEY, UNIQUE, COMMENT 等。
  • [table_constraints]: 表级约束,如 PRIMARY KEY, FOREIGN KEY, UNIQUE 等。
  • [table_options]: 表的其他选项,如 ENGINE, AUTO_INCREMENT, CHARSET, COMMENT 等。

    数据类型

      MySQL 支持多种数据类型,以下是一些常见的数据类型:

    • INT: 整数类型。
    • VARCHAR(size): 可变长度的字符串,size 表示最大字符数。
    • CHAR(size): 固定长度的字符串。
    • TEXT: 长文本数据。
    • DATE: 日期,格式为 YYYY-MM-DD。
    • DATETIME: 日期和时间,格式为 YYYY-MM-DD HH:MM:SS。
    • TIMESTAMP: 时间戳,记录数据变更的日期和时间。
    • FLOAT: 浮点数。
    • DOUBLE: 双精度浮点数。
    • DECIMAL(M, D): 定点数,M 是总位数,D 是小数点后的位数。

      列级约束

      • NOT NULL: 该列不能有 NULL 值。
      • AUTO_INCREMENT: 用于整数类型,自动递增。
      • DEFAULT value: 为列指定默认值。
      • PRIMARY KEY: 将列设置为表的主键。
      • UNIQUE: 保证列中的每个值都是唯一的。
      • COMMENT 'string': 为列添加注释。

        表级约束

        • PRIMARY KEY (column1, column2, ...): 指定一个或多个列作为主键。
        • UNIQUE KEY (column1, column2, ...): 指定一个或多个列作为唯一键。
        • FOREIGN KEY (column) REFERENCES parent_table(column): 指定一个外键,创建与另一个表的引用关系。
        • INDEX (column1, column2, ...): 创建一个或多个列的索引。

          表选项

          • ENGINE=storage_engine: 指定存储引擎,如 InnoDB(默认)、MyISAM 等。
          • AUTO_INCREMENT=value: 为 AUTO_INCREMENT 的列指定初始值。
          • CHARSET=character_set: 指定表的默认字符集。
          • COMMENT 'string': 为表添加注释。

            示例

              以下是一个包含各种语句的创建表示例:

            CREATE TABLE student (
                id INT NOT NULL AUTO_INCREMENT,
                name VARCHAR(100) NOT NULL,
                age INT DEFAULT 18,
                admission_date DATE,
                bio TEXT,
                PRIMARY KEY (id),
                UNIQUE KEY (name),
                INDEX (admission_date),
                COMMENT 'Student records table'
            ) ENGINE=InnoDB AUTO_INCREMENT=1001 CHARSET=utf8mb4;

               在这个示例中,创建了一个名为 student 的表,包含 id, name, age, admission_date, 和 bio 列。id 列是主键并自动递增,起始值为 1001。name 列是唯一的,admission_date 列被索引。整个表的存储引擎是 InnoDB,字符集是 utf8mb4,并且有一个表级注释。

             

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]