1 / 19

Zapytania SQL

Zapytania SQL. Kilka dodatkowych poleceń. SHOW FIELDS FROM ksiazka; - pokazuje pole z tabeli … ALTER TABLE ksiazka ADD imie VARCHAR(25); - dodaje kolumnę imię do tabeli książka ALTER TABLE ksiazka CHANGE naasswizko nazwisko VARCHAR(25); - zmiana nazwy kolumny w tabeli

lerato
Download Presentation

Zapytania SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zapytania SQL

  2. Kilka dodatkowych poleceń SHOW FIELDS FROM ksiazka; - pokazuje pole z tabeli … ALTER TABLE ksiazka ADD imie VARCHAR(25); - dodaje kolumnę imię do tabeli książka ALTER TABLE ksiazka CHANGEnaasswizkonazwisko VARCHAR(25); - zmiana nazwy kolumny w tabeli ALTER TABLE ksiazka DROP nazwisko; - usuwanie z tabeli książka kolumny nazwisko

  3. Sortowanie SELECT * FROM ksiazka ORDER BY nazwisko; - wyświetlanie po nazwisku SELECT * FROM ksiazka ORDER BY nazwisko ASC; - ASC oznacza sortowanie rosnąco według podanego pola SELECT * FROM ksiazka ORDER BY nazwisko DESC; - DESC natomiast oznacza sortowanie malejące SELECT * FROM pracownicy LIMIT 2; - spowoduje wyświetlenie się dwóch pierwszych rekordów SELECT * FROM pracownicy LIMIT 2, 5; - spowoduje wyświetlenie się rekordów od … do

  4. Sortowanie SELECT * FROM pracownicy WHERE nazwisko LIKE 'K%'; - spowoduje wyświetlenie się wszystkich pracowników których nazwisko zaczyna się na literę K Dzięki zastosowaniu znaków globalnych (% i _) istnieje możliwość przyrównania do dowolnego ciągu znaków. Znak '%' (procent) zastępuje dowolną ilość znaków. Znak '_' (podkreślenie) zastępuje dokładnie jeden znak SELECT imie, nazwisko FROM pracownicy WHERE nazwisko LIKE 'Kowalsk_';

  5. Sortowanie SELECT * FROM ksiazka WHERE nazwisko = ‘nowak' ANDimie = ‘jan' ANDtelefon = ‘666-666-666'; SELECT * FROM ksiazka WHERE nazwisko = ‘nowak' ORimie = jan'; SELECT * FROM ksiazka WHERE idBETWEEN ‘1' AND ‘10'; SELECT * FROM ksiazka WHERE id >= ‘1' AND id <= ‘10';

  6. Projekcja

  7. Wyróżnienia „Odczytaj wszystkie krotki z tabeli pracownicy; z każdej z tych krotek wyciągnij wartości atrybutów IMIE, NAZWISKO i PLACA_POD; IMIE i NAZWISKO skonkatenuj ze sobą i spacją (‘ ‘), a PLACE_POD pomnóż razy 12; wyniki tych operacji zwróć w relacji wynikowej.”.

  8. Wyróżnienia – stary SQL SELECT CONCAT(`nazwa_kolumny1`,`nazwa_kolumny2`)FROM `osoby` Przykład CONCAT() Wyświetl tekst powstały z połączenia imienia z nazwiskiem SELECT CONCAT(`imię`,`nazwisko`)FROM `osoby`

  9. Wyróżnienia Operatory: ‘*’ - operator to zwykły operator mnożenia. Prócz operatora mnożenia, na danych liczbowych (takich jak pensja), można również stosować operatory: dodawania (‘+’), odejmowania (‘-’), dzielenia (‘/’) i zmiany znaku (‘-’), oraz operatory zmiany priorytetu (‘(‘ i ‘)’). Stąd, wyrażenie PLACA_POD*12 oznacza, że dla każdej kolejno odczytywanej krotki reprezentującej pracownika z bazy danych, obliczy i zwróci jego roczną płacę (atrybut PLACA_POD reprezentuje płacę miesięczną). ‘||’ - operatorem konkatenacji. W poleceniu przedstawionym na slajdzie wykorzystano go w wyrażeniu IMIE||' '||NAZWISKO. Użycie tego wyrażenia oznacza, że dla każdej kolejnej krotki wykonuje, i zwraca w relacji wynikowej, konkatenację imienia, spacji i nazwiska pracownika. Należy tutaj zwrócić uwagę na fakt, iż stałe typu łańcuchowego są w języku SQL otaczane apostrofami (np. stała ‘ ‘ w wyrażeniu IMIE||' '||NAZWISKO oznaczająca spację). W przeciwieństwie do stałych typu łańcuchowego, stałe typu liczbowego nie wymagają żadnych dodatkowych oznaczeń. Podsumowując, nieco bardziej rozbudowana wersja polecenia SELECT wygląda następująco: SELECT {wyrażenie1, wyrażenie2,.....} FROM {nazwa relacji};

  10. Aliasy „Odczytaj wszystkie krotki z tabeli pracownicy; z każdej z tych krotek wyciągnij wartości atrybutów IMIE, NAZWISKO i PLACA_POD; IMIE i NAZWISKO skonkatenuj ze sobą i spacją (‘ ‘), a PLACE_POD pomnóż razy 12; wyniki tych operacji zwróć w relacji wynikowej.”.

  11. Sortowanie – współpraca tabel Jeśli chcemy wyświetlić dane z wielu tabel konieczne jest określenie sposobu łączenia krotek występujących w tych tabelach. W domyślnej postaci tworzony jest bowiem iloczyn kartezjański wszystkich krotek, co zazwyczaj nie jest pożądane. Rozwiązaniem tego problemu może być określenie warunku, który będzie wymagał aby wartości kolumn w dwóch tabelach były identyczne (np. Osoby.PESEL = Adresy.PESEL). To rozwiązanie nie jest jednak doskonałe, gdyż w wyniku zostaną pominięte krotki, których wartość (lub zbiór wartości) dla łączonych atrybutów nie występuje w łączonej tabeli. W języku SQL występuje specjalna klauzula JOIN, która pozwala rozwiązać problem tego rodzaju. Składnia polecenia SELECT z klauzulą JOIN jest następująca: SELECT * FROM table1 JOIN table2 ON condition ...

  12. Sortowanie – współpraca tabel SELECT * FROM table1 JOIN table2 ON condition ... condition określa sposób łączenia krotek. Zazwyczaj w warunku będzie wymagało się, żeby wartość kolumny w jednej tabeli była taka sama jak wartość kolumny w innej tabeli (table1.columnA = table2.columnB). Występują trzy wersje klauzuli JOIN: INNER LEFT [OUTER] RIGHT [OUTER]

  13. Sortowanie – współpraca tabel SELECT * FROM table1 JOIN table2 ON condition ...

  14. Sortowanie – współpraca tabel SELECT * FROM table1 JOIN table2 ON condition ... W przypadku INNER JOIN dana krotka zostanie uwzględniona wyłącznie w wypadku, gdy w drugiej tabeli występuje krotka (lub krotki), których wartość dla kolumn określonych w warunku jest taka sama. Klauzula INNER jest opcjonalna (tzn. klauzula JOIN bez modyfikatorów działa jak INNER JOIN). Dla zapytania: SELECT Imie, Nazwisko, Osoby.PESEL, Adresy.PESEL, Ulica, Nr FROM Osoby JOIN Adresy ON Osoby.PESEL = Adresy.PESEL otrzymamy wynik:

  15. Sortowanie – współpraca tabel SELECT * FROM table1 JOIN table2 ON condition ... W przypadku LEFT JOIN dana krotka zostanie uwzględniona w wyniku, nawet jeżeli w drugiej tabeli nie będzie krotek, które mogłyby być z nią połączone (dla których były spełniony warunek ON…). Dla zapytania: SELECT Imie, Nazwisko, Osoby.PESEL, Adresy.PESEL, Ulica, Nr FROM Osoby LEFTJOIN Adresy ON Osoby.PESEL = Adresy.PESEL otrzymamy wynik:

  16. Sortowanie – współpraca tabel SELECT * FROM table1 JOIN table2 ON condition ... W przypadku RIGHT JOIN uwzględniane są krotki z drugiej tabeli, które nie posiadają odpowiedników wśród krotek tabeli pierwszej. Dla zapytania: SELECT Imie, Nazwisko, Osoby.PESEL, Adresy.PESEL, Ulica, Nr FROM Osoby RIGHT JOIN Adresy ON Osoby.PESEL = Adresy.PESEL otrzymamy wynik: Pozostałe klauzule opisane wyżej (np. ORDER BY, LIMIT, etc.) działają również w przypadku łączenia wielu tabel.

  17. Aktualizowanie danych UPDATE table1 SET table1.col = table2.col1 FROM table2 WHERE table2.oldCol = table1.col

  18. Ćwiczenia do wykonania Proszę Państwa postępy w wykonywaniu ćwiczeń dokumentować co jakiś czas w pliku txt (proszę tego pilnować, konsola ma ograniczoną długość więc wpisane przez Państwa komendy po jakimś czasie znikają). Wydrukowany plik należy dostarczyć na następne laboratorium. 1. Dodać 2 kolumny do pierwszej tabeli 2. Zmienić nazwę kolumny z takiej jaką Państwo dodali, odpowiednio na „dodana_1” i „dodana_2” 3. Usunąć kolumnę „dodana_2” 4. Skopiować kolumnę 2 z tabeli2 do kolumny „dodana_1” ,wyświeltić nowo powstałą tabelę (skopiować od pliku) 5.Wykonać po 5 różnych zapytań z poleceniami ORDER BY … ORDER BY ASC …DESC oraz LIMIT (plik) 6. Wykonać klauzurę 5 razy (dla różnych wywołań )LIKE dla każdej z tekstowych kolumn w 1 tabeli tak aby klauzura ta zawierała znacznik % oraz _ (plik) 7. Polecenie wyżej powtórzyć używając 1 raz dla każdej kolumny teksotwej polecenia LIKE i LIMIT jednoczenie, ustawiając LIMIT na mniejszą wartość niż normalnie wyświetlana.

  19. Ćwiczenia do wykonania • 8. Użyć warunków WHERE AND , WHERE OR , WHERE BETWEEN 5razy dla • wybranej tabeli • 9. Wyświetlić z 1 tabeli kolumnę 1 i 3 z pomięciem 2 a następnie 2 i 4 z • pomięciem 3. • Wyróżnić z tabeli 1, pierwszą i druga kolumnie w jednej nowej kolumnie a obok niezmienioną kolumnę 3 z tabeli 1 • Użyć polecenia AS dla nowo powstałych kolumn z polecenia 10. • Współpraca między tabelami : • Wyświetlenie wszystkiego z tabeli 1 i 2 dla wspólnych wierszy z tożsamych kolumn z pominięciem tych kolumn • Operację powtarzamy dla tabeli 2 i 3 • Powtórz operację dodając polecenie WHERE i ORDER BY • Powtarzamy operację używając polecenia LIKE

More Related