1 Wprowadzenie do funkcji

Podobne dokumenty
1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Bazy danych - Materiały do laboratoriów IV

1 Wprowadzenie do języka SQL 1. 2 Podstawowe elementy języka 3. 3 DML - zapytania, część I 6. 4 Źródła 12

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe

Bazy danych - Materiały do laboratoriów VIII

PL/SQL. Funkcje wbudowane

Język SQL. Rozdział 3. Zaawansowana selekcja danych

SQL Structured Query Language

Autor: Joanna Karwowska

Paweł Rajba

Microsoft SQL Server Podstawy T-SQL

Przestrzenne bazy danych Podstawy języka SQL

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Systemy GIS Tworzenie zapytań w bazach danych

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

SQL Structured Query Language

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

SQL Structured Query Language

SQL (ang. Structured Query Language)

27 lutego Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład I. dr inż.

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Model relacyjny. Wykład II

Oracle11g: Wprowadzenie do SQL

Wykład 6. SQL praca z tabelami 3

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Wykład 5. SQL praca z tabelami 2

Współczesne systemy baz danych

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Relacyjne bazy danych. Podstawy SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

3. Podzapytania, łączenie tabel i zapytań

Bazy danych SQL Server 2005

SQL do zaawansowanych analiz danych część 1.

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Współczesne systemy baz danych

Język SQL podstawy zapytań

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Laboratorium Bazy danych SQL 3 1

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

Przydatne sztuczki - sql. Na przykładzie postgres a.

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Złaczenia tablic: FROM, WHERE, JOIN

Relacyjne bazy danych. Podstawy SQL

Ref. 7 - Język SQL - polecenia DDL i DML

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Grupowanie i funkcje agregujące

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Język SQL. Rozdział 8. Język manipulowania danymi DML

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Grupowanie i funkcje agregacji

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Zarzadzanie transakcjami. Transakcje

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Podstawy języka SQL cz. 2

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Bazy danych Język SQL część 2 Wykład dla studentów matem

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Model relacyjny. Wykład II

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Widok Connections po utworzeniu połączenia. Obszar roboczy

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Bazy danych Język SQL część 1 Wykład dla studentów matem

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Bloki anonimowe w PL/SQL

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy danych. Dr inż. Paweł Kasprowski

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Rozszerzenia grupowania

Administracja i programowanie pod Microsoft SQL Server 2000

Składowane procedury i funkcje

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Instrukcje SQL można podzielić na pięć kategorii, które zostały przedstawione w poniższej tabeli.

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

Laboratorium Bazy danych SQL 2

Bazy danych 6. Klucze obce. P. F. Góra

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Transkrypt:

Materiały do laboratoriów z przedmiotu Bazy danych 1 1 Wprowadzenie do funkcji Podział funkcji ze względu na liczbę wierszy: jednowierszowe (operujące na ciągach znaków, matematyczne, operujące na datach, konwertujące i inne), agregujące. Podział ze względu na zastosowanie: analityczne, do manipulacji obiektami. Podział ze względu na definicje: predefiniowane, użytkownika. Funkcje operujące na ciągach znaków: Concat(str1, str2) - zwraca ciąg znaków będący złączeniem ciągu str1 z ciągiem str2 (MySQL nie obsługuje operatora a jedynie funkcje Concat z dowolną listą parametrów). Initcap(str) - zwraca sformatowany ciąg wejściowy, tak, że pierwsza litera jest duża, zaś pozostałe małe (nie występuje w MySQL). Instr(str1, str2 [,pos [, n]]) - zwraca pozycję ciągu znaków str2, w str1, szukanie rozpoczyna się od pos,a kończy na n-tym wystąpieniu szukanego ciągu. Jeśli pos < 0 przeszukiwanie przebiega od końca. Jeśli ciąg str2 nie zostanie znaleziony to funkcja zwraca wartość 0 (W MySQL Instr(str1, str2) oraz Locate(str2, str1 [,pos])). Length(str) - zwraca długość str. Lower(str) - zwraca łańcuch str przekształcony na małe litery. Lpad(str, len [, pad_str]) - uzupełnia z lewej strony ciąg str ciągiem pad_str, aż do uzyskania przez ciąg wynikowy długości len. Domyślnie pad_str jest spacją. Ltrim(str [, set_str]) - poczynając z lewej strony odcina kolejne znaki ciągu str, aż do napotkania pierwszego znaku nie należącego do zbioru set_str (domyślnie spacja) (W MySQL usuwa wyłącznie białe znaki i posiada tylko jeden parametr). Replace(str1, str2 [, str3]) - zwraca ciąg str1 ze wszystkimi wystąpieniami ciągu str2 zastąpionymi przez ciąg str3, brak str3 oznacza usunięcie str2. Rpad(str, len [, pad_str]) - uzupełnia z prawej strony ciąg str ciągiem pad_str, aż do uzyskania przez ciąg wynikowy długości len. Domyślnie pad_str jest spacją. 1 na podstawie materiałów pani dr inż. Olgi Siedleckiej Lamch 1

