1 / 43

SQL

SQL.

raziya
Download Presentation

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. 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: • W każdym zapytaniu występują tzw. klauzule rozpoczynające się od słów kluczowych (np. SELECT, FROM, WHERE ... ) • Zapytania SQL mogą być zapisane w jednym lub kilku wierszach. • Małe i wielkie litery nie są rozróżniane. Nie dotyczy to jednak wartości pisanych w cudzysłowach.

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

  4. BazaAdresowPracownikow

  5. SELECT Imie, Nazwisko, Adres, Miasto, Stan FROM TabelaAdresowPracownikow;

  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. Symbol Znaczenia = równość <> nierówność > większość >= większość lub równość < mniejszość <= mniejszość lub równość Operatory arytmetyczne

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

  10. TablicaStatystykPracownikow

  11. SELECT NumerIDPracownika FROM TablicaStatystykPracownikow WHERE Pensja >= 50000; NumerIDPracownika 010 105 152 215 244

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

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

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

  15. PosiadaczeAntykow Zamowienia

  16. Antyki

  17. 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'; RELACJE - Połączenia

  18. 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); Aliasy i podzapytania w in aliasy - nazwy zastępcze

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

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

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

  22. 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. Funkcje agregujące

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

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

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

  26. DELETE FROM Antyki WHERE Rzecz = 'Ottoman'; DELETEUsuwanie danych

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

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

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

  30. CREATE VIEW ANTVIEW AS SELECT ZadanyPrzedmiot FROM Zamowienia; CREATE VIEWZestawienia

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

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

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

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

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

  36. 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); Połączenia zewnętrzne

  37. 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. INTERSECT i MINUS

  38. 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. Dodatkowe funkcje matematyczne

  39. 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. Dodatkowe funkcje znakowe

  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. 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 99.99. • 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). Typy danych

  42. 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ść... • 5. DEFAULT wstawia domyślną wartość do bazy danych, jeśli wiersz jest wprowadzony bez uwzględninia danej kolumny. Np. ZYSKI INTEGER DEFAULT = 10000 CREATE / ALTER TABLE argumenty

  43. 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. COMMIT i ROLLBACK

More Related