下面是一个建表的语句:
CREATE TABLE IF NOT EXISTS 表名(
字段名1 INT UNSIGNED AUTO_INCREMENT,
字段名2 VARCHAR(100) NOT NULL,
字段3 DATE,
PRIMARY KEY ( `字段名` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
下面就以上述语句来探索建表SQL:
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是中文字符集,如果你想在数据库中存储中文,那么建立数据表的时间设置此字符集,那么之后此表中的字段默认就是此种字符集,可存储中文。否则,存储中文时会无法识别而报错。
欢迎访问个人网站:pmhuiyilu.com
网友评论