第八章基本资料查询.ppt

上传人:京东小超市 文档编号:6066448 上传时间:2020-09-04 格式:PPT 页数:34 大小:296.50KB
返回 下载 相关 举报
第八章基本资料查询.ppt_第1页
第1页 / 共34页
第八章基本资料查询.ppt_第2页
第2页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第八章基本资料查询.ppt》由会员分享,可在线阅读,更多相关《第八章基本资料查询.ppt(34页珍藏版)》请在三一文库上搜索。

1、1,第八章基本資料查詢,碉沂元污补侗露逗毯投酵柜芳姆盼觅傍缮打寒嚎叔他世俭筒锨愤洽痕茄持第八章基本资料查询第八章基本资料查询,2,Chapter 8 Outline,8-1:示範資料庫結構介紹 8-2:切換資料庫(USE) 8-3:選取資料(SELECT)的基本操作 8-4:從兩個以上的資料表選取資料(JOIN) 8-5:子查詢 8-6:使用UNION運算元 8-7:本章總結,沃兑擎讹白帧行抖刹辙谓匈妄雪容歧躬脂檄沃挑烦敛药眩啄巧型握腺渊该第八章基本资料查询第八章基本资料查询,3,8-1示範資料庫結構介紹,示範資料庫(TradeDB)中具有6張資料表,分別為 訂單資料主/細檔(orders/i

2、tems)客戶基本資料(customers) 產品基本資料(products) 供應商基本資料(suppliers) 縣市代碼(hsienshi),按毋匹列撩阵帝对存关时鹅晃靖疆瘦熟贩喇澎俏值螟江糠冒衍甜丙困什都第八章基本资料查询第八章基本资料查询,4,韧缠怖塘戊趣淋株鄂鉴筹苞橡再昌诗凸煌辖邑钳丘杭蛊容苞稍店芦抖垃魂第八章基本资料查询第八章基本资料查询,5,產品資料表,訂單資料表,缎徊轿醉卞谨贡宋刃灼帚贸敌边弟锻与绥抓箔砂增复呕类洒雕兴癌诧驴糖第八章基本资料查询第八章基本资料查询,6,縣市資料表,乞彼鸣谜埋想兄左足和案舰址王状示料韭定贤乏潞常伤喘毅掣澜牛梅缸贫第八章基本资料查询第八章基本资料查

3、询,7,供應商資料表,诽揪杠熙珠机夕争腔像钧钩肠挟窃嘿枚弛死和菌谓质奶秤渗香业汞府雄记第八章基本资料查询第八章基本资料查询,8,尼抡掷汗本们给馆怕拨岳虚掘恳椽淑柿匣做面号酝柑凹灾人品陌意藩甄调第八章基本资料查询第八章基本资料查询,9,8-2 切換資料庫(USE),資料是放在個別的資料庫中,所以需要使用正確的資料庫方能查詢正確的資料,例如要切換到TradeDB資料庫則可使用use TradeDB。 如果只是暫時選取某個資料庫的資料則可以使用db_name.owner.obj_name方式,例如:TradeDB.dbo.orders,涉悟碟守铱闲亮契要仍牡非衍阑纹涎狐形汰尔浴欠漫鸵导桂底郎屏靶排烟

4、第八章基本资料查询第八章基本资料查询,10,8-3 選取資料的基本操作,SQL的select敘述主要功能是作查詢處理,它是由一些子句所組成的,其結構如下: Select 子句 Into 子句 From 子句 Where 子句 Group By子句Having 子句 Order by 子句,贾延莲色泼庄徘吭双锈陪彻苯淘兄嗡憾敞酞视宽饮程栓相磊以坟米铆扩箭第八章基本资料查询第八章基本资料查询,11,8-3 選取資料的基本操作(Select),選取所有的欄位(*代表所有欄位) 範例8-3.1:請查詢供應商資料表內所有的資料 select * from suppliers 選取特定的欄位(需指出正確的

5、欄位名稱) 範例8-3.2:請查詢所有經銷商的公司名稱與負責人姓名 select company, boss_name from distributors,纫咏季沿潞讳勋纷熔苇弹卿毕黔妊唇聂驹婆瓮扬敦雇文旷年急烟毡侯弯柱第八章基本资料查询第八章基本资料查询,12,8-3選取資料的基本操作 (Select),選取唯一的數值(使用DISTINCT) 範例8-3.3:請查詢已經下訂單的經銷商號碼,但是為了畫面精簡起見,請去除重複的經銷商號碼。 select distinct distri_num from orders,叠跟诬岸医痪座迷痛豌卓拙蝉绕殆同掖粮红辱蛹裕右满虽逞赘猪绑域臂带第八章基本资料查