Rtrim(str [, set_str]) - poczynając z prawej strony odcina kolejne znaki ciągu str, aż do napotkania pierwszego znaku nie należącego do zbioru set_str (domyślnie spacja) (W MySQL usuwa wyłącznie białe znaki i posiada tylko jeden parametr). Substr(str, pos [,len]) - zwraca podciąg ciągu str, o długości len, zaczynając od pos. Jeśli pos < 0 przeszukiwanie przebiega od końca. Domyślnie przebiega do końca (w MySQL Substring). Trim([[LEADING TRAILING BOTH] str1 FROM] str2) - Usuwa kolejne wystąpienia ciągu str1 w ciągu str2, zaczynając od początku - LEADING, końca - TRAILING, bądź z obu stron - BOTH. Domyślnie obcinane są spacje z obu stron. Upper(str) - przekształca wszystkie litery w str na duże. Funkcje matematyczne: Abs(n) - zwraca wartość bezwzględną z n. Ceil(n) - zwraca najmniejszą liczbę całkowitą większą lub równą n. Cos(n) - zwraca cosinus kąta n (wyrażonego w radianach). Floor(n) - zwraca największą liczbę całkowitą mniejszą lub równą n. Ln(n) - zwraca logarytm naturalny z n. Log(n, m) - zwraca logarytm z m przy podstawie n. Mod(m, n) - zwraca resztę z dzielenia m przez n. Power(m, n) - zwraca m podniesione do potęgi n. Round(m [, n]) - zwraca m zaokrąglone do n miejsc po przecinku. Dla n < 0, określa liczbę miejsc przed przecinkiem. Domyślnie n = 0. Sign(n) - zwraca -1 dla n < 0, 0 dla n = 0 oraz 1 dla n > 0. Sin(n) - zwraca sinus kąta n (wyrażonego w radianach). Sqrt(n) - zwraca pierwiastek kwadratowy z n. Tan(n) - zwraca tangens kąta n (wyrażonego w radianach). Trunc(m [,n]) - zwraca m po obcięciu do n miejsc po przecinku. Dla n < 0, określa liczbę miejsc przed przecinkiem. Domyślnie n = 0 (w MySQL Truncate). 2

2 Daty i czas Typy daty i czasu: DATE - data w formacie: YYYY-MM-DD (w Oracle przechowuje również czas) TIME - czas w formacie: HH:MM:SS.p (nie używany w Oracle) TIMESTAMP - data wraz z czasem - znacznik czasu w formacie: YYYY-MM-DD HH:MM:SS.p INTERVAL - przedział czasu INTERVAL YEAR TO MONTH: YYYY-MM INTERVAL DAY TO SECOND: DD HH:MM:SS.p Arytmetyka czasu Wyrażenie Operator Wyrażenie Typ wyniku DATE / TIMESTAMP + - NUMBER DATE DATE / TIMESTAMP + - INTERVAL DATE / TIMESTAMP INTERVAL + DATE / TIMESTAMP DATE / TIMESTAMP TIMESTAMP - DATE / TIMESTAMP INTERVAL DATE - DATE przedział czasu INTERVAL + - INTERVAL INTERVAL INTERVAL * / NUMBER INTERVAL NUMBER * INTERVAL INTERVAL TIMESTAMP - TIMESTAMP INTERVAL Funkcje operujące na datach Add_months(date, n) - zwraca podaną datę powiększoną (pomniejszoną) o n miesięcy Extract(element FROM date) - zwraca wybraną część daty. Parametrami mogą być m. in.: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND. Last_day(date) - zwraca datę odpowiadającą ostatniemu dniu miesiąca zawartego w dacie wejściowej. Months_between(date1, date2) - zwraca liczbę miesięcy pomiędzy datami date1 i date2. Next_day(date, day_str) - zwraca datę pierwszego dnia zgodnego z parametrem day_str, późniejszego niż podana data. Round(date [,fmt_str]) - zwraca datę zaokrągloną do jednostki wskazanej przez fmt_str. Domyślnie do najbliższego dnia. Trunc(date [,fmt_str]) - Zwraca datę obciętą do jednostki podanej w fmt_str. 3

