翻譯|使用教程|編輯:莫成敏|2019-09-23 09:54:47.840|閱讀 517 次
概述:不久前,我們探索了一些您必須知道的SELECT查詢(xún)。其中包括確定列的最低值和最高值,以及按類(lèi)別對(duì)結(jié)果進(jìn)行分組。今天的文章提供了更多查詢(xún),并提供了使您的查詢(xún)幾乎能自動(dòng)編寫(xiě)的技巧!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
Navicat Premium是一個(gè)可連接多種數(shù)據(jù)庫(kù)的管理工具,它可以讓你以單一程序同時(shí)連接到MySQL、Oracle及PostgreSQL數(shù)據(jù)庫(kù),讓管理不同類(lèi)型的數(shù)據(jù)庫(kù)更加的方便。
不久前,我們探索了一些您必須知道的SELECT查詢(xún)。其中包括確定列的最低值和最高值,以及按類(lèi)別對(duì)結(jié)果進(jìn)行分組。今天的文章提供了更多查詢(xún),并提供了使您的查詢(xún)幾乎能自動(dòng)編寫(xiě)的技巧!
獲取所有用戶(hù)創(chuàng)建的表
這些表包括用戶(hù)創(chuàng)建的數(shù)據(jù)庫(kù)的一部分,也就是說(shuō),不屬于系統(tǒng)數(shù)據(jù)庫(kù)架構(gòu)的表。確切的語(yǔ)法因供應(yīng)商而異,但是這里有一些示例可以幫助您理解。
在SQL Server中,這個(gè)簡(jiǎn)單的單行代碼即可完成一下工作:
SELECT NAME FROM sys.objects WHERE TYPE='U'
MySQL的語(yǔ)法有點(diǎn)冗長(zhǎng),因?yàn)槟仨氈付ㄏ到y(tǒng)數(shù)據(jù)庫(kù)才能省略它們的表:
SELECT * from information_schema.tables WHERE table_schema not in ('information_schema', 'mysql', 'performance_schema') ORDER BY table_schema, table_name;
那么,為什么要查詢(xún)用戶(hù)表?除了表名之外,MySQL查詢(xún)還返回有關(guān)每個(gè)表的大量有用信息,包括行數(shù)、存儲(chǔ)引擎、它們的大小、最后一個(gè)auto_increment值等等!
如果您只想要MySQL中的表名,那很容易做到。您可以使用WHERE子句來(lái)縮小列表的范圍,也可以發(fā)出以下命令:
SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'BASE TABLE';
獲取所有視圖名稱(chēng)
同樣,確切的語(yǔ)法因供應(yīng)商而異,但是有一些示例將提供一個(gè)很好的起點(diǎn)。
這是SQL Server語(yǔ)法:
SELECT * FROM sys.views
在MySQL中,我們可以通過(guò)將TABLE_TYPE限制為“VIEW”來(lái)縮小列表的范圍。我們?nèi)匀槐仨毰懦齭ys數(shù)據(jù)庫(kù),因?yàn)樗S多視圖:
SELECT * FROM information_schema.`TABLES` WHERE TABLE_TYPE = 'VIEW' AND table_schema != 'sys';
這是Navicat Premium的結(jié)果:
尋找特定數(shù)據(jù)庫(kù)的視圖?您可以將WHERE子句更改為:
AND TABLE_SCHEMA LIKE '[database_name]'
以下命令也將起作用:
SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'VIEW';
這將返回視圖名稱(chēng)及其類(lèi)型,該名稱(chēng)始終為“view”:
一般技巧:使用表別名
編寫(xiě)SQL查詢(xún)和科學(xué)都是一門(mén)藝術(shù)。您可以養(yǎng)成一些良好的習(xí)慣,這些習(xí)慣可以提高工作效率或簡(jiǎn)化寫(xiě)作。例如,表(或SQL)別名用于為表或表中的列提供一個(gè)臨時(shí)名稱(chēng),該臨時(shí)名稱(chēng)僅在查詢(xún)期間存在。可以使用別名來(lái)使列名更易讀且更不易出錯(cuò)。
您需要做的就是在FROM子句中的表名之后包含“AS [alias_name]”:
SELECT column_name(s) FROM table_name AS alias_name;
當(dāng)您使用查詢(xún)編輯器(如Navicat的查詢(xún)編輯器)時(shí),別名確實(shí)可以保留。假設(shè)我們要從參與者表中選擇一些字段。首先,我們將列列表留空,然后輸入FROM子句,并附上表別名:
SELECT FROM actor as a
現(xiàn)在,當(dāng)我們輸入較短的表別名時(shí),Navicat將顯示一個(gè)具有所有表列的自動(dòng)完成列表:
以這種方式編寫(xiě)查詢(xún)不僅更快,而且可以消除列的拼寫(xiě)錯(cuò)誤!
結(jié)論
在今天的文章中,我們學(xué)習(xí)了一些查詢(xún)和技巧,使我們的SELECT幾乎可以使用Navicat Premium作為數(shù)據(jù)庫(kù)客戶(hù)端來(lái)編寫(xiě)自己。Navicat通過(guò)獲取關(guān)鍵字建議并從編碼中去除重復(fù)內(nèi)容,來(lái)幫助您通過(guò)代碼完成和可自定義的代碼片段快速進(jìn)行編碼。您可以獲取Navicat Premium正式版進(jìn)行評(píng)估!
相關(guān)內(nèi)容推薦:
Navicat使用教程:您必須知道的幾個(gè)SELECT查詢(xún)
Navicat使用教程:如何使用SQL CASE語(yǔ)句來(lái)測(cè)試條件和離散值
Navicat使用教程:如何跨多個(gè)數(shù)據(jù)庫(kù)查詢(xún)
Navicat使用教程:從單個(gè)應(yīng)用程序管理多個(gè)數(shù)據(jù)庫(kù)
Navicat使用教程:從單個(gè)工具連接到多個(gè)數(shù)據(jù)庫(kù)
想要購(gòu)買(mǎi)Navicat Premium正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn