MYSQL之建表和字段属性

下面是一个建表的语句:

CREATE TABLE IF NOT EXISTS 表名(
字段名1 INT UNSIGNED AUTO_INCREMENT,
字段名2 VARCHAR(100) NOT NULL,
字段3 DATE,
PRIMARY KEY ( `字段名` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

以上,

1.无符号整型自增

INT UNSIGNED AUTO_INCREMENT中,INT指的是整数类型,自增,无符号(无正负)

在插入数据时,该数据的值只能设为比现有的值大,等于或小于时会报错;或者直接置为null,那么数据库会自动识别此数的值为当前最大值自增;INT模块为10个字节,也就是80位。

2.字符串类型

字段名2 VARCHAR(100) NOT NULL,varchar(100)指的是100个字节的字符串。在设置值时,如果大于100字节就会报错。并且这个值不能为空,为空也会报错。

3.日期类型

字段3 DATE,其中date类型是日期,在插入值时,可以用函数代替比如now(),或者转换格式的日期类型的数据。还有一种类型为datetime,可以用来存储时间,并且可以直接存储时间格式的字符串,也可以使用函数存储。

4.主键

PRIMARY KEY ( `字段名` ),可设置某字段为主键,主键代表此数据表的唯一值。

5.存储引擎和数据集

ENGINE=InnoDB DEFAULT CHARSET=utf8,

ENGINE是设置存储引擎,nnoDB 是 MySQL 上第一个提供外键约束的数据存储引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的。

CHARSET=utf8是设置字符集,UTF8是中文字符集,如果你想在数据库中存储中文,那么建立数据表的时间设置此字符集,那么之后此表中的字段默认就是此种字符集,可存储中文。否则,存储中文时会无法识别而报错。

在 “MYSQL之建表和字段属性” 上有 1 条评论

  1. I like what you guys are doing. Such intelligent work and reporting! Carry on with the excellent works guys. I’ve incorporated you guys to my blogroll. I think it will improve the value of my website. 🙂

发表评论

电子邮件地址不会被公开。