Jak używać unikalnego ograniczenia w SQLite

Jak używać unikalnego ograniczenia w SQLite
W SQLite istnieją różne ograniczenia, które ograniczają dane kolumny według niektórych reguł, gdy dane są wstawiane, aktualizowane lub modyfikowane. Niektóre wspólne ograniczenia baz danych obsługiwane przez SQLITE to unikalny, kluczowy klucz, klucz obce, czek, a nie zerowy.

SQLite to RDBMS, który służy do zarządzania danymi bazy danych, która jest umieszczana w wierszach i kolumnach tabeli. Ten zapis pomaga nam zrozumieć, jakie jest unikalne ograniczenie w SQLite, a także jak działa w SQLite.

Jakie jest unikalne ograniczenie w SQLite

Unikalne ograniczenie zapewnia, że ​​dane w kolumnie powinny być unikalne, co oznacza, że ​​żadne pola tej samej kolumny zawierają podobne wartości. Na przykład tworzymy kolumnę, e -mail i definiujemy ją z unikalnym ograniczeniem, aby zapewnić, że żaden e -mail włożony w kolumnie nie powinien być taki sam jak drugi zapis kolumny.

Jaka jest różnica między unikalnym a kluczowym ograniczeniem klucza podstawowego w SQLite

Oba ograniczenia, klucz podstawowy i unikalny zapewniają, że w tabeli nie powinno być włożone żadne zduplikowane wpis, ale różnica; Tabela powinna zawierać tylko jeden klucz podstawowy, podczas gdy unikalne ograniczenie może być używane dla więcej niż jednej kolumny w tej samej tabeli.

Jak unikalne ograniczenie należy zdefiniować w SQLite

Unikalne ograniczenie można zdefiniować w pojedynczej kolumnie lub w wielu kolumnach w SQLite.

Jak unikalne ograniczenie należy zdefiniować w kolumnie

Unikalne ograniczenie można zdefiniować jako kolumnę, za pomocą której może zapewnić, że żadne podobne wartości nie mogą wejść w żadnym polu tej kolumny. Ogólna składnia definiowania unikalnego ograniczenia w kolumnie to:

Utwórz tabelę TABLE_NAME (kolumn1 Data unikalne, kolumn2 danych danych);

Wyjaśnienie tego jest:

  • Użyj klauzuli Utwórz tabelę, aby utworzyć tabelę i wymienić nazwę Table_name
  • Zdefiniuj nazwę kolumny za pomocą swojego danych, zastępując kolumnę 1 i danych
  • Użyj unikalnej klauzuli do kolumny, którą zamierzasz zdefiniować z tym ograniczeniem
  • Zdefiniuj pozostałe kolumny za pomocą ich danych

Aby zrozumieć tę składnię, rozważ przykład utworzenia tabeli dla studentów_data, która ma dwie kolumny, jedna jest ze std_id, a druga nazwa ST_Name, miała zdefiniować kolumnę, std_id, z unikalnym ograniczeniem, aby żaden z uczniów nie mógł mieć Podobny std_id jako:

Utwórz tabelę studentów_data (STD_ID INTEGER unikalny, tekst std_name);

Wstaw wartości za pomocą:

Wstaw wartości studentów_data (1, „John”), (2, „Paul”);

Teraz dodamy kolejną nazwę ucznia, w której std_id to 1:

Wstaw wartości studentów_data (1, „Hannah”);

Widzimy na podstawie wyjścia, wygenerował błąd wkładania wartości STD_ID, ponieważ został zdefiniowany za pomocą unikalnego ograniczenia, co oznacza, że ​​żadna wartość nie może być powielona z innymi wartościami tej kolumny.

Jak definiuje się unikalne ograniczenie dla wielu kolumn

Możemy zdefiniować wiele kolumn z unikalnym ograniczeniem, które zapewnia, że ​​nie ma powielania danych wstawionych we wszystkich wierszy w tym samym czasie. Na przykład, jeśli musimy wybrać miasta na wycieczkę do trzech grup ludzi (a, b i c), nie możemy przypisać tego samego miasta do wszystkich trzech grup, można to zrobić za pomocą unikalnego ograniczenia.

Na przykład te trzy scenariusze mogą być możliwe:

Grupa A Grupa_b Grupa_c
Floryda Floryda Boston
Nowy Jork Floryda Floryda
Floryda Floryda Floryda

Ale następujący scenariusz nie jest możliwy, jeśli używamy unikalnych ograniczeń:

Grupa A Grupa_b Grupa_c
Floryda Floryda Floryda