Maski formatujące dla dat (Oracle) Maska Opis -,/.; tekst wstawia wymieniony znak lub ciąg znaków CC wiek D dzień tygodnia cyfrą (od 1 do 7) DAY nazwa dnia tygodnia w pełnym brzmieniu, uzupełniona do 9 znaków DD numer dnia w miesiącu DDD numer dnia w roku DY trzyliterowy skrót dnia HH lub HH12 godzina dnia (od 1 do 12) HH24 godzina dnia, zegar 24-godzinny MI minuta MM numer miesiąca MON trzyliterowy skrót miesiąca MONTH pełna nazwa miesiąca Q kwartał RM miesiąc w postaci liczby rzymskiej SS sekunda W numer tygodnia w miesiącu WW numer tygodnia w roku YEAR rok słownie YYYY pełny czterocyfrowy rok Y ostatnia cyfra roku YY ostatnie dwie cyfry roku YYY ostatnie trzy cyfry roku Funkcje konwersji typów: Cast(expr AS typename) - przeprowadza konwersję danych między dwoma typami wbudowanymi To_char(num [, fmt_str [,nls_str]]) - zamienia liczbę n na łańcuch (VARCHAR2) używając opcjonalnego ciągu formatującego fmt_str dla ustalonego języka narodowego nls_str. To_char(date [, fmt_str [,nls_str]]) - zamienia datę lub znacznik czasowy na łańcuch (VARCHAR2) używając opcjonalnego ciągu formatującego fmt_str dla ustalonego języka narodowego nls_str. To_date(str [, fmt_str [,nls_str]]) - przekształca ciąg znaków str w datę, zgodnie z formatem fmt_str. Jeżeli argument fmt jest opuszczony str musi być w domyślnym formacie daty. To_number(str[, fmt_str [,nls_str]]) - zamienia łańcuch znaków str na liczbę (NUMBER). Decode(wyr, s1, r1, s2, r2,... [, wyr_dom]) - porównuje wyrażenie wyr do kolejnych s1, s2,... Jeżeli wyr jest równe któremuś z tych wyrażeń, w wyniku zwracana jest odpowiadająca jemu wartość ri. Jeżeli żadna z wartości s1, s2,... nie jest równa wejściowemu wyrażeniu funkcja zwraca wartość domyślną. Jeśli jest ona pominięta, funkcja zwraca wartość NULL. Nvl(wyr1, wyr2) - jeżeli wyr1 ma wartość NULL, to funkcja zwraca wyr2. W przeciwnym przypadku funkcja zwraca wyr1 (W MySQL funkcja Ifnull). Uid - zwraca unikalny numer użytkownika. User - zwraca nazwę użytkownika. 4

3 Funkcje agregujące Funkcje agregujące pobierają jako dane wejściowe zbiór wartości, a zwracają jedną wartość. Avg([DISTINCT] wyr) - oblicza średnią ze zbioru (opcjonalnie różnych) wartości wyrażenia (pomijając wystąpienia NULL). Count(* [DISTINCT] wyr) - Wywołanie Count(*) zwraca liczbę wszystkich wierszy uzyskanych w wyniku zapytania. Podanie argumentu w postaci wyrażenia spowoduje zwrócenie liczby wierszy, w których wybrane wyrażenie nie przyjęło wartości NULL. Max([DISTINCT] wyr) - Zwraca największą wartość ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Min([DISTINCT] wyr) - Zwraca najmniejszą wartość ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Stdev([DISTINCT] wyr) - Wylicza odchylenie standardowe na zbiorze (opcjonalnie pozbawionym powtórzeń) pomijając NULL. Sum([DISTINCT] wyr) - Wylicza sumę wartości ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Variance(* [DISTINCT] wyr) - Oblicza wariancję wartości ze zbioru (opcjonalnie pozbawionego powtórzeń) pomijając NULL. Klauzula GROUP BY Umożliwia podzielenie relacji na podzbiory - agregację. Pojedynczy podzbiór/grupę stanowią wiersze, dla których kryterium grupowania ma identyczną wartość. Na liście wyrażeń klauzuli SELECT mogą wówczas stanąć jedynie te wyrażenia, które są przedmiotem działania klauzuli GROUP BY, oraz argumenty funkcji agregujących. SELECT rok, Count(nazwisko) GROUP BY rok; SELECT rok,gr_dziekan, Count(nazwisko) GROUP BY rok, gr_dziekan; Klauzula HAVING Określa warunki, które muszą być spełnione przez podzbiór by został uwzględniony w relacji wynikowej; (warunki zawarte w klazuli WHERE tyczą się relacji przed agregacją, zaś w HAVING po agregacji). SELECT rok, Count(nazwisko) GROUP BY rok HAVING Count(nazwisko) > 100; SELECT rok,gr_dziekan, Count(nazwisko) GROUP BY rok, gr_dziekan HAVING Count(nazwisko) > 20; Rozszerzenia klauzuli GROUP BY ROLLUP - dla n kryteriów grupowania daje n - 1 dodatkowych zestawień; dodatkowe podsumowania uzyskuje poprzez zwijanie ostatnich elementów z listy. Np.: SELECT rok, gr_dziekan, imiona,count(*) GROUP BY ROLLUP(rok, gr_dziekan, imiona); 5