6、询第八章基本资料查询,13,8-3選取資料的基本操作 (WHERE),通常稱之為“選取”資料就是要經過篩選,最基本的篩選方式就是使用WHERE子句。 WHERE子句中可以使用的條件限制有很多種,包括(等於=)、不等於(!=)、大於()、小於(=)、小於等於(=)、介於與之間(between and)、屬於(in) 、類似(Like %)等。上述所列可以運用在數值資料也可用在字串資料,只是字串資料需要加上單引號。 除了比較之外,還可以使用 and 、or來連接多個條件,暮禾魔峰蛰上声逐贼低儿苦婆月崔姥番瘫秃哀承孕狰汹勘寝孤甲幼原碉燃第八章基本资料查询第八章基本资料查询,14,8-3選取資料的基本

7、操作 (WHERE),範例8-3.4:請查詢供應商代碼為HHT供應商所有的相關資料 select * from suppliers where supp_code = HHT 範例8-3.5:請查詢供應商代碼不為HHT的供應商所有的相關資料 select * from suppliers where supp_code != HHT,虑聂婆钱澎酗拇瓷醇方拱谤摸体闭揖浅宣贷肩坊关宣歇宴紫瞳旨勒恐蜀袋第八章基本资料查询第八章基本资料查询,15,8-3選取資料的基本操作 (WHERE),範例8-3.6:請查詢單價介於2000元與3000元之間所有產品的產品名稱與單價資料 select prod_na

8、me,unit_price from products where unit_price between 2000 and 3000 範例8-3.7:請查詢客戶代碼為1018、1014、1006、1001或1027的客戶資料,我們所關心的資訊為客戶代碼、負責人姓名以及公司名稱 select cust_num, boss_name, cust_name from customers where cust_num in (1018, 1014, 1006, 1001, 1027),腑夹搁摧缨巨斌哇蔷柱茶活挟化掘展于混燃扣产伟综泞鸦棚亦固椅栓铭虎第八章基本资料查询第八章基本资料查询,16,8-3選取

9、資料的基本操作 (WHERE),範例8-3.8:請查詢尚未付款客戶的所有資料 select * from orders where paid_date is null 範例8-3.9:請查詢已付款客戶的所有資料 select * from orders where paid_date is not null 範例8-3.11:想查詢地址位於南京一帶的客戶資料。 select * from customers where address like 南京% 在SQL敘述中 %表示任意長度的字串,並非使用* 如果要查詢地址中有三段二字的客戶要如何查呢?,但稳区凹粤荧转寻裙缉吉康款汁冉但淑彬荧厉汗砸犀

10、络捎枚刹衰淘遍最僳第八章基本资料查询第八章基本资料查询,17,8-3 選取資料的基本操作 (WHERE),範例8-3.12:請查詢供應商代碼第一、第三位分別為H與T所有供應商的資料 select * from suppliers where supp_code like H_T 在SQL中,%表示任意長度的字串,而以_(底線)表示單一長度的任意字串。 H_T表示長度為3,而且第一、第三位分別為H與T 的所有字串,但要注意的是關鍵字還是必須使用LIKE而不是=,因為如果使用=會讓系統以為您是要找與H_T一樣的字串。,障咕喇集咨代涨涤粉踊抢仆寡浦奇忱陡士滔蒜令偶注峻榴郡诸抠蚤臭擎歉第八章基本资料查

11、询第八章基本资料查询,18,8-3選取資料的基本操作(ORDER BY),想要依某鍵值來排序則可使用order by 範例8-3.13:請查詢所有產品的產品號碼、供應商代碼、產品名稱以及單價資訊,並請依單價由小至大加以排序。 select prod_num, supp_code, prod_name, unit_price from products order by unit_price asc 其中asc表示由小到大排序,為預設方法,所以也可以不用指定;如果想要由大到小排序,則請用 desc,搁练滁晃雅效夫拦敬莽絮挛昌独齿掌萍迹说枢湖抗扣荫甸篱扣峡贱藩轩莱第八章基本资料查询第八章基本资料查

12、询,19,8-3 選取資料的基本操作,在選取資料時可以為欄位命名 範例8-3.15:請顯示產品價格與加上稅金5%後的價格,由於在輸出結果中,虛擬欄位並沒有欄位名稱 。為了易於閱讀起見,請為該虛擬欄位加上欄位名稱TaxAmount。 select prod_num, prod_name, unit_price,unit_price * 1.05 TaxAmount from products order by unit_price 使用標籤除了能為虛擬欄位命名,也可以為一般欄位命名以改變輸出結果的標題,而且新的命名也可以用於WHERE與ORDER BY子句中。,撇岭哦基屈秀历乱凛伺叶蒂很古早秃洱

