格式:
create table name(
'列名' 类型(大小) NOT NULL auto_increment
)
//auto_increment 自增属性来自动生成唯一编号
格式:
create table name(
'列名' 类型(大小) NOT NULL|NULL default (默认值) comment '(列描述)'
)
//NULL和NOT NULL设置为空和非空
例如:
create table class(
id int(8) NULL default NULL comment 'id号'
)
格式:
create table name(
'列名' 类型(大小) character set utf8 collate utf8_general_ci
)ENGINE = InnoDB auto_increment = 1 character set= utf8 collate = utf8_general_ci ROW_FORMAT = Dynamic;
/*
ROW_FORMAT行记录格式,决定物理存储模式
character set utf8 collate utf8_general_ci那么采用字符集utf8和校对规则utf8_general_ci、
COLLATE utf8_general_ci:数据库校对规则。ci是case insensitive的缩写,意思是大小写不敏感;相对的是cs,即case sensitive,大小写敏感;还有一种是utf8_bin,是将字符串中的每一个字符用二进制数据存储,区分大小写
*/
create table tablename(
col_name1 type auto_increment,
col_name2 type not null|null default val,
col_name3 type unique,
col_name4 type character set utf8 collate utf8_general_ci
.... ,
primary key(col_name),
index idx_name(col_name1,col_name2,...),
foreign key(col_name) references tablename(col_name)
) engine=innoDB|myISAM default charset=utf8;
//engine=innoDB|myISAM default charset=字符集;
//字符集需要在创建表时设置好
(1)type:定义字段的数据类型。其中:字符串类型(char,varchar)需要指定长度;整型(int,biging,tinyint等)和日期类型(datetime,timestamp等)只需要指定类型,不需要指定长度;decimal类型需要指定精度和小数位数。
(2)primary key参数指定表的主键。
(3)auto_increment参数指定字段为自增字段,该字段的类型必须为int或bigint才能设置为自增字段。
(4)not null|null参数设置字段能否取空值。
(5)default参数设置字段的默认值。
(6)index参数用来创建索引。idx_name指定索引名,该参数可以省略,如果省略则索引名就是字段名。
(7)foreign key参数用来指定外键。
(8)engine参数用来设置引擎类型,常用的有innoDB和myISAM引擎。
(9)default charset参数设置表所用的字符集。
CONSTRAINT `约束名` FOREIGN KEY (`子表字段名`) REFERENCES `父表名` (`父表字段名`) ON DELETE RESTRICT ON UPDATE RESTRICT
/*
子表字段名和父表字段名可以不同但类型要求相似,或者可转换
如int和bigint,但char和int就不行
*/
ON DELETE操作
restrict(约束): 当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。
no action: 意思同restrict,即如果存在从数据,不允许删除主数据。
cascade(级联): 当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。
set null: 当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。
ON UPDATE操作
restrict(约束): 当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。
no action: 意思同restrict,即如果存在从数据,不允许删除主数据。
cascade(级联): 当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。
set null: 当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。
这篇博客详细介绍了MySQL创建表的关键要素,包括数据类型的指定,如char、int和datetime,主键和自增字段设定,以及not null、default和索引创建。还提到了外键和ON DELETE/UPDATE操作,如restrict、cascade和set null策略。
2019

被折叠的 条评论
为什么被折叠?



