Redshift Alter Table Legg til kolonne

Redshift Alter Table Legg til kolonne
Amazon Redshift er en skybasert SQL-database eller, nærmere bestemt, en datavarehustjeneste. Det er et fullt administrert serverløst tilbud av AWS hvor du bare trenger å konfigurere en rødforskyvningsklynge for å utføre jobben. Det er beregningsnoder i hver rødforskyvningsklynge som avhenger av arbeidsmengden i databasen.

Denne artikkelen forklarer hvordan du kan legge til en ny kolonne i en eksisterende rødforskyvningstabell uten å forstyrre noe annet i databasestrukturen. Vi antar at før du går gjennom denne artikkelen, har du kunnskap om å konfigurere en rødforskyvningsklynge.

Kort oppsummering av SQL -kommandoer

La oss kort gjennomgå de grunnleggende fem typene SQL -kommandoer for å finne ut hvilken type kommando vi trenger for å legge til en ny kolonne i en tabell.

  • Datadefinisjonsspråk (DDL): DDL -kommandoer brukes mest til å gjøre strukturelle endringer i databasen som å lage en ny tabell, fjerne en tabell, gjøre endringer i en tabell som å legge til og fjerne en kolonne, etc. De viktigste kommandoene knyttet til det er: Opprett, endrer, slipp og avkortet.
  • Datamanipulasjonsspråk (DML): Dette er de mest brukte kommandoene for å manipulere data i databasen. Regelmessig datainnføring, fjerning av data og oppdateringer gjøres ved hjelp av disse kommandoene. Dette inkluderer innsats, oppdatering og slette kommandoer.
  • Datakontrollspråk (DCL): Dette er enkle kommandoer som brukes til å administrere brukertillatelsene i databasen. Du kan tillate eller nekte en bestemt bruker å utføre en slags drift i databasen. Kommandoer som brukes her er tilskudd og tilbakekall.
  • Transaction Control Language (TCL): Disse kommandoene brukes til å administrere transaksjoner i databasen. Disse brukes til å lagre databaseendringene eller for å forkaste spesifikke endringer ved å gå tilbake til et tidligere punkt. Kommandoene inkluderer forpliktelse, rollback og Savepoint.
  • Data Query Language (DQL): Disse brukes ganske enkelt til å trekke ut eller spørre om noen spesifikke data fra databasen. En enkelt kommando brukes til å utføre denne operasjonen, og det er SELECT -kommandoen.

Fra forrige diskusjon er det tydelig at vi trenger en DDL -kommando ENDRE For å legge til en ny kolonne til en eksisterende tabell.

Skift bordseier

Som du sikkert vet, har hver database sine brukere og et annet sett med tillatelser. Så før du prøver å redigere en tabell, må brukeren din eie den tabellen i databasen. Ellers får du ikke tillatelse til å endre noe. I slike tilfeller må du la brukeren utføre spesifikke operasjoner på bordet ved å endre tabelleieren. Du kan velge en eksisterende bruker eller opprette en ny bruker i databasen din og deretter kjøre følgende kommando:

endre tabellen
eier til < new user>

På denne måten kan du endre tabelleieren ved å bruke alter -kommandoen. Nå vil vi se hvordan du legger til en ny kolonne i vår eksisterende databasetabell.

Legge til en kolonne i rødforskyvningstabellen

Anta at du driver et lite informasjonsteknologifirma med forskjellige avdelinger og har utviklet separate databasetabeller for hver avdeling. Alle ansattes data for HR -teamet er lagret i tabellen som heter HR_TEAM, med tre kolonner kalt Serial_Number, Name og Date_of_Joining. Tabelldetaljene kan sees i følgende skjermbilde:

Alt går bra. Men over tid innså du bare å lette livet ditt ytterligere ved å legge til de ansattes lønn i databasen som du tidligere har administrert ved hjelp av enkle regneark. Så du vil befolke en annen kolonne i hver avdelingsbord som heter lønn.

Oppgaven kan ganske enkelt utføres ved hjelp av følgende alter -tabellkommando:

endre tabellen

Legg til

Deretter krever du følgende attributter for å utføre den forrige spørringen i Redshift -klyngen:

  • Bordnavn: Navn på tabellen der du vil legge til en ny kolonne
  • Kolonnenavn: Navn på den nye kolonnen du legger til
  • Data-type: Definer datatypen til den nye kolonnen

Nå vil vi legge til kolonnen som heter lønn med datatypen int til vårt eksisterende bord over HR_TEAM.

Så den forrige spørringen la til en ny kolonne til den eksisterende rødskiftetabellen. Datatypen for denne kolonnen er et heltall, og standardverdien er satt til NULL. Nå kan du legge til de faktiske ønskede dataene i denne kolonnen.

Legge til kolonne med spesifisert strenglengde

La oss ta en annen sak der du også kan definere strenglengden etter datatypen for den nye kolonnen som vi vil legge til. Syntaksen vil være den samme, bortsett fra at det bare er tillegg til en attributt.

endre tabellen

Legg til <(Length)>

For eksempel vil du ringe hvert teammedlem med et kort kallenavn i stedet for deres fulle navn, og du vil at kallenavnene skal være sammensatt av maksimalt fem tegn.

For dette må du begrense folket fra å gå utover en viss lengde for kallenavn.

Da blir en ny kolonne lagt til, og vi har satt en grense for VARCHAR slik at den ikke kan ta mer enn fem tegn.

Nå, hvis noen prøver å legge til kallenavnet hans lenger enn vi forventer, vil ikke databasen tillate den operasjonen og vil rapportere en feil.

Men hvis vi skriver inn alle kallenavn med fem eller færre tegn, vil operasjonen lykkes.

Ved å bruke forrige spørring, kan du legge til en ny kolonne og sette en grense for strenglengde i rødforskyvningstabellen.

Legge til en fremmed nøkkelkolonne

Utenlandske nøkler brukes til å referere til data fra den ene kolonnen til den andre. Ta en sak der du har folk i organisasjonen din som jobber i mer enn ett team, og du vil følge med på organisasjonens hierarki. La oss ha web_team og dev_team Deling av de samme menneskene, og vi vil referere dem til å bruke utenlandske nøkler. De dev_team har ganske enkelt to kolonner som er Ansatt ID og Navn.

Nå ønsker vi å lage en kolonne som heter Ansatt ID i web_team bord. Å legge til en ny kolonne er den samme som omtalt ovenfor.

Deretter setter vi den nylig lagt kolonnen som en fremmed nøkkel ved å henvise den til kolonnen Ansatt ID til stede i dev_team bord. Du trenger følgende kommando for å angi den utenlandske nøkkelen:

endre tabellorganisasjon.web_team
Legg til utenlandsk nøkkel
() Referanser ();

På denne måten kan du legge til en ny kolonne og angi den som en fremmed nøkkel i databasen din.

Konklusjon

Vi har sett hvordan vi kan gjøre endringer i databasetabellene våre som å legge til en kolonne, fjerne en kolonne og gi nytt navn til en kolonne. Disse handlingene på Redshift -tabellen kan utføres ganske enkelt ved å bruke SQL -kommandoer. Du kan endre primærnøkkelen eller angi en annen fremmed nøkkel hvis du vil.