bd1-przyk³adowe zapytania

Transkrypt

bd1-przyk³adowe zapytania
Bazy danych (1)
Podstawowa składnia zapytania SELECT
Słowa kluczowe:
SELECT, ||, ORDER BY ASC/DESC, DISTINCT, działania (+, -, *, /), nazywanie kolumn
Zapytanie SELECT jest podstawowym zapytaniem języka SQL. Służy do wydobywania (np. wypisywania na ekran
lub do pliku) określonych danych z tabeli lub tabel. Ogólna składnia jest następująca:
SELECT * lub lista kolumn po przecinku
FROM nazwa tabeli
WHERE lista warunków;
Nie ma znaczenia, czy treść zapytania będzie w jednej czy w większej liczbie linii oddzielonych enterami. Nie jest
również konieczne stosowanie wielkich liter w słowach kluczowych (SELECT, FROM, WHERE itd.). Zapytanie
kończymy średnikiem (;) i zatwierdzamy enterem. Średnik informuje, że w tym miejscu kończy się zapytanie i po
zatwierdzeniu enterem powinno być natychmiast wykonane. Przykłady:
SELECT * FROM Zwierzeta; -- wypisuje wszystkie dane z tabeli Zwierzeta (* zastępuje wszystkie kolumny)
SELECT imie, wiek FROM Zwierzeta; -- wypisuje tylko kolumny imie i wiek
W zapytaniu możemy nadawać nowe nazwy kolumnom (nowe nazwy nie zmieniają starych na stałe, są tylko
widoczne w wyniku zapytania):
SELECT imie AS ”imię”, wiek FROM Zwierzeta;
-- kolumna imie będzie wyświetlana jako imię (w nazwach kolumn w tabelach nie powinno się używać polskich
-- znaków, w nadawanych nazwach w zapytaniu SELECT już można to robić)
Za pomocą dwóch pionowych kresek (||) możemy łączyć dane z kilku kolumn albo dopisywać do danych jakieś
wyrazy:
SELECT imie || ” ma ” || wiek || ” lat” FROM Zwierzeta;
-- łączymy tutaj dane z kolumny imie z wyrazem „ma” (przed nim i po nim znajduje się spacja), później łączymy to
-- z danymi z kolumny wiek, a na końcu dopisujemy wyraz „lat”
SELECT imie || ” ma ” || wiek || ” lat” AS ”wiek_zwierząt” FROM Zwierzeta;
-- zapytanie robi to samo, co poprzednie, ale kolumna wynikowa ma nazwę „wiek_zwierząt”
Dane możemy wypisać w postaci uporządkowanej. Służy do tego polecenia ORDER BY („uporządkuj według”),
umieszczane zawsze na końcu zapytania:
SELECT imie FROM Zwierzeta ORDER BY imie; -- wszystkie imiona w kolejności alfabetycznej
SELECT imie FROM Zwierzeta ORDER BY imie DESC; -- w odwrotnej kolejności alfabetycznej
Jeśli jakieś dane się powtarzają, a my chcielibyśmy pozbyć się duplikatów, możemy zastosować słowo DISTINCT:
SELECT DISTINCT wiek FROM Zwierzeta;
-- nawet jeśli dwa zwierzaki mają ten sam wiek, zapytanie wypisze tę wartość tylko raz
Jeśli kolumny zawierają wartości liczbowe, w zapytaniu możemy wykonywać na nich podstawowe operacje
matematyczne (dodawać do siebie lub do jakiejś liczby, odejmować, mnożyć, dzielić).
SELECT wiek*12 FROM Zwierzeta; -- wypisze wszystkie liczby z kolumny wiek, ale powiększone 12 razy
Zapamiętaj! Jeśli zapiszesz liczbę w cudzysłowach lub apostrofach, to nie jest ona już traktowana jako liczba tylko
jako tekst. Nie można wtedy wykonywać z nią żadnych operacji matematycznych.
Bazy danych (1)
Wyświetlanie danych spełniających określone warunki
Słowa kluczowe:
WHERE, <, =, >, <=, >=, BETWEEN, (NOT) LIKE, (NOT) NULL, (NOT) IN
Możemy ograniczać wynik zapytania dodanych spełniających określone przez nas warunki, np. chcemy poznać
imię zwierzaka o identyfikatorze równym 6:
SELECT imie FROM Zwierzeta WHERE id=6;
Warunki łączy się za pomocą operatorów logicznych AND (i) lub OR (lub):
SELECT imie FROM Zwierzeta WHERE id=6 OR id=8;
SELECT imie FROM Zwierzeta WHERE id>=6 AND id <=8;
Jeśli dane mają należeć do jakiegoś przedziału, można zastosować słowo BETWEEN:
SELECT imie FROM Zwierzeta WHERE id BETWEEN 6 AND 8;
W przypadku kolumn zawierających wartości tekstowe, można stosować znak równości (należy wtedy zwracać
uwagę na wielkość liter) lub słowo LIKE:
SELECT * FROM Zwierzeta WHERE imie=”Tuptus”;
SELECT * FROM Zwierzeta WHERE imie LIKE ”tuptus”;
Możemy również posłużyć się symbolami specjalnymi – „%” zastepuje dowolny ciąg znaków, „_” zastępuje
pojedynczy znak:
SELECT * FROM Zwierzeta WHERE imie LIKE ”a%”;
-- wypisuje wszystkie imiona zwierząt zaczynające się na literę a
Jeśli szukane wartości należą do pewnego zbioru, można użyć słowa IN:
SELECT * FROM Zwierzeta WHERE imie IN (”Guliwer”, ”Gandalf”, ”Dumbo”);
Jeżeli jakieś pole w tabeli nie ma określonej wartości (jest puste), to ma ono wartość NULL. W takim przypadku nie
stosuje się znaku równości w zapytaniu, tylko słowa kluczowe IS/IS NOT NULL:
SELECT * FROM Zwierzeta WHERE imie IS NULL; -- wypisze wszystkie zwierzaki bez imienia
-- ale ponieważ w bazie nie ma takich zwierząt, więc to zapytanie niczego nie zwróci
SELECT * FROM Zwierzeta WHERE imie IS NOT NULL; -- wszystkie zwierzaki posiadające imię
Dodatkowe funkcje
Słowa kluczowe:
round(), lower(), upper(), ltrim(), rtrim(), trim()
W SQL-u możliwe jest skorzystanie z różnych dodatkowych funkcji. ROUND zaokrągla wartości liczbowe do
wskazanej liczby miejsc po przecinku:
SELECT ROUND(wiek/3.0,2) FROM Zwierzeta;
-- wiek zwierząt jest dzielony przez 3, a wynik zaokrąglony do dwóch miejsc po przecinku
-- gdyby w zapytaniu napisano 3 a nie 3.0, wynik dzielenia zostałby automatycznie zamieniony na liczbę całkowitą
Funkcje lower() i upper() powodują zamianę wszystkich liter tekstu na odpowiednio małe lub wielkie:
SELECT LOWER(imie) FROM Zwierzeta;
SELECT UPPER(imie) FROM Zwierzeta;

Podobne dokumenty