文章问题导向
mysql如何如何设计数据表?
如果你都有了答案,可以忽略本文章,或去mysql学习导图寻找更多答案
创建表命令
create table tb_name (字段,类型,长度,约束,默认,注释)
例子
create table `user`(
`id` int(10) not null auto_increment,
`name` varchar(20) not null default 'admin' comment '用户名'
`pwd` varchar(50) not null comment '密码'
primary key(id) 主键,后面不能加逗号
)engine=InnoDB auto_increment=1 charset=utf8;
说明:
int(10): 数据类型:数字,长度为10
not null: 不为空
auto_increment: 自动自增
varchar(20): 字符串类型,长度为20
default 1: 默认值为1
comment '用户表': 注释
primary key(id): 主键
engine=InnoDB: 引擎
charset=utf8: 编码模式
auto_increment=1: 自增
约束.
对字段属性限制:如:数字,字符串,长度,是否为空等等
主键约束:不重复不为空
primary key
primary key(id)
联合主键:两个加起来不重复
primary key(id, name)
自增:auto_increment
唯一:unique
和主键的区别:唯一可以为空,主键不能为空
非空:not null
无符号(非负值):unsigned
默认:default
注释:comment
外键约束:foreign key
主表中没有的数据,在副表中是不可以使用的,主表被引用时,无法删除
create table classes(
id int primary key,
name varchar(20)
)
create table students(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
)
数据类型