• <menu id="w2i4a"></menu>
  • logo Navicat使用教程-2019.1

    文檔首頁>>Navicat使用教程-2019.1>>Navicat使用教程:針對每個數(shù)據(jù)庫開發(fā)人員工具包的更多基本SELECT查詢

    Navicat使用教程:針對每個數(shù)據(jù)庫開發(fā)人員工具包的更多基本SELECT查詢


    Navicat Premium是一個可連接多種數(shù)據(jù)庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數(shù)據(jù)庫,讓管理不同類型的數(shù)據(jù)庫更加的方便。

    點擊下載Navicat Premium正式版

    不久前,我們探索了一些您必須知道的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值等等!

    27user_tables(1).jpg

    如果您只想要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é)果:

    28views(1).jpg

    尋找特定數(shù)據(jù)庫的視圖?您可以將WHERE子句更改為:

    AND TABLE_SCHEMA LIKE '[database_name]'

    以下命令也將起作用:

    SHOW FULL TABLES IN [database_name] WHERE TABLE_TYPE LIKE 'VIEW';

    這將返回視圖名稱及其類型,該名稱始終為“view”:

    29views_in_db.jpg

    一般技巧:使用表別名

    編寫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將顯示一個具有所有表列的自動完成列表:

    30auto_complete.jpg

    以這種方式編寫查詢不僅更快,而且可以消除列的拼寫錯誤!

    結(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使用教程:您必須知道的幾個SELECT查詢

    Navicat使用教程:如何使用SQL CASE語句來測試條件和離散值

    Navicat使用教程:如何跨多個數(shù)據(jù)庫查詢

    Navicat使用教程:從單個應(yīng)用程序管理多個數(shù)據(jù)庫

    Navicat使用教程:從單個工具連接到多個數(shù)據(jù)庫


    想要購買Navicat Premium正版授權(quán),或了解更多產(chǎn)品信息請點擊“咨詢在線客服”

    Zend-Studio-640×220.png


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();