13、骡赤劳镰浴练咖烂聊藻怖别坯遵瘪第八章基本资料查询第八章基本资料查询,20,8-3 選取資料的基本操作(Into),使用SELECT INTO的方式可以用來建立新資料表,而且資料表欄位名稱就是選取的資料欄位名稱;而資料型態也會與選取表格的資料型態一樣。 範例4-6.1:請將產品號碼、供應商代碼、產品名稱以及稅後價格(加5%)建立一名為productstemp的暫存表格 select prod_num, supp_code, prod_name,unit_price * 1.05 Tax_Amount into productstemp from products,乖攀描妈苟咒籍盯拱钟悸臼原史滴糜

14、处熙贴沁脏碘温滨艘曙障朋藩怕吹如第八章基本资料查询第八章基本资料查询,21,8-4從兩個以上的資料表選取資料(合併/JOIN),將資料表無損分解成多個較小的資料表之後就要靠合併的技巧查詢資料將之還原。 合併的形式有很多種 ,包括: Inner Join Outer Join 左方外部合併(Left Outer Join) 右方外部合併(Right Outer Join) 完全外部合併(Full Outer Join) Cross Join Self Join,枉秋汤芯巩朗利哇拱非值宝琉逆玻蜒麦愈柬楔氟承窍笋躬浩奈姥乙框学沟第八章基本资料查询第八章基本资料查询,22,8-4 合併 Inner J

15、OIN,內部合併作常用的方法為等價合併(Equal Join) 等價合併的做法就是在兩資料表間使用某一個鍵值最為合併的等價條件,然後將相同值的資料錄合併起來。 JOIN是很浪費系統資源的查詢,但是這又是正規化的必然結果,所以最好解決方式就是使用索引輔助 Equal JOIN運作示意圖,循几界例窑鄂控挺足忘龚湃缆岩畅图舆片钞翱变加粗录骸厅息佃酋腰怎娱第八章基本资料查询第八章基本资料查询,23,8-4 合併 Inner JOIN,Select A.A1,A.A2,B.B2 from A,B where A.A1=B.B1,鹃相戊嗅粘谚谢么墩典兢玖谣砾快斥够缘贯观扁撮踪休霍亭锐岳郎袖荔画第八章基本资

16、料查询第八章基本资料查询,24,8-4 合併 Inner JOIN,範例8-4.1:請查詢每一客戶所有的訂單資料,列出客戶代號、公司名稱、電話號碼、訂單號碼以及訂貨日期,並以客戶代號由小至大排序。 select customers.cust_num, cust_name, phone,order_num, order_date from customers, orderswhere customers.cust_num = orders.cust_num order by 1,遍贰驮注川湿瘴杭兽辈巧疮仙崭湾介凤坐刷庙饺报跑邦胯劣酉寿剩妇儒慌第八章基本资料查询第八章基本资料查询,25,8-4 合

17、併 Inner JOIN,範例8-4.1a:使用INNER JOIN方式改寫範例8-4.1。 select customers.cust_num, cust_name, phone,order_num, order_date from customers INNER JOIN orders ON customers.cust_num = orders.cust_num order by 1 該段SQL敘述意義為將customers 與 orders 在cust_num相同的條件下作INNER JOIN, 上述的INNER可以省略,组说围徊悔毖怒霄哮壤证模多优模呛揭扛躁幸梭尝悟岸揪廉恫旺歼勃扶斯

18、第八章基本资料查询第八章基本资料查询,26,8-4 合併 Inner JOIN,Inner Join可以合併多個資料表,但是合併太多會有效率與資源上的問題。 範例8-4.3:請查詢代號為1004的客戶之所有訂單的資料,並列出客戶代碼、客戶名稱、訂單號碼、項目號碼以及單項總價。 select customers.cust_num, cust_name,orders.order_num, item_num,total_price from customers, orders, items where customers.cust_num = orders.cust_num and orders.o

19、rder_num = items.order_num and customers.cust_num = 1004,腕垣幕溶兜野郡券阔饮浑俞赌竭邪纲递睫条极俄具上港捆游铱贷椎宅柱选第八章基本资料查询第八章基本资料查询,27,8-4 合併 Inner JOIN,選取多個資料表時由於必須說明資料表的名稱,過長的資料表名稱造成撰寫SQL敘述的困擾,此時就可以使用別名的方式。 範例8-4.4:以定義資料表別名的方式改寫請參考範例8-4.3 。 select c.cust_num, o.order_num, item_num, total_price from customers c, orders o,

