mysql 排版 指令_Mysql語句排版

SQL 高效排版指北

統一 SQL 排版的相關用法,極大提高編寫和維護 SQL 的效率。

注: column = 選取的字段;table = 選取的表名

語句結構

錯誤

SELECT column1 FROM table1 ORDER BY column1

正確

SELECT

column1

FROM

table1

ORDER BY

column1

解析

SQL 語句在內部執行時會解析成樹狀展開的結構,SELECT,FROM,WHERE 等關鍵字定義了結構體,這些關鍵詞統一使用大寫并配合縮進來直觀的區分內容和結構。

判斷條件

錯誤

SELECT column1 FROM table1 WHERE column1=1 AND column2 = 2

正確

SELECT

column1

FROM

table1

WHERE

column1 = 1

AND column2 = 2

解析

同一級別的語句塊保持相等距離的縮進,AND 放置在條件前面。

子查詢

錯誤

SELECT L.column1 FROM (SELECT column1 FROM table1 ) as L

正確

SELECT

L.column1

FROM

(

SELECT

column1

FROM

table1

) as L

解析

子查詢會成為一個完整的表嵌入到上層的結構中,子查詢的內部又是一個完整的結構體,當然也要使用縮進來定義結構,并且整體要往后縮進一個層次,與上層結構配合。

連接

錯誤

SELECT table1.column1,table2.column2 FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column1

正確

SELECT

table1.column1

,table2.column2

FROM

table1

LEFT JOIN

table2

ON

table1.column1 = table2.column1

解析

JOIN 后兩張表會形成一張新的大表,該大表需要保持縮進來嵌入到上層,同時內部的兩種表也要通過縮進維持結構。

逗號

錯誤

SELECT column1,column2,column3 FROM table1

正確

SELECT

column1

,column2

,column3

FROM

table1

解析

讀者剛開始將逗號前置可能會不太習慣,但這樣做會顯著的帶來兩個好處,第一:長的SQL語句往往選取的字段長短不一,若將逗號放在后面,當缺失逗號時很難發現,放在前面就很容易排查,第二:調試 SQL 語句時,注釋掉最后一個字段,也可以直接運行,減少調試時間。

長函數

錯誤

SELECT concat(column1,column2,column3) FROM table1

正確

SELECT

concat( column1

,column2

,column3)

FROM

table1

解析

當長的函數十分復雜時,若沒有清晰的結構,很容易寫完就忘。函數與函數參數也是呈子母對的性質,那么它們也就具有樹狀的表達結構,通過縮進形式也可以展現出這種樹狀結構。

舉個栗子

錯誤

SELECT L.column1,R.column2,concat(L.column1,R.column2) FROM (SELECT column1 ,column3FROM table1) AS L LEFT JOIN

(SELECT column2,column3FROM table2) AS R ON L.column3 = R.column3 WHERE L.column1 = 1 AND R.column1 = 2 GROUP

BY L.column1,R.column2 ORDER BY L.column1,R.column2

正確

SELECT

L.column1

,R.column2

,concat(L.column1

,R.column2)

FROM

(

SELECT

column1

,column3

FROM

table1

) AS L

LEFT JOIN

(

SELECT

column2

,column3

FROM

table2

) AS R

ON

L.column3 = R.column3

WHERE

L.column1 = 1

AND R.column1 = 2

GROUP BY

L.column1

,R.column2

ORDER BY

L.column1

,R.column2

解析

再復雜的語句也可以通過這樣的方式拆分以增加可讀性,在后期調試時也十分方便。

結語

知行合一:這個方法可以加深讀者對 SQL 的理解,在練習的過程中仔細體會這種語法的樹狀結構,假以時日就可以掌握。

怎么學習函數:各種函數看似紛繁多樣,其實基礎結構十分簡單,所有的函數都是圍繞數字,文本,日期這三種數據類型,再輔以一些結構和增刪查改的過程來展開。運用函數的過程就是邏輯上對這三種類型進行運算,再通過邏輯去搜索函數,最后組合起來達到想要目的的過程。so,學習函數就是掌握(數字,文本,日期)*增刪查改 ,這一表達式的過程。

