聯結多個表
直接上去擼
select prod_name,vend_name,prod_price,quantity
from orderitems,products,vendors
where products.vend_id = vendors.vend_id
and orderitems.prod_id = products.prod_id
and order_num = 2007
1 select表示查詢四個資訊:商品名稱 **商的名稱 商品** 商品數量
2 from表示這四個資訊從三個表中獲取:商品表,**商表和訂單詳情表
3 分析三個表:
商品表中的每一條記錄代表乙個商品包含了乙個商品的基本資訊:商品編號,商品名稱,商品**,**商編號
**商標每一條記錄代表乙個**商,包含了乙個**商的基本資訊:**商編號,**商名稱
訂單詳情表每一記錄代表:
乙個訂單的對其中一種商品的詳情:訂單詳情編號(實際不用),訂單編號(實際要用),商品編號,顧客編號,該商品購買數量
三張表中處於主要地位的是訂單表
兩張表的聯結中處於主要地位的又是誰呢?
當我們看到訂單表時,一條一條的看,發現每條只有商品編號(不表達實際的資訊)
我們想知道買的究竟是什麼商品,就得拿著這個編號去查閱商品表,
在商品表裡,根據編號查閱到對應的資訊
以此類推直到最後一行
注意:訂單中的商品記錄集合一定是包含在商品表記錄集合的(因為能買就說明有,否則就是乙個實踐邏輯錯誤)
這說明,在訂單表和產品表的聯結中,存在一種包含在的關係
筆記讓人可以專注一些,記筆記看似笨拙,但對於乙個笨蛋來說,確實是最好的辦法!
那麼,在查閱商品表的時候,又發現了**商編號(同樣不能表達實際意義的資訊),我想知道是誰生產了這種商品
於是,要拿著商品編號去查詢**商表,
在**商表中,查到生產該產品的**商名字還有其他資訊
注意,在這裡,產品表中的記錄集合一定是包含在生產表中的(因為能上架的產品一定有人生產出來的,不是天上掉下來的,否則就是實踐邏輯錯誤)
不難發現,這種按編號等值連線表做的其實就是乙個翻譯和介紹的事情而已
這裡一定要關注,表間的包含在關係
訂單表包含在產品表,產品表包含在生產商表
4 能夠等值連線上的那些記錄是有實際意義的
所以聯結就是資訊的整合而已
整合後的資訊的才是最有價值的
5 對於人類而言,三張表放在一起簡單地用眼睛看看就能實現資訊的整合了
但計算機不行,計算機做不到
6 所以當不理解電腦的做法時,想想人類是怎麼做的,把這兩種方式放在一起比較一下,會更清楚:
計算機的做法無非是用自己方式實現人類的做法
7 計算機的做法是什麼呢? 簡而言之,遍歷!!
這是計算機輕鬆做到,而我們人類永遠不能企及的事情!
先是對這三個表求笛卡爾積(先是訂單詳情表和產品表求,此結果然後再和生產商表求)
然後,按給定的三個條件逐個刪選!!!
在這裡from做了笛卡爾
where做了篩選
8 where的篩選條件有三個
先看前兩個:
products.vend_id = vendors.vend_id和orderitems.prod_id = products.prod_id
products.vend_id = vendors.vend_id
首先,這裡肯定是有先後順序的,不贅述了
其次,該句的作用對應於對products表中的vend_id進行了翻譯和介紹的那種的人類認知
orderitems.prod_id = products.prod_id
該篩選的作用同樣是對orderitems表中的prod_id進行了翻譯和介紹的那種人類認知
要知道笛卡爾積很多是沒有意義的
聯結的意義在於篩選而篩選的意義在於篩選出有意義的資料!!
實際上,到這裡才真正的將三張表的資訊整合了起來!!
不過整合的結果很瑣碎,每一條記錄是三張表每條記錄的聯結
在整合之後我們要做兩件事情:
①再篩選!!(這才是真正的篩選的開始)
這裡對應order_num="20007"
②選擇我們想知道的資訊字段進行查詢(每個字段表示某一方面的資訊)方有多面,方中的一面就叫一方面!
最後整合其中的邏輯:
1.先求笛卡爾積
2.把錶進行整合(對應等值篩選)
3.按條件查詢需要的資訊字段
聯結就是通過等值篩選實現的表與表的資訊整合!!
最後的最後:生活不是高考需要語數外理化生樣樣精通才能成功,而是把一件事做精就夠夠的了!!一招鮮足夠吃遍天!
深入理解simhash原理
lsh locality sensitive hashing 是區域性敏感性hashing,它與傳統的hash是不同的。傳統hash的目的是希望得到o 1 的查詢效能,將原始資料對映到相應的桶內。lsh的基本思想是將空間中原始資料相鄰的2個資料點通過對映或者投影變換後,這兩個資料點在新的空間中的相鄰...
HDFS原理深入理解
1 hdfs概述 1 資料量越來越多,在乙個作業系統管轄的範圍存不下了,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,因此迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統 2 是一種允許檔案通過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。...
深入理解hashmap的原理
一 什麼是雜湊?雜湊也叫雜湊,是將不同長度的輸入通過乙個函式轉換成同乙個長度輸出的過程,這個輸出的值叫雜湊值,這個轉換函式叫雜湊函式,雜湊函式所採用的演算法加雜湊演算法。實際上是乙個通過訊息得到訊息摘要的方法 二 什麼是雜湊表?雜湊表是乙個通過key訪問value的資料結構,它是基於乙個陣列,存資料...