MySQL建表语句基础及示例详解
作者:龙大.
在数据库中,创建表格是存储和组织数据的基本操作之一,下面这篇文章主要给大家介绍了关于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
,并且有一个表级注释。
附:常用函数
/*count函数:统计符合条件的记录数,count(* )统计表中的记录总数, count(列名)统计指定字段不为null的记录数。*/ select count(*) from dapt; select count(dname) from dapt ; select * from dapt where dname is null; --max函数返回所选字段的最大值,用法是max(字段名) --select max (列名) from 表名; select max(deptno) from dapt; --min函数返回所选字段的最小值,用法是min(字段名) --select min (列名) from 表名; select min(deptno) from dapt; --avg函数返回所选字段的平均值,用法是avg(字段名) select avg(deptno) from dapt; --sum函数返回所选字段的合计值,用法是sum(字段名) select sum(deptno) from dapt;
总结
到此这篇关于MySQL建表语句基础及示例的文章就介绍到这了,更多相关MySQL建表语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!