Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (Structured English QUEry.

Podobne prezentacje


Prezentacja na temat: "SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (Structured English QUEry."— Zapis prezentacji:

1 SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (Structured English QUEry Language ) jest językiem służącym do budowania systemów obsługi relacyjnych baz danych (RDBMS) na dowolnej płaszczyźnie sprzętowe. W chwili obecnej jest on standardowym językiem służącym do wymiany danych pomiędzy różnymi platformami sprzętowymi i programowymi.

2 Najważniejsze zasady obowiązujące przy formułowaniu zapytań w języku SQL: 1.W każdym zapytaniu występują tzw. klauzule rozpoczynające się od słów kluczowych (np. SELECT, FROM, WHERE... ) 2.Zapytania SQL mogą być zapisane w jednym lub kilku wierszach. 3.Małe i wielkie litery nie są rozróżniane. Nie dotyczy to jednak wartości pisanych w cudzysłowach.

3 SELECT ( wybierz) Najprostsze zapytanie ma postać: SELECT * FROM tabela Po tym słówku umieszczamy nazwy kolumn, które chcemy uzyskać w odpowiedzi. Przykład SELECT * FROM JNI.DB

4 BazaAdresowPracownikow Numer Ubezpieczenia Socjalnego ImieNazwiskoAdresMiastoStan JoeSmith83 First Street HowardOhio MaryScott842 Vie Ave. LosantileOhio SamJones33 Elm St. ParisNew York SarahAckerman440 U.S. 110 UptonMichigan

5 SELECT Imie, Nazwisko, Adres, Miasto, Stan FROM TabelaAdresowPracownikow; ImieNazwiskoAdresMiastoStan JoeSmith83 First Street HowardOhio MaryScott842 Vie Ave. LosantileOhio SamJones33 Elm St. ParisNew York SarahAckerman440 U.S. 110 UptonMichigan

6 Aby wyświetlić jedynie część informacji z tabeli w zapytaniu należy wypisać nazwy kolumn, które mają zostać wyświetlone: SELECT wyrażenie_1 [, wyrażenie_2,..., wyrażenie_n] FROM tabela [tabela_2,..., tabela_n]

7 WHERE Po tym słowie kluczowym podaje się warunki selekcji, czyli wymagania jakie musi spełniać rekord aby zakwalifikować go do odpowiedzi. SELECT wyrażenie_1 [, wyrażenie_2,..., wyrażenie_n] FROM relacja WHERE warunek_1 [AND/OR warunek_2... AND/OR warunek_n] SELECT * FROM JNI.DB WHERE RodzSGM = 10

8 Operatory arytmetyczne SymbolZnaczenia =równość <>nierówność >większość >=większość lub równość

9 Operatory języka SQL OperatorZnaczenie between... and...wartość z przedziału likewartość zgodna z wzorcem is nullwartość pusta - null inwartość w zbiorze danych Każdy z operatorów SQL może być poprzedzony negacją NOT

10 NumerID Pracownika PensjaZyskiStanowisko Kierownik Kierownik Kierownik Kierownik Personel Personel Personel Ekspedient Ekspedient TablicaStatystykPracownikow

11 SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja >= 50000; NumerIDPracownika

12 Przykłady SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Kierownik'; SELECT NumerIDPracownika FROM TablicaStatystykPraconikow WHERE Pensja > AND Stanowisko = 'Personel'; SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko = 'Manager' AND (Pensja > OR Zyski > 10000);

13 SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Stanowisko IN ('Kierownik', 'Personel'); SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja BETWEEN AND 50000; SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja NOT BETWEEN AND 50000;

14 Operator LIKE SELECT NumerIDPracownika FROM TablicaAdresowPracownikow WHERE Nazwisko LIKE 'L%'; Pozwala on na porównywanie napisów, gdzie jeden z napisów może posiadać znaki specjalne: _ znak podkreślnika zastępuje w napisie dokładnie jeden znak % znak procentu zastępuje w napisie dowolny ciąg znaków (nawet pusty).

15 IDPosiadaczaNazwiskoPosiadaczaImiePosiadacza 01JonesBill 02SmithBob 15LawsonPatricia 21AkinsJane 50FowlerSam PosiadaczeAntykow Zamowienia IDPosiadaczaZadanyPrzedmiot 02Stół 02Biurko 21Krzesło 15Lustro

16 Antyki IDSprzedajacegoIDKupujacegoRzecz 0150Łóżko 0215Stół 1502Krzesło 2150Lustro 5001Biurko 0121Gabinet 0221Stolik do kawy 1550Krzesło 0115Szkatułka 0221Garnki 2102Biblioteka 5001Doniczka

17 RELACJE - Połączenia SELECT NazwiskoPosiadacza, ImiePosiadacza FROM PosiadaczeAntykow, Antyki WHERE IDKupujacego = IDPosiadacza AND Rzecz = 'Krzesło'; SELECT PosiadaczeAntykow.NazwiskoPosiadacza, PosiadaczeAntykow.ImiePosiadacza FROM PosiadaczeAntykow, Antyki WHERE Antyki.IDKupujacego = PosiadaczeAntykow.IDPosiadacza AND Antyki.Rzecz = 'Krzesło';

18 Aliasy i podzapytania w in aliasy - nazwy zastępcze SELECT Posiad.NazwiskoPosiadacza Nazwisko, Zam.ZadanyPrzemiot Zamawiany przedmiot FROM Zamowienia Zam, PosiadaczeAntykow Posiad WHERE Zam.IDPosiadacza = Posiad.IDPosiadacza AND Zam.ZadanyPrzedmiot IN (SELECT Rzecz FROM Antyki);

19 SELECT artybut_1 AS Atrybut jeden, atrybut_2 AS Atrybut_Dwa... FROM relacja [WHERE warunki] NazwiskoZamawiany przedmiot SmithStół SmithBiurko AkinsKrzesło LawsonLustro

20 DISTINCT Klauzuli tą stosujemy celem uniknięcia wielokrotnych wystąpień identycznych wierszy w tabeli stanowiącej wynik zapytania. SELECT DISTINCT atrybut FROM tabela [WHERE warunek]

21 ORDER BY Sortowanie SELECT artybut_1, atrybut_2, atrybut_3 FROM tabela [WHERE warunki] ORDER BY "Atrybut jeden", atrybut_dwa, atrybut_3 [ASC|DESC]

22 Funkcje agregujące SUM () zwraca sumę wartości z wierszy spełniających zapytanie dla kolumny numerycznej. AVG () zwraca średnią dla danej kolumny. MAX () zwraca największą wartość w danej kolumnie. MIN () zwraca najmniejszą wartość w danej kolumnie. COUNT(*) zwraca liczbę określającą ilość wierszy spełniających warunki.

23 SELECT SUM(Pensja), AVG(Pensja) FROM TablicaStatystykPracownikow; SELECT DrogaAdm, COUNT(JNI) AS Ilosc_Obiektow FROM "Jni.db" GROUP BY DrogaAdm SELECT IDPosiadacza, MAX(Cena) FROM Antyki GROUP BY IDKupujacego;

24 ALTER Uzupełnianie tabel Dodajmy do tabeli Antyki kolumnę umożliwiającą wpisywanie ceny danej Rzeczy: ALTER TABLE Antyki ADD (Cena DECIMAL(8,2) NULL);

25 INSERT Dodawanie danych INSERT INTO Antyki VALUES (21, 01, 'Ottoman', ); INSERT INTO Antyki (IDKupujacego, IDSprzedajacego, Rzecz) VALUES (01, 21, 'Ottoman');

26 DELETE Usuwanie danych DELETE FROM Antyki WHERE Rzecz = 'Ottoman';

27 UPDATE Odświeżanie danych UPDATE Antyki SET Cena = WHERE Rzecz = 'Krzesło'; To ustawi Ceny wszystkich krzeseł na

28 CREATE TABLE Tworzenie nowych tabel CREATE TABLE Zamowienia (IDPosiadacza INTEGER NOT NULL, ZadanyPrzedmiot CHAR(40) NOT NULL);

29 Indeksy CREATE INDEX POID_IDX ON PosiadaczeAntykow (IDPosiadacza); CREATE INDEX IMIE_IDX ON PosiadaczeAntykow (NazwiskoPosiadacza, ImiePosiadacza); DROP INDEX POID_IDX; CREATE UNIQUE INDEX POID_IDX ON PosiadaczeAntykow (IDPosiadacza);

30 CREATE VIEW Zestawienia CREATE VIEW ANTVIEW AS SELECT ZadanyPrzedmiot FROM Zamowienia;

31 SELECT IDKupujacego, MAX(Cena) FROM Antyki GROUP BY IDKupujacego HAVING Cena > 1000; HAVING

32 podzapytania SELECT IDKupujacego FROM Antyki WHERE Cena > (SELECT AVG(Cena) FROM Antyki); UPDATE PosiadaczeAntykow SET ImiePosiadacza = 'John' WHERE IDPosiadacza = (SELECT IDKupujacego FROM Antyki WHERE Rzecz = 'Biblioteka');

33 EXISTS SELECT ImiePosiadacza, NazwiskoPosiadacza FROM PosiadaczeAntykow WHERE EXISTS (SELECT * FROM Antyki WHERE Rzecz = 'Krzesło');

34 ALL SELECT IDKupujacego, Rzecz FROM Antyki WHERE Cena >= ALL (SELECT Cena FROM Antyki);

35 UNION Unie – połączenie wyników zapytań SELECT IDKupujacego FROM Antyki UNION SELECT IDPosiadacza FROM Zamowienia; Wymagana zgodność typów pól danych Automatyczne DISTINCT

36 Połączenia zewnętrzne SELECT IDPosiadacza, 'jest w tabeli Zamowienia i Antyki' FROM Zamowienia, Antyki WHERE IDPosiadacza = IDKupujacego UNION SELECT IDPosiadacza, 'jest tylko w tabeli Antyki' FROM Antyki WHERE IDKupujacego NOT IN (SELECT IDPosiadacza FROM Zamowienia);

37 INTERSECT i MINUS są jak polecenie UNION, z wyjątkiem tego, że INTERSECT produkuje wiersze, które występują w obydwu zapytaniach, a MINUS rezultaty pierwszego zapytania, ale bez rezultatów drugiego.

38 Dodatkowe funkcje matematyczne ABS(X) Moduł z X. CEIL(X) Zaokrąglenie w górę dziesiętnego X-a. FLOOR(X) Zaokrąglenie w dół dziesiętnego X-a. GREATEST(X,Y) Zwraca największą z tych dwóch wartości. LEAST(X,Y) Zwraca najmniejszą z tych dwóch wartości. MOD(X,Y) Zwraca reszte z dzielenia X/Y. POWER(X,Y) Zwraca X do potęgi Y. ROUND(X,Y) Zaokrągla X do Y miejsc po przecinku. Gdy Y jest pominięte, zaokrąglenie następuje do najbliższej liczby całkowitej. SIGN(X) Zwraca minus gdy X<0, lub plus w innym wypadku. SQRT(X) Zwraca pierwiastek kwadratowy z X.

39 Dodatkowe funkcje znakowe LEFT( tekst>,X) Zwraca pierwsze X znaków z lewej strony tekstu. RIGHT( tekst>,X) J.w. tylko z prawej strony. UPPER( tekst>) Zmienia tekst na duże litery. LOWER( tekst>) Zmienia tekst na małe litery. INITCAP( tekst>) Zmienia tekst do oryginalnych caps'ów. LENGTH( tekst>) Zwraca liczbę znaków w tekście. tekst>|| tekst> Łączy dwa teksty w jeden połączony tekst, gdzie po pierwszym tekście natychmiast następuje następny. LPAD( tekst>,X,'*') Wypełnia tekst od lewej określonymi znakami (tu znakami '*'), aby tekst nabrał X znaków długości. RPAD( tekst>,X,'*') J.w. ale wypełnia z prawej strony. SUBSTR( tekst>,X,Y) Wyciąga Y liter z miejsca tekstu wskazywanego przez X.

40 Dodajmy do tabeli Antyki kolumnę ceny ALTER TABLE Antyki ADD (Cena DECIMAL(8,2) NULL); ALTER TABLE Modyfikujemy kolumnę ceny ALTER TABLE Antyki MODIFY (Cena DECIMAL(6,4) NULL); Kasujemy kolumnę ceny ALTER TABLE Antyki DROP (Cena);

41 Typy danych Char(x) - kolumna znakowa, gdzie x oznacza maksymalną ilość znaków dozwolonych w tej kolumnie. Integer - Kolumna liczb całkowitych, dodatnich lub ujemnych. Decimal(x, y) - Kolumna liczb dziesiętnych, gdzie x to maksymalna ilość cyfr w tej kolumnie, a y to maksymalna ilość cyfr w części ułamkowej. Maksymalna liczba dla deklaracji Decimal(4,2) to Date - kolumna z datą w formacie zależnym od DBMS-a Logical - kolumna, która może przechowywać tylko dwie wartości: TRUE lub FALSE (prawda lub fałsz).

42 CREATE / ALTER TABLE argumenty 1. NULL lub NOT NULL 2. UNIQUE wymusza unikalność każdego wiersza w kolumnie 3. PRIMARY KEY mówi bazie danych, że ta kolumna jest kolumną podstawowego klucza (używane tylko gdy klucz jest jednokolumnowym kluczem, w przeciwnym wypadku instrukcja PRIMARY KEY(kolumna, kolumna,...) powinna się pojawić na końcu polecenia, za definicją ostatniej kolumny. 4. CHECK umożliwia dodanie warunku, który będzie sprawdzany przy wprowadzaniu danych do tej kolumny; np. CHECK (CENA > 0) spowoduje, że system będzie sprawdzał kolumnę Cena czy przypadkiem nie jest większa niż zero, zanim przyjmie wartość DEFAULT wstawia domyślną wartość do bazy danych, jeśli wiersz jest wprowadzony bez uwzględninia danej kolumny. Np. ZYSKI INTEGER DEFAULT = 10000

43 COMMIT i ROLLBACK COMMIT; -- sprawia, że zmiany jakie dokonaliśmy na systemie bazy danych pozostaną w nim na stałe. ROLLBACK; --Anuluje wszystkie zmiany na bazie danych od czasu wykonania ostatniego polecenia Commit.


Pobierz ppt "SQL ("Structured Query Language" - "Strukturalny Język Zapytań"), opracowany przez firmę IBM jest rozwinięciem języka SEQUEL (Structured English QUEry."

Podobne prezentacje


Reklamy Google