数据库-多表

一对多关系的建表原则:建立两张表

一张叫主表(一方)
一张叫从表(多方):从表(多方)中必须有个字段(列),引用主表(一方)的主键

外键:从表(多方)引用主表(一方)主键的那个字段(列)

多对多关系建表原则:需要创建第三张表

中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键.
在这里插入图片描述




外键约束

语法:alter table 从表 add [constraint] 外键名称 foreign key (从表外键字段名) references 主表 (主表的主键);
[外键名称] 用于删除外键约束的,一般建议“_fk”结尾
alter table 从表 drop foreign key 外键名称




多表查询

1.交叉查询:查询到的数据是两个表相乘(主表(A,B,C),从表(a,b,c))=Aa,Ab,Ac…Ba,Bb,Bc…Ca,Cb,C*c,9条数据
2.内连接查询(使用的关键字 inner join – inner可以省略)
隐式内连接:select * from 主表,从表 where 主表.主键=从表.外键;
显示内连接:select * from A inner join B on 主表.主键=从表.外键;

3.外连接查询:
左外连接:select * from 主表 left outer join 从表 on 主表.主键=从表.外键----以左表为准,左表中的数据必须每条都有;
右外连接:select * from 主表 right outer join 从表 on 主表.主键=从表.外键;

多表查询小练习

#一对多
CREATE TABLE leimu(
	lid INT PRIMARY KEY AUTO_INCREMENT,
	lname VARCHAR(100)
);
CREATE TABLE shangpin(
	sid INT PRIMARY KEY AUTO_INCREMENT,
	sname VARCHAR(100),
	leimu_id INT,
	shangjia INT,
	##也可以把外键约束放从表里面,要注意标点符号
	CONSTRAINT id_leimu_fk FOREIGN KEY (leimu_id) REFERENCES leimu(lid)
);
ALTER TABLE shangpin ADD CONSTRAINT id_leimu_fk FOREIGN KEY (leimu_id) REFERENCES leimu(lid);

INSERT INTO leimu(lname) VALUES('服装');
INSERT INTO leimu(lname) VALUES('鞋子');
INSERT INTO leimu(lname) VALUES('手机');
INSERT INTO leimu(lname) VALUES('日化');
INSERT INTO leimu(lname) VALUES('汽车');

INSERT INTO shangpin(sname,leimu_id,shangjia) VALUES('奥迪'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值