七周七数据库读书笔记(1)

七周七数据库读书笔记(1)

看到别人推荐买了这本书,决定以后每读一本书都开始写读书笔记

这本书的第二章开始部分简单的回顾了关系数据库的CRUD,这里主要讲一下数据库中INNER JOIN, LEFT JOIN和RIGHT JOIN的区别。这块很多初学数据库的人会搞不清楚而很多Blog写得又比较深反而不易理解。

先谈谈INNER JOIN

INNER JOIN 我们一般解释为内联,通常来说INNER在SQL中可以被省略。简单来说就是通过两个表的某列将两个表相连。这里举例来说有假设数据库中有两张表(表A和表B)

  Country ID Country Name Postal Code
1 ch China 001
2 us U.S.A 002
3 uk United Kingdom 003
4 mx Mexico 004
  Event ID Event Name Postal Code Country Name
1 0001 boom 001 China
2 0002 crash 006 Australia
3 0003 break 008 Germany
4 0004 train 010 Canada

通过SQL  SELECT Event Name From A INNER JOIN B ON A.Postal Code=B.Postal Code 通过内联我们把两张表通过A.Postal Code=B.Postal Code最后得到如下数据的一张表

  Country ID Country Name Postal Code Event ID Event Name Country Name
1 ch China 001 0001 boom China

我们从结果可以看到使用内联的结果是将两张表都符合条件的数据根据关系连在一起。

随后我们谈谈外联LEFT JOINRIGHT JOIN

LEFT JOINRIGHT JOININNER JOIN的区别就是外联部要求两张表的所有数据都与关系相同,他们会保留在左边或在右边表的内容。仍然以上边的内容举例

如果我们将SQL改为SELECT Event Name From A LEFT JOIN B ON A.Postal Code=B.Postal Code则左边表的值会被保留得到结果如下而右表只有满足条件的值才会留下来

  Country ID Country Name Postal Code Event ID Event Name Country Name
1   ch China 001 0001 boom China
2 us U.S.A 002      
3 uk United Kingdom 003      
4 mx Mexico 004      

同理使用RIGHT JOIN则会保留右边表的内容而左表则只会保留符合条件的值,如SQL改为SELECT Event Name From A RIGHT JOIN B ON A.Postal Code=B.Postal Code

  Country ID Country Name Postal Code Event ID Event Name Country Name
1 ch China 001 0001 boom China
2     006 0002 crash Australia
3     008 0003 break Germany
4     010 0004 train Canada
时间: 2024-12-29 10:09:59

七周七数据库读书笔记(1)的相关文章

《七周七数据库》读书分享

# 七周七数据库 读书分享会第一期 2017.02.12 <七周七数据库> - Eric Redmond ## 预备知识 ACID:原子 一致 隔离 持久 CAP原则:一致性 可用性 分区容错性,在分布式环境下,至多只能同时满足其二 "小明,你的数据库作业呢?""我可以今天提交一半的作业,或者明天提交全部的作业,但无法在今天提交全部的作业.""...小明你给我滚出去!" 小知识点: * 原子性:原子性代表中间状态的透明性,想象从a账户

《高效能人士的七个习惯》读书笔记

<高效能人士的七个习惯>读书笔记 昨天跟某人聊到效率的问题,想到之前看过一本<高效能人士的七个习惯>,遂再拿出来翻翻记个笔记吧. <高效能人士的七个习惯>这本书已面世快30年了.这30年以来,世界发生了巨大的变化,人们的生活方式.工作方式.价值观都有了较大的改变,但翻了翻该书仍有一些新的心得和体会.这大概是不同时代的人们总会面临一些相同的问题: 谴责和抱怨,遇到问题就习惯谴责其他人和事,总是说:如果xxx,那该多好, 没有承担对周围环境的责任. 绝望无助,对现实无能为力

《七周七语言》学习笔记——Ruby——第一天:找个保姆

