Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengambil Jenis Data Lengkap Lajur SQL?

Bagaimana untuk Mengambil Jenis Data Lengkap Lajur SQL?

Susan Sarandon
Lepaskan: 2024-12-29 13:18:15
asal
284 orang telah melayarinya

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

Cara Mengambil Jenis Lajur dalam SQL

Dalam bidang pengurusan pangkalan data, adalah penting untuk mempunyai maklumat tentang struktur jadual, termasuk jenis data lajur mereka. Pengetahuan ini membantu dalam pemahaman data, manipulasi dan pengoptimuman pertanyaan. Syukurlah, SQL menyediakan mekanisme untuk mendapatkan semula jenis data lajur tertentu.

Menggunakan INFORMATION_SCHEMA.COLUMNS View

INFORMATION_SCHEMA.COLUMNS view menyediakan katalog komprehensif bagi metadata jadual, termasuk jenis lajur. Paparan ini menawarkan banyak maklumat, termasuk jenis data lajur, kebolehbatalan dan atribut lain. Untuk mendapatkan semula jenis data lajur tertentu, gunakan pertanyaan berikut:

SELECT
    DATA_TYPE
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_SCHEMA = '[yourSchemaName]' AND
    TABLE_NAME = '[yourTableName]' AND
    COLUMN_NAME = '[yourColumnName]';
Salin selepas log masuk

Membina Semula Jenis dengan Parameter

Walaupun lajur DATA_TYPE menyediakan maklumat penting, ia mungkin tidak selalu termasuk spesifikasi penuh jenis parameter. Sebagai contoh, lajur yang ditaip sebagai nvarchar(max) hanya akan ditunjukkan sebagai nvarchar. Untuk menangani perkara ini, pertimbangkan pendekatan berikut:

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]';
Salin selepas log masuk

Pertanyaan ini membina semula spesifikasi jenis data penuh, termasuk parameter untuk jenis berparameter dan menambah penunjuk kebolehtelapan deskriptif.

Menggunakan teknik ini, anda boleh berjaya mendapatkan dan memahami jenis data lajur dalam jadual SQL anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Jenis Data Lengkap Lajur SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan