51-数据库表关系之一对多
为什么有多表的概念?
一个Book有单表的时候只能查询Book表中的内容,要想查询更多的出版社的信息,需要再将单表的内容不断更新
导致单表会存储大量的重复的信息,浪费了大量的空间,字段越多,重复的内容也会越来越多
一对多的后果
Book表
id
title
price
publish
1
php
100
人民出版社
2
python
200
沙河出版社
3
go
100
人民出版社
4
java
300
人民出版社
Book
id
title
price
publish
email
addr
1
php
100
人民出版社
111
北京
2
python
200
沙河出版社
222
沙河
3
go
100
人民出版社
111
北京
4
java
300
人民出版社
111
北京
一对多的实现:
查询python这本书的出版社的邮箱(子查询)
select publish_id from Book where title = "python";
select email from Publish where id = 1;

Book
id
title
price
publish_id
1
php
100
1
2
python
200
1
3
go
100
2
4
java
300
1
Publish
id
name
email
addr
1
人民出版社
111
北京
2
沙河出版社
222
沙河
一旦确定表的关系是一对多的时候,就创建关联字段,关联字段需要创建在多的那张表里

52-数据库表关系之多对多
Author
id
name
age
addr
1
alex
34
beijing
2
egon
55
nanjing
Book2Author
id
book_id
author_id
1
2
1
2
2
2
查询alex出版过的书籍名称
select id from Author where name = "alex"
select book_id from Book2Author where author_id = 1
select title from Book where id = book_id

总结:一旦确定表的关系是多对多,一定要创建第三章关系表,就是三个字段,主键id+表1字段+表2字段

53-数据库表关系之一对多一
一对一的关系必须有抽离出的表
Author
id
name
age
Authordetail_id(unique)
1
alex
34
1
2
egon
55
2
AuthorDetail
id
addr
gender
tel
gf_name
1
beijing
male
110
小花
2
nanjing
male
911
小娘
所谓的一对一本质上就是可以放在一个表里,有的时候为了逻辑关系或者表的结构的整洁,就需要解耦这种关系表

总结:一旦确定是一对一的关系,在两张表的任意一张表中建立关联字段+Unique

54-数据库表关系之关联字段与外键约束
一对多表如果互相之间没有关系的话,一般建立关联字段的时候就要建立表之间的约束关系,建关联字段是为了查询,建关联关系约束是为了处理未来可能出现的脏数据
55-数据库表关系之sql创建关联表
1.Publish
CREATE TABLE publish(
id INT PRIMARY KEY auto_inctrment ,
name VARCHAR(20),
);

2.Book

CREATE TABLE book(
id INT PRIMARY KEY auto_inctrment ,
title VARCHAR(20),
price DECIMAL(8,2),
pub_date DATE,
publisg_id INT,
FOREIGN KEY (publish_id)REFERENCES publis(id),
);

3.AuthorDetail

CREATE TABLE authordetail(
id INT PRIMARY KEY auto_increment,
tel VARCHAR(20),
);

4.Author
CREATE TABLE authordetail(
id INT PRIMARY KEY auto_increment,
name VARCHAR(20),
age INT,
authordetail_id INT UNIQUE,
FOREIGN KEY (autoordetail_id) REFERENCES authordetail(id),
);

5.Book2Author

CREATE TABLE book2author(
id INT PRIMARY KEY auto_increment,
book_id INT,
author_id INT,
FOREIGN KEY (book_id) REFREENCES book(id),
FROEIGN KEY (author_id) REFERENCES author(id),
);

转载于:https://www.cnblogs.com/pandaboy1123/p/9744188.html

