MySQL进阶,第1张

MySQL进阶,第2张

MySQL中create table语句的基本语法是:
create[temporary]table[如果不存在] TBL _名称[(create _ definition...)]
[table _ options][select _ statement]
temporary:该关键字表示用create table新建的表是临时表,在当前会话结束后会自动消失。临时表主要用在存储过程中。对于目前不支持存储过程的MySQL,一般不使用这个关键字。
如果不存在:实际上是在建表之前增加了一个判断,只有当表当前不存在时才执行创建表操作。使用此选项可以避免表已经存在并且不能重新创建的错误。
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]
或PRIMARY KEY (index_col_name,...)
或KEY [index_name] (index_col_name...)
或索引[索引名](索引名,...)
或唯一的[索引][索引名称](索引列名称,...)
或[约束符号]外键index _ name (index _ col _ name,...)
[reference _ definition]
或check (expr)
col _ name:表中列的名称。必须符合标识符规则,并且必须在表中。
type:列的数据类型。有些数据类型需要指明长度n,并用括号括起来。目前MySQL提供的数据类型详见MySQL Advanced _ Column Types。
NOT NULL | NULL:指定是否允许列为空。如果既没有指定NULL也没有指定NOT NULL,则该列被视为指定了NULL。Default _ value:指定列的默认default_value。如果没有为列指定默认值,MySQL会自动分配一个。如果列可以将NULL作为值,则默认值为NULL。如果列被声明为NOT NULL,则默认值取决于列类型:1。对于没有声明AUTO_INCREMENT属性的数值类型,默认值为0。对于AUTO_INCREMENT列,默认值是序列中的下一个值。2.对于除时间戳之外的日期和时间类型,默认值是该类型的适当“零”值。对于表中的第一个时间戳列,默认值是当前日期和时间。3.对于除ENUM之外的字符串类型,默认为空 string。对于ENUM,默认值是第一个枚举值。
AUTO_INCREMENT:将此列设置为具有自动递增属性。只有整数列可以设置此属性。在AUTO_INCREMENT列中插入NULL值或0时,该列被设置为value+1,其中value是上一表中该列的值。AUTO_INCREMENT序列从1开始。每个表只能有一个AUTO_INCREMENT列,并且必须进行索引。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » MySQL进阶

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情