MySql多表关系


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);
6262743-c3b6aaa7b6340bd4.png
image

总结:
从表不能够添加(更新),主表中不存在的数据
主表不能够删除(更新),从表中已经使用的数据

6262743-8582f8d12e33b2c5.png
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);
6262743-bf43819b39ca19c4.png
image
6262743-77b8a108515afbfb.png
image

一对一

6262743-1a01aa652cbbbbba.png
image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值