2023年,第34周,第1篇文章。給自己一個目標,然后堅持總會有收貨,不信你試試!
SQL SERVER 官方本身就有數據庫可視化管理工具SSMS,所以大部分都會使用SSMS。以前版本是直接捆綁,
安裝完成就自帶有,最近版本可以不捆綁,需要單獨下載安裝對應版本。
目錄
- 一、可視化工具
- 1.1、Azure Data Studio
- 1.2、Visual Studio Code
- 1.3、DBeaver
- 1.4、SQL Server Data Tools (SSDT)
- 1.5、dbForge Studio for SQL Server
- 1.6、Navicat for SQL Server
- 二、SSMS版本
- 1.1、SQL Server 2008 SSMS
- 1.2、SQL Server 2012 SSMS
- 1.3、SQL Server 2014 SSMS
- 1.4、SQL Server 2016 SSMS
- 1.5、SQL Server 2017 SSMS
- 1.6、SQL Server 2019 SSMS
- 三、常見系統表
- 1.1、sys.objects
- 1.2、sys.columns
- 1.3、sys.tables
- 1.4、sys.views
- 1.5、sys.procedures
- 1.6、sys.triggers
- 1.7、sys.indexes
- 1.8、sys.schemas
- 1.9、sys.databases
- 1.10、sys.sysprocesses
- 四、SQL查詢系統表
- 4.1、查詢數據庫所有表
- 4.2、查詢表字段和備注
一、可視化工具
除了 Microsoft SQL Server Management Studio (SSMS),還有許多其他可視化工具可用于管理和查詢 SQL Server 數據庫。
以下是一些常用的可視化工具:
1.1、Azure Data Studio
這是一個輕量級的跨平臺數據庫管理工具,可用于連接和管理多個數據庫,包括 SQL Server、Azure SQL Database 等。
1.2、Visual Studio Code
雖然它是一個通用的代碼編輯器,但通過安裝適當的擴展,如 mssql 擴展,可以在 Visual Studio Code 中連接和查詢 SQL Server 數據庫。
1.3、DBeaver
這是一個功能豐富的開源數據庫管理工具,支持多個數據庫平臺,包括 SQL Server。它提供了直觀的用戶界面和強大的查詢功能。
1.4、SQL Server Data Tools (SSDT)
這是一個 Visual Studio 的插件,專門為 SQL Server 數據庫開發提供支持。它提供了數據庫項目、模型設計、數據比較和發布等功能。
1.5、dbForge Studio for SQL Server
這是一個功能強大的商業數據庫管理工具,提供了廣泛的功能,包括數據庫設計、查詢構建、數據導入導出等。
1.6、Navicat for SQL Server
這是另一個商業數據庫管理工具,支持多個數據庫平臺,包括 SQL Server。它提供了直觀的用戶界面和豐富的功能集。
這些可視化工具具有不同的功能和用戶界面,可以根據個人喜好和需求選擇適合自己的工具。
無論您選擇哪個工具,都可以方便地進行 SQL Server 數據庫的管理和查詢。
二、SSMS版本
Microsoft SQL Server Management Studio (SSMS) 是用于管理和操作 Microsoft SQL Server 數據庫的集成環境。
它提供了一個圖形用戶界面,可以進行數據庫的設計、查詢、管理和調優等操作。
SSMS 的每個版本都會引入一些新的功能和改進,以下是一些常見版本之間的主要區別
1.1、SQL Server 2008 SSMS
發布于 2008 年,這是最早的 SSMS 版本之一。
SSMS 2008 帶來了許多新功能和改進,包括:
1)IntelliSense
提供了代碼自動完成和語法檢查的功能,可以更快速地編寫和調試 SQL 查詢和腳本。
2)多文件查詢編輯器
允許同時打開和編輯多個查詢文件,方便進行多個查詢之間的比較和調試。
3)依賴關系查看器
允許查看數據庫對象之間的依賴關系,方便了解對象之間的依賴和影響。
4)活動監視器
提供了實時監控和分析數據庫活動和性能的功能,包括查詢的執行計劃、鎖和阻塞信息等。
1.2、SQL Server 2012 SSMS
發布于2012年3月7日,這個版本引入了一些新的功能,如本地執行計劃預覽、分組窗口函數語法高亮、
列選擇器以及對一些新的 SQL Server 2012 特性的支持。
1.3、SQL Server 2014 SSMS
發布于2014年4月1日,此版本引入了更多的功能和改進,包括緩存擴展模式、多服務器查詢等。
1.4、SQL Server 2016 SSMS
發布于2016年6月1日,這個版本增加了對 SQL Server 2016 的許多新功能的支持,如 Temporal 表、動態數據遮罩、行級安全等。
1.5、SQL Server 2017 SSMS
發布于2017年10月2日,此版本引入了一些新的功能,如繪圖、自動關聯、自動化自檢等。
1.6、SQL Server 2019 SSMS
發布于2019年11月4日,這個版本增加了對 SQL Server 2019 的新功能的支持,如 Big Data Clusters、加密數據頁、智能查詢處理等。
需要注意的是,每個版本的 SSMS 都支持相應版本的 SQL Server 數據庫,但通常較新版本的 SSMS 也能向下兼容較舊版本的數據庫。
建議使用最新版本的 SSMS,以便獲得更多的功能和性能改進。
請注意,以上只是一些主要版本之間的區別,并不詳細。
小伙伴們可以查閱 Microsoft 官方文檔或更詳細的發布說明來了解每個版本的具體改進和新增功能。
三、常見系統表
在 SQL Server 中,系統表是用于存儲數據庫元數據和系統信息的特殊表。以下是一些常見的 SQL Server 系統表:
1.1、sys.objects
此表包含數據庫中所有對象(如表、視圖、存儲過程、觸發器等)的信息,包括其名稱、類型、創建日期等。
1.2、sys.columns
該表存儲數據庫中所有表的列信息,包括列的名稱、數據類型、長度等。
1.3、sys.tables
這個表包含數據庫中所有的表的信息,包括表的名稱、模式、類型、創建日期等。
1.4、sys.views
該表存儲數據庫中所有的視圖信息,包括視圖的名稱、定義、創建日期等。
1.5、sys.procedures
此表包含數據庫中所有存儲過程的信息,例如存儲過程的名稱、定義、創建日期等。
1.6、sys.triggers
該表包含數據庫中所有觸發器的信息,包括觸發器的名稱、關聯的表、事件類型等。
1.7、sys.indexes
此表存儲數據庫中所有索引的信息,包括索引的名稱、所屬表、列等。
1.8、sys.schemas
該表包含數據庫中所有的模式信息,包括模式的名稱、屬主等。
1.9、sys.databases
此表存儲所有數據庫的信息,包括數據庫的名稱、創建日期、狀態等。
1.10、sys.sysprocesses
該表提供有關當前 SQL Server 實例上運行的每個進程的信息,包括進程的 ID、狀態、當前執行的 SQL 語句等。
以上是一些常見的 SQL Server 系統表,它們可以提供關于數據庫結構、對象和元數據的重要信息,幫助進行數據庫管理、查詢和監視。
請注意,這只是一小部分系統表,并且可能因 SQL Server 版本和配置而有所差異。
四、SQL查詢系統表
4.1、查詢數據庫所有表
要查詢 SQL Server 數據庫中的所有表,你可以使用以下 SQL 查詢:
USE YourDatabaseName; -- 替換為你要查詢的數據庫名稱
SELECT *
FROM sys.tables;
在上面的查詢中,你需要將 “YourDatabaseName” 替換為你要查詢的數據庫的實際名稱。
該查詢將從 sys.tables
系統表中檢索到關于數據庫中所有表的信息,并返回該信息。
請注意,這個查詢將返回包含所有表的結果集,包括系統表和用戶表。
如果你只想返回用戶表,可以在查詢中添加一個附加的篩選條件,例如:
USE YourDatabaseName; -- 替換為你要查詢的數據庫名稱
SELECT *
FROM sys.tables
WHERE is_ms_shipped = 0;
通過將 is_ms_shipped = 0
條件添加到查詢中,可以排除系統表,并僅返回用戶表。
另外,還可以使用 SSMS 圖形用戶界面來獲取數據庫中的所有表。在 SSMS 中,
展開數據庫對象(在“對象資源管理器”窗格中可見),然后選擇“表”文件夾,你就可以看到該數據庫中的所有表。
4.2、查詢表字段和備注
要查詢 SQL Server 數據庫表的字段和字段說明,你可以使用以下 SQL 查詢:
USE 數據庫名; -- 替換為你要查詢的數據庫名稱
SELECT T.TABLE_NAME AS 表名,C.COLUMN_NAME AS 字段名,P.VALUE AS 字段說明
FROM INFORMATION_SCHEMA.TABLES AS T
INNER JOIN INFORMATION_SCHEMA.COLUMNS AS C ON T.TABLE_NAME = C.TABLE_NAME
LEFT JOIN (SELECT MAJOR_ID,MINOR_ID,NAME,VALUEFROM SYS.EXTENDED_PROPERTIES WHERE NAME = 'MS_Description'
) AS P ON P.MAJOR_ID = OBJECT_ID(T.TABLE_NAME) AND P.MINOR_ID = COLUMNPROPERTY(OBJECT_ID(T.TABLE_NAME), C.COLUMN_NAME, 'ColumnID')
WHERE T.TABLE_TYPE = 'BASE TABLE' and T.TABLE_NAME='你的表名' -- 只查詢基本表
ORDER BY T.TABLE_NAME, C.ORDINAL_POSITION;
在查詢中,將 “數據庫名” 替換為你要查詢的實際數據庫名稱。
該查詢通過聯接 INFORMATION_SCHEMA.TABLES 和 INFORMATION_SCHEMA.COLUMNS 系統視圖來檢索數據庫中表字段的信息。
然后,使用子查詢獲取字段的說明信息。
查詢結果包括表名、字段名和字段說明。
使用 WHERE 子句可以根據需要進行過濾,例如只查詢基本表或特定的表。
查詢結果按表名和字段順序排序。
請注意,這個查詢默認使用的是 MS_Description 擴展屬性來存儲字段說明。
如果你在數據庫中使用了其他名稱來存儲說明信息,需要相應地修改 WHERE 子查詢中的 NAME = ‘MS_Description’ 條件。