CUBE - dla n kryteriów grupowania daje 2n zestawień; Np.: SELECT rok, gr_dziekan, imiona,count(*) GROUP BY CUBE(rok, gr_dziekan, imiona); GROUPING SETS - pozwala na jednoznaczne określenie, które z dodatkowych zestawień chcemy uzyskać. Np.: SELECT rok, gr_dziekan, imiona,count(*) GROUP BY GROUPING SETS((rok, gr_dziekan, imiona),()); Grouping(wyr) - Funkcja zwracajaca wartość 1 dla wyrażeń zwijanych dla dodatkowych zestawień. Np.: SELECT Grouping(rok), rok, Grouping(gr_dziekan), gr_dziekan, Grouping(imiona), imiona,count(*) GROUP BY CUBE(rok, gr_dziekan, imiona); 6

4 Operatory zbiorowe Np.: Suma UNION lub UNION ALL Przecięcie INTERSECT Różnica MINUS (Oracle) w standardzie EXCEPT SELECT stanowisko FROM pracownicy WHERE id_dzialu=20 INTERSECT SELECT stanowisko FROM pracownicy WHERE id_dzialu=30; 5 Wyrażenie CASE CASE wyrazenie WHEN wartosc1 THEN wyrazenie1 WHEN wartosc2 THEN wyrazenie2... [ELSE wyr_dom] END CASE WHEN warunek1 THEN wyrazenie1 WHEN warunek2 THEN wyrazenie2... [ELSE wyr_dom] END 6 Złączenia Złączenia tabel w języku SQL uzyskuje się poprzez wstawienie więcej niż jednej relacji w klazuli FROM oraz polączenie ich odpowiednim operatorem. Notacja w standardzie ANSI SQL FROM tabela1 [AS alias] {CROSS JOIN { [NATURAL] [typ_laczenia] JOIN tabela2 [AS alias] { ON warunek1 [{AND OR} warunek2] [...] ] USING (atrybut1 [,...]) } } Zdefiniowano następujące typy złączeń: iloczyn kartezjański złączenia naturalne θ - złączenia złaczenia zewnętrzne samozłączenia Iloczyn kartezjański 7

SELECT * FROM pracownicy CROSS JOIN dzialy; Stary zapis: SELECT * FROM pracownicy, dzialy; Złączenie warunkowe SELECT * FROM pracownicy p [INNER] JOIN dzialy d ON (p.id_dzialu = d.id_dzialu); SELECT * FROM pracownicy p [INNER] JOIN dzialy d USING (id_dzialu); Stary zapis: SELECT * FROM pracownicy p, dzialy d WHERE p.id_dzialu = d.id_dzialu; Złączenie naturalne SELECT * FROM pracownicy NATURAL JOIN dzialy; Złączenie zewnętrzne Złączenia zewnętrzne dzielą się na: lewostronne prawostronne pełne SELECT * FROM pracownicy p {LEFT RIGHT FULL} [OUTER] JOIN dzialy d ON (p.id_dzialu = d.id_dzialu); Samozłączenie SELECT p.nazwisko, s.nazwisko FROM pracownicy p JOIN pracownicy s ON (p.kierownik = s.nr_akt); 8

