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;