layout: post
title: MySql多表关系
subtitle: 一对一,一对多,多对多
date: 2018-01-26
author: ZL
header-img: img/20180126.jpg
catalog: true
tags:
- MySQL
多表之间的关系
一对多
分类和商品
#创建数据库
create database day09 db;
#使用数据库
use day09 db;
#创建分类表
create table category(
cid varchar(32) PRIMARY KEY ,#主表的主键
cname varchar(lOO) #分类名称
);
#商品表
CREATE TABLE product (
'pid' varchar(32) PRIMARY KEY ,
'name' VARCHAR(40) ,
'price' DOUBLE
);
#添加外键字段category_id
alter table product add column category id varchar(32);
#添加约束
alter table product add constraint product_fk foreign_fk (category_id) references
category (cid);
image
总结:
从表不能够添加(更新),主表中不存在的数据
主表不能够删除(更新),从表中已经使用的数据
多对多
#订单表
create table orders (
oid varchar(32) PRIMARY KEY ,
totalprice double #总计
);
#订单项表
create table orderitern(
oid varchar(SO), --订单id
pid varchar(SO) --商品id
);
#联合主键(可省略)
alter table orderitern add primary key (oid ,pid);
#订单表和订单项表的主外键关系
alter table orderitern add constraint orderitem_orders_fk foreign key (oid)references orders(oid);
###商品表和订单项表的主外键关系
alter table orderitern add constraint orderitern_product_fk foreign key (pid)references products(pid);
image
image
网友评论