Bazy danych

Transkrypt

Bazy danych
Bazy danych
SQL
Bazy danych
SQL
Wst p
SQL (Structured
(Structured Query Language)
Language) – strukturalny j zyk zapyta
Podstawowe cechy j zyka SQL:
-
zapytania – wyszukiwanie danych w bazie danych,
-
operowanie danymi – wstawianie, modyfikacja, usuwanie danych z bazy danych,
-
definiowanie struktury danych – dodawanie nowych tabel, perspektyw i indeksów,
-
sterowanie danymi – ochrona danych,
-
standardowe narz dzie – dost p do danych w ró&norodnych 'rodowiskach.
Zak*ada si , &e informacje przechowywane s+ w relacyjnej bazie danych w postaci zbioru tabel.
tabel.
Ka&da tabela zawiera kolumny (atrybuty
).
(atrybuty)) oraz wiersze (rekordy
(rekordy).
2
Bazy danych
SQL
Wst p
Ka&da tabela w modelu relacyjnym posiada nast puj+ce w*asno'ci:
•
krotki (wiersze) s+ unikalne,
•
atrybuty (kolumny) s+ unikalne,
•
kolejno'c krotek nie ma znaczenia,
•
kolejno'c atrybutów nie ma znaczenia,
•
warto'ci atrybutów s+ atomowe.
Tabela mo&e reprezentowa/:
•
zbiór encji wraz z atrybutami,
•
zbiór powi+za pomi dzy encjami wraz z ich atrybutami,
•
zbiór encji wraz z atrybutami i ich powi+zania z innymi encjami.
encjami.
3
Bazy danych
SQL
Wst p
Podstawowe operacje relacyjne:
•
selekcja,
•
projekcja,
•
produkt,
•
po*+czenie,
•
unia,
•
przeci cie,
•
ró&nica.
4
Bazy danych
SQL
Instrukcja SELECT
Sk*adnia:
SELECT [predykat][funkcja
]{ kolumna [ AS alias ] [,...] | { tabela.* } * }
[predykat][funkcja]{
FROM wyra(
wyra(enie_tabelowe [IN...]
[ WHERE ...]
[ GROUP BY ... ]
[{ UNION | INTERSECT | EXCEPT} [ALL] [CORRESPONDING [BY (kolumna,...)]]
(kolumna,...)]]
[ HAVING ... ]
[ ORDER BY ...]
5
Bazy danych
SQL
Instrukcja SELECT
Predykaty: All,
All, DISTINCT ,DISTINCTROW, TOP.
Domy'lnie przyjmuje si predykat ALL.
ALL. W SQLSQL-92 mo&liwy jest tylko jeden predykat DISTINCT.
DISTINCT.
Predykaty stosuje si w celu ograniczenia liczby zwracanych rekordów.
Predykat ALL okre'la, &e wszystkie wiersze , które spe*niaj+ warunki tego rozkazu
rozkazu powinny zosta/
pokazane. Przyjmowany jest domy'lnie. W Ms Access po ALL wymagany jest tak&e metaznak *.
Poza tym predykat ten stosuje si w podzapytaniu. Za jego pomoc+ pobiera si tylko te
warto'ci g*ównego zapytania, które spe*niaj+ porównanie ze wszystkimi
wszystkimi rekordami pobieranymi
przez podzapytania.
Przyk*ad:
SELECT ALL FROM wyra(enie_tabelowe
6
Bazy danych
SQL
Instrukcja SELECT
Predykat DISTINCT okre'la, &e wiersze powtarzaj+ce si powinny zosta/ usuni te przed
przed zwróceniem
ich na zewn+trz. Dwa wiersze traktuje si jako równe je'li wszystkie
wszystkie warto'ci dla ka&dej z
kolumn zwracanych rozkazem SELECT s+ sobie równe.
Przyk*ad:
SELECT DISTINCT FROM wyra(enie_tabelowe
Predykat DISTINCTROW powoduje, &e pomijane s+ dane powtarzaj+ce si na podstawie ca*ych
ca*ych
rekordów, a nie jedynie wybranych kolumn. Predykat DISTINCTROW musi by/ stosowany w
zapytaniach opartych na kilku tabelach, ale nie mog+ by/ wybierane
wybierane kolumny ze wszystkich
tabel.
Przyk*ad:
SELECT DISTINCTROW FROM wyra(enie_tabelowe
Predykat TOP powoduje, &e zwracane s+ rekordy zawieraj+ce si w podanym zakresie
zakresie liczbowym lub
procentowym.
Przyk*ad:
SELECT TOP n [PERCENT] FROM wyra(enie_tabelowe [ORDER BY ...]
7
Bazy danych
SQL
Instrukcja SELECT
Funkcje:
Funkcje: MIN,
MIN, MAX,
MAX, SUM,
SUM, COUNT,
COUNT, AVG.
AVG.
Funkcja MIN zwraca minimaln+ warto'/ wyra&enia.
Przyk*ad:
SELECT MIN(wyra(enie) FROM wyra(enie_tabelowe
Funkcja MAX zwraca maksymalna warto'/ wyra&enia.
Przyk*ad:
SELECT MAX(wyra(enie) FROM wyra(enie_tabelowe
Funkcja SUM zwraca sum zbioru warto'ci.
Przyk*ad:
SELECT SUM(wyra(enie) FROM wyra(enie_tabelowe
8
Bazy danych
SQL
Instrukcja SELECT
Funkcja COUNT zwraca liczb rekordów, w których wyra&enie nie ma warto'ci NULL.
NULL. Je&eli jednak
u&yty zostanie metaznak *, to funkcja Count obliczy ca*kowit+ liczb rekordów, w tym i
zawieraj+cych warto'ci puste.
Przyk*ad:
SELECT COUNT(Nazwisko) AS [StanZatrudnienia] FROM Pracownicy
Funkcja AVG zwraca warto'/ 'redni+ wyra&enia ignoruj+c warto'ci puste.
Przyk*ad:
SELECT AVG(zarobki) AS [:redniaP;aca] FROM pracownicy
Pozosta*e funkcje agregacji: StDev,
StDev, StdDev,
StdDev, StDevP,
StDevP, Var,
Var, Variance,
Variance, VarP.
VarP.
9
Bazy danych
SQL
Instrukcja SELECT
* - oznacza, &e wszystkie kolumny ze wszystkich wymienionych tabel powinny zosta/ pobrane.
tabela.* - oznacza, &e wszystkie kolumny z podanej tabeli powinny zosta/ pokazane.
pokazane.
kolumna - nazwa kolumny z danymi, które maj+ by/ pobrane.
wyra(enie_tabelowe - nazwa tabeli lub tabel zawieraj+cych pobierane dane.
alias - nazwa, która zostanie u&yta jako nag*ówki kolumn w miejsce nazw kolumn z tabeli.
10
Bazy danych
SQL
Instrukcja SELECT
UNION | INTERSECT | EXCEPT [ALL] - operatory u&ywane przy *+czeniu wyników z dwóch
zapyta .
Operator UNION powoduje i& do wynikowej tabeli zostanie w*+czony ka&dy wiersz z ka&dego
zapytania, je'li wiersze si powtarzaj+ w*+czona zostanie tylko jedna ich kopia.
UNION ALL – powoduje, i& tak&e powtarzaj+ce si wiersze zostan+ w*+czone do wynikowej tabeli.
EXCEPT – powoduje i& wszystkie wiersze z drugiego zapytania zostan+ wyeliminowane
wyeliminowane z wyniku, a
duplikaty pojawi+ si tylko raz.
EXCEPT ALL – spowoduje, &e od ilo'ci powtarzaj+cych si wierszy z wyniku zapytania
zapytania 1 zostanie
odj ta ilo'/ powtarzaj+cych si w zapytaniu 2 i taki wiersz pojawi
pojawi si na wyj'ciu tyle razy ile
wynosi ró&nica.
INTERSECT – powoduje i& ka&dy wiersz pojawiaj+cy si na wyj'ciu zapytania 1 i zapytania 2 jest tylko
raz wynikiem.
INTERSECT ALL – spowoduje i& powtarzaj+ce wiersze pojawi+ si na wyj'ciu tyle razy,
razy, co w wyniku
1 lub 2 - w zale&no'ci od tego która liczba jest mniejsza.
11
Bazy danych
SQL
Instrukcja SELECT
CORRESPONDING BY (kolumna,...) - powoduje ograniczenie *+czenia wyników z zapyta do
wymienionych kolumn.
U&ycie samego s*owa CORRESPONDING z pomini ciem nazw kolumn oznacza wybranie wszystkich
kolumn o tych samych nazwach i typach danych w istniej+cych w tabelach.
FROM - okre'la Eród*owe tabele wykorzystywane w zapytaniu. Mog+ to by/ tak&e widoki. Je'li
wymienimy wi cej ni& jedn+ tabel to nast+pi operacja ich z*+czenia. Istnieje kilka rodzajów
z*+cze . Klauzula FROM jest obowi+zkowa.
Przyk*ad:
SELECT lista_kolumn FROM wyra(enie_tabelowe [IN zewn<trzna_baza]
lista_kolumn - nazwy pobieranych pól, którym mog+ towarzyszy/ aliasy, funkcje agregacji,
predykaty wyboru (ALL, DISTINCT, DISTINCTROW lub TOP).
wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane.
W celu pobrania danych z kilku tabel stosuje si wbudowane operatory z*+czenia, np.:
CROSS JOIN - z*+czenie krzy&owe, w wyniku znajd+ si wszystkie kombinacje wierszy z obu tabel,
INNER JOIN - z*+czenie wewn trzne, w wyniku znajd+ si wiersze odpowiadaj+ce sobie z obu tabel
UNION JOIN - w wyniku znajd+ si wiersze nie pasuj+ce do siebie.
12
Bazy danych
SQL
Instrukcja SELECT
IN - W MS Access klauzula ta okre'la tabele w zewn trznej bazie danych. Umo&liwiana ona po*+czenie
tylko z jedn+ zewn trzn+ baz+ danych.
Uwaga: S owo IN w SQL wyst puje tak e jako predykat.
Przyk*ad:
[SELECT | INSERT] INTO przeznaczenie
IN { >cie(ka | [">cie(ka " "typ"] }
SELECT lista_kolumn FROM wyra(enie_tabelowe
IN { >cie(ka | [">cie(ka " "typ"] }
przeznaczenie - nazwa tabeli zewn trznej, do której maj+ by/ wstawione dane.
wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane.
>cie(ka - pe*na 'cie&ka do katalogu lub pliku zawieraj+cego tabele.
typ - nazwa typu bazy danych u&ytej do utworzenia tabeli, o ile jest to baza danych inna ni&
Microsoftu (na przyk*ad dBASE III, dBASE IV, Paradox 3.x lub Paradox 4.x).
lista_kolumn - nazwy pól z danymi, które maj+ by/ pobrane.
13
Bazy danych
SQL
Instrukcja SELECT
WHERE - okre'la te rekordy z tabel wymienionych w klauzuli FROM, które spe*niaj+ podane kryteria.
W przypadku braku klauzuli WHERE zwracane s+ wszystkie wiersze tabeli. Klauzula ta nie jest
obowi+zkowa, jednak je'li wyst puje, musi by/ umieszczona po klauzuli FROM.
Przyk*ad:
SELECT lista_kolumn FROM wyra(enie_tabelowe WHERE predykat
lista_kolumn - nazwy pobieranych pól, którym mog+ towarzyszy/ aliasy, funkcje agregacji,
predykaty wyboru (ALL, DISTINCT, DISTINCTROW lub TOP) albo inne opcje instrukcji
SELECT.
wyra(enie_tabelowe - wyra&enie okre'laj+ce tabel lub tabele, z których maj+ by/ pobrane dane.
predykat - predykat okre'laj+cy kryteria jakie musz+ spe*nia/ rekordy, aby zosta*y zwrócone przez
zapytanie . Mo&na tu zastosowa/ operatory: IN, BETWEEN, LIKE etc.
14
Bazy danych
SQL
Instrukcja SELECT
IN - sprawdza, czy warto'/ wyra&enia jest równa dowolnej warto'ci z podanej listy. Najcz 'ciej
stosuje si go po klauzuli WHERE.
Uwaga: S owo IN w SQL wyst puje tak e jako klauzula oraz predykat.
Sk*adnia:
wyra(enie [NOT] IN (warto>A1, warto>A2,...)
wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia.
warto>A1, warto>A2 - jedna lub kilka warto'ci, z którymi porównywane jest wyra&enie.
NOT – operator logiczny przeczenia.
Przyk*ad:
SELECT *
FROM Studenci
WHERE MiejsceZamieszkania IN ('Rzeszów','Kraków')
15
Bazy danych
SQL
Instrukcja SELECT
BETWEEN - sprawdza, czy warto'/ wyra&enia jest zawarta w okre'lonym przedziale warto'ci. Gdy
warto'/ wyra&enia mie'ci si w tym przedziale zwrócona zostanie warto'/ TRUE, w
przeciwnym razie, zwraca warto'/ FALSE. Je'li która' z porównywanej warto'ci jest NULL
zwrócona zostania warto'/ UNKNOW. Mo&na te& u&y/ operatora logicznego NOT, aby sprawdza
warunek przeciwny. Stosuje si go przede wszystkim po klauzuli WHERE.
Sk*adnia:
wyra(enie [NOT] BETWEEN warto>A1 AND warto>A2
wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia.
warto>A1, warto>A2 - jedna lub kilka warto'ci, z którymi porównywane jest wyra&enie.
Przyk*ad:
SELECT *
FROM studenci
WHERE DataObrony BETWEEN #02-04-03# AND #09-09-03#
16
Bazy danych
SQL
Instrukcja SELECT
LIKE - sprawdza, czy wyra&enie znakowe jest identyczne z danym wzorcem. Stosuje si go przede
wszystkim po klauzuli WHERE.
Sk*adnia:
wyra(enie LIKE wzorzec
wyra(enie - wyra&enie zawieraj+ce dane do sprawdzenia
wzorzec - ci+g znaków. Mo&na stosowa/ metaznaki
Przyk*ad:
SELECT *
FROM studenci
WHERE Nazwisko LIKE '[C-D]*'
17
Bazy danych
SQL
Instrukcja SELECT
GROUP BY - grupuje rekordy o tych samych warto'ciach wskazanych na li'cie kolumn przy instrukcji
SELECT. Klauzula ta nie jest obowi+zkowa. Bardzo cz sto *+czy si j+ z funkcjami agregacji
oraz z klauzul+ HAVING, która pozwala przefiltrowa/ rekordy po ich zgrupowaniu.
Sk*adnia:
SELECT lista_kolumn
FROM wyra(enie_tabelowe
GROUP BY pola_grupowania [ HAVING ...]
Przyk*ad:
SELECT Tytu;, Count(Tytu;) AS Ilo>A
FROM Pracownicy
WHERE Miejsce_Ur = ‘Bytom‘
GROUP BY Tytu;
18
Bazy danych
SQL
Instrukcja SELECT
HAVING - pozwala okre'li/, które ze zgrupowanych rekordów maj+ by/ wy'wietlone. Po zgrupowaniu
rekordów klauzul+ GROUP BY pokazywane s+ te rekordy, które spe*niaj+ kryteria tej klauzuli.
Sk*adnia:
SELECT lista_pól FROM wyra(enie_tabelowe WHERE kryteria
GROUP BY pola_grupowania HAVING kryteria_grupowania
kryteria_grupowania - kryteria okre'laj+ce, które ze zgrupowanych rekordów maj+ zosta/
pokazane.
lista_pól - nazwy pól z danymi, które maj+ by/ pobrane.
pola_grupowania - nazwy pól u&ytych do zgrupowania rekordów. Kolejno'/ tych nazw okre'la ich
znaczenie.
Przyk*ad:
SELECT Tytu;, Count(Tytu;) AS Total FROM Pracownicy
WHERE Region = ‘Bytom‘
GROUP BY Tytu; HAVING Count(Tytu;) > 1
19
Bazy danych
SQL
Instrukcja SELECT
ORDER BY - sortuje rosn+co lub malej+co rekordy wed*ug jednej lub kilku kolumn. Klauzula ta nie jest
obowi+zkowa, ale cz sto u&ywana w celu wy'wietlenia danych w okre'lonym porz+dku.
Sk*adnia:
SELECT lista_pól FROM wyra(enie_tabelowe
ORDER BY kolumna [ASC | DESC] [,kolumna2] [ASC | DESC] [,...]
kolumna1, kolumna2 - nazwy kolumn wed;ug których b<dQ sortowane rekordy
ASC - oznacza &e rekordy maj+ by/ sortowane rosn+co.
DESC - oznacza &e rekordy maj+ by/ sortowane malej+co.
lista_pól - nazwy pól z danymi, które maj+ by/ pobrane.
wyra(enie_tabelowe - nazwa tabeli lub tabel zawieraj+cych pobierane dane .
Przyk*ad:
SELECT nazwisko, imie FROM studenci
ORDER BY nazwisko DESC
20
Bazy danych
SQL
Instrukcja SELECT
AS - stosuje si w celu u&ycia innej nazwy kolumny ni& wynika to z wyra&enia j+ generuj+cego. W
efekcie powstaj+ aliasy. Klauzuli tej u&ywa si zwykle przy funkcjach agregacji, gdy powstaje
element o powtarzaj+cej si nazwie.
Uwaga: AS wyst puje tak e w SQL jako s owo kluczowe w instrukcjach: CONNECT, CREATE DOMAIN,
CREATE VIEW.
Sk*adnia:
SELECT kolumna1 [ AS alias1 ], kolumna2 [AS alias2] [,...]]
FROM wyra(enie_tabelowe
alias1, alias2 - nazwy, które zostan+ u&yte jako nag*ówki kolumn w miejsce nazw kolumn z tabeli
wa tabeli lub tabel zawieraj+cych pobierane dane.
Przyk*ad:
SELECT Count(*) AS [Liczba zamówieR]
FROM Zamowienia
21
Bazy danych
SQL
Instrukcja SELECT
Selekcja:
SELECT * FROM PRACOWNICY
WHERE zarobki > 2000
SELECT *
FROM Tabela_A
WHERE Numer > 1
22
Bazy danych
SQL
Instrukcja SELECT
Projekcja:
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY
SELECT Numer
FROM Tabela_A
23
Bazy danych
SQL
Instrukcja SELECT
Selekcja + projekcja:
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY
WHERE zarobki > 2000
SELECT Numer, Nazwa
FROM Tabela_A
WHERE NAZWA = "A"
24
Bazy danych
SQL
Instrukcja SELECT
Produkt:
SELECT * FROM PRACOWNICY, URLOPY
SELECT * FROM PRACOWNICY, URLOPY, HISTORIA_ZATRUDNIENIA
SELECT *
FROM Tabela_A, Tabela_B;
25
Bazy danych
SQL
Instrukcja SELECT
Po*+czenie:
SELECT nazwisko, imie,
imie, data_pocz_urlopu FROM PRACOWNICY, URLOPY
WHERE PRACOWNICY.symbol = URLOPY.symbol AND PRACOWNICY.wydzial = „ADM”
SELECT Numer, Nazwa, Ilosc
FROM Tabela_A, Tabela_B
WHERE Tabela_A.Numer = Tabela_B.Index
26
Bazy danych
SQL
Instrukcja SELECT
Unia:
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY
UNION
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY_ARCHIWUM
SELECT Numer, Nazwa
FROM Tabela_A
UNION
SELECT Numer, Nazwa
FROM Tabela_A_ARCH
27
Bazy danych
SQL
Instrukcja SELECT
Przeci cie:
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY
INTERSECT
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY_ARCHIWUM
Ró&nica:
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY
MINUS
SELECT nazwisko, imie,
imie, zarobki FROM PRACOWNICY_ARCHIWUM
28
Bazy danych
SQL
Instrukcja SELECT
Podzapytania:
SELECT nazwisko, imie,
imie, zarobki
FROM PRACOWNICY
WHERE zarobki =
(SELECT min(zarobki)
min(zarobki)
FROM PRACOWNICY)
SELECT nazwisko, imie,
imie, zarobki
FROM PRACOWNICY
WHERE zarobki IN
(SELECT min(zarobki)
min(zarobki)
FROM PRACOWNICY
GROUP BY wydzial)
wydzial)
29
Bazy danych
SQL
Instrukcja SELECT
Podzapytania:
SELECT wydzial,
wydzial, AVG(zarobki)
AVG(zarobki)
FROM PRACOWNICY
GROUP BY wydzial
HAVING AVG(zarobki)
AVG(zarobki) >
(SELECT AVG(zarobki)
AVG(zarobki)
FROM PRACOWNICY
WHERE wydzial = „ADM”)
30
Bazy danych
SQL
Instrukcja SELECT
Podzapytania:
SELECT nazwisko, imie,
imie, zarobki, wydzial
FROM PRACOWNICY P
WHERE zarobki >
(SELECT AVG(zarobki)
AVG(zarobki)
FROM PRACOWNICY
WHERE wydzial = P.wydzial)
P.wydzial)
31
Bazy danych
SQL
Definicje danych
Standardowe typy danych u ywane w j zyku SQL:
INTEGER: liczba ca*kowita ze znakiem (4 bajty).
SMALLINT: ma*a liczba ca*kowita ze znakiem (2 bajty).
DECIMAL (p[,q]): liczba sta*oprzecinkowa ze znakiem; precyzja p okre'la liczb cyfr, z których
b dzie sk*ada*a si liczba, a skala q ilo'/ cyfr po przecinku. Je'li pomini to q domy'lnie
przyjmowane jest 0.
FLOAT: liczba zmiennoprzecinkowa ze znakiem (8 bajtów).
CHAR(n): *a cuch znakowy o sta*ej d*ugo'ci n.
VARCHAR(n): *a cuch znakowy o zmiennej d*ugo'ci, maksymalnie n znaków.
32
Bazy danych
SQL
Definicje danych
CREATE TABLE
- tworzy tabele.
Sk*adnia:
CREATE TABLE nazwa_tabeli
(nazwa_atrybutu_1 typ_atrybutu_1
[, nazwa_atrybutu_2 typ_atrybutu_2
[, ...]])
nazwa_tabeli – identyfikator tworzonej tabeli.
nazwa_atrybutu – identyfikator atrybutu.
typ_atrybutu – typ atrybutu.
Przyk*ad:
CREATE TABLE CZESCI
(Numer
INTEGER,
Nazwa VARCHAR(20),
Cena DECIMAL(4, 2))
33
Bazy danych
SQL
Definicje danych
CREATE INDEX
- tworzy indeks do tabeli. Indeksy przyspieszaj+ dost p do relacji. Je'li relacja R
posiada indeks na atrybucie A, wtedy pobieramy wszystkie krotki t maj+ce t(A) = a w czasie
zale&nym od liczby tych krotek, a nie od rozmiaru relacji R.
Sk*adnia:
CREATE INDEX nazwa_indeksu
ON nazwa_tabeli ( nazwa_atrybutu )
nazwa_indeksu – identyfikator tworzonego indeksu.
nazwa_tabeli – identyfikator indeksowanej tabeli.
nazwa_atrybutu – identyfikator atrybutu.
Przyk*ad:
CREATE INDEX IND_NAZWA
ON DOSTAWCA (NAZWA)
34
Bazy danych
SQL
Definicje danych
CREATE VIEW
- tworzy widok. Widok jest wirtualn+ tabel+, która fizycznie nie istnieje w bazie
danych, ale dla u&ytkownika jest widoczna jak zwyk*a tabela. Gdy mówi si o tabeli bazowej,
chodzi o kopi ka&dego wiersza tabeli przechowywan+ w fizycznym zbiorze. Widoki nie
przechowuj+ w*asnych, charakterystycznych, niepowtarzalnych danych. W rzeczywisto'ci
system przechowuje definicje widoków (np. zasady dost pu do istniej+cych tabel bazowych w
kolejno'ci tworzenia widoków) w zbiorach systemowych.
Sk*adnia:
CREATE VIEW nazwa_widoku AS wyra(enie_select
nazwa_widoku – nazwa tworzonego widoku.
Wyra(enie_select – wyra&enie definiuj+ce widok.
Przyk*ad:
CREATE VIEW Zam_hurt AS
SELECT K.Nazwa, Z.Liczba FROM KONTRAHENT K, ZAMOWIENIA Z
WHERE K.ID_KONT = Z.ID_KONT AND Z.Liczba > 10
35
Bazy danych
SQL
Definicje danych
DROP TABLE,
ABLE DROP INDEX,
NDEX DROP VIEW
- usuwa odpowiednio tabel , indeks do tabeli, widok.
Sk*adnia:
DROP TABLE nazwa_tabeli
DROP INDEX nazwa_indeksu
DROP VIEW nazwa_indeksu
Przyk*ady:
DROP TABLE Dostawcy
DROP INDEX Nazwa_Dostawcy
DROP VIEW Zam_hurt
36
Bazy danych
SQL
Manipulowanie danymi
INSERT INTO – dodanie krotki do tabeli.
Sk*adnia:
INSERT INTO nazwa_tabeli (nazwa_atrybutu_1 [, nazwa_atrybutu_2 [,...]])
VALUES (warto>A_atrybutu_1 [, warto>A_atrybutu_2 [, ...]])
Przyk*ad:
INSERT INTO DOSTAWCA (Numer, Nazwa, Miasto)
VALUES (1, ‘Hurtownia ABC', 'Opole')
37
Bazy danych
SQL
Manipulowanie danymi
UPDATE – zmiana warto'ci w tabeli.
Sk*adnia:
UPDATE nazwa_tabeli
SET nazwa_atrybutu_1 = warto>A_1
[, ... [, nazwa_atrybutu_k = warto>A_k]]
WHERE warunek
Przyk*ad:
UPDATE Czesci
SET Cena = 550
WHERE Nazwa = 'Monitor 15'
38
Bazy danych
SQL
Manipulowanie danymi
DELETE FROM
– usuwa krotki z tabeli.
Sk*adnia:
DELETE FROM nazwa_tabeli
WHERE warunek
Przyk*ad:
DELETE FROM Dostawca
WHERE Nazwa = 'Hurtownia ABC'
39
Bazy danych
SQL
Manipulowanie danymi
ALTER TABLE – rozkaz s*u&+cy do zmieniania tabeli. Wykonuje nast puj+ce operacje:
•
dodaje kolumny i warunki,
•
modyfikuje definicje kolumn jak typy i warunki,
•
usuwa warunki,
•
modyfikuje przysz*y sposób alokacji przestrzeni,
•
zapisuje, &e operacja BACKUP zosta*a wykonana dla tej tabeli.
Sk*adnia:
ALTER TABLE nazwa_tabeli
[ADD ( kolumna_1 [, {kolumna_1] ...) ]
[MODIFY (kolumna_1 [,kolumna_2] ...)]
[DROP CONSTRAINT ograniczanie] ...
[BACKUP]
Przyk*ad:
ALTER TABLE pracownicy
MODIFY (placa NUMBER(9, 2))
40

Podobne dokumenty