No Slide Title

Download Report

Transcript No Slide Title

Rozdział 2: Język bazy danych - SQL
Proste zapytania
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Wprowadzenie do języka SQL
• język dostępu do bazy danych
• język deklaratywny
• 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 * FROM
pracownicy;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Projekcja
• wybór wartości określonych atrybutów relacji
SELECT nazwisko, etat
FROM pracownicy;
Wyrażenia arytmetyczne
• operatory arytmetyczne
– +, -, *, /
SELECT nazwisko, placa_pod*12, placa_dod+200
FROM pracownicy;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Aliasy atrybutów relacji
• alias - alternatywna nazwa atrybutu
SELECT nazwisko,
placa_pod*12 roczna_placa,
placa_dod+200 "nowe dodatki"
FROM pracownicy;
Operator konkatenacji - ||
• umożliwia łączenie wartości wyświetlanych
atrybutów
SELECT 'Pracownik ' || nazwisko
FROM pracownicy;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Obsługa wartości pustych
• funkcja NVL o następującej specyfikacji
NVL (wyrażenie, wartość)
SELECT nazwisko,
placa_pod*12 + placa_dod
FROM pracownicy;
SELECT nazwisko,
placa_pod*12 + NVL (placa_dod, 0)
FROM pracownicy;
Eliminowanie duplikatów
• słowo kluczowe DISTINCT
SELECT etat FROM pracownicy;
SELECT DISTINCT etat FROM pracownicy;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Edycja poleceń
input tekst
rozszerza bufor o wiersz tekst
change /stary/nowy
zamienia łańcuch znaków stary na
nowy w bieżącym wierszu bufora
list
wyświetla zawartość bufora
list n
wyświetla wiersz bufora o numerze n
del
kasuje bieżący wiersz bufora poleceń
run
wyświetla i wykonuje polecenie
przechowywane w buforze
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Edycja poleceń cd.
save nazwa_pliku
zapisuje zawartość bufora w pliku tekstowym
get nazwa_pliku
wczytuje do bufora zawartość pliku
edit
umożliwia edycję zawartości bufora za pomocą
edytora tekstowego (zmienna _EDITOR)
start nazwa_pliku
wykonuje polecenia zawarte w pliku
@nazwa_pliku
wykonuje polecenia zawarte w pliku
describe nazwa_relacji
wyświetla schemat relacji
exit
kończy sesję użytkownika
spool nazwa_pliku
zapisuje w pliku informacje pojawiające się na
ekranie
spool off
kończy zapisywanie do pliku
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
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 nazwisko, etat
FROM pracownicy
ORDER BY etat DESC, nazwisko ASC;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Selekcja krotek relacji
• klauzula WHERE
• składnia polecenia
SELECT atrybut1, atrybut2, ...
FROM relacja
WHERE atrybutm operator wartość
Operatory
• operatory matematyczne
=,
!=,
<>,
>,
>=,
SELECT nazwisko, placa_pod, etat
FROM pracownicy
WHERE placa_pod > 400;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
<,
<=
Operatory cd.
• operatory SQL
– BETWEEN ... AND ...
SELECT nazwisko, placa_pod, etat
FROM pracownicy
WHERE placa_pod BETWEEN 900 AND 1200;
– IN
SELECT nazwisko, placa_pod, id_zesp
FROM pracownicy
WHERE etat IN ('PROFESOR', 'DYREKTOR');
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Operatory cd.
– LIKE
SELECT nazwisko, placa_pod, id_zesp
FROM pracownicy
WHERE nazwisko LIKE 'M%';
– IS NULL
SELECT nazwisko, placa_pod
FROM pracownicy
WHERE placa_dod IS NULL;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Operatory cd.
• negacje operatorów SQL
– NOT BETWEEN ... AND ...
– NOT IN
– NOT LIKE
– IS NOT NULL
SELECT nazwisko, placa_pod, id_zesp
FROM pracownicy
WHERE etat NOT IN ('PROFESOR', 'DYREKTOR');
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
Warunki złożone klauzuli WHERE
• operatory logiczne w klauzuli WHERE
– AND
– OR
SELECT nazwisko, placa_pod, id_zesp
FROM pracownicy
WHERE etat = 'ASYSTENT'
AND placa_pod > 400;
(c) 1999, Instytut Informatyki Politechniki Poznańskiej
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 nazwisko, etat
FROM pracownicy
WHERE placa_pod > 500 AND etat = 'ADIUNKT'
OR etat = 'ASYSTENT';
(c) 1999, Instytut Informatyki Politechniki Poznańskiej