国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

如何編寫更好的SQL查詢終極攻略-第一部分

2024-09-07 22:13:01
字體:
供稿:網(wǎng)友
  結(jié)構(gòu)化查詢語言(SQL)是數(shù)據(jù)挖掘分析行業(yè)不可或缺的一項技能,總的來說,學(xué)習(xí)這個技能是比較容易的。對于SQL來說,編寫查詢語句只是第一步,確保查詢語句高效并且適合于你的數(shù)據(jù)庫操作工作,才是最重要的。這個教程將會提供給你一些步驟,來評估你的查詢語句。

  為什么要學(xué)SQL?
  尋找數(shù)據(jù)挖掘分析行業(yè)的工作,SQL是最需要的技能之一,不論是申請數(shù)據(jù)分析工作、數(shù)據(jù)引擎工作、數(shù)據(jù)挖掘分析或者其它工作。在O'Reilly發(fā)布的《2016數(shù)據(jù)科學(xué)從業(yè)者薪酬報告》中,有70%的受訪者證實了這一點,表示他們需要在專業(yè)環(huán)境中使用SQL。此外,本次調(diào)查中,SQL遠勝于R(57%)和Python(54%)等編程語言。所以在數(shù)據(jù)挖掘分析領(lǐng)域,SQL是必備技能。
 
  我們分析一下SQL從1970s早期開發(fā)出,到現(xiàn)在還經(jīng)久不衰的原因:
 
  一、公司基本都將數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)或關(guān)系數(shù)據(jù)流管理系統(tǒng)(RDSMS)中,所以需要使用SQL來實現(xiàn)訪問。SQL是通用的數(shù)據(jù)語言,可以使用SQL和幾乎其它任何數(shù)據(jù)庫進行交互,甚至可以在本地建立自己的數(shù)據(jù)庫!
 
  二、只有少量的SQL實現(xiàn)沒有遵循標準,在供應(yīng)商之間不兼容。因此,了解SQL標準是在數(shù)據(jù)挖掘分析行業(yè)立足的必要要求。
 
  三、最重要的是SQL也被更新的技術(shù)所接受,例如Hive或者Spark SQL。Hive是一個用于查詢和管理大型數(shù)據(jù)集的類似于SQL的查詢語言界面;Spark SQL可用于執(zhí)行SQL查詢。
 
  為了提高SQL查詢的性能,首先需要知道,運行查詢時,內(nèi)部會發(fā)生什么。
 
  以下時查詢執(zhí)行的過程:
 
  首先,將查詢解析成“解析樹”; 分析查詢是否滿足語法和語義要求。解析器將會創(chuàng)建一個輸入查詢的內(nèi)部表示,然后將此輸出傳遞給重寫引擎。
  然后,優(yōu)化器的任務(wù)是為給定的查詢,尋找最佳執(zhí)行或查詢計劃。執(zhí)行計劃準確地定義了每個操作所使用的算法,以及如何協(xié)調(diào)操作的執(zhí)行。
  最后,為了找到最佳的執(zhí)行計劃,優(yōu)化器會列舉所有可能的執(zhí)行計劃,并確定每個計劃的質(zhì)量或成本,以便獲取有關(guān)當前數(shù)據(jù)庫狀態(tài)的信息,最后選擇最佳的執(zhí)行計劃。由于查詢優(yōu)化器可能不完善,因此數(shù)據(jù)庫用戶和管理員有時需要手動檢查并調(diào)整優(yōu)化器生成的計劃,以便獲得更好的性能。
  現(xiàn)在你已經(jīng)清楚了什么才是好的執(zhí)行計劃。
 
  正如前面了解到的,計劃的成本質(zhì)量起著重要的作用。更具體地說,評估計劃所需的磁盤I / O數(shù)量,計劃的CPU花銷以及數(shù)據(jù)庫客戶端的整體響應(yīng)時間和總執(zhí)行時間等因素至關(guān)重要。這就是時間復(fù)雜性的概念。后面還將繼續(xù)了解。
 
  接下來,執(zhí)行所選擇的查詢計劃,由系統(tǒng)的執(zhí)行引擎進行評估,并返回查詢結(jié)果。
 
  編寫SQL查詢
  需要進一步說明的是,垃圾回收原則(GIGO)原本就是表達在查詢處理和執(zhí)行之中:制定查詢的人,同時也決定著SQL查詢的性能。
 
  這意味著在編寫查詢,有些事情可以同步去做。就像文章開始時介紹的,編寫查詢需要遵循兩個標準:首先,編寫的查詢需要滿足一定的標準,其次還應(yīng)該應(yīng)對查詢中可以出現(xiàn)的性能問題。
 
  總的來說,有四個分句和關(guān)鍵字,方便新手考慮性能問題:
 
  WHERE 分句
  INNER JOIN 和 LEFT JOIN 關(guān)鍵字
  HAVING 分句
  雖然這種做法簡單而天真,但對于一個初學(xué)者來說,這些方法卻是一個很好的指引。這些地方也是你剛開始編寫時,容易發(fā)生錯誤的地方,這些錯誤也很難發(fā)現(xiàn)。
 
  同時,要想提升性能,使其變得有意義,就不能脫離上下文:在考慮SQL性能時,不能武斷的認為上面的分句和關(guān)鍵字不好。使用WHERE 或 HAVING的分句也可能是很好的查詢語句。
 
  通過下面的章節(jié)來來進一步了解編寫查詢時反向模型和代替方法,并將這些提示和技巧作為指導(dǎo)。如何重寫查詢和是否需要重寫查詢?nèi)Q于數(shù)據(jù)量,以及數(shù)據(jù)庫和執(zhí)行查詢所需的次數(shù)等。這完全取決于你的查詢目標,事先掌握一些有關(guān)數(shù)據(jù)的知識是非常重要的!
 
  1. 僅檢索你需要的數(shù)據(jù)
  在編寫SQL查詢時,并不是數(shù)據(jù)越多越好。因此在使用SELECT 語句、DISTINCT分句和LIKE操作符時,需要謹慎。
 
  SELECT聲明
 
  在編寫完查詢語句之后,首先需要做的事情就是檢查select語句是否簡潔。你的目標應(yīng)該是刪除不必要的select列。以便只取到符合你查詢目的的數(shù)據(jù)。
 
  如果還有相關(guān)使用exists的子查詢,那么就應(yīng)該在select語句中使用常量,而不是選擇實際列的值。當檢查實體時,這是特別方便的。
 
  請記住,相關(guān)子查詢是使用外部查詢中的值的子查詢,并且在這種情況下,NULL是可以作為“常量”的,這點確實令人困惑!
 
  2. 縮小查詢結(jié)果
  如果無法避免使用 SELECT語句時,可以考慮通過其它方式縮小查詢結(jié)果。例如,使用LIMIT 分句和數(shù)據(jù)類型轉(zhuǎn)換的方法。
 
  TOP,LIMIT和ROWNUM分句
 
  可以在查詢中添加LIMIT或TOP分句,來設(shè)置查詢結(jié)果的最大行數(shù)。下面是一個示例:
 
  SELECT TOP 3 *FROM Drivers;
  請注意,你可以進一步指定PERCENT。
 
  例如,如果你想更改查詢的第一行  SELECT TOP 50 PERCENT *。
 
  SELECT driverslicensenr, nameFROM Drivers
  LIMIT 2;
  此外,你還可以添加ROWNUM 分句,相應(yīng)于在查詢中使用的LIMIT:
 
  SELECT *FROM DriversWHERE driverslicensenr = 123456 AND ROWNUM <= 3;
  數(shù)據(jù)類型轉(zhuǎn)換
  應(yīng)該使用最小的數(shù)據(jù)類型,因為小的數(shù)據(jù)類型更加有效。
 
  當查詢中需要進行數(shù)據(jù)類型轉(zhuǎn)化,會增加執(zhí)行時間,所以盡可能的避免數(shù)據(jù)類型轉(zhuǎn)換的發(fā)生;
 
  如果不能避免的話,需要謹慎的定義數(shù)據(jù)類型的轉(zhuǎn)換。
 
  本文是本系列教程的第一篇,后續(xù)還有更多《如何編寫更好的SQL查詢》的文章分享給大家,敬請期待。

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
精品入口麻豆传煤| 黄色国产在线| 国产一级二级在线| 18加网站在线| 精品女厕厕露p撒尿| 伊人狠狠av| 国产男女猛烈无遮挡免费视频| 超碰在线97国产| 国产黄色一级电影| 午夜在线视频| 国产精品探花在线| 在线视频三级| 国产农村一级特黄α**毛片| 国产毛片毛片| 伊人影院蕉久影院在线播放| 欧美日韩亚洲国内综合网| 国产午夜视频| 久热中文字幕| 992tv在线观看在线播放| 九色在线网站| av人人综合网| 国产精品视频一区二区三区麻豆| 日本卡一卡2卡3卡4精品卡网站| 中文字幕视频在线| xxxxx中文字幕| 国产二区三区四区| 99热在线免费播放| eeuss影院网站免费观看| 狠狠狠狠狠狠操| 国产高清免费在线播放| 久久国产情侣| jizz亚洲大全| 亚洲私人影吧| 亚洲色婷婷综合开心网| 国产娇喘精品一区二区三区图片| 国产在线观看a| 全网国产福利在线播放| 在线黄色.com| av高清在线| 在线天堂中文| 伊人久久青青草| 亚洲日本一区二区三区在线观看| 91三级在线| 国产激情自拍| 中文字幕日本三级| 国产男女无套在线播放| 中文字幕中文字幕在线中高清免费版| 狠狠色综合久久婷婷| 久草在线视频网| 国产老肥熟xxxx在线观看| 国产美女性感在线观看懂色av| 成av人免费青青久| 高清在线观看av| 中文字幕网站视频在线| 国产精品视频福利一区二区| 国产精品久久久精品a级小说| 国产精品国精产品一二| 2021天堂中文幕一二区在线观| 国产区高清在线| 国产黄色免费电影| 亚洲激情丁香| 国产中文字幕第一页| 国产羞羞视频在线观看| 中文乱码字幕av网站| 四虎久久影院| 国产美女极品在线| 精品日韩av| 国产永久免费高清在线观看| 国产福利小视频在线观看| 在线观看电影av| 九九视频九九热| 国产超碰在线| 麻豆av电影在线观看| 国产三级视频在线看| 91网页在线观看| 国产综合视频一区二区三区免费| 国产精品久久久久白浆| 日本aⅴ写真网站免费| 最新天堂资源在线| 操人视频91| 国产成人亚洲欧美电影| 美女av在线播放| 永久免费av片在线观看全网站 | 精品视频在线一区二区| 女同一区二区免费aⅴ| 91国内在线| 国产精品久久精品牛牛影视| 日本电影全部在线观看网站视频| 国产亚洲精品久久久久久移动网络| 人人九九精品| 精品女厕厕露p撒尿| 91sp网站在线观看入口| 超碰在线影院| 福利视频在线导航| 丁香婷婷激情| 国产在线高清| 国产乱精品一区二区三区| 黄网址在线播放免费| 任你操视频在线观看| 99色在线观看| 国产精品入口麻豆免费看| 国产尤物视频| 福利资源在线久| 九九视频精品在线| 天天操天天是| 国产亚洲精品久久久网站好莱| 国产麻豆麻豆| 国产小视频在线观看| 中文字幕不卡| 国产丝袜在线| 在线观看wwww| www.香蕉视频在线观看| www.大网伊人| 成人超碰在线| 国产福利在线播放麻豆| 99精品老司机免费视频| www.操.com| 久热国产视频| 国产小黄视频| 在线观看国产视频| 免费在线播放av| 午夜视频99| 亚洲天堂久久久| 日本中文字幕视频在线| 中文av资源在线| 狠狠干天天干| 99爱视频在线观看| 国产蜜臀在线| av免费在线一区二区三区| 国产裸舞福利在线视频合集 | 天天操天天艹| 中文av字幕| 国产一级在线观看www色| 国产黄色高清在线| 久草视频国产| 精品卡一卡卡2卡3网站| 天天操天天曰| 久久久久久久久久久久网站| 国产黄色免费网站| 国产精品亚洲色图| 日本亚洲欧美| 一级二级三级在线观看| 国产网红在线| 99视频免费| 热99在线观看| 一本大道久久精品| 国产成人久久精品77777| 免费黄色网页在线观看| 精品999视频| 国产福利电影在线观看| 尤物免费看在线视频| 久久综合精品视频| 午夜小视频在线| av大片在线播放| 国产超碰97| 国产精品美女一区二区三区四区| 高清av中文在线字幕观看1| 香蕉视频网站在线观看| 精品176二区| 国产福利片在线| 国产精品伦理一区二区三区| 国产污污在线观看| 国产一区二区三区不卡免费观看| 国产原创av在线| 天天操天天艹| 国产激情在线视频| 91啦中文在线| 精品卡1卡2卡三卡免费网站| 国产激情在线| 91看片在线观看| 在线激情网站| 免费看av大片| 国产女呦网站| 超碰97在线免费观看| 青青草免费在线视频| 欧美日韩**字幕一区| 在线观看av中文| 四虎国产精品永久地址998| 青青草视频在线观看| 国产免费福利| 国产精品欧美韩国日本久久| 国产福利小视频在线| 精品成人免费自拍视频| 不卡av免费观看| 中文字幕在线视频不卡| 精品视频一区二区观看| 日韩中文字幕久久久经典网| 丁香花高清在线观看完整版 | 91社区在线观看| 日本视频三区| 国产一级免费| 青青免费在线视频| 2019天天操夜夜操| 欧美性猛交p30| 国产精品视频一区二区久久| 久久综合第一页| 中文字幕av网| 最新中文字幕在线| 亚洲欧美综合乱码精品成人网| 国产免费av网站|