如何融會貫通:隨著練習的深入,讀者可以感受到寫 SQL 就像折紙一樣,它們面向的對象都是矩陣,而所有的數據產品:Excel,Hive,Tableau等等都是在處理矩陣對象,只是表達方式和面對的場景不同才有所差異,本質上殊途同歸。當讀者對矩陣概念有比較清晰的概念時就可以達到一通百通的層次。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397768.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux命令學習手冊-tr命令 2015-07-26 20:35 9人閱讀 評論(0) 收藏...

tr [OPTION]... SET1 [SET2] [功能] 轉換或者刪除字符。 [描述] tr指令從標準輸入設備讀取數據,經過字符串轉譯后,輸出到標準輸出設備。 通過使用 tr,您可以非常容易地實現 sed 的許多最基本功能。您可以將 tr 看作為 sed 的&#xff08…

css商品,商品標簽例子——CSS3 transform 屬性

積累很重要。從此開始記錄前端生涯的點滴....div{width:150px;height:30px;background-color:#f83944;/* Rotate div */transform:rotate(-40deg);-ms-transform:rotate(-40deg); /* Internet Explorer */-moz-transform:rotate(-40deg); /* Firefox */-webkit-transform:rotat…

The literal of int xxxxx is out of range

有時候我們定義了long型的變量,當我們給該變量賦值過長的整數時,系統依然會提示長度超過范圍,解決辦法如下: long timeShow 1437565243495L; 我們需要在整形變量的后面加上“L”,便可以避免系統報錯。轉載于:https://…

debian 訪問 windows 共享_【續】windows環境redis未授權利用方式梳理

01Redis未授權產生原因1.redis綁定在0.0.0.0:6379默認端口,直接暴露在公網,無防火墻進行來源信任防護。2.沒有設置密碼認證,可以免密遠程登錄redis服務02漏洞危害1.信息泄露,攻擊者可以惡意執行flushall清空數據2.可以通過eval執行…

HTML比較常用的標簽

1.全局架構標簽&#xff1a;<html><head><title>標題</title><meta charset"utf-8"></head><body>正文部分</body></html><!--注釋部分-->2.body標簽的屬性bgcolor&#xff1a;背景色text:整個網頁的顏…

sae項目服務器,基于SAE的游戲服務器: Server on SAE for RGSS Games 部署在SAE上的簡易游戲服務器,為用 RMXP/VX/VA 開發的游戲提供網絡服務...

本項目已經關閉服務端已經關閉并且不再重啟&#xff0c;后續請訪問 RGSOS on Gitlab基于SAE的游戲服務器重寫服務端邏輯中……暫時無法正常提供服務功能數據庫封裝封裝了 SAE 上的 Memcached&#xff0c;KVDB 和 Storage 到 SAE_IO 類&#xff0c;并引申到兩個子類&#xff1a;…

1090 Highest Price in Supply Chain (25)

A supply chain is a network of retailers&#xff08;零售商&#xff09;, distributors&#xff08;經銷商&#xff09;, and suppliers&#xff08;供應商&#xff09;-- everyone involved in moving a product from supplier to customer. Starting from one root suppli…

mysql 列數據顯示轉成行數據顯示_Mysql的列修改成行并顯示數據的簡單實現

創建測試表&#xff1a;DROP TABLE IF EXISTS test;CREATE TABLE test (year int(11) DEFAULT NULL,month int(11) DEFAULT NULL,amount double DEFAULT NULL) ENGINEInnoDB DEFAULT CHARSETutf8;插入數據&#xff1a;INSERT INTO test VALUES (1991, 1, 1.1);INSERT INTO test…

Android兩種常見錯誤(ANR和FC)解決辦法

ANR(Activity Not Respone)(無響應)先介紹下Main線程&#xff08;也稱為UI線程、主線程&#xff09;功能: 1.創建UI控件2.更新UI控件狀態3.事件處理限制&#xff1a;Main線程不建議有超過5秒的事件出現條件&#xff1a;當用戶輸入事件5s內沒有得到響應&#xff0c;將彈出ANR對話…

mysql命令(command)

連接mysql命令: mysql -h 192.168.1.1 -P 3306 -uuserName -pPassword 顯示表的索引: SHOW INDDEX FROM table_name 查看mysql的超時時間&#xff1a;SHOW GLOBAL VARIABLES LIKE %timeout% 備份表結構和表數據&#xff1a;mysqldump -u用戶名 -p 庫名 表1 表2 > xxx.sql只…

微信5.0登錄提示服務器繁忙,iOS集成友盟社會化分享微信無法登錄?

iOS集成友盟社會化分享SDK-5.0點擊微信登錄的時候出現無法獲取accessToken的現象&#xff0c;其他如QQ、微博都可以正常登錄使用。另外QQ、微博和微信分享都可以正常使用。望各位早日幫我解決或者分析一下。謝謝//微信登錄之后的回調- (BOOL)application:(UIApplication *)appl…

sql獲取某列出現頻次最多的值_業務硬核SQL集錦

戳上方藍字關注我 這兩年學會了跑sql&#xff0c;當時有很多同學幫助我精進了這個技能&#xff0c;現在也寫成一個小教程&#xff0c;反饋給大家。適用對象&#xff1a;工作中能接觸到sql查詢平臺的業務同學(例如有數據查詢權限的產品與運營同學)適用場景&#xff1a;查詢hive&…

void ,NULL與0的區別聯系

void ,NULL及0的區別聯系 void的詳解: void的字面意思是“無類型”或“空類型”&#xff0c;void*則為“無針型指針”&#xff0c;那就意味著void*可以指向任何類型的數據。 眾所周知&#xff0c;如果指針p1和p2的類型相同&#xff0c;那么我們可以直接在p1和p2間互相賦值&…

python 2 days

1&#xff0c;格式化輸出&#xff0c;%s %d 2&#xff0c;復習昨日講題 編譯型&#xff1a; 將代碼一次性全部編譯成二進制&#xff0c;然后運行。 優點&#xff1a;執行效率高。 缺點&#xff1a;開發效率低&#xff0c;不能跨平臺。 C解釋型&#xff1a; 代碼…

nginx編譯安裝與配置使用

第一部分----nginx基本應用源碼編譯安裝nginx1、安裝pcre軟件包&#xff08;使nginx支持http rewrite模塊&#xff09;yum install -y pcre yum install -y pcre-devel2、安裝openssl-devel&#xff08;使nginx支持ssl&#xff09;yum install -y openssl-devel3、創建用戶ngin…

ubuntu+查看服務器文件夾權限,Ubuntu - 文件夾權限查看與修改

Ubuntu 文件的歸屬身份有四種&#xff1a;u - 擁有文件的用戶(所有者)g - 所有者所在的組群o - 其他人(不是所有者或所有者的組群)a - 每個人或全部(u, g, o)1. 查看文件/文件夾權限ls -l filename # 查看文件權限ls -ld folder # 查看文件夾權限輸出結果如&#xff1a;drwxrwx…

mysql dump 1449_跨版本mysqldump恢復報錯Errno1449

已經有一套主從mysql,新增兩個slave主庫Server version: 5.6.22-log MySQL Community Server (GPL)舊從庫Server version: 5.6.28-log MySQL Community Server (GPL)新增SLAVE 1&#xff1a; Server version: 5.6.22-log MySQL Community Server (GPL)新增SLAVE 2&#xff1a; …

修復 Xcode 錯誤 “The identity used to sign the executable is no longer valid”

如圖&#xff1a; 解決方法來自&#xff1a;http://stackoverflow.com/questions/7088441/the-identity-used-to-sign-the-executable-is-no-longer-valid/14275197 Restarting Xcode didnt work for me. What fixed it for me was going to Accounts in Xcode (in preferences…

centos設置ip

這里是centos7.vmware安裝centos后需要設置ip 1.首先查看虛擬機的網絡適配器信息 2.根據信息修改配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 圖為修改后的,最初的配置為 BOOTPROTOdhcp ONBOOTno IPADDR,GATEWAY,NETMASK沒有進行配置需要根據網絡適配器配置手動維…

微信支付+服務器+php代碼,php 微信支付企業付款(示例代碼)

/*** 格式化參數格式化成url參數*/public function ToUrl($arr){$buff "";foreach ($arr as $k > $v){if($k ! "sign" && $v ! "" && !is_array($v)){$buff . $k . "" . $v . "&";}}$buff trim($b…