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°o 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°o 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