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