感觉学了东西很快就会忘记,不会留下什么,趁这次看<七周七语言>,把其中觉得有用的东西记录下来,方便以后自己查阅,这篇应该就是记录的开始了. Ruby是一门面向对象的.解释型的.动态类型的脚本语言.面向对象,说明了这门语言具有封装.继承.多态这些特性:解释型,意味着它由解释器而不是编译器来执行:动态类型,即类型是在运行时绑定而非编译时绑定:脚本语言,则说明了它很短!易上手!并且只在调用的时候解释执行. 编程模型:一切皆对象,从一个数到bool值,都被定义为对象,都有自己的方法 判断结构:块形式和

七周七Web开发框架——互动出版网

这篇是计算机类的优质预售推荐>>>><七周七Web开发框架> 延续畅销书七周七语言 七周七数据库的体例和风格 学习最流行的Web开发框架:Sinatra.CanJS.AngularJS.Ring.Webmachine.Yesod和Immutant 内容简介 本书带领读者认识和学习7种影响现代Web应用并改娈了Web开发方式的框架,以期给Web开发者带来启发和思考. 本书延续了同系列的畅销书<七周七语言>.<七周七数据库>的体例和风格.全书共8章,

《七周七语言:理解多种编程范型》のruby课后习题答案

本系列是<七周七语言>的课后习题答案.这本书不拘泥于语法细节,而是横向比较各种编程语言(非热门)之间的编程范式. 是本对编程觉悟能有所帮助的好书,这里就不多做介绍了,感兴趣的同学不妨去看一下. 不得不说,Ruby的风格很黑客. 1. 打印字符串"Hello, world." puts "Hello, world." 2. 在字符串“Hello, Ruby.”中,找出"Ruby."所在下标. puts "Hello, Ruby

《七周七语言:理解多种编程范型》のIo课后习题答案

哎,因为上周忙着写OAuth2.0服务端框架草稿 ,耽误了一周学习Io Language了. 本篇习题解答是接着 <七周七语言:理解多种编程范型>のRuby课后习题答案 Io是原型语言,类似于JavaScript,并不区别类和对象,所有的东东都是对象,对象的数据结构就是由键值表来维护的(在Io中就是所谓的槽),通过各种消息传递给对象来实现打印输出,复制对象等功能.因为语法非常简单(也木有语法糖),所以你可以尽情构建自己的库和功能. 第一天: 1. 对1+1求值,然后对1+"one&q

数据库读书笔记(1)

一.基本概念  DBMS:Database Management System数据库管理系统,是一种操纵和管理数据库的大型软件,用于建立.使用和维护数据库. RDBMS:Relational Database Management System关系型数据库管理系统,就是在数据库管理系统的基础上增加关系,通过数据.关系和对数据的约束三者组成的数据模型来存放和管理数据. SQL:Structed Query Language结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和

《白帽子讲web安全》第七章 注入攻击 读书笔记

7.1 sql注入 sql注入98年第一次出现在<phrack>54期上. 注入攻击有两个关键条件,第一是用户能够控制输入,第二是原本程序要执行的代码拼接了用户输入的数据. 如果网站开启了错误回显,将为攻击者提供极大的便利. 7.1.1 盲注 "盲注"是在服务器没有错误回显时完成的攻击. 最常见的盲注方法是构造简单的条件语句,根据返回页面是否发生变化,来判断sql语句是否得到执行. 例如对比"id=2"."id=2 and 1=2"及

七周七语言:理解多种编程范型pdf

下载地址:网盘下载 作者简介  · · · · · · 作者简介: Bruce A. Tate RapidRed公司总裁,该公司主要为Ruby轻量级开发提供咨询.他曾任职于IBM公司,并担任过多家公司的客户解决方案总监和CTO.著作有十余本,包括荣获Jolt大奖的Better, Faster, Lighter Java. 译者简介: 戴玮 80后宅男,中科院自动化所在读博士,热爱机器学习与计算机视觉.编程喜C#.Ruby.Haskell而厌Java. 白明 Neusoft某开发部技术总监,拥有多