技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
28
0
自我挑戰組
C# 和 SQL 探索之路 - 2
系列 第
28
篇
Day28: 怎麼閱讀複雜的 SQL
15th鐵人賽
Lazy
2023-10-12 21:56:09
355 瀏覽
分享至
嗨嗨,以下兩篇文章中,有一些是我閱讀複雜 SQL 時,覺得實用的方法。將其記錄下來。
database - Best way to understand complex SQL statements? - Stack Overflow
如果是 UPDATE 或 DELETE 的話,先改寫成 SELECT,以方便觀察結果。
去瞭解 JOIN 另一張資料表的目的,為了取得欄位資料?使用欄位作為條件?用來連接第三張表格?用連接用來過濾資料?此外也可以試試看不同的連接方式,看看會有什麼不同。
逐步檢查查詢的各個語法, WHERE 條件會如何篩選資料?CASE 描述了哪些狀況?為什麼需要子查詢?...
瞭解查詢背後的商業邏輯,以檢查這個查詢的結果是否正確。
How to Understand Long and Complex SQL Queries - by Naser Tamimi - CodeX - Medium
先大略的看過一遍,然後從最後方的欄位,慢慢往回推導。
檢查最後方的 WHERE, GROUP BY 和 JOIN,然後往回推導先前的查詢語法。
不斷重複檢查 WHERE, GROUP BY, JOIN 和子查詢,直到推導至開頭為止。
補充
挑選自己喜歡或覺得適合的策略即可。
另外,如果可以只執行到查詢的中間,可以試試看觀察中途的查詢結果。
留言
追蹤
檢舉
上一篇
Day 27: SQL 執行計畫如何產生
下一篇
Day 29: SQL 關於非叢集索引與索引模式
系列文
C# 和 SQL 探索之路 - 2
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
Day 26: SQL SARGAble
27
Day 27: SQL 執行計畫如何產生
28
Day28: 怎麼閱讀複雜的 SQL
29
Day 29: SQL 關於非叢集索引與索引模式
30
Day 30: 資料表的正規化與設計的摘要 & 後記
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22195
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
fortigate續約
家中獨有一台設備wifi會斷斷續續
Fortigate Let's encrypt憑證開啟http&https
兩端防火牆使用IPSEC互PING之問題
Windows7升級Windows10後網路功能異常
SAMBA加入到WINDOWS AD SERVER的網域後,無法使用CENTOS"本機"帳號進入SAMBA分享的資料夾
python爬蟲 動態生成網頁104人力銀行
區域網路問題提問
HeidiSQL 查詢結果亂碼問題
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
熱門回答
Fortigate 50B 重置密碼
區域網路問題提問
HeidiSQL 查詢結果亂碼問題
家中獨有一台設備wifi會斷斷續續
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day29]
每日一篇學習筆記 直到我做完專題 :( [Day30]
每日一篇學習筆記 直到我做完專題 :( [Day31]
每日一篇學習筆記 直到我做完專題 :( [Day32]
Python 進階爬蟲工具 -Selenium : 安裝和使用ChromeDriver
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}