Aby wybrać dane z bazy danych SQLite, użyj SELECT
oświadczenie.
Korzystając z tej instrukcji, określasz, z których tabel/y wybrać dane, a także kolumny, które mają zostać zwrócone z zapytania.
Możesz również podać dodatkowe kryteria, aby jeszcze bardziej zawęzić zwracane dane.
Prosty SELECT
Oświadczenie
Użyliśmy już SELECT
oświadczenie wcześniej, kiedy wstawialiśmy dane.
Stwierdzenie, którego użyliśmy, było następujące:
SELECT * FROM Artists;
Jest to dość oczywiste — mówi SQLite, aby wybrał wszystkie kolumny z
Artystów
stół. Gwiazdka (*
) to skrótowy sposób powiedzenia „wszystkie kolumny”. Oszczędza nam to wypisywania nazw wszystkich kolumn.
Dlatego ta kwerenda zwraca wszystkie rekordy i wszystkie kolumny. Tak:
1|Joe Satriani 2|Steve Vai 3|The Tea Party 4|Noiseworks 5|Wayne Jury 6|Mr Percival 7|Iron Maiden 8|Atmasphere 9|Ian Moss 10|Magnum 11|Strapping Young Lad 12|Slayer 13|Primus 14|Pat Metheny 15|Frank Gambale 16|Frank Zappa 17|The Wiggles
Formatowanie
Sformatujmy dane wyjściowe, aby nasze wyniki były nieco łatwiejsze do odczytania.
Użyj kolumn
Możesz użyć .mode
aby zmienić tryb wyjścia. Powyższy przykład używa .mode list
, który wyświetla wyniki w postaci listy.
Zmieńmy tryb na używanie kolumn.
.mode column
Gdy to zrobisz, może być konieczne dostosowanie szerokości kolumn (wszelkie dane, które są zbyt szerokie dla kolumny, zostaną obcięte).
Dostosuj szerokość kolumn
Aby dostosować szerokość kolumn, użyj .width
polecenie, a następnie szerokości dla każdej kolumny.
Poniższy przykład ustawia pierwszą kolumnę na 12
a druga kolumna do 20
.
.width 12 20
Dodaj nagłówki
Możesz także użyć .headers
aby określić, czy wyświetlać nagłówki kolumn.
Aby wyświetlić nagłówki, użyj tego:
.headers on
Możesz je usunąć za pomocą .headers off
.
Pokaż ustawienia
Możesz przejrzeć te i inne ustawienia w dowolnym momencie, wpisując .show
sqlite> .show echo: off eqp: off explain: off headers: on mode: column nullvalue: "" output: stdout separator: "|" stats: off width: 12 20
Nowy format
Oto jak wygląda poprzedni przykład w trybie kolumn i nagłówków:
ArtistId ArtistName ---------- ------------ 1 Joe Satriani 2 Steve Vai 3 The Tea Part 4 Noiseworks 5 Wayne Jury 6 Mr Percival 7 Iron Maiden 8 Atmasphere 9 Ian Moss 10 Magnum 11 Strapping Yo 12 Slayer 13 Primus 14 Pat Metheny 15 Frank Gambal 16 Frank Zappa 17 The Wiggles
WHERE
Klauzula
Możesz użyć WHERE
klauzula zawężająca wyniki. Klauzula umożliwia określenie konkretnych kryteriów, dla których należy zastosować zapytanie.
Na przykład możesz określić, że powinny być zwracane tylko rekordy, w których określone pole zawiera określoną wartość.
Oto bardzo konkretny przykład. Określa, że tylko rekord z ArtistId równa 6 należy zwrócić:
SELECT * FROM Artists WHERE ArtistId = 6;
Wynik:
ArtistId ArtistName ------------ -------------------- 6 Mr Percival
Aby znaleźć wszystkich wykonawców, których imię zaczyna się na literę „S”, możesz to zrobić:
SELECT * FROM Artists WHERE ArtistName LIKE 'S%';
Wynik:
ArtistId ArtistName ------------ -------------------- 2 Steve Vai 11 Strapping Young Lad 12 Slayer
Znak procentu (%
) to znak wieloznaczny, którego można użyć do określenia dowolnego znaku. Tak więc w tym przykładzie określamy, że nazwa artysty musi być podobna do tego wzorca (tj. Wzorzec zaczynający się na literę
S
i podążając za dowolną inną postacią).
Kolejny przykład użycia WHERE
klauzula ma na celu pobranie zakresu wartości. Na przykład moglibyśmy szukać rekordów, w których wartość jest mniejsza niż liczba, większa niż liczba lub mieści się w określonym zakresie.
Oto przykład wyboru tylko tych rekordów z ArtistId mniej niż liczba:
SELECT * FROM Artists WHERE ArtistId < 6;
Wynik:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury
Oto przykład wyboru tylko tych rekordów z ArtistId w pewnym zakresie:
SELECT * FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Wynik:
ArtistId ArtistName ------------ -------------------- 5 Wayne Jury 6 Mr Percival 7 Iron Maiden 8 Atmasphere 9 Ian Moss 10 Magnum
Wybieranie kolumn
Możesz określić, że w zestawie wyników będą zwracane tylko niektóre kolumny. Po prostu wpisz nazwy kolumn w zapytaniu. Nazwy wielu kolumn należy oddzielić przecinkami.
Dobrą praktyką jest wybranie tylko tych kolumn, których potrzebujesz. Korzystanie z *
, choć wygodne, może spowodować dodatkowe obciążenie, jeśli zwróci więcej kolumn niż jest to wymagane.
Uruchommy ponownie to samo zapytanie, ale tym razem wybierzmy tylko Nazwa wykonawcy kolumna:
SELECT ArtistName FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Wynik:
ArtistName ------------ Wayne Jury Mr Percival Iron Maiden Atmasphere Ian Moss Magnum
ORDER BY
Klauzula
Możesz użyć ORDER BY
klauzula ograniczająca liczbę zwracanych rekordów.
Możesz dodać ASC
dla kolejności rosnącej lub DESC
dla porządku malejącego. Jeśli nic nie dodasz, użyje rosnącej.
Tutaj zamawiamy przez ArtistName pole w porządku rosnącym:
SELECT * FROM Artists ORDER BY ArtistName;
Wynik:
ArtistId ArtistName ------------ -------------------- 8 Atmasphere 15 Frank Gambale 16 Frank Zappa 9 Ian Moss 7 Iron Maiden 1 Joe Satriani 10 Magnum 6 Mr Percival 4 Noiseworks 14 Pat Metheny 13 Primus 12 Slayer 2 Steve Vai 11 Strapping Young Lad 3 The Tea Party 17 The Wiggles 5 Wayne Jury
A jeśli przejdziemy do kolejności malejącej:
SELECT * FROM Artists ORDER BY ArtistName DESC;
Wynik:
ArtistId ArtistName ------------ -------------------- 5 Wayne Jury 17 The Wiggles 3 The Tea Party 11 Strapping Young Lad 2 Steve Vai 12 Slayer 13 Primus 14 Pat Metheny 4 Noiseworks 6 Mr Percival 10 Magnum 1 Joe Satriani 7 Iron Maiden 9 Ian Moss 16 Frank Zappa 15 Frank Gambale 8 Atmasphere
LIMIT
Klauzula
Możesz użyć LIMIT
klauzula ograniczająca liczbę zwracanych rekordów. Może to być przydatne, jeśli Twoja tabela zawiera dużą liczbę rekordów, ale chcesz zobaczyć tylko garść.
Tutaj ograniczamy zestaw rekordów do tylko pięciu rekordów:
SELECT * FROM Artists LIMIT 5;
Wynik:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury