I SQL er columns
informationsskemavisning, som returnerer oplysninger om kolonner, er en ISO-standardvisning, der understøttes af de fleste af de store RDBMS'er. Du kan bruge denne visning til at få oplysninger om en kolonnes datatype.
De fleste af de store RDBM'er giver også andre metoder til at få kolonneoplysninger.
Her er eksempler på at få datatypen for en kolonne i forskellige SQL-databaser.
information_schema.columns
Vis
Som nævnt understøtter de fleste større RDBMS'er information_schema.columns
se.
Her er et eksempel på brug af denne visning til at returnere oplysninger om kolonnedata:
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';
Erstat Products
og ProductName
med navnet på henholdsvis din tabel og kolonne. Tilføj/reducer antallet af returnerede kolonner efter behov.
De fleste større RDBMS'er giver en mere kortfattet måde at få tabel- og kolonneoplysninger på. Nogle af disse er anført nedenfor.
SQLite
Ovenstående virker ikke i SQLite.
Den hurtigste/nemmeste måde at gøre det på i SQLite er at bruge PRAGMA table_info()
erklæring:
PRAGMA table_info(Regions);
Alternativt kan du forespørge på sqlite_schema
bord. I SQLite indeholder hver database et sqlite_schema
tabel, der gemmer skemaet for den pågældende database. Her er et eksempel på at få oplysninger om Regions
tabellen i Northwind
database:
SELECT sql
FROM Northwind.sqlite_schema
WHERE tbl_name = 'Regions';
En anden måde at gøre det på er at bruge .schema
kommando:
.schema Regions
Se 5 måder at kontrollere en kolonnes datatype i SQLite for at få flere muligheder.
MySQL
MySQL understøtter information_schema.columns
view, men du kan finde det lettere at bruge en anden metode, såsom DESCRIBE
erklæring:
DESCRIBE Pets;
Det returnerer oplysninger om en tabel kaldet Pets
.
Du kan tilføje kolonnenavnet for at indsnævre det til én kolonne:
DESCRIBE Pets PetName;
Det returnerer oplysninger om PetName
kolonner i Pets
tabel.
DESCRIBE
statement er faktisk en genvej til SHOW COLUMNS FROM
. Derfor kan du erstatte DESCRIBE
med SHOW COLUMNS FROM
hvis du foretrækker det.
Se 4 måder at kontrollere en kolonnes datatype i MySQL for at få flere muligheder og eksempler.
MariaDB
MariaDB minder meget om MySQL, og så vi kan også bruge DESCRIBE
erklæring med MariaDB.
Og som med MySQL, DESCRIBE
er en genvej til SHOW COLUMNS FROM
.
Så her er et eksempel på brug af den syntaks
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Som du kan se, er DESCRIBE
syntaks er meget mere kortfattet, men vi kender i det mindste vores muligheder.
Jeg skal også nævne, at MariaDB også understøtter information_schema.columns
se.
Se 4 måder at kontrollere en kolonnes datatype i MariaDB for flere muligheder.
SQL-server
SQL Server understøtter også information_schema.columns
visning, men det giver også et par andre muligheder.
En hurtig mulighed er at bruge sp_help
gemt procedure:
EXEC sp_help Products;
Dette returnerer en masse information om den angivne tabel (i dette tilfælde Products
). tabel).
Se 3 måder at få en kolonnes datatype i SQL Server (T-SQL) for at få flere muligheder og eksempler.
PostgreSQL
Postgres understøtter også information_schema.columns
visning, men der er også et par andre muligheder.
Hvis du bruger psql, kan du bruge \d
kommando for hurtigt at få information om tabeller, visninger, materialiserede visninger, indeks, sekvenser og fremmede tabeller:
\d public.actor
Dette returnerer meget mere end blot datatypen for en specifik kolonne, men det er i det mindste en mulighed.
Se 3 måder at kontrollere en kolonnes datatype i PostgreSQL for mere.
Oracle
I Oracle kan vi bruge DESC
kommando:
DESC HR.COUNTRIES;
Det får oplysninger om COUNTRIES
tabel, ejet af HR
.
Eller vi kunne forespørge på ALL_TAB_COLUMNS
se:
SELECT
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'COUNTRIES';
Se 3 måder at kontrollere kolonnedatatype i Oracle for at få flere oplysninger.