MySQL创建架构语句_mysql Create Table语句的语法结构

本节内容:

MySQL Create Table语句的用法。

在mysql数据库中,create table语句的基本语法,如下:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]

[table_options] [select_statement]

说明:

TEMPORARY:该关键字表示用create table新建的表为临时表,此表在当前会话结束后将自动消失。

临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用。

IF NOT EXISTS:实际上是在建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用此选项可以避免出现表已经存在无法再新建的错误。

tbl_name:你所要创建的表的表名。该表名必须符合标识符规则。

通常的做法是在表名中仅使用字母、数字及下划线。

例如,titles、our_sales、my_user1等都应该算是比较规范的表名。

create_definition:这是create table语句中关键部分所在。在该部分具体定义了表中各列的属性。

create_definition的基本语句:

col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]

[PRIMARY KEY] [reference_definition]

or PRIMARY KEY (index_col_name,...)

or KEY [index_name] (index_col_name,...)

or INDEX [index_name] (index_col_name,...)

or UNIQUE [INDEX] [index_name] (index_col_name,...)

or [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...)

[reference_definition]

or CHECK (expr)

col_name:表中列的名字。必须符合标识符规则,而且在表中要唯一。

type:列的数据类型。有的数据类型需要指明长度n,并用括号括起。目前MySQL提供的数据类型详见MySQL进阶_列类型篇。

NOT NULL | NULL:指定该列是否允许为空。如果既不指定NULL也不指定NOT NULL,列被认为指定了NULL。

DEFAULT default_value:为列指定默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL作为值,缺省值是NULL。

如果列被声明为NOT NULL,缺省值取决于列类型:

1、对于没有声明AUTO_INCREMENT属性的数字类型,缺省值是0。对于一个AUTO_INCREMENT列,缺省值是在顺序中的下一个值。

2、对于除TIMESTAMP的日期和时间类型,缺省值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,缺省值是当前的日期和时间。

3、对于除ENUM的字符串类型,缺省是空字符串。对于ENUM,缺省值是第一个枚举值。

AUTO_INCREMENT:设置该列有自增属性,只有整型列才能设置此属性。

当你插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里 value是此前表中该列的最大值。

AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。

就是这些了,都是一些基础的内容,不过掌握了这些,对于mysql create table语句也就可以灵活运用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值