路飞学城Python-Day96相关推荐

  1. 路飞学城python全栈开发_[Python] 老男孩路飞学城Python全栈开发重点班 骑士计划最新100G...

    简介 老男孩&路飞学城Python全栈开发重点班课程,作为Python全栈教学系列的重头戏,投入了全新的课程研发和教学精力,也是Python骑士计划的核心教学,由ALEX老师开班镇守,一线技术 ...

  2. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城-Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫:- 定义调度器- 定 ...

  3. b站路飞学城python课梨视频项目代码

    @b站路飞学城python课梨视频项目代码 # -*- coding:utf-8 -*- import requests from lxml import etree import random im ...

  4. 路飞学城python开发入门学习

    零基础参加了路飞学城python七天入门集训,由于无相关基础知识,所以笔记简陋,大家将就着看看,欢迎批评指正. 1.第一个程序: print('Hello,World") 2. python ...

  5. 路飞学城python电子书_路飞学城-Python开发集训-第一章

    路飞学城-Python开发集训-第一章 1.本章学习心得.体会 我: 间接性勤奋. 我: 学习方法论:输入--输出---纠正 我: 对对对 走出舒适区, 换圈子, 转思路,投资自我加筹码. 我: 圈子 ...

  6. 路飞学城python全栈开发_python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)...

    昨日内容回顾 1. 为什么要做前后端分离?-前后端交给不同的人来编写,职责划分明确.-API (IOS,安卓,PC,微信小程序...)-vue.js等框架编写前端时,会比之前写jQuery更简单快捷. ...

  7. 路飞学城-python爬虫密训-第三章

    (一)学习心得 其实在没有正式学习python编程语言中,就知道模块是python最重要部分之一.虽然在前面HTTP协议跟IO多路复用都没有接触学的也是一知半解,scrapy模块比resquests模 ...

  8. 路飞学城-Python爬虫实战密训-第1章

    正式的开始学习爬虫知识,Python是一门接触就会爱上的语言.路飞的课真的很棒,课程讲解不是告诉你结论,而是在告诉你思考的方法和过程. 第一章,学习了如何爬取汽车之家以及抽屉登录并点赞. 1 impo ...

  9. 路飞学城-Python 爬虫实战密训-第 1 章

    本节学习体会: 鸡汤心得: 1.时代发展太快,要不断学习新东西,武装自己,才能跟得上时代的潮流,不然就是面临被pass的命运 2.要看清楚趋势,不要闭门造车 3.学习编程语言就跟学英语一样,方法很重要 ...

  10. 路飞学城-Python爬虫集训-第一章

    自学Python的时候看了不少老男孩的视频,一直欠老男孩一个会员,现在99元爬虫集训果断参与. 非常喜欢Alex和武Sir的课,技术能力超强,当然讲着讲着就开起车来也说明他俩开车的技术也超级强! 以上 ...

最新文章

  1. scratch小游戏脚本大全_酷酷带你一起做小游戏--跳一跳
  2. 为什么你喜欢的女生不喜欢你
  3. zcmu1209(dfs)
  4. 743. 网络延迟时间
  5. 苹果发布 AirTag 固件更新
  6. 1.swoole 简介
  7. mysql max 函数的陷阱
  8. Ubuntu sudo nopasswd方法
  9. 计算机控制实验报告组态软件学习,单片机与MCGS组态综合实验系统 教学软件 实训系统...
  10. 分享 野人老师-高级信息系统项目管理师-全部的课程资料
  11. 推荐的PDF阅读器(可对pdf文章进行编辑操作的)
  12. mysql 导出数据到txt文件_mysql 导出数据到txt文件
  13. 微信小程序+.NET(五) 音频格式转换-从.mp3到.wav
  14. python自动化测试培训脱产_柠檬班python自动化测试课程完整版
  15. 每天读论语《论语·学而》02
  16. 关于HTTP请求 415错误
  17. Explaining Deep Neural Networks
  18. 【自考总结】——管理经济学(一)
  19. myfocus官方网站已经挂掉,相关下载已经从googlecode转到csdn
  20. 如何用P6软件编制项目进度计划

热门文章

  1. wpsppt设置页码和总页数_Word页码,这几个技巧真的很实用!
  2. SpringMVC→简介、MVC、SpringMVC工作原理、Maven搭建第一个SpringMVC、请求参数接收、重定向、文件上传、AJAX异步访问、请求参数接收绑定JSON、@注解及传参
  3. oracle查看所有用户6,oracle 查看 用户 用户权限 用户表空间 用户默认表空间
  4. p70_域名解析系统DNS
  5. C++简单实现 前缀树
  6. 网络地址转换协议NAT详解
  7. UnityGI5:实时 GI 与光探代理体
  8. rand()与srand()的简单应用(随机数)
  9. matlab2c使用c++实现matlab函数系列教程-zeros函数
  10. c#获取系统信息:CPU、内存、硬盘、用户、网络