首頁 > 資料庫 > mysql教程 > 如何檢索 SQL 列的完整資料類型?

如何檢索 SQL 列的完整資料類型?

Susan Sarandon
發布: 2024-12-29 13:18:15
原創
282 人瀏覽過

How to Retrieve the Complete Data Type of a SQL Column?

如何在SQL 中檢索列類型

在資料庫管理領域,必須擁有有關表結構的信息,包括其列的資料類型。這些知識有助於資料理解、操作和查詢最佳化。值得慶幸的是,SQL 提供了一種檢索特定列的資料類型的機制。

利用 INFORMATION_SCHEMA.COLUMNS 視圖

INFORMATION_SCHEMA.COLUMNS 視圖提供了全面的目錄表元資料,包括列類型。此視圖提供了大量信息,包括列的資料類型、可為空性和其他屬性。要檢索特定列的資料類型,請使用以下查詢:

SELECT
    DATA_TYPE
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_SCHEMA = '[yourSchemaName]' AND
    TABLE_NAME = '[yourTableName]' AND
    COLUMN_NAME = '[yourColumnName]';
登入後複製

使用參數重建類型

雖然DATA_TYPE 列提供了基本信息,但它可能並不總是包含參數化類型的完整規格。例如,鍵入為 nvarchar(max) 的欄位將僅顯示為 nvarchar。要解決此問題,請考慮以下方法:

WITH q AS (
    SELECT
        c.TABLE_SCHEMA,
        c.TABLE_NAME,
        c.ORDINAL_POSITION,
        c.COLUMN_NAME,
        c.DATA_TYPE,
        CASE
            WHEN c.DATA_TYPE IN ( N'binary', N'varbinary'                    ) THEN ( CASE c.CHARACTER_OCTET_LENGTH   WHEN -1 THEN N'(max)' ELSE CONCAT( N'(', c.CHARACTER_OCTET_LENGTH  , N')' ) END )
            WHEN c.DATA_TYPE IN ( N'char', N'varchar', N'nchar', N'nvarchar' ) THEN ( CASE c.CHARACTER_MAXIMUM_LENGTH WHEN -1 THEN N'(max)' ELSE CONCAT( N'(', c.CHARACTER_MAXIMUM_LENGTH, N')' ) END )
            WHEN c.DATA_TYPE IN ( N'datetime2', N'datetimeoffset'            ) THEN CONCAT( N'(', c.DATETIME_PRECISION, N')' )
            WHEN c.DATA_TYPE IN ( N'decimal', N'numeric'                     ) THEN CONCAT( N'(', c.NUMERIC_PRECISION , N',', c.NUMERIC_SCALE, N')' )
        END AS DATA_TYPE_PARAMETER,
        CASE c.IS_NULLABLE
            WHEN N'NO'  THEN N' NOT NULL'
            WHEN N'YES' THEN     N' NULL'
        END AS IS_NULLABLE2
    FROM
        INFORMATION_SCHEMA.COLUMNS AS c
)
SELECT
    CONCAT( q.DATA_TYPE, ISNULL( q.DATA_TYPE_PARAMETER, N'' ), q.IS_NULLABLE2 ) AS FULL_DATA_TYPE
FROM
    q
WHERE
    q.TABLE_SCHEMA = '[yourSchemaName]' AND
    q.TABLE_NAME = '[yourTableName]' AND
    q.COLUMN_NAME = '[yourColumnName]';
登入後複製

此查詢重建完整的資料類型規範,包括參數化類型的參數,並添加描述性可為空性指示符。

利用這些技術,您可以成功檢索並了解 SQL 表中列的資料類型。

以上是如何檢索 SQL 列的完整資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板