Wprowadzenie do języka SQL
Transkrypt
Wprowadzenie do języka SQL
Wprowadzenie do języka SQL • język dostępu do bazy danych • grupy poleceń języka: – DQL (ang. Data Query Language) – DML (ang. Data Manipulation Language) – DDL (ang. Data Definition Language) – DCL (ang. Data Control Language) • polecenie SQL może być zapisane: – w jednym bądź wielu wierszach – dużymi lub małymi literami • polecenie SQL kończymy średnikiem SELECT SELECT**FROM FROM pracownicy; pracownicy; Proste zapytania 1 Projekcja • wybór wartości określonych atrybutów relacji SELECT SELECTnazwisko, nazwisko,etat etat FROM FROMpracownicy; pracownicy; Wyrażenia arytmetyczne • operatory arytmetyczne – +, -, *, / SELECT _pod*12, placa _dod+200 SELECTnazwisko, nazwisko,placa placa_pod*12, placa_dod+200 FROM FROMpracownicy; pracownicy; Proste zapytania 2 Aliasy atrybutów relacji • alias - alternatywna nazwa atrybutu SELECT SELECTnazwisko, nazwisko, placa _pod*12 roczna_ placa, placa_pod*12 roczna_placa, placa _dod+200 "nowe placa_dod+200 "nowedodatki" dodatki" FROM FROMpracownicy; pracownicy; Operator konkatenacji - || • umożliwia łączenie wartości wyświetlanych atrybutów SELECT SELECT'Pracownik 'Pracownik' '||||nazwisko nazwisko FROM FROMpracownicy; pracownicy; Proste zapytania 3 Obsługa wartości pustych • funkcja NVL o następującej specyfikacji NVL (wyrażenie, wartość) SELECT SELECTnazwisko, nazwisko, placa _pod*12 ++placa _dod placa_pod*12 placa_dod FROM FROMpracownicy; pracownicy; SELECT SELECTnazwisko, nazwisko, placa _pod*12 ++NVL placa_dod, 0) placa_pod*12 NVL((placa_dod, 0) FROM FROMpracownicy; pracownicy; Eliminowanie duplikatów • słowo kluczowe DISTINCT SELECT SELECTetat etatFROM FROMpracownicy; pracownicy; SELECT SELECTDISTINCT DISTINCTetat etatFROM FROMpracownicy; pracownicy; Proste zapytania 4 Porządkowanie wyników zapytania • klauzula ORDER BY • kolejność sortowania - słowo kluczowe ASC lub DESC • ORDER BY występuje zawsze jako ostatnia klauzula zapytania SELECT SELECTnazwisko, nazwisko,etat etat FROM FROMpracownicy pracownicy ORDER ORDERBY BYetat etatDESC, DESC,nazwisko nazwiskoASC; ASC; Proste zapytania 5 Selekcja krotek relacji • klauzula WHERE • składnia polecenia SELECT atrybut22,,... ... SELECTatrybut atrybut11,,atrybut FROM FROMrelacja relacja WHERE WHEREatrybut atrybutm operator operatorwartość wartość m Operatory • operatory matematyczne =, !=, <>, >, >=, <, <= SELECT _pod, etat SELECTnazwisko, nazwisko,placa placa_pod, etat FROM FROMpracownicy pracownicy WHERE _pod >>400; WHEREplaca placa_pod 400; Proste zapytania 6 Operatory cd. • operatory SQL – BETWEEN ... AND ... SELECT _pod, etat SELECTnazwisko, nazwisko,placa placa_pod, etat FROM FROMpracownicy pracownicy WHERE _pod BETWEEN WHEREplaca placa_pod BETWEEN900 900AND AND1200; 1200; – IN SELECT _pod, id_ zesp SELECTnazwisko, nazwisko,placa placa_pod, id_zesp FROM FROMpracownicy pracownicy WHERE WHEREetat etatIN IN('PROFESOR', ('PROFESOR','DYREKTOR'); 'DYREKTOR'); Proste zapytania 7 Operatory cd. – LIKE SELECT _pod, id_ zesp SELECTnazwisko, nazwisko,placa placa_pod, id_zesp FROM FROMpracownicy pracownicy WHERE WHEREnazwisko nazwiskoLIKE LIKE'M%'; 'M%'; – IS NULL SELECT _pod SELECTnazwisko, nazwisko,placa placa_pod FROM FROMpracownicy pracownicy WHERE _dod IS WHEREplaca placa_dod ISNULL; NULL; Proste zapytania 8 Operatory cd. • negacje operatorów SQL – NOT BETWEEN ... AND ... – NOT IN – NOT LIKE – IS NOT NULL SELECT _pod, id_ zesp SELECTnazwisko, nazwisko,placa placa_pod, id_zesp FROM FROMpracownicy pracownicy WHERE WHEREetat etatNOT NOTIN IN('PROFESOR', ('PROFESOR','DYREKTOR'); 'DYREKTOR'); Proste zapytania 9 Warunki złożone klauzuli WHERE • operatory logiczne w klauzuli WHERE – AND – OR SELECT _pod, id_ zesp SELECTnazwisko, nazwisko,placa placa_pod, id_zesp FROM FROMpracownicy pracownicy WHERE WHEREetat etat=='ASYSTENT' 'ASYSTENT' AND _pod >>400; ANDplaca placa_pod 400; Proste zapytania 10 Warunki złożone klauzuli WHERE cd. • operatory logiczne mogą być stosowane jednocześnie w tej samej klauzuli WHERE • AND posiada wyższy priorytet niż OR • zmiana priorytetu jest możliwa za pomocą nawiasów SELECT SELECTnazwisko, nazwisko,etat etat FROM FROMpracownicy pracownicy WHERE _pod >>500 WHEREplaca placa_pod 500AND ANDetat etat=='ADIUNKT' 'ADIUNKT' OR ORetat etat=='ASYSTENT'; 'ASYSTENT'; Proste zapytania 11