Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Dapatkan Jenis Data Tepat bagi Lajur SQL Termasuk Parameter dan Kebolehnullan?

Bagaimanakah Saya Boleh Dapatkan Jenis Data Tepat bagi Lajur SQL Termasuk Parameter dan Kebolehnullan?

Susan Sarandon
Lepaskan: 2024-12-26 12:33:11
asal
676 orang telah melayarinya

How Can I Retrieve the Precise Data Type of a SQL Column Including Parameters and Nullability?

Dapatkan Jenis Lajur dengan SQL

Dalam pelbagai senario pangkalan data, memahami jenis data lajur tertentu dalam jadual adalah penting. Nasib baik, SQL menawarkan penyelesaian yang komprehensif untuk mendapatkan semula jenis lajur melalui paparan INFORMATION_SCHEMA.COLUMNS. Paparan ini menyediakan metadata tentang jadual pangkalan data dan lajurnya, termasuk maklumat jenis data yang diidamkan.

Lajur DATA_TYPE dalam INFORMATION_SCHEMA.COLUMNS mengembalikan jenis data asas lajur. Walau bagaimanapun, untuk sesetengah jenis data dengan pilihan parameterisasi seperti nvarchar atau datetime2, jenis asas sahaja mungkin tidak mencukupi untuk menerangkan sepenuhnya ciri lajur.

Untuk menangani isu ini, lajur tambahan dalam paparan boleh dirujuk. Contohnya, CHARACTER_OCTET_LENGTH untuk binari dan varbinari, CHARACTER_MAXIMUM_LENGTH untuk char, nchar, varchar dan nvarchar, DATETIME_PRECISION untuk datetime2 dan datetimeoffset, dan NUMERIC_PRECISION dan NUMERIC_SCALE untuk jenis data parameter perpuluhan dan yang diperlukan untuk membina semula jenis data parameter perpuluhan dan perlu dengan tepat nilai.

Dengan merujuk lajur tambahan ini dan menggabungkan nilainya dengan jenis data asas, anda boleh mendapatkan penerangan yang tepat tentang jenis lajur. Contoh pertanyaan berikut menunjukkan proses ini:

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
    q.TABLE_SCHEMA,
    q.TABLE_NAME,
    q.ORDINAL_POSITION,
    q.COLUMN_NAME,
    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'

ORDER BY
    q.TABLE_SCHEMA,
    q.TABLE_NAME,
    q.ORDINAL_POSITION;
Salin selepas log masuk

Pertanyaan ini mengumpulkan maklumat jenis data lengkap dengan teliti, termasuk nilai parameter dan status kebolehbatalan, ke dalam lajur FULL_DATA_TYPE. Dengan melaksanakan pertanyaan ini, anda boleh mendapatkan semula jenis data yang tepat bagi lajur tertentu dan memperoleh pemahaman yang lebih mendalam tentang skema pangkalan data anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Jenis Data Tepat bagi Lajur SQL Termasuk Parameter dan Kebolehnullan?. 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