时间:2021-07-01 10:21:17 帮助过:19人阅读
2.商品表 create table product( pid varchar(32) primary key, pname varchar(40), price double, category_id varchar(32) );
set name gbk;
insert into category(cid,cname) values(‘c001‘,‘家电‘); insert into category(cid,cname) values(‘c002‘,‘服饰‘); insert into category(cid,cname) values(‘c003‘,‘化妆品‘); insert into product(pid,pname,price,category_id) values(‘p001‘,‘联想‘,‘5000‘,‘c001‘); insert into product(pid,pname,price,category_id) values(‘p002‘,‘海尔‘,‘5000‘,‘c001‘); insert into product(pid,pname,price,category_id) values(‘p003‘,‘雷神‘,‘5000‘,‘c001‘); insert into product(pid,pname,price,category_id) values(‘p004‘,‘JACK JONES‘,‘800‘,‘c002‘); insert into product(pid,pname,price,category_id) values(‘p005‘,‘真维斯‘,‘200‘,‘c002‘); insert into product(pid,pname,price,category_id) values(‘p006‘,‘花花公子‘,‘440‘,‘c002‘); insert into product(pid,pname,price,category_id) values(‘p007‘,‘劲霸‘,‘2000‘,‘c002‘); insert into product(pid,pname,price,category_id) values(‘p008‘,‘香奈儿‘,‘800‘,‘c003‘); insert into product(pid,pname,price,category_id) values(‘p009‘,‘相宜本草‘,‘200‘,‘c003‘);
最后一列 category_id 列在创建表的时候自己定义的,如果没有,则可以使用一下命令添加一列。
alter table product add category_id
alter table product add foreign key(category_id) references category(cid);
两张表已经关联,主表有外键约束。不能轻易删除主表数据,因为从表有他的记录。
要想解除关系,先删除从表对他有关系的数据删除,再删除主表数据。
保证数据的完整性。
从表外键不能添加主表中不存在的记录。
主表不能删除从表中已经引用的记录。
表语表之间的关系,说的就是表与表数据之间的关系。
常见的实例:客户和订单,分类和商品,部门和员工。
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表的主键。
alter table 从表 add [constraint][外键名称] foreign key(从表外键在字段名) references 主表(主表的主键);
常见的实例:学生和课程,商品和订单,演员和角色。
多对多关系建立表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
建立关系
alter table stu_course add foreign key(sno) references stu(sid);
alter table stu_course add foreign key(sno) references course(cid);
在实际开发中应用不多,因为一对一可以创建成一张表。
两种建表原则:
外键唯一:主表的主键和从简的外键唯一,形成主外键关系,外键唯一 unique。
外键是主键:主表的主键和从表的主键,形成主外键关系。
MySQL多表&使用JDBC完成分类表CRUD的操作
标签:需要 分类 info 图片 字段名 创建 商品 add key