Ogólna składnia używania unikalnego ograniczenia do wielu kolumn to:

Utwórz tabelę Table_name (kolumn1 danych, kolumna2, unikalne (kolumn1, kolumn2));

Wyjaśnienie tego jest:

  • Użyj klauzuli Utwórz tabelę, aby utworzyć tabelę i wymienić nazwę Table_name na swoją nazwę
  • Zdefiniuj nazwę kolumny za pomocą swojego danych, zastępując kolumnę 1 i danych
  • Użyj unikalnej klauzuli i wpisz nazwy kolumn w (), które zamierzasz zdefiniować z tym ograniczeniem

Aby to zrozumieć, rozważymy powyższy przykład i uruchomić następujące polecenie, aby utworzyć tabelę Trip_Data:

Utwórz tabelę trip_data (tekst grupy, tekst grupy_b, tekst grupy_c, unikalny (grupa_a, grupa_b, grupa_c));

Wstawymy wartości przypisywania ich miast:

Wstaw wartości Trip_Data („Florida”, „Florida”, „Boston”), („New York”, „Florida”, „Florida”), („Florida”, „Florida”, „Florida”);

Teraz wstawymy to samo miasto we wszystkie kolumny Trip_Data:

Wstaw wartości Trip_Data („Florida”, „Florida”, „Floryda”);

Z wyjścia widzimy, powielanie danych we wszystkich kolumnach zdefiniowanych przez unikalne ograniczenie jest niedozwolone, a wygenerowany błąd unikalnego ograniczenia nie powiodło się.

Jak dodać unikalne ograniczenie do istniejącej tabeli

W SQLite możemy dodać ograniczenie za pomocą polecenia alter, na przykład mamy tabelę studentów_data z kolumnami std_id, std_name, chcemy dodać ograniczenie std_id do tabeli, studenci_data:

  • Użyj polecenia „Pragma zagraniczne klawisze = off”, aby wyłączyć ograniczenia kluczowe
  • Użyj polecenia „Rozpocznij transakcję”;
  • Użyj polecenia „Zmień tabelę Zmień nazwę Zmian na OLD_TABLE;” Aby zmienić nazwę rzeczywistej tabeli
  • Utwórz tabelę ponownie z poprzednią nazwą, ale tym razem definiując kolumnę, zdefiniuj również unikalne ograniczenia
  • Skopiuj dane z poprzedniej tabeli (której nazwa jest zmieniona), do nowej tabeli (która ma poprzednią nazwę)
  • Usuń pierwszą tabelę (której nazwa została zmieniona)
  • Użyj „zatwierdzenia”
  • Użyj polecenia „Pragma zagraniczne klawisze = on”, do ograniczeń klawiszy obcych
Rozpocznij transakcję;
Zmień tabelę Studenci_Data Zmień nazwę na new_students_data;
Utwórz tabelę studentów_data (ID INTEGER NOT NULL unikalny, nazwa tekst nie null, frekwencja nie jest null);
Wstaw do studentów_data Wybierz * z new_students_data;
Upuść tabela new_students_data;
POPEŁNIAĆ;
Pragma obcistość_keys = on;

Jak upuścić unikalne ograniczenie do istniejącego tabeli

Podobnie jak inne bazy danych, nie możemy upuścić ograniczenia za pomocą poleceń Drop i Alter, aby usunąć unikalne ograniczenia, które powinniśmy zastosować tę samą procedurę, którą zdecydowaliśmy się na dodanie ograniczenia do istniejącej tabeli i na nowo zdefiniowanie struktury tabeli.

Rozważmy powyższy przykład ponownie i usuń z niego unikalne ograniczenia:

Pragma coreig_keys = off;
Rozpocznij transakcję;
Zmień tabelę Studenci_Data Zmień nazwę na new_students_data;
Utwórz tabelę studentów_data (ID INTEGER NOT NULL, nazwa tekst nie null, frekwencja nie jest null);
Wstaw do studentów_data Wybierz * z new_students_data;
Upuść tabela new_students_data;
POPEŁNIAĆ;
Pragma obcistość_keys = on;

Wniosek

Unikalne ograniczenie jest używane w bazach danych w celu ograniczenia duplikacji wartości wstawionych na pola tabeli, podobnie jak ograniczenie kluczowe, ale istnieje różnica między nimi; Tabela może mieć tylko jeden klucz podstawowy, podczas gdy tabela może mieć unikalne kolumny kluczowe więcej niż jeden. W tym artykule omówiliśmy, czym jest unikalne ograniczenie i jak można go użyć w SQLite za pomocą przykładów.