PostgreSQL er et av de mest populære objektrelasjonelle databasesystemene. Det er gratis programvare med åpen kildekode som utvider SQL-språket med tilleggsfunksjoner for å håndtere de komplekse dataarbeidsmengdene. Den kan fungere med ulike datatyper, pålitelig og sikker. Lær mer om funksjonene til PostgreSQL.
I denne veiledningen vil vi lære mer om å lage tabeller i et skjema i PostgreSQL.
Skjemaer i PostgreSQL
En PostgreSQL-database kan inneholde ett eller flere navngitte skjemaer, hvert skjema inneholder tabeller.
Det samme objektnavnet kan tildeles på tvers av flere skjemaer uten konflikt. For eksempel er følgende skjema/tabelltre gyldig:
- schema_a
- tabell_1
- tabell_2
- schema_b
- tabell_1
- tabell_2
Du kan tenke på skjemaer som kataloger på operativsystemnivå. Forskjellen er at det ikke kan være nestede skjemaer. Lær mer i dybden om skjema på PostgreSQL-dokumentasjon .
Det kan være flere grunner til å implementere skjemaene:
- Flere brukere bruker samme database uten å komme i konflikt med hverandre.
- Bedre organisering og styring av databaser i logiske grupper.
- Tredjepartsapper kan lage sitt unike skjema uten å kollidere med eksisterende skjemaer eller andre objekter.
Tabeller i PostgreSQL
Enhver relasjonsdatabase består av flere relaterte tabeller, som hver består av rader og kolonner. PostgreSQL kommer med flere innebygde tabeller som inneholder diverse systeminfo. Vi kan imidlertid også lage nye tabeller under brukerdefinerte databaser og skjemaer.
Forutsetninger:
For å utføre trinnene som er vist i denne veiledningen, trenger du følgende komponenter:
- Et riktig konfigurert Linux-system. Lære mer om installere Ubuntu i VirtualBox .
- En riktig installasjon av PostgreSQL. Sjekk ut installere PostgreSQL på Ubuntu .
- Tilgang til en PostgreSQL-bruker med BRUKstillatelse til en database.
For formålet med denne veiledningen vil vi bruke postgres for å utføre alle handlingene i PostgreSQL.
Opprette tabeller i et skjema
Opprette en demodatabase
Som nevnt tidligere, eksisterer skjemaer under en database. For demonstrasjonsformål oppretter vi en dummy-database, og unngår forstyrrelser i eksisterende databaser.
Få tilgang til PostgreSQL-skallet som postgres :
$ sudo -i -u postgres psql
Opprett en ny database demo_db:
$ CREATE DATABASE demo_db;
Bekreft om databasen er opprettet:
$ \l
Til slutt kobler du til den nyopprettede databasen:
$ \connect demo_db;
Det offentlige skjemaet
Enhver ny database i PostgreSQL kommer med et standardskjema - offentlig . Hvis du prøver å opprette et objekt uten å spesifisere skjemanavnet, velges det offentlige skjemaet som standard.
Følgende kommando skriver ut alt tilgjengelig skjema i PostgreSQL-databasen:
$ \dn
Alternativt kan vi også bruke følgende SQL-spørring:
$ SELECT * FRA pg_catalog.pg_namespace;
Opprette et nytt skjema
For å lage et nytt skjema under en bestemt database, er kommandostrukturen som følger:
$ CREATE SCHEMAFølg regelen, la oss lage et nytt skjema demo_schema:
$ CREATE SCHEMA demo_schema;
Sjekk skjemalisten for bekreftelse:
$ \dn
Opprette en tabell i et skjema
Nå som vi har opprettet målskjemaet, kan vi fylle det ut med tabeller.
Syntaksen for å lage en tabell er som følger:
LAG TABELL...
)
Her:
- skjema : Dette feltet spesifiserer navnet på skjemaet der tabellen opprettes. Hvis ingen verdi er oppgitt, opprettes tabellen under offentlig skjema.
For demonstrasjon lager vi en enkel tabell:
LAG TABELL demo_schema.demo_table (NAME CHAR(64),
ID INT IKKE NULL
);
Her:
- Feltet NAVN er spesifisert for å lagre en streng på 64 tegn.
- Feltet ID inneholder heltallsverdiene. Begrepet ' IKKE NULL ' indikerer det ID kan ikke være tom eller null.
Vi kan bekrefte eksistensen av tabellen ved å bruke følgende spørring:
$ SELECT * FRA demo_schema.demo_table;
Sette inn data i tabellen
Med tabellen på plass kan vi nå sette inn noen verdier:
INSERT INTO demo_schema.demo_table (NAVN, ID)VERDIER
('PQR', 45),
('IJK', 99)
;
Sjekk innholdet i tabellen:
$ SELECT * FRA demo_schema.demo_table;
Skjemabehandling
Skjematillatelser
Ved hjelp av skjematillatelse kan vi administrere hvilken rolle som kan utføre hvilken handling på et spesifikt skjema. Av alle mulige privilegier støtter skjemaer bare LAG OG BRUK.
For å oppdatere skjematillatelsen for en bestemt rolle, er kommandostrukturen som følger:
$ GIR
For å tilbakekalle skjematillatelsen for en bestemt rolle, er kommandostrukturen som følger:
$ REVOKEBekreft endringen ved å bruke følgende kommando:
$ \dn+
Alter Schema Properties
Ved hjelp av ENDRE SKEMA setning, kan vi endre de ulike egenskapene til et skjema. For eksempel: eierskap, skjemanavn osv.
For å endre skjemanavnet, bruk følgende spørring:
$ ALTER SCHEMA
For å endre eierskapet til et skjema, bruk følgende spørring:
$ ALTER SCHEMA
Merk at for å endre eierskapet, må gjeldende bruker ha SKAPE tillatelse til skjemaet.
Sletting av et skjema
Hvis et skjema ikke lenger er nødvendig, kan vi slette det ved å bruke MISTE spørsmål:
$ DROP SCHEMA
Hvis skjemaet inneholder et objekt, trenger vi CASCADE modifikator:
$ DROP SCHEMA
Bordbehandling
Tabelltillatelser
I likhet med skjema kommer hver tabell også med tillatelsesadministrasjon, som definerer hvilken handling en rolle kan utføre på bordet.
For å sjekke tillatelsene til en tabell, bruk følgende kommando i psql:
$ \dp
Endre tabellegenskaper
Ved hjelp av ENDRE TABELL uttalelse, kan vi endre de mange aspektene ved en allerede eksisterende tabell.
For eksempel, for å slippe en kolonne, ser spørringen slik ut:
$ ALTER TABLE
For å legge til en ny kolonne kan vi bruke følgende spørring:
$ ALTER TABLE
Vi kan også angi komprimeringen for en bestemt kolonne:
$ ALTER COLUMNSletting av en tabell
For å slette en tabell fra et skjema, kan vi bruke DROPPE BORD spørsmål:
$ DROPPE TABELL
Merk at i motsetning til skjemaer DROPPE BORD spørringen vil ikke produsere en feil om tabellen er tom eller ikke.
Konklusjon
I denne veiledningen demonstrerte vi hvordan du lager tabellene i et skjema i PostgreSQL. Vi opprettet et dummy-skjema i en dummy-database og opprettet en tabell i skjemaet. Denne veiledningen viste også frem hvordan du administrerer de ulike egenskapene til skjemaer og tabeller.
For bedre dataintegritet kan du konfigurere en logisk PostgreSQL-replikering . For å holde PostgreSQL-databasen sunn, kan du konfigurere autovakuum for å rense de døde tuplene som er igjen av de slettede postene.
For flere PostgreSQL-guider, sjekk ut PostgreSQL underkategori .