Heim > Datenbank > MySQL-Tutorial > Wie rufe ich den vollständigen Datentyp einer SQL-Spalte ab?

Wie rufe ich den vollständigen Datentyp einer SQL-Spalte ab?

Susan Sarandon
Freigeben: 2024-12-29 13:18:15
Original
282 Leute haben es durchsucht

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

So rufen Sie den Spaltentyp in SQL ab

Im Bereich der Datenbankverwaltung ist es unerlässlich, Informationen über die Struktur von Tabellen zu haben, einschließlich der Datentypen ihrer Spalten. Dieses Wissen hilft beim Datenverständnis, bei der Manipulation und bei der Abfrageoptimierung. Glücklicherweise bietet SQL einen Mechanismus zum Abrufen des Datentyps einer bestimmten Spalte.

Verwendung der INFORMATION_SCHEMA.COLUMNS-Ansicht

Die INFORMATION_SCHEMA.COLUMNS-Ansicht bietet einen umfassenden Katalog von Tabellenmetadaten, einschließlich Spaltentypen. Diese Ansicht bietet eine Fülle von Informationen, einschließlich des Datentyps der Spalte, der NULL-Zulässigkeit und anderer Attribute. Um den Datentyp einer bestimmten Spalte abzurufen, verwenden Sie die folgende Abfrage:

SELECT
    DATA_TYPE
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    TABLE_SCHEMA = '[yourSchemaName]' AND
    TABLE_NAME = '[yourTableName]' AND
    COLUMN_NAME = '[yourColumnName]';
Nach dem Login kopieren

Typen mit Parametern rekonstruieren

Die Spalte DATA_TYPE liefert zwar wesentliche Informationen, kann es aber sein enthalten nicht immer die vollständige Spezifikation parametrisierter Typen. Beispielsweise wird eine Spalte mit dem Typ „nvarchar(max)“ nur als „nvarchar“ angezeigt. Um dieses Problem zu lösen, sollten Sie den folgenden Ansatz in Betracht ziehen:

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]';
Nach dem Login kopieren

Diese Abfrage rekonstruiert die vollständige Datentypspezifikation, einschließlich Parameter für parametrisierte Typen, und fügt einen beschreibenden Nullfähigkeitsindikator hinzu.

Unter Verwendung dieser Techniken Sie können die Datentypen von Spalten in Ihren SQL-Tabellen erfolgreich abrufen und verstehen.

Das obige ist der detaillierte Inhalt vonWie rufe ich den vollständigen Datentyp einer SQL-Spalte ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage