sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man kontrollerar en kolumns datatyp i SQL

I SQL, columns informationsschemavy, som returnerar information om kolumner, är en ISO-standardvy som stöds av de flesta av de stora RDBMS:erna. Du kan använda den här vyn för att få information om en kolumns datatyp.

De flesta av de stora RDBM tillhandahåller också andra metoder för att få kolumninformation.

Här är exempel på att få datatypen för en kolumn i olika SQL-databaser.

information_schema.columns Visa

Som nämnts stöder de flesta större RDBMS:er information_schema.columns visa.

Här är ett exempel på hur du använder den vyn för att returnera information om kolumndata:

SELECT 
    COLUMN_NAME, 
    DATA_TYPE, 
    CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH, 
    CHARACTER_OCTET_LENGTH AS OCTET_LENGTH 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'Products' 
AND COLUMN_NAME = 'ProductName';

Ersätt Products och ProductName med namnet på din tabell respektive kolumn. Lägg till/minska antalet returnerade kolumner efter behov.

De flesta större RDBMS ger ett mer kortfattat sätt att få tabell- och kolumninformation. Några av dessa listas nedan.

SQLite

Ovanstående fungerar inte i SQLite.

Det snabbaste/enklaste sättet att göra det i SQLite är att använda PRAGMA table_info() uttalande:

PRAGMA table_info(Regions);

Alternativt kan du fråga sqlite_schema tabell. I SQLite innehåller varje databas ett sqlite_schema tabell som lagrar schemat för den databasen. Här är ett exempel på hur du får information om Regions tabellen i Northwind databas:

SELECT sql 
FROM Northwind.sqlite_schema 
WHERE tbl_name = 'Regions';

Ett annat sätt att göra det är att använda .schema kommando:

.schema Regions

Se 5 sätt att kontrollera en kolumns datatyp i SQLite för fler alternativ.

MySQL

MySQL stöder information_schema.columns visa, men du kanske tycker att det är lättare att använda en annan metod, såsom DESCRIBE uttalande:

DESCRIBE Pets;

Det returnerar information om en tabell som heter Pets .

Du kan lägga till kolumnnamnet för att begränsa det till en kolumn:

DESCRIBE Pets PetName;

Det returnerar information om PetName kolumner i Pets bord.

DESCRIBE uttalande är faktiskt en genväg till SHOW COLUMNS FROM . Därför kan du ersätta DESCRIBE med SHOW COLUMNS FROM om du föredrar det.

Se 4 sätt att kontrollera en kolumns datatyp i MySQL för fler alternativ och exempel.

MariaDB

MariaDB är mycket lik MySQL, så vi kan också använda DESCRIBE uttalande med MariaDB.

Och som med MySQL, DESCRIBE är en genväg till SHOW COLUMNS FROM .

Så här är ett exempel på hur du använder den syntaxen

SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';

Som du kan se är DESCRIBE syntaxen är mycket mer kortfattad, men vi känner åtminstone till våra alternativ.

Jag bör också nämna att MariaDB också stöder information_schema.columns visa.

Se 4 sätt att kontrollera en kolumns datatyp i MariaDB för fler alternativ.

SQL-server

SQL Server stöder även information_schema.columns visa, men det ger också några andra alternativ.

Ett snabbt alternativ är att använda sp_help lagrad procedur:

EXEC sp_help Products;

Detta returnerar mycket information om den angivna tabellen (i det här fallet Products). tabell).

Se 3 sätt att få en kolumns datatyp i SQL Server (T-SQL) för fler alternativ och exempel.

PostgreSQL

Postgres stöder även information_schema.columns visa, men det finns också ett par andra alternativ.

Om du använder psql kan du använda \d kommando för att snabbt få information om tabeller, vyer, materialiserade vyer, index, sekvenser och främmande tabeller:

\d public.actor

Detta returnerar mycket mer än bara datatypen för en specifik kolumn, men det är åtminstone ett alternativ.

Se 3 sätt att kontrollera en kolumns datatyp i PostgreSQL för mer.

Oracle

I Oracle kan vi använda DESC kommando:

DESC HR.COUNTRIES;

Som får information om COUNTRIES tabell, som ägs av HR .

Eller så kan vi fråga ALL_TAB_COLUMNS visa:

SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    DATA_PRECISION,
    DATA_SCALE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'COUNTRIES';

Se 3 sätt att kontrollera kolumndatatyp i Oracle för mer information.


  1. MongoDB - Skapa en databas

  2. Hur kan jag använda Python för att omvandla MongoDB:s bsondump till JSON?

  3. Hur man tar bort nycklar som matchar ett mönster i Redis

  4. Hur refererar man till ett annat schema i mitt Mongoose-schema?