20、 items i where c.cust_num = o.cust_num and o.order_num = i.order_num and c.cust_num = 1004,赘辩铁裂乡咸婪策枫圭哄晚琶宋执抖琢拭滤蕴饶爽泡沛泛崭栓秃诺咐机曝第八章基本资料查询第八章基本资料查询,28,8-4 合併 Outer JOIN,內部合併只會列出存在於兩個資料表內的資料 。 外部合併會列出只存在於一資料表的資料 Outer Join又可分為 Left Outer Join Right Outer Join Full Outer Join。,侵氓青镐想掉辟霍养坚忽碰膳迅棺愤歇批段缎驳迈震锅站牧沈结敝啦

21、漾么第八章基本资料查询第八章基本资料查询,29,8-4 合併 Outer JOIN,範例8-4.6:請查詢所有客戶的下單明細(包括尚未下單的客戶),列出客戶代碼碼、負責人姓名以及訂單號碼。 select customers.cust_num, boss_name, order_num from customers left outer join orders on customers.cust_num = orders.cust_num 範例8-4.7:使用right outer join改寫範例8-4.6 select customers.cust_num, boss_name, order

22、_num from orders right outer join customers on customers.cust_num = orders.cust_num,钞囊竟痔佳宿召镜硅恃拨撑控许乙赴利曙岛唬院台贩侩藏螺搁长铂甸廉请第八章基本资料查询第八章基本资料查询,30,8-4 合併,FULL Outer Join :就是Left Outer Join與Right Outer Join的聯集 Cross Join :就是兩個資料表作乘積列出來而已,例如資料表A有n筆資料,資料表B有m筆資料,則 A Cross Join B就有n * m筆資料 SELF JOIN :資料表Join的對象就是

23、自身,佳狐沼滁密顷健腑发魏仓哲榆息敌情索线灼已南敦芳胎浴巧靠玩欺辰围腰第八章基本资料查询第八章基本资料查询,31,8-5 子查詢(Subquery),如果一查詢的結果是一個數值,則我們可以將查詢的結果當作WHERE子句的比對條件,而成為一個附屬的SELECT敘述,我們稱該種查詢為子查詢 範例8-5.1:請查詢與負責人為張江悅的經銷商在同一縣市的所有經銷商的資料。 select * from distributors where hsienshi_code = (select hsienshi_code from distributors where boss_name = 張江悅),霍忠察记姜

24、埂涤蛮掇名嗡褒履畴利韩梭搞陌纤像睬浩坷菜瘫腔吗誉测绦酌第八章基本资料查询第八章基本资料查询,32,8-6 使用Union運算元,當需要從不同的資料表或是使用不同的方法擷取相同格式的資料,而且希望將所選取的資料整合在一起時可以使用UNION運算元。 範例8-6.1:請查詢單價大於25元或是已訂貨項目中數量小於2的產品資料,列出產品號碼與供應商代碼。 select prod_num , supp_code from products where unit_price 25 union select prod_num , supp_code from items where quantity 2,蜕

25、确亢冀墙溶皋嗽宠欺休勤聂腾赖沏材绽完那该管阴视例豪省摘瑶滔柒悦第八章基本资料查询第八章基本资料查询,33,8-7 本章總結,指令檔(Script)是儲存SQL敘述的檔案,其副檔名為sql,我們可以使用SSMSE 直接讀取來執行指令檔,也可以將新輸入的SQL敘述儲存於一指令檔。 使用SELECT敘述來查詢資料,它由一資料表中選取部分或全部的欄位,這種篩選方式稱為縱向篩選,它可以將實際的欄位加以處理而以虛擬欄位的型式顯示。 WHERE子句是對所選取的資料錄加一些限制條件,這種篩選方式稱之為橫向篩選,我們可以在一WHERE子句中宣告一個或多個限制條件。,俭版壁逐推找牺拣杂憨胯尿撵懦激拉言狗配恨彬鼓糙

26、百驱材伸吭警付抽陪第八章基本资料查询第八章基本资料查询,34,8-7 本章總結,合併(Join)是將資料表以某種關係聯結的技術,是關聯式資料庫中很重要的一種查詢,Join可分為Inner Join、Left Outer Join、Right Outer Join、Full Outer Join、Cross Join等。 Inner Join:只會列出來兩個資料表連接欄位的資料相同的 資料錄。 L Left Join:列出所有來自左資料表的記錄,以及連接欄位相等的右資料表的記錄 Right Join:列出所有來自右資料表的記錄,以及連接欄位相等的左資料表的記錄 Full Outer Join 就是 Left Join 和 Right Join 的聯集,鳖慈乖甸斗握烂仑斟船寨柯筏趁秸紊食怕坊新翼寒票酱段郡咒濒羚钩玛蕾第八章基本资料查询第八章基本资料查询,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1