Sekwencja odnosi się do zestawu unikalnych wartości całkowitych, które są generowane na żądanie. Są powszechną funkcją w wielu silnikach bazy danych. Wynika to z faktu, że różne scenariusze wymagają każdego rekordu w bazie danych, aby mieć unikalny identyfikator.
Omówmy koncepcję sekwencji SQL w tym samouczku.
Jak działają sekwencje SQL
Nie ma uniwersalnego sposobu opisania, jak działają sekwencje. Wynika to z faktu, że różne silniki bazy danych implementują je inaczej.
Dowiedzmy się, jak to działa.
Sekwencje w MySQL
Sekwencje w MySQL są zaimplementowane przez ustawienie atrybutu auto_increment w kolumnie. W większości przypadków ta kolumna jest również wybrana jako klucz podstawowy, ponieważ każda wartość w kolumnie musi być unikalna.
Możemy zilustrować, jak używać sekwencji w MySQL, jak pokazano w zapytaniu poniżej:
-- MysqlPowyższe zapytanie tworzy kolumnę z sekwencją SQL za pomocą słowa kluczowego Auto_Increment. Zauważ, że ustawiamy również ograniczenie klucza podstawowego na kolumnie.
Chociaż dodawanie sekwencji w MySQL jest tak łatwe, jak ilustrowano powyżej, należy zwrócić uwagę na kilka punktów:
Sekwencja w PostgreSQL
W PostgreSQL sekwencje to obiekty zdefiniowane przez użytkownika związane ze schematem, w którym są tworzone.
Aby utworzyć sekwencję w PostgreSQL, użyj składni, jak pokazano poniżej:
-- PostgreSQLOkej, co to wszystko znaczy? Pozwól nam podzielić go na mniejsze sekcje, które możemy zrozumieć.
Utwórz sekwencję
Pierwsza część to sekwencja tworzenia. To pozwala stworzyć nową sekwencję, jeśli nie istnieje. Nazwa sekwencji może być wszystkim, co chcesz.
Jako data_type
Klauzula AS pozwala określić typ danych dla sekwencji. PostgreSQL umożliwia typy SmallIt, Int i Bigint. Jeśli nie chcesz identyfikować typu danych, możesz pominąć tę klauzulę, a PostgreSQL domyślnie BigINT.
Przyrost przez
Ta klauzula określa wartość dodaną do bieżącej sekwencji w celu utworzenia nowej wartości sekwencji. Na przykład, jeśli sekwencja wynosi 1,2,3,4,5, wartość przyrostu wynosi 1.
Jeśli chcesz zacząć od góry i zejść w miarę dodawania rekordów, określ wartość ujemną do przyrostu według klauzuli.
Domyślnie PostgreSQL użyje wartości przyrostu 1.
MinValue
Ta klauzula określa minimalną wartość dla sekwencji. Jeśli nie zostanie określona żadna wartość, PostgreSQL użyje wartości domyślnej.
MAKSYMALNA WARTOŚĆ
Klauzula MAXVALUE ustawia maksymalną wartość dla sekwencji.
ZACZYNAĆ Z
Ta klauzula ustawia wartość startową dla sekwencji. Jeśli nie zostanie określona żadna wartość, wartość minuta jest używana do sekwencji rosnących, a Maxvule jest używana do sekwencji malejących.
PAMIĘĆ PODRĘCZNA
Ta klauzula zdefiniuje, ile liczb sekwencji ma być zaproszonych i przechowywanych w pamięci. To pozwala na szybszy dostęp. Domyślnie PostgreSQL użyje wartości 1, stąd brak pamięci podręcznej.
CYKL
Klauzula cykliczna pozwala określić opakowanie, gdy wartości maksymalne lub min są osiągane w sekwencji. PostgreSQL użyje odpowiednio Min i MaxValue, gdy limit zostanie osiągnięty, jeśli cykl nie jest określony.
POSIADANY PRZEZ
Ta opcja określa, z którą kolumnę tabeli jest powiązana. Stąd, jeśli kolumna lub tabela jest upuszczona, sekwencja jest również usuwana.
Jeśli sekwencja nie jest powiązana z żadną tabelą lub kolumną, możesz ustawić własność None.
Aby utworzyć prostą sekwencję w PostgreSQL, uruchom zapytanie:
Utwórz sekwencję my_seqPowyższe zapytanie tworzy nową sekwencję powiązaną z My_Column w tabeli My_Table.
Możesz zbadać więcej o sekwencjach PostgreSQL w poniższym zasobie:
https: // www.PostgreSQL.Org/Docs/Current/SQL-Createsequence.html
Sekwencje na serwerze SQL
Podobnie jak PostgreSQL, sekwencje na serwerze SQL to obiekty zdefiniowane przez użytkownika. Dlatego używają blisko podobnej składni do sekwencji w PostgreSQL. Jedyną różnicą jest składnia.
Przykładowy składnia jest jak pokazano poniżej:
Utwórz sekwencję [Schema_name.] Nazwa SECENTENCJAZamiast braku, SQL Server nie używa cyklu i pamięci podręcznej.
Możesz zbadać więcej o sekwencjach serwera SQL w poniższym zasobie:
https: // dokumenty.Microsoft.com/en-us/sql/t-sql/instrukcje/create-sekwencyjna-transakcja-sql?Widok = SQL-SERVER-VER15
Uwaga: Użytkownicy Oracle Database, sprawdź poniższy zasób
https: // dokumenty.wyrocznia.com/cd/b12037_01/serwer.101/B10759/instrukcje_6014.HTM
Wniosek
Ten szczegółowy artykuł obejmował sekwencje SQL i sposób, w jaki możemy je używać w naszych bazach danych. Bądź na bieżąco z kolejnymi samouczkami.