280 likes | 462 Views
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)
E N D
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) • Przydzielanie i usuwanie ról • (grant, revoke) • Przydzielanie uprawnień do poszczególnych obiektów(grant, revoke) • 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 [HAVINGwarunek] [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 SELECTnazwy(a)_kolumny/* FROM nazwa_tabeli1,nazwa_tabeli2 WHEREwarunek_złączenia [ORDER BYnazwy(a)_kolumnyASC / DESC] • Złączenie wewnętrzne SELECTnazwy(a)_kolumny/* FROMnazwa_tabeli1INNER JOINnazwa_tabeli2 ONwarunek_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 ARYTMETYCZNE ABS – 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
USUWANIE TABELI DROP TABLE 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.
USUWANIE DANYCH DELETE FROM nazwa_tabeli WHERE warunek DELETE usuwa całe rekordy w określonej tabeli. Zależnie od użytej frazy WHERE można usunąć pojedynczy wiersz, wiele wierszy, wszystkie wiersze lub nic nie usunąć.