当前位置: 代码网 > it编程>数据库>Mysql > MySQL建表语句基础及示例详解

MySQL建表语句基础及示例详解

2024年07月31日 Mysql 我要评论
基本建表语句create table table_name ( column_name1 data_type(size) [column_constraints], column_name

基本建表语句

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_name1column_name2, ...: 表中各列的名称。
  • data_type: 列的数据类型,如 intvarchartextdatetimestamp 等。
  • size: 数据类型的长度或大小(对于某些数据类型适用)。
  • [column_constraints]: 列级约束,例如 not nullauto_incrementdefaultprimary keyuniquecomment 等。
  • [table_constraints]: 表级约束,如 primary keyforeign keyunique 等。
  • [table_options]: 表的其他选项,如 engineauto_incrementcharsetcomment 等。

数据类型

  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 的表,包含 idnameageadmission_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建表语句内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com