7 Podzapytania Podzapytanie - to zapytanie zagnieżdżone w innym zapytaniu, może być zagnieżdżone w klauzulach: SELECT, FROM, WHERE oraz HAVING. Podzapytania są ograniczane nawiasami okrągłymi. Zapytania można zagnieżdżać wielokrotnie. podzapytanie proste - wykonywane w pierwszej kolejności, jako wynik pośredni trafiają do zapytania zewnętrznego. SELECT lista_wyrazen, (SELECT...) FROM lista_relacji (SELECT...) WHERE wyrazenie operator (SELECT...) GROUP BY kryteria HAVING wyrazenie operator (SELECT...); Podzapytania a operatory wierszowe: =, <>, <, <=, >, >= tablicowe: IN, ANY, ALL, EXISTS Podzapytania sorelowane podzapytanie skorelowane - wykonywane dla każdego wiersza z zapytania zewnętrznego. SELECT lista_wyrazen FROM lista_relacji WHERE wyrazenie operator (SELECT lista_wyrazen FROM lista_realcji WHERE warunek_skorelowania); 9

8 Pozostałe polecenia DML Polecenie UPDATE słuzy do aktualizacji zawartosci wierszy tabel. W klauzuli SET wymieniamy atrybuty, których wartosci beda zmieniane. Opcjonalna klauzula WHERE wyznacza kryterium, jakie musza spełnic wiersze tabeli aby podlegac zmianie. Brak ograniczajacego warunku oznacza, ze wszystkie wiersze beda zmienione. Składnia: UPDATE {tabela perspektywa} SET {{atrybut = wartosc DEFAULT NULL}, {atrybut = wartosc DEFAULT NULL},...} [WHERE warunek]; Przykłady: UPDATE pracownicy SET placa = placa * 1.1; UPDATE pracownicy SET placa = placa * 1.1 WHERE nr_akt IN (SELECT kierownik FROM pracownicy); Polecenie INSERT pozwala wstawiać do tabeli nowe wiersze. Opcjonalnie mozna okreslic liste uzupełnianych atrybutów, w przeciwnym razie nalezy wypełnic wszystkie. Klauzula VALUES okresla wartosci jakie beda przypisane atrybutom. Wiersz mozna wypełnic wartosciami zwróconymi przez podzapytanie. Składnia: INSERT INTO {tabela perspektywa} [(atrybut1 [,...] )] {DEFAULT VALUES VALUES (wartosc1 [,...]) SELECT... }; Przykłady: INSERT INTO dzialy VALUES (10, ZARZAD, CZESTOCHOWA ); INSERT INTO pracownicy VALUES (9121, KUKULSKI, DYREKTOR, 8901, To_date( 1991/04/02, yyyy/mm/dd ), NULL, 5000, 1500, NULL, 30); INSERT INTO pracownicy (nr_akt, nazwisko) VALUES (9192, KOWALSKI ); INSERT INTO prac_archiw SELECT * FROM pracownicy WHERE nr_akt = 9192; Polecenie DELETE usuwa wiersze ze wskazanej tabeli, zawiera opcjonalna klauzule WHERE ograniczajaca liczbe usunietych wierszy do tych, które spełniaja zadany warunek. Składnia: 10

DELETE FROM {tabela perspektywa} [WHERE warunek]; Przykłady: DELETE FROM stanowiska; DELETE FROM pracownicy WHERE nr_akt = 9192; 9 DDL 9.1 Usuwanie tabel DROP TABLE [schemat.]nazwa_tabeli [CASCADE CONSTRAINTS]; usuniecie definicji tabeli usuniecie danych z tabeli usuniecie wyzwalaczy i indeksów zwiazanych z tabela zwolnienie fizycznego segmentu i jego rozszerzen ustawienie atrybutu niepoprawnosci dla powiazanych perspektyw, synonimów, procedur itp. 9.2 Definiowanie tabeli CREATE TABLE nazwa_tabeli ( kolumna1 typ[(rozmiar)] [DEFAULT wyrazenie1] [wiezy_kolumny1], kolumna2 typ[(rozmiar)] [DEFAULT wyrazenie2] [wiezy_kolumny2],..., [wiezy_tabeli],... ); Przykład: CREATE TABLE mieszkancy ( PESEL NUMBER(11), nazwisko VARCHAR2(30), imiona VARCHAR2(30), data_zameldowania DATE DEFAULT CURRENT_DATE ); 11