At forstå kolonnetyperne er afgørende for databaseadministratorer, da det hjælper med at sikre forespørgselseffektiviteten og korrekt datahåndtering.
Denne tutorial udforsker de forskellige metoder til at hente kolonnetyperne i PostgreSQL, herunder værktøjer som PSQL.
Eksempel tabel
Følgende eksempelforespørgsler viser, hvordan man opretter en simpel tabel med tre kolonner med forskellige datatyper:
CREATE TABLE sample_table (
id SERIEPRIMÆR NØGLE,
navn VARCHAR(50),
alder INT
);
Når vi har defineret tabellen, som vi bruger til demonstrationsformål, kan vi udforske de forskellige metoder til at hente kolonnetyperne i PostgreSQL.
Metode 1: Brug af INFORMATION_SCHEMA
Den mest almindelige metode til at hente metadataoplysninger om forskellige databaseobjekter i PostgreSQL er at bruge INFORMATION_SCHEMA-kataloget.
For at hente kolonnetypen ved hjælp af informationsskema-tabellen kan vi køre følgende forespørgsel:
VÆLG tabelnavn, kolonnenavn, datatypeFRA informationsskema.kolonner
WHERE table_schema = 'offentlig';
Den forrige forespørgsel henter tabelnavnet, kolonnenavnet og datatypen for alle kolonner i det offentlige skema. Juster tabelskema-betingelsen for at hente kolonnerne fra et specifikt skema.
Hvis vi antager, at vi kun har sample_table i det offentlige skema, skulle vi se en output som vist i følgende:
tabelnavn | kolonnenavn | datatype--------------+--------------+------------------------
sample_table | id | heltal
sample_table | alder | heltal
sample_table | navn | karakter varierende
(3 rækker)
Som vi kan se, får vi tabelnavnet, kolonnenavnet og dets tilsvarende datatype.
Metode 2: Brug af PSQL-kommandoer
Vi kan også bruge kommandoen '\d' fra PSQL-værktøjet til at hente oplysningerne om en given tabelkolonne.
Når du er forbundet til måldatabasen, skal du bruge '\d' efterfulgt af tabelnavnet som vist i følgende:
\d tabelnavnEksempel:
\d eksempeltabel;Den givne kommando skal returnere output som følger:
Outputtet inkluderer kolonnenavne, datatyper og andre tabelstrukturoplysninger.
Metode 3: Brug af Pg_attribute Catalog Table
Vi kan også forespørge pg_attribute-katalogtabellen for at hente datatypen for en tabelkolonne. Forespørgselssyntaksen er som følger:
SELECT attname AS column_name, format_type(atttypid, atttypmod) AS data_typeFROM pg_attribute
WHERE attrelid ='target_table'::regclass
OG attnum > 0
OG IKKE attisdroppet;
Erstat parameteren target_table med det tabelnavn, som din målkolonne findes på.
Et eksempel er som følger:
SELECT attname AS column_name, format_type(atttypid, atttypmod) AS data_typeFROM pg_attribute
WHERE attrelid = 'sample_table'::regclass
OG attnum > 0
OG IKKE attisdroppet;
Dette skulle returnere kolonnenavnene og den tilsvarende datatype som følger:
Konklusion
Vi undersøgte de tre hovedmetoder til at se en tabelkolonnes datatype ved hjælp af PostgreSQL-værktøjerne. Hentning af kolonnedatatypen er afgørende for at opbygge effektive og kompatible applikationsforespørgsler.