Upload
chung
View
99
Download
4
Embed Size (px)
DESCRIPTION
SQL – Structured Query Language. obejmuje następujące grupy poleceń:. DML – Data Manipulation Language Select Insert Update Delete DDL - Data Definition Language Create Alter Drop. Instrukcje zarządzania i administrowania bazą danych Tworzenie i usuwanie użytkowników (grant, revoke) - PowerPoint PPT Presentation
Citation preview
1. DML – Data Manipulation Language • Select• Insert• Update• Delete
2. DDL - Data Definition Language• Create• Alter• Drop
3. Instrukcje zarządzania i administrowania bazą danych
• Tworzenie i usuwanie użytkowników (grant, revoke)
• Przydzielanie i usuwanie ról • (grant, revoke)• Przydzielanie uprawnień do poszczególnych
obiektów (grant, revoke)
4. Inne• Tabele tymczasowe• Kursory• Procedury składowane• Wyzwalacze i transakcje• Zanurzony SQL (statyczny i dynamiczny)
Skrócona składnia języka SQL• Główna postać zapytania:
SELECT [DISTINCT] nazwy(a)_kolumny / *FROM nazwa_tabeli
• Sortowanie wierszy wynikowych:
SELECT [DISTINCT] nazwy(a)_kolumny/* FROM nazwa_tabeli
ORDER BY nazwy(a)_kolumny / numer(y)_kolumn
ASC / DESC
• Wybór wierszy z tabeli – selekcja
SELECT [DISTINCT] nazwy(a)_kolumny/* FROM nazwa_tabeli
WHERE nazwa_kolumny operator wartość
Operatory porównania:= równe!= nie równe <= mniejsze niż lub równe>= więlsze niż lub równe> wieksze< mniejsze
• Wielokrotne warunki selekcji
SELECT [DISTINCT] nazwy(a)_kolumny FROM nazwa_tabeli
WHERE warunek OR / AND warunek
• Warunek może być zanegowany operatorem NOT
• Wyszukiwanie wartości NULL
SELECT [DISTINCT] nazwy(a)_kolumny FROM nazwa_tabeli
WHERE nazwa_kolumny IS [NOT] NULL
• Zakresowe wyszukiwanie
SELECT [DISTINCT] nazwy(a)_kolumny FROM nazwa_tabeli
WHERE nazwa_kolumny
[NOT] BETWEEN wartość1 AND wartość2
• Wielokrotne alternatywne warunki selekcji – operatory porównania zbioru
SELECT [DISTINCT] nazwy(a)_kolumny FROM nazwa_tabeli
WHERE nazwa_kolumny
[NOT] IN (wartość1, wartość2, ….)
• Uzgadnianie wzorców znakowych:
SELECT [DISTINCT] nazwy(a)_kolumny FROM nazwa_tabeli
WHERE nazwa_kolumny [NOT] LIKE ‘wzorzec’
Znak % - zastępuje ciąg pusty lub dowolny ciąg znaków
Znak _ - zastępuje jeden dowolny znak [K-P] – akceptuje w określonym miejscu wzorca znak
z zakresu od ‘K’ do ‘P’ [^c] - akceptuje w określonym miejscu wzorca
dowolny znak z wyjątkiem ‘c’
• Obliczenia
SELECT nazwy(a)_kolumny, wyrażenie_arytmetyczne FROM nazwa_tabeli
WHERE warunek
ORDER BY nazwy(a)_kolumny
• Operatory arytmetyczne: * mnożenie / dzielenie + dodawanie - odejmowanie
• Grupowanie wierszy i funkcje wbudowane
SELECT nazwy(a)_kolumny, funkcja(e)_wbudowana(e)
FROM nazwa_tabeli
[WHERE warunek]GROUP BY nazwy(a)_kolumny
[HAVING warunek]
[ORDER BY nazwy(a)_kolumny / numer(y)_kolumn
ASC / DESC]
• Funkcje wbudowane (inaczej zw. sumaryczne,grupowe lub kolumnowe):
AVG, SUM, MIN, MAX, COUNT
• Złączanie naturalne tabel – złączenie równymi wartościami kolumn
SELECT nazwy(a)_kolumny/*
FROM nazwa_tabeli1,nazwa_tabeli2
WHERE warunek_złączenia
[ORDER BY nazwy(a)_kolumny ASC / DESC]
• Złączenie wewnętrzne
SELECT nazwy(a)_kolumny/*
FROM nazwa_tabeli1 INNER JOIN nazwa_tabeli2
ON warunek_złączenia
• Złączenie zewnętrzne lewostronne
SELECT nazwy(a)_kolumny/* FROM nazwa_tabeli1 LEFT OUTER JOIN nazwa_tabeli2
ON warunek_złączenia
• Złączenie zewnętrzne prawostronne
RIGHT OUTER JOIN • Pełne złączenie zewnętrzne
FULL OUTER JOIN
OPERATORY MNOGOŚCIOWE
• UNION i UNION ALL – (suma)Operator Union (suma)zwraca połączony wynik dwu zapytań z wyłączeniem powtarzających się wierszy.
• INTERSECT – (przecięcie)Operator Intersect zwraca wyłącznie rekordy znalezione przez oba zapytania.
• MINUS – (różnica)Operator Minus zwraca te rekordy z pierwszego zapytania, które nie występują w drugim zapytaniu.
PODZAPYTANIA
Zapyt.gł. SELECT nazwy(a)_kolumn(y)
FROM nazwa_tabeli
WHERE nazwa_kolumny
operator_porównania/
operator_porównania_zbioru
Podzapytanie (SELECT nazwa_kolumny
FROM nazwa_tabeli
[WHERE warunek])
FUNKCJE ZWIĄZANE Z DATĄ I CZASEM
• ADD_MONTHS – dodaje podaną liczbę miesięcy do określonej daty,
• LAST_DAY – zwraca ostatni dzień podanego miesiąca,• MONTHS_BETWEEN – zwraca ilość miesięcy, jaka jest
pomiędzy dwoma określonymi datami,• NEXT_DAY – podaje pierwszy dzień tygodnia, który jest
większy lub równy, niż podana data,
• SYSDATE – zwraca systemowe wartości daty i czasu,
FUNKCJE ARYTMETYCZNEABS – zwraca wartość bezwzględną podanej liczby,• CEIL – zwraca najmniejszą liczbę całkowitą, większą lub równą niż
podany argument,• FLOOR - zwraca największą liczbę całkowitą, mniejszą lub równą
niż podany argument,• COS, SIN, TAN – zwracają wartości trygonometryczne podanych
kątów (argument musi być wyrażony w radianach)• EXP – zwraca wartość stałej e podniesioną do podanej potęgi,• LN i LOG – LN zwraca wartość logarytmu naturalnego dla
podanego argumentu, LOG posiada dwa argumenty i zwraca logarytm pierwszego argumentu przy podstawie równej drugiemu argumentowi,
• MOD – zwraca resztę z dzielenia pierwszego argumentu przez drugi,
• POWER – pierwszy argument jest podnoszony do potęgi określonej przez drugi argument,
• SIGN – zwraca -1 jeśli jej argument jest mniejszy od 0, zwraca 0 jeśli jej argument jest równy 0, oraz zwraca 1 jeśli jej argument jest większy od 0,
• SORT – zwraca pierwiastek kwadratowy z podanego argumentu,
FUNKCJE ZNAKOWE
• CHR – zwraca znak odpowiadający liczbie podanej jako argument,
• CONCAT – powoduje łączenie dwóch ciągów znakowych ( jak symbol ||),
• INITCAP – powoduje zamianę pierwszej litery na wielką, a pozostałych na małe,
• LOWER i UPPER – pierwsza funkcja zmienia wszystkie wielkie litery na małe, druga odwrotnie,
• LPAD i RPAD – mogą mieć dwa lub trzy argumenty. Pierwszym argumentem jest ciąg znakowy, na którym ma być wykonane działanie. Drugim jest długość, do której ma być wyrównany tekst, natomiast trzecim, opcjonalnym argumentem jest znak, którym należy uzupełnić ciąg znakowy. Znakiem domyślnym jest spacja.
FUNKCJE ZNAKOWE – cd
• LTRIM i RTRIM - mogą mieć jeden lub dwa argumenty. Pierwszym argumentem jest ciąg znakowy, drugim opcjonalnym argumentem jest znak, lub ciąg znaków. Jeśli drugi argument jest pominięty, domyślnie przyjmowana jest spacja. Funkcje usuwają ten znak z pierwszego ciągu znaków.
• REPLACE – zastępuje znaki. Pierwszym argumentem jest ciąg znaków, który ma być przeszukany, drugim jest szukany tekst. Jeśli trzeci argument jest opuszczony lub ma wartość NULL, to każde wystąpienie poszukiwanego tekstu w wejściowym ciągu znakowym jest usuwane i nie jest niczym zastępowane,
FUNKCJE ZNAKOWE – cd
• SUBSTR – pozwala wybrać wybrany fragment z podanego tekstu. Pierwszym argumentem jest ciąg znakowy. Drugim jest pozycja pierwszego znaku, który ma pojawić się w wyniku, trzecim argumentem jest liczba znaków, które mają być pokazane,
• TRANSLATE – posiada trzy argumenty: tekst źródłowy, tekst zastępowany i tekst wynikowy. Na miejsce elementów tekstu źródłowego występujących w tekście zastępowanym wchodzą odpowiadające im elementy z tekstu wynikowego.
FUNKCJE ZNAKOWE – cd
• INSTR – służy do sprawdzenia, gdzie w ciągu znakowym występuje określony wzorzec. Pierwszym argumentem jest źródłowy ciąg znaków, drugim jest wzorzec, który należy odszukać, trzecim i czwartym argumentem są liczby informujące, od której pozycji należy szukać i o którym wystąpieniu wzorca należy raportować,
• LENGTH – zwraca długość argumentu znakowego.
FUNKCJE KONWERTUJĄCE• TO_CHAR – przekształca liczby w ciągi znaków,• TO_NUMBER – przekształca ciąg znakowy w liczbę,
FUNKCJE DODATKOWE• GREATEST i LEAST – znajdują odpowiednio największy
lub najmniejszy element z serii wyrażeń,• USER – zwraca nazwę bieżącego użytkownika bazy
danych.
TWORZENIE TABEL
CREATE TABLE nazwa_tabeli
(pole1 typ_danych [rozmiar] [NOT NULL],
pole2 typ_danych [rozmiar] [NOT NULL],
pole3 typ_danych [rozmiar] [NOT NULL])
np.
CREATE TABLE OSOBY
(nr_osoby int primary key default autoincrement,
nazwisko char(20) not null,
imie char(15),
data_ur date)
MODYFIKACJA STRUKTURY TABELI
ALTER TABLE [właściciel]. nazwa_tabeli
ADD nazwa_kolumny typ_danych [rozmiar]
MODIFY nazwa_kolumny [nowy_]typ_danych [nowy_rozmiar]
RENAME stara_nazwa_kolumny TO nowa_nazwa_kolumny
DROP nazwa_kolumny
RENAME nowa_nazwa_tabeli
DODAWANIE DANYCH DO TABELI
INSERT INTO [ ( nazwy_kolumn, ... ) ]VALUES ( wartości , ... )Podczas wstawiania danych przy użyciu frazy
INSERT ….VALUES ……, muszą być spełnione trzy warunki:
• Użyte wartości muszą być tego samego typu co pola, do których są wpisywane.
• Rozmiar poszczególnych danych nie może przekraczać rozmiaru kolumny.
• Położenie dodawanych danych na liście wartości musi odpowiadać położeniu kolumn (tzn. pierwsza wartość musi być wprowadzona do pierwszej kolumny itd.)
INSERT ….. SELECT….
INSERT ….. SELECT…. Umożliwia przekopiowanie informacji z jednej tabeli lub grupy tabel do innej tabeli .
Zdanie INSERT ….. SELECT….musi spełniać kilka reguł:• Zdanie SELECT nie może pobierać danych z tabeli, do
której będą wstawiane rekordy.• Liczba kolumn w zdaniu INSERT INTO musi być równa
liczbie kolumn zwracanych przez zdanie SELECT.• Typy danych kolumn w zdaniu INSERT INTO muszą być
takie same jak typy danych zwracanych przez zdanie SELECT.
MODYFIKACJA DANYCH W TABELI
UPDATE nazwa_tabeli SET nazwa_kolumny1 = wartość1 [,nazwa_kolumny1 = wartość1]..
WHERE warunek_wyszukiwania
Jeżeli opuszczona jest fraza WHERE , aktualizowane są wszystkie rekordy użytej tabeli.