4 - SQL(1).rtf

(3526 KB) Pobierz
OCR Document

Systemy baz danych

4. Manipulowanie danymi w relacyjnych bazach danych (język SQL)


 

Funkcje realizowane przez SQL:

§       definicja struktury bazy danych

§       odczyt danych

§       modyfikacja danych

§       kontrola dostępu

§       współużytkowanie danych

§       integralność danych.



 

Instrukcje języka SQL są wkładane do programu napisanego w innych językach programowania jak

pascal, C, COBOL.              .


 

SQL używany może być:             

§       jako element aplikacji i narzędzi programowych,

§       jako interakcyjny język zapytań

§       jako język komunikacji pomiędzy różnymi DBMS

 

 


Instrukcja SELECT

 

Służy do przeglądania bazy danych. Składa się z 6 fraz, z których dwie pierwsze są obowiązkowe:

 

Ø    SELECT

Ø    FROM

Ø    WHERE

Ø    GROUP BY

Ø    HAVING

Ø    ORDER BY

 

Fraza SELECT – służy do wyspecyfikowania kolumn w tablicy odpowiedzi.

 

Fraza FROM – służy do podania nazw tablic.

 

Np.: SELECT IMIE, NAZWISKO, DATA_UR
         FROM STUDENCI

 

 

Wybór wszystkich kolumn z tablicy:

              SELECT * FROM STUDENCI

 

Fraza WHERE – służy do eliminowania wierszy w tablicy odpowiedzi przy pomocy warunku przeszukiwania. Podstawowe warunki to:

Ø    Predykat porównania (operatory: =,>,<, …)

Ø    Predykat zakresu (BETWEEN AND

Ø    Predykat występowania (IN)

Ø    Predykat wzoru (LIKE)

Ø    Predykat wartości pustych (IS NULL)

Ø    Predykat istnienia (EXISTS)

 

Warunki złożone buduje się przy pomocy operatorów logicznych (AND, OR i NOT) lub zdań podwyboru (subquery).

 


Predykat porównania - przykłady:


 

§       SELECT NAZWA_TOWAR, CENA FROM PRODUKTY WHERE CENA> 200


 

§       SELECT *.

FROM PRODUKTY: WHERE ROK_PROD ='1995'


 

Predykat zakresu - przykład:


 

§       SELECT NAZWA_TOWAR, CENA

FROM PRODUKTY

WHERE CENA BETWEEN 200 AND 400


 

Predykat występowania - przykład:


 

SELECT NR_STUDENTA, NAZWISKO

              FROM STUDENCI

              WHERE NR_STUDENTA IN (240, 354, 521)


 

Predykat wzorca -wykorzystywane są dwa znaki

specjalne:. .

§       % - zastępuje dowolny,ciąg znaków

§       _ - zastępuje pojedynczy znak.


 

Przykład:


 

SELECT NR_PRODUKTU,NAZWA, CENA

FROM PRODUKTY

WHERE NAZWA LlKE 'HP%'


Predykat wartości pustych - przykład:

 

SELECT NR_STUDENTA, NAZWISKO

                            FROM STUDENCI              .

WHERE OCENA IS NULL

 

Złożone wyrażenia logiczne - przykład:

 

SELECT NAZWA_PROD, CENA

              FROM TOWARY

WHERE (CENA < 100) AND (ROK_PROD='1995')

Usuwanie zduplikowanych wierszy (DISTINCT) ­przykład: .

SELECT DISTINCT NAZWISKO

FROM OCENY

WHERE OCENA = 'NDST'


 

Fraza ORDER BY - służy do uporządkowania wierszy w tablicy odpowiedzi. Należy podać zestaw kolumn definiujący porządek. SQL przez domniemanie porządkuje według kolejności rosnącej. Słowo kluczowe DESC po nazwie kolumny zmienia porządek na malejący. Zamiast nazw kolumn można podawać numer kolejny na liście frazy SELECT

 

Przykłady:

SELECT NR STUDENTA, NAZWISKO FROM STUDENCI . WHERE ROK_URODZ = '1970' ORDER BY NAZWISKO

 

SELECT NAZWA_PROD,CENA,ROK_PROD

                               FROM TOWARY

ORDER BY 3, 2 DESC


Fraza UNION - służy do łączenia rezultatów dwóch

lub więcej instrukcji SELECT w jedną tablicę odpowiedzi. Łączone instrukcje SELECT muszą spełniać określone warunki:

§       muszą zawierać tą samą liczbę kolumn,

§       odpowiednie kolumny ze wszystkich

połączonych instrukcji SELECT muszą mieć

              zgodne typy

§       fraza ORDER BY może wystąpić tylko w

              ostatniej instrukcji SELECT. :

 

                            Przykład:

SELECT NAZWISKO, OCENA_KON FROM STUDENCI93

              WHERE GRUPA = 'C52'

UNION

SELECT NAZWISKO, OCENA_KON

FROM STUDENCI94

WHERE GRUPA = 'C52'


..,


 

Instrukcja SELECT z wieloma tablicami:


przy formułowaniu zapytań z kilku tablic należy

pamiętać o:              .

§       umieszczeniu nazw wszystkich tablic we

              frazie FROM,              .

§       stosowaniu kwalifikowanych nazw pól

              w celu uniknięcia niejednoznaczności,

§       umieszczeniu we frazie WHERE warunku

wiążącego zbiory.

Nazwa kwalifikowana kolumny to: 

§       nazwa kolumny poprzedzona nazwą tablicy:

                                          np.: STUDENCI.NR_STUDENTA,

§       nazwa kolumny poprzedzona. aliasem tablicy:

                                          np.: S.NR_STUDENTA,              .

alias tablicy należy zdefiniować we frazie FROM: np. : FROM STUDENCI S, PRZEDMIOTY P.


Przykłady:


 

SELECT STUDENCI.NAZWISKO, WYNIKI.PRZEDMIOT, WYNIKI.OCENA

FROM STUDENCI, WYNIKI

WHERE (STUDENCI.NR_STUDENT A=WYNIKI.NR_STUDENTA)


 

SELECT S.NAZWISKO, P.PRZEDMIOT, OCENA

FROM STUDENCI S, PRZEDMIOT P, WYNIKI W ...

Zgłoś jeśli naruszono regulamin