国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

《MySQL必知必會》學習筆記八(自/外聯(lián)結)------掌握部分

2019-11-08 20:31:25
字體:
來源:轉載
供稿:網友

MySQL必知必會知識預覽 第一章——了解SQL 第二章——MySQL簡介 第三章——使用MySQL 第四章——檢索數(shù)據(jù) 第五章——排序檢索數(shù)據(jù) 第六章——過濾數(shù)據(jù) 第七章——數(shù)據(jù)過濾 第八章——用通配符進行過濾 第九章——用正則表達式進行搜索 第十章——創(chuàng)建計算字段 第十一章——使用數(shù)據(jù)處理函數(shù) 第十二章——匯總數(shù)據(jù) 第十三章——分組數(shù)據(jù) 第十四章——使用子查詢 第十五章——聯(lián)結表 第十六章——創(chuàng)建高級聯(lián)結 第十七章——組合查詢 第十八章——全文本搜索 第十九章——插入數(shù)據(jù) 第二十章——更新和刪除數(shù)據(jù) 第二十一章——創(chuàng)建和操縱表 第二十二章——使用視圖 第二十三章——使用儲存過程 第二十四章——使用游標 第二十五章——使用觸發(fā)器 第二十六章——管理事務處理 第二十七章——全球化和本地化 第二十八章——安全管理 第二十九章——數(shù)據(jù)庫維護 第三十章——改善性能 ————————————– 華麗的分隔符 ————————————————–

第十六章

使用表別名:縮短SQL語句,允許在單條select語句中多次使用相同的表,表別名只是在查詢中使用,與列別名不一樣的是,列別名可以在客戶機進行查詢使用。 select cust_name,cust_contact from customers as cu ,orders as ordorderitems as ort where cu.cust_id =ord.cust_id and ord.order_num =ort.order_num and ort.PRod_id=’tnt2’

應該注意: 表別名只在查詢中使用,與列別名不一樣,表列名不返回到客戶機。

自聯(lián)結

思考: 如果 商品(其ID為DTNTR)有問題,因此想要知道生產該產品的供應商的其他產品是否也存在這些問題。

————————————–————————————–————————————– 首先找到ID為DTNTR的供應商,然后再查找該供應商的其他產品信息。

子查詢實現(xiàn): select prod_name,prod_id from products where vend_id =(select vend_id from products where prod_id=’DTNTR’);

自聯(lián)結查詢實現(xiàn): select p1.prod_name,p1.prod_id from products as p1 , products as p2 where p1.vend_id = p2.vend_id and p2.prod_id=’DTNTR’;

這里寫圖片描述

注意: 用自聯(lián)結而不用子查詢:自聯(lián)結通常作為外部語句用來代替從相同表中檢索數(shù)據(jù)時使用的子查詢語句。雖然最終的結果是相同的,但有時候處理聯(lián)結遠比處理子查詢快得多。多試,看看哪種性能更好

外部聯(lián)結

聯(lián)結包含了那些在相關表中沒有關聯(lián)行的行,這種類型的鏈接稱為外部聯(lián)結。 使用outer join 語法時,必須使用right 或left 關鍵字進行指定包括其所有行的表。 左聯(lián)結:查詢各表中滿足條件相同的行,并且查詢出左表的所有信息行。 右聯(lián)結:查詢各表中滿足條件相同的行,并且查詢出右表的所有信息行。 select customers.cust_id,orders.order_num from customers left outer join orders on orders.cust_id = customers.cust_id; select customers.cust_id,orders.order_num from customers right outer join orders on orders.cust_id = customers.cust_id; 這里寫圖片描述 注意: 圖中的數(shù)據(jù)一個是6條數(shù)據(jù),一個是5條數(shù)據(jù)。在左聯(lián)結查詢時,會將左表的所有信息給查詢出來,而有些數(shù)據(jù)在右表不存在,從而連帶出空數(shù)據(jù)。而在右聯(lián)結查詢時,則是將右表的數(shù)據(jù)查詢出來,然后連帶出左表的部分數(shù)據(jù),

MySQL不支持簡化字符” *= ”和” =* ”的使用 ,但是這種操作符在其他DBMS中很是流行。

帶聚集函數(shù)的聯(lián)結

聚集函數(shù)用來匯總數(shù)據(jù)。也可以與聯(lián)結進行使用。

select customers.cust_name,customers.cust_id, count(orders.order_num) as n um_ord from customers inner join orders on customers.cust_id = orders.cust_id gr oup by customers.cust_id; 這里寫圖片描述

select 語句使用Inner Join 將customers和orders表相互關聯(lián)。group by 子句按客戶分組數(shù)據(jù),因此,函數(shù)調用count對每個客戶的訂單計數(shù),然后返回。

使用聯(lián)結的要點: 一般我們是使用內部聯(lián)結,但是使用外部聯(lián)結也是有效的。 保證使用正確的聯(lián)結條件,否則將返回不正確的結果。 應該提供有效的聯(lián)結條件,否則將會產生笛卡兒積。 在一個聯(lián)結中可以包含多個表,甚至對于每個聯(lián)結可以采用不同的聯(lián)結類型。但是應該在一起測試他們之前,分別測試每個聯(lián)結。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 颍上县| 沁水县| 邵武市| 郸城县| 嘉荫县| 兴城市| 漯河市| 略阳县| 慈利县| 呼伦贝尔市| 南汇区| 呼伦贝尔市| 余干县| 南开区| 阿拉善左旗| 岢岚县| 炎陵县| 合肥市| 宣城市| 上虞市| 浑源县| 正宁县| 开阳县| 汝阳县| 安达市| 隆子县| 阿鲁科尔沁旗| 乌拉特中旗| 和政县| 辽阳市| 玉树县| 富民县| 和田市| 左云县| 胶州市| 武邑县| 绩溪县| 剑河县| 安溪县| 德江县| 屏东县|