目录
基本建表语句
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
,并且有一个表级注释。
本文转载自: https://blog.csdn.net/u014745465/article/details/137547377
版权归原作者 龙大. 所有, 如有侵权,请联系我们删除。
版权归原作者 龙大. 所有, 如有侵权,请联系我们删除。