SQLite Utwórz indeks

SQLite Utwórz indeks

Indeks jest konkretnym narzędziem danych do organizowania i optymalizacji informacji dla całej kolumny do zapytania. Indeksy (lub indeksy) są unikalne w wyszukiwaniu bazy danych, ponieważ umożliwiają zlokalizowanie niektórych wierszy w rekordzie bez konieczności skanowania całej tabeli. W rezultacie wskaźniki mogą zapewnić pewne operacje znaczny wzrost wydajności. Indeksy są zwykle połączone z pojedynczą tabelą, chociaż mogą zawierać kilka kolumn z tej tabeli.

W związku z tym postanowiliśmy omówić temat indeksów używanych w SQLite w tym artykule dzisiaj. Zacznijmy z bazą danych SQLITE na naszej właśnie wprowadzonej powładzie terminalu. W tym celu wypróbuj polecenie jednego słowa w strefie zapytania, ja.mi., „SQLite3”. Konsola SQLite Shell zostanie uruchomiona, jak pokazano poniżej:

Po uruchomieniu skorupy SQLite użyliśmy „.Tabele ”Instrukcja na jego powłoce, aby wyświetlić wszystkie już wykonane tabele naszej bazy danych.

Dlatego potrzebujemy co najmniej jednej tabeli w naszej bazie danych, aby utworzyć indeksy w jego kolumnach. Próbujemy więc utworzyć instrukcję Table, która utworzy tabelę o nazwie „Informacje”. Ta tabela będzie zawierać w nim w sumie trzy kolumny. Kolumna ID i kolumna wiekowa będzie miała typ całkowitego, a kolumna identyfikatora będzie używana jako klucz podstawowy tej tabeli. Kolumna nazwy będzie typu tekstu. Tabela została pomyślnie utworzona i wypróbowaliśmy wybraną instrukcję, aby pobrać wszystkie jej rekordy. Niestety do tej pory nie ma żadnych rekordów.

SQLITE> Utwórz informacje o tabeli (ID int klucz podstawowy, nazwa tekst, wiek int);
sqlite> wybierz * z informacji;
sqlite>.tabele

Zacznijmy wstawić kilka rekordów do informacji o tabeli za pomocą wkładki do instrukcji bazy danych SQLITE. W tym celu musisz określić nazwy kolumn tabeli używanych do wstawienia rekordów, i.mi., Id, nazwa i wiek. Po nazwach kolumn pojawi się słowo kluczowe „Wartości” za pomocą wartości w nawiasach. Dodaliśmy pięć rekordów w tabeli „Informacje”.

sqlite> Wstaw do informacji (id, nazwa, wiek) wartości (1, „bella”, 34);
sqlite> Wstaw do informacji (id, nazwa, wiek) wartości (2, „bella”, 23);
sqlite> wstaw do informacji (id, nazwa, wiek) wartości (3, „George”, 26);
SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (4, „George”, 29);
SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (5, „EMA”, 30);

Następnie użyliśmy instrukcji SELECT, aby wyświetlić wszystkie nowo wstawiane rekordy informacji o tabeli. Pięć rekordów dla identyfikatorów kolumn, nazwy i wieku tabeli zostało wyświetlonych na powładzie.

sqlite> wybierz * z informacji;

Jak wszyscy wiemy, kolumna identyfikacyjna tabeli „Info” jest już określona jako klucz podstawowy. W ten sposób sprawdzimy, w jaki sposób ograniczenie klucza podstawowego zareaguje na zduplikowane wprowadzenie wartości. Używamy więc instrukcji wstawki do wstawienia nowych rekordów w tabeli „Informacje”, podczas gdy wartość kolumny „id” wynosi 5, i.mi., powtarzający się. Wykonanie tego instrukcji prowadzi do błędu „Unikalne ograniczenie nie powiodło się: Info.ID". Oznacza to, że nie możemy dodać duplikatu wartości kolumny „id”.

SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (5, „tom”, 35);

Pojedynczy indeks

Utwórzmy pojedynczy indeks w określonej kolumnie tabeli informacji. W tym celu musisz skorzystać z indeksu Utwórz indeks, a następnie nazwę indeksu, który zostanie utworzony, i.mi., Age_index, słowo kluczowe „on”, nazwa tabeli, i.mi., „Informacje”, a następnie nazwa kolumny, i.mi., „Wiek”, na którym będziemy stosować indeks. Po utworzeniu indeksu „AGE_INDEX” dla kolumny „Wiek”, wstawaliśmy nowy rekord w informacji o tabeli za pomocą wkładki do instrukcji. Powtarzaliśmy wartość dla kolumny „wiek” w tej instrukcji, ja.mi., 30. Po przeszukaniu wszystkich zapisów tabeli „Informacje” mamy następujące rekordy:

SQLITE> Utwórz indeks AGE_INDEX na informacjach (wiek);
SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (6, „EMA”, 30);
sqlite> wybierz * z informacji;

To samo zostało zrobione dla kolumny „Nazwa”, ja.mi., utworzył indeks „name_index”. Następnie wstawiliśmy duplikat rekord dla kolumny „Nazwa” za pomocą wkładki do instrukcji i wyświetliśmy wszystkie rekordy tabeli „Informacje”.

sqlite> Utwórz indeks name_index na informacjach (nazwa);
SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (7, „EMA”, 20);
sqlite> wybierz * z informacji;

Możesz wymienić wszystkie nowo utworzone indeksy swojej bazy danych za pomocą „.Instrukcja indeksu ”wraz z konkretną nazwą tabeli„ Informacje ”, która zawiera lub używa tych indeksów.

sqlite> .Informacje wskaźników

Indeks złożony

Jeśli utworzysz indeks dla więcej niż jednej kolumny określonej tabeli, mówi się, że jest to indeks złożony. Tak więc tworzyliśmy złożony indeks „comp_index” dla nazwy kolumn i wieku tabeli „Informacje” za pomocą indeksu Utwórz indeks wyświetlany na obrazie. Kiedy próbowaliśmy wstawić zduplikowane rekordy w kolumnie nazwy i wiekowej tabeli „Informacje” do instrukcji, zwróciło błąd „Unikalne ograniczenie nie powiodło się”.

sqlite> Utwórz indeks comp_index na informacjach (nazwa, wiek);
sqlite> Wstaw do informacji (id, nazwa, wiek) wartości (7, „bella”, 23);

Zazwyczaj indeksy oferują możliwość tworzenia zduplikowanych wpisów. Jednak unikalne słowo kluczowe zapobiega wstawieniu lub aktualizacji powtarzających się wartości. Unikalny indeks może nie zabraniać jednego lub dodatkowego zeru, ponieważ zerowa nie jest uważana za wartość. Nie należy określić null w początkowej deklaracji tabeli, aby uniknąć zerowych. Utwórzmy unikalny indeks „ID” informacji o tabeli za pomocą indeksu Utwórz indeks. Mamy siedem rekordów dla tabeli „Informacje” tej bazy danych. Próbowaliśmy więc wstawka do instrukcji, aby dodać duplikat wartości kolumny identyfikatora tabeli. Zwrócił ten sam „unikalny błąd nieudany ograniczenie” na naszym ekranie.

SQLITE> Utwórz unikalne indeks uindex na informacjach (id);
sqlite> wybierz * z informacji;
SQLITE> Wstaw do informacji (id, nazwa, wiek) wartości (7, „ana”, 19);

Utwórzmy nową tabelę „Test” z dwiema kolumnami id i wiekiem, bez kluczowych kluczy. Następnie stworzyliśmy unikalny indeks „unikalny_index”, na obu jego kolumnach i dodaliśmy dwa unikalne rekordy i jeden zduplikowane rekordy z wkładką do instrukcji. Trzeci rekord rzuca błąd, ponieważ wartości obu kolumn zostały powtórzone.

SQLITE> Utwórz test tabeli (ID int, Age Int);
SQLITE> Utwórz unikalne indeks unikalny_index w teście (id, wiek);
SQLite> Wstaw do testu (id, wiek) (1, 23);
SQLite> Wstaw do testu (ID, AGE) (2, 24);
SQLite> Wstaw do testu (ID, AGE) (2, 24);

Wniosek:

Ten artykuł dotyczył wykorzystania różnych indeksów kolumn tabeli. Omówiliśmy zastosowania indeksów i próbowaliśmy utworzyć indeksów pojedynczych, kompozytowych i unikalnych w różnych kolumnach tabeli z indacją Utwórz indeks na naszym końcu.