轉(zhuǎn)帖|使用教程|編輯:鮑佳佳|2020-09-01 10:38:31.147|閱讀 457 次
概述:今天的文章將介紹更多查詢,這幾乎是自動(dòng)編寫查詢的一個(gè)技巧! 這些包括屬于用戶創(chuàng)建的數(shù)據(jù)庫的表,也就是說,它們不是系統(tǒng)數(shù)據(jù)庫模式的一部分。確切的語法因供應(yīng)商而異,但文章中的一些示例可讓你有一個(gè)概念。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Navicat Premium是一個(gè)可連接多種數(shù)據(jù)庫的管理工具,它可以讓你以單一程序同時(shí)連接到MySQL、Oracle及PostgreSQL數(shù)據(jù)庫,讓管理不同類型的數(shù)據(jù)庫更加的方便。
點(diǎn)擊下載Navicat Premium最新試用版
不久前,我們探索了你必須知道的一些 SELECT 查詢。其中包括確定列的最小值或最大值,以及按類別對(duì)結(jié)果進(jìn)行分組。今天的文章將介紹更多查詢,這幾乎是自動(dòng)編寫查詢的一個(gè)技巧!
獲取所有用戶創(chuàng)建的表這些包括屬于用戶創(chuàng)建的數(shù)據(jù)庫的表,也就是說,它們不是系統(tǒng)數(shù)據(jù)庫模式的一部分。確切的語法因供應(yīng)商而異,但這里有幾個(gè)示例可讓你有一個(gè)概念。
在 SQL Server 中,這一行簡單的語句就可完成工作:
SELECT NAME FROM sys.objects WHERE TYPE='U'
MySQL 的語法有點(diǎn)冗長,因?yàn)槟惚仨氈付ㄏ到y(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)每個(gè)表的大量有用信息,包括行數(shù)、存儲(chǔ)引擎、它們的大小、最后一個(gè) auto_increment 值等等!
如果你只想要在 MySQL 中的表名,那就很容易了。你可以使用 WHERE 子句縮窄列表范圍,或者,你可以發(fā)出以下命令:
SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'BASE TABLE';
獲取所有視圖名同樣,確切的語法因供應(yīng)商而異,但是這幾個(gè)例子將提供一個(gè)良很的起點(diǎn)。
這是 SQL Server 的語法:
SELECT * FROM sys.views
在 MySQL 中,我們可以通過將 TABLE_TYPE 限制為 'VIEW' 來將列表縮窄到視圖。我們?nèi)匀槐仨毰懦?sys 數(shù)據(jù)庫,因?yàn)樗S多視圖:
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 查詢既是一門藝術(shù),也是一門科學(xué)。你可以養(yǎng)成一些良好的習(xí)慣,這些習(xí)慣會(huì)在生產(chǎn)力和/或?qū)懽鞯暮喴仔苑矫鎺砗锰帯@纾恚ɑ騍QL)別名用于為表或表中的列提供僅在查詢期間存在的臨時(shí)名稱。可以使用別名來使列名更具可讀性并且更不容易出錯(cuò)。
你需要做的就是在 FROM 子句中的表名后面加上“AS [alias_name]”:
SELECT column_name(s)
FROM table_name AS alias_name;
當(dāng)你使用像 Navicat 這樣的查詢編輯器時(shí),別名真的很值得使用。假設(shè)我們要從 actor 表中選擇一些字段。首先,我們將列列表留空,然后輸入 FROM 子句,并使用表別名:
SELECT FROM actor as a
現(xiàn)在,當(dāng)我們輸入較短的表別名時(shí),Navicat 會(huì)顯示一個(gè)包含所有表列的自動(dòng)完成列表:
以這種方式編寫查詢不僅快速,而且還消除了列名拼寫錯(cuò)誤的可能性!
總結(jié)在今天的文章中,我們學(xué)習(xí)了幾個(gè)查詢和技巧,使用Navicat Premium 作為數(shù)據(jù)庫客戶端使編寫 SELECT 語句幾乎全自動(dòng)。Navicat 的自動(dòng)完成代碼和自定義的代碼段功能透過關(guān)鍵字建議和減少重復(fù)輸入相同的代碼,令編碼更加快速。你可以通過免費(fèi)試用進(jìn)行評(píng)估。現(xiàn)在慧都雙節(jié)同慶!限時(shí)優(yōu)惠Navicat Premium正版授權(quán)立減1000,一次購買終身享用!點(diǎn)擊查看詳情!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: