En sekvens refererer til et sett med unike heltallverdier som genereres på forespørsel. De er en utbredt funksjon i mange databasemotorer. Dette er fordi forskjellige scenarier krever hver post i databasen for å ha en unik identifikator.
La oss diskutere begrepet SQL -sekvenser i denne opplæringen.
Hvordan SQL -sekvenser fungerer
Det er ingen universell måte å beskrive hvordan sekvenser fungerer. Dette er fordi forskjellige databasemotorer implementerer dem annerledes.
La oss lære hvordan dette fungerer.
Sekvenser i MySQL
Sekvenser i MySQL implementeres ved å stille inn Auto_Increment -attributtet i en kolonne. I de fleste tilfeller er denne kolonnen også valgt som den primære nøkkelen ettersom hver verdi i kolonnen må være unik.
Vi kan illustrere hvordan du bruker en sekvens i MySQL som vist i spørringen nedenfor:
-- MysqlOvennevnte spørring oppretter en kolonne med en SQL -sekvens ved hjelp av auto_increment -nøkkelordet. Merk at vi også setter den primære nøkkelbegrensningen til kolonnen.
Selv om å legge til sekvenser i MySQL er like enkelt som illustrert ovenfor, er det noen få punkter å merke seg:
Sekvens i PostgreSql
I PostgreSQL er sekvenser brukerdefinerte objekter bundet til skjemaet de er opprettet.
For å lage en sekvens i PostgreSQL, bruk syntaks som vist nedenfor:
-- PostgreSqlOk, hva betyr det alle? La oss dele det ned i mindre seksjoner som vi kan forstå.
Lag sekvens
Den første delen er Create Sequence. Dette lar deg lage en ny sekvens hvis den ikke eksisterer. Sekvensnavnet kan være hva du ønsker.
Som data_type
AS -leddet lar deg spesifisere datatypen for sekvensen. PostgreSql tillater små, int og bigint -typer. Hvis du ikke ønsker å identifisere datatypen, kan du hoppe over denne klausulen, og PostgreSQL vil standard være BigInt.
Økning av
Denne klausulen spesifiserer verdien som legges til gjeldende sekvens for å opprette en ny sekvensverdi. For eksempel, hvis sekvensen er 1,2,3,4,5, er økningsverdien 1.
Hvis du ønsker å starte fra toppen og gå ned når postene legges til, spesifiser en negativ verdi til økningen etter klausul.
Som standard vil PostgreSQL bruke økningsverdien på 1.
Minvalue
Denne klausulen definerer minimumsverdien for sekvensen. Hvis ingen verdi er spesifisert, vil PostgreSQL bruke standard.
MaxValue
MaxValue -klausulen angir maksimal verdi for sekvensen.
BEGYNNER MED
Denne klausulen angir startverdien for sekvensen. Hvis ingen verdi er spesifisert, brukes minvaluen til stigende sekvenser, og maxvule brukes til synkende sekvenser.
Cache
Denne klausulen vil definere hvor mange sekvensnumre som skal utføres og lagres i minnet. Dette gir raskere tilgang. Som standard vil PostgreSQL bruke en verdi på 1 derav NO-cache.
SYKLUS
Syklusklausulen lar deg spesifisere omslaget når maks- eller minverdiene oppnås i sekvensen. PostgreSQL vil bruke henholdsvis Min og MaxValue når grensen er nådd hvis syklusen ikke er spesifisert.
EID AV
Dette alternativet spesifiserer hvilken tabellkolonnen sekvensen er tilknyttet. Derfor, hvis kolonnen eller tabellen blir droppet, blir sekvensen også slettet.
Hvis sekvensen ikke er assosiert med noen tabell eller kolonne, kan du angi eid med til ingen.
For å lage en enkel sekvens i PostgreSQL, kjør spørringen:
Lag sekvens my_seqOvennevnte spørring oppretter en ny sekvens assosiert med my_column i my_table -tabellen.
Du kan utforske mer om PostgreSQL -sekvenser i ressursen nedenfor:
https: // www.PostgreSql.org/docs/current/sql-createsequence.html
Sekvenser i SQL Server
Som PostgreSQL, er sekvenser i SQL Server brukerdefinerte objekter. Derfor bruker de tett lignende syntaks for sekvenser i PostgreSQL. Den eneste forskjellen er syntaks.
Eksemplet syntaks er som illustrert nedenfor:
Lag sekvens [skjema_navn.] sekvensnavnI stedet for ingen, bruker SQL Server ingen syklus og ingen hurtigbuffer.
Du kan utforske mer om SQL Server -sekvenser i ressursen nedenfor:
https: // dokumenter.Microsoft.com/en-us/sql/t-sql/utsagn/create-sekvens-transact-sql?Vis = SQL-SERVER-VER15
Merk: For Oracle Database -brukere, sjekk ressursen nedenfor
https: // dokumenter.Oracle.com/cd/b12037_01/server.101/b10759/uttalelser_6014.htm
Konklusjon
Denne detaljerte artikkelen dekket SQL -sekvenser og hvordan vi kan bruke dem i databasene våre. Følg med for flere opplæringsprogrammer.