OPRET TABEL i et skema Postgres

Opret Tabel I Et Skema Postgres



PostgreSQL er et af de mest populære objektrelationelle databasesystemer. Det er gratis og open source-software, der udvider SQL-sproget med yderligere funktioner til at håndtere de komplekse dataarbejdsbelastninger. Det kan arbejde med forskellige datatyper, pålideligt og sikkert. Lær mere om funktionerne i PostgreSQL.

I denne guide vil vi lære mere om oprettelse af tabeller i et skema i PostgreSQL.







Skemaer i PostgreSQL

En PostgreSQL-database kan indeholde et eller flere navngivne skemaer, hvor hvert skema indeholder tabeller.



Det samme objektnavn kan tildeles på tværs af flere skemaer uden konflikt. For eksempel er følgende skema/tabeltræ gyldigt:



  • skema_a
    • tabel 1
    • tabel_2
  • skema_b
    • tabel 1
    • tabel_2

Du kan tænke på skemaer som mapper på operativsystemniveau. Forskellen er, at der ikke kan være indlejrede skemaer. Lær mere i dybden om skema på PostgreSQL dokumentation .





Der kan være flere grunde til at implementere skemaerne:

  • Flere brugere bruger den samme database uden at komme i konflikt med hinanden.
  • Bedre organisering og styring af databaser i logiske grupper.
  • Tredjepartsapps kan oprette deres unikke skema uden at kollidere med de eksisterende skemaer eller andre objekter.

Tabeller i PostgreSQL

Enhver relationel database består af flere relaterede tabeller, der hver består af rækker og kolonner. PostgreSQL kommer med flere indbyggede tabeller, der indeholder forskellige systemoplysninger. Vi kan dog også lave nye tabeller under brugerdefinerede databaser og skemaer.



Forudsætninger:

For at udføre de trin, der er vist i denne vejledning, skal du bruge følgende komponenter:

  • Et korrekt konfigureret Linux-system. Lær mere om installation af Ubuntu i VirtualBox .
  • En korrekt installation af PostgreSQL. Tjek ud installation af PostgreSQL på Ubuntu .
  • Adgang til en PostgreSQL bruger med BRUG tilladelse til en database.

Til formålet med denne vejledning vil vi bruge postgres at udføre alle handlingerne i PostgreSQL.

Oprettelse af tabeller i et skema

Oprettelse af en demodatabase

Som tidligere nævnt findes skemaer under en database. Til demonstrationsformål opretter vi en dummy-database, så vi undgår afbrydelse af enhver eksisterende database.

Få adgang til PostgreSQL-skallen som postgres :

$ sudo -i -u postgres psql

Opret en ny database demo_db:

$ CREATE DATABASE demo_db;

Bekræft, om databasen er oprettet korrekt:

$ \l

Til sidst skal du oprette forbindelse til den nyoprettede database:

$ \connect demo_db;

Det offentlige skema

Enhver ny database i PostgreSQL kommer med et standardskema - offentlig . Hvis du forsøger at oprette et objekt uden at angive skemanavnet, vælges det offentlige skema som standard.

Følgende kommando udskriver alle tilgængelige skemaer i PostgreSQL-databasen:

$ \dn

Alternativt kan vi også bruge følgende SQL-forespørgsel:

$ SELECT * FRA pg_catalog.pg_namespace;

Oprettelse af et nyt skema

For at oprette et nyt skema under en specifik database er kommandostrukturen som følger:

$ CREATE SCHEMA ;

Efter reglen, lad os oprette et nyt skema demo_schema:

$ CREATE SCHEMA demo_schema;

Tjek skemalisten for bekræftelse:

$ \dn

Oprettelse af en tabel i et skema

Nu hvor vi har oprettet målskemaet, kan vi udfylde det med tabeller.

Syntaksen for at oprette en tabel er som følger:

OPRET TABEL . (

...
)

Her:

  • skema : Dette felt angiver navnet på det skema, hvor tabellen er oprettet. Hvis der ikke er angivet nogen værdi, oprettes tabellen under offentlig skema.

Til demonstration laver vi en simpel tabel:

OPRET TABEL demo_schema.demo_table (

NAVN CHAR(64),

ID INT IKKE NULL

);

Her:

  • Marken NAVN er specificeret til at gemme en streng på 64 tegn.
  • Marken ID indeholder heltalsværdierne. Begrebet ' IKKE NULL ” indikerer det ID kan ikke være tom eller nul.

Vi kan bekræfte eksistensen af ​​tabellen ved at bruge følgende forespørgsel:

$ SELECT * FRA demo_schema.demo_table;

Indsættelse af data i tabellen

Med tabellen på plads kan vi nu indsætte nogle værdier:

INDSÆT I demo_schema.demo_table (NAVN, ID)

VÆRDIER

('PQR', 45),

('IJK', 99)

;

Tjek indholdet af tabellen:

$ SELECT * FRA demo_schema.demo_table;

Skemastyring

Skematilladelser

Ved hjælp af skematilladelse kan vi styre, hvilken rolle der kan udføre hvilken handling på et specifikt skema. Ud af alle mulige privilegier understøtter skemaer kun OPRET og BRUG.

For at opdatere skematilladelsen for en bestemt rolle er kommandostrukturen som følger:

$ GIVER PÅ SKEMA TIL ;

For at tilbagekalde skematilladelsen for en bestemt rolle er kommandostrukturen som følger:

$ TILBAGE PÅ SKEMA TIL ;

Bekræft ændringen ved hjælp af følgende kommando:

$ \dn+

Alter Schema Egenskaber

Ved hjælp af ÆNDRINGSSKEMA sætning, kan vi ændre de forskellige egenskaber for et skema. For eksempel: ejerskab, skemanavn osv.

For at ændre skemanavnet skal du bruge følgende forespørgsel:

$ ALTER SCHEMA OMNØV TIL ;

Brug følgende forespørgsel for at ændre ejerskabet af et skema:

$ ALTER SCHEMA EJER TIL ;

Bemærk, at for at ændre ejerskabet skal den nuværende bruger have SKAB tilladelse til skemaet.

Sletning af et skema

Hvis et skema ikke længere er nødvendigt, kan vi slette det ved hjælp af DRÅBE forespørgsel:

$ DROP SCHEMA

Hvis skemaet indeholder et objekt, har vi brug for CASCADE modifikator:

$ DROP SCHEMA CASCADE;

Bordstyring

Tabeltilladelser

Ligesom skemaet kommer hver tabel også med tilladelsesstyring, der definerer, hvilken handling en rolle kan udføre på bordet.

For at kontrollere tilladelserne til en tabel, brug følgende kommando i psql:

$ \dp

Ændre tabelegenskaber

Ved hjælp af ÆNDRE TABEL sætning, kan vi ændre de mange aspekter af en allerede eksisterende tabel.

For at slippe en kolonne ser forespørgslen sådan ud:

$ ALTER TABLE DROP COLUMN ;

For at tilføje en ny kolonne kan vi bruge følgende forespørgsel:

$ ÆNDRINGSTABEL TILFØJ KOLONNE ;

Vi kan også indstille komprimeringen for en specifik kolonne:

$ ALTER COLUMN SET COMPRESSION ;

Sletning af en tabel

For at slette en tabel fra et skema kan vi bruge DROP TABEL forespørgsel:

$ DROP TABLE
;

Bemærk, at i modsætning til skemaer DROP TABEL forespørgslen vil ikke producere en fejl, uanset om tabellen er tom eller ej.

Konklusion

I denne vejledning demonstrerede vi, hvordan man opretter tabellerne i et skema i PostgreSQL. Vi oprettede et dummy-skema i en dummy-database og oprettede en tabel i skemaet. Denne vejledning viste også, hvordan man administrerer de forskellige egenskaber ved skemaer og tabeller.

For bedre dataintegritet kan du konfigurere en logisk PostgreSQL-replikering . For at holde PostgreSQL-databasen sund, kan du konfigurere autovakuum at rense de døde tupler, der er tilbage af de slettede poster.

For flere PostgreSQL-vejledninger, tjek PostgreSQL underkategori .