SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

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

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów przypomnienie wiadomości. Pojęcie indeksu. Wykład 11: Indeksy. Język DDL i DML.

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Paweł Rajba

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Projektowanie systemów baz danych

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

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

Bazy danych - Materiały do laboratoriów VIII

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Autor: Joanna Karwowska

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Bazy danych. Dr inż. Paweł Kasprowski

Wykład 8. SQL praca z tabelami 5

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Wykład 4. SQL praca z tabelami 1

P o d s t a w y j ę z y k a S Q L

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Typy Oracle atrybutów relacji Typ NUMBER (1)

Wykład 5. SQL praca z tabelami 2

Język SQL, zajęcia nr 1

Typy Oracle atrybutów relacji Typ NUMBER (1)

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych Ćwiczenia projektowe

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Relacyjne bazy danych. Podstawy SQL

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

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

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

Aspekty aktywne baz danych

Wykład 05 Bazy danych

Tworzenie baz danych i tabel

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

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

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

SQL (ang. Structured Query Language)

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wykład 2. SQL 1 Structured Query Lenguage

Relacyjne bazy danych. Podstawy SQL

Komunikacja z bazą danych psql

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

Bazy danych 10. SQL Widoki

Bazy danych. Polecenia SQL

Zarządzanie bazą danych za pomocą poleceń języka SQL*Plus

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Wprowadzenie do języka SQL

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Oracle11g: Wprowadzenie do SQL

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Oracle PL/SQL. Paweł Rajba.

Język SQL, zajęcia nr 2

CREATE USER

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Technologie baz danych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Zarządzanie obiektami bazy danych Oracle11g

Ćwiczenie 7 - DDL. Relacje i ograniczenia integralnościowe. Ćwiczenie 7 DDL. Wymagania: Bazy Danych

SQL w praktyce. Miłej i owocnej nauki!!!

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Język SQL. Rozdział 2. Proste zapytania

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

WPROWADZENIE DO JĘZYKA SQL

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

ACESS- zadania z wykorzystaniem poleceń SQL

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Wprowadzenie do baz danych

Bazy danych Ćwiczenia projektowe

Bazy danych i usługi sieciowe

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Transkrypt:

SQL TECHNOLOGIE BAZ DANYCH Wykład 5: Język DDL i DML. SQL (ang. StructuredQueryLanguage) strukturalny język zapytań używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania danych z baz danych. Małgorzata Krętowska Wydział Informatyki PB Typy zapytań SQL: DML (ang. Data Manipulation Language) język manipulowania danymi DDL (ang. Data DefinitionLanguage) język definiowania danych DCL (ang. Data Control Language) język kontroli na danymi 2 DML DDL DML (ang. Data Manipulation Language) służy do wykonywania operacji na danych do ich umieszczania w bazie, usuwania, przeglądania oraz dokonywania zmian. DDL (ang. Data Definition Language) pozwala na operowanie na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia: INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy, SELECT wydobywanie danych (czasem umieszczany w oddzielnym typie zapytań DQL (ang. Data Query Language) język formułowania zapytań Najważniejsze polecenia: CREATE (np. CREATE TABLE, CREATE DATABASE,...) utworzenie bazy, tabeli, indeksu itp., DROP (np. DROP TABLE, DROP DATABASE,...) usuwanie, ALTER (np. ALTER TABLE ADD COLUMN...) zmiana struktury (dodanie kolumny do tabeli, zmiana typu danych w kolumnie tabeli). 3 4

DCL DCL (ang. Data Control Language) ma zastosowanie do nadawania uprawnień do obiektów bazodanowych. Najważniejsze polecenia: GRANT - służy do nadawania uprawnień do pojedynczych obiektów lub globalnie konkretnemu użytkownikowi REVOKE służy do odbierania wskazanych uprawnień konkretnemu użytkownikowi Tworzenie tabel CREATE TABLE nazwa_tabeli (kolumna1 typ_danych(rozmiar) [DEFAULT wartość_domyślna] [NULL NOT NULL] [CONSTRAINT nazwa_ogr] ograniczenie_atr], kolumna2 typ_danych(rozmiar) [DEFAULT wartość_domyślna] [NULL NOT NULL] [CONSTRAINT nazwa_ogr] ograniczenie_atr...); Przykład: 5 6 CREATE TABLE Departament (nr_departamentu number(2), nazwa varchar2(12), lokalizacja varchar(12)); CREATE TABLE Departament (nr_departamentu number(2) not null, nazwa varchar2(12), lokalizacja varchar(12)); Typy kolumn Klauzula CONSTRAINT char(rozmiar) - ciąg znaków stałej długości. Rozmiar (liczba znaków) określany w nawiasach o długości nie większej niż 255 bajtów. varchar2(rozmiar) - ciąg znaków zmiennej długości. Rozmiar (liczba znaków, max 2000, domyślnie 1) określany jest w nawiasach. number(rozmiar) - typ numeryczny. Rozmiar określa liczbę cyfr w kolumnie. number(rozmiar,d) - typ numeryczny. Rozmiar określa liczbę znaków w kolumnie, "d" określa maksymalną liczbę cyfr na prawo od kropki dziesiętnej. Skala "d" nie może być większa od precyzji "rozmiar" date do reprezentacji dat i czasu long rozszerzenie typu varchar2, które pozwala przechowywać napisy do 2GB Służy do definiowania innych niż NOT NULL warunków integralności CREATE TABLE nazwa_tabeli (kolumna1 typ_danych(rozmiar) [DEFAULT wartość_domyślna] [NULL NOT NULL] [CONSTRAINT nazwa_ogr] ograniczenie_atr]...); CREATE TABLE nazwa_tabeli (kolumna1 typ_danych(rozmiar) [DEFAULT wartość_domyślna] [NULL NOT NULL] CONSTRAINT nazwa_ogr typ_ograniczenia CONSTRAINT nazwa_ogr typ_ograniczenia...); 7 8

Klauzula CONSTRAINT Typy ograniczeń [CONSTRAINT nazwa_ogr] typ_ograniczenia Nazwa_ograniczenia - identyfikator warunku integralności, występujący np. w komunikatach o błędach spowodowanych przez niedozwoloną operację naruszającą to ograniczenia Typ_ograniczenia: CHECK, PRIMARY KEY, UNIQUE, FOREIGN KEY Ograniczenie - dodatkowe informacje, jego postać zależy od typu ograniczenia Ograniczenie CHECK - określa warunek, jaki musi spełniać wartość w kolumnie każdego wiersza tabeli. Jeśli więzy są definiowane po definicji wszystkich kolumn, warunek może dotyczyć kilku kolumn, jeśli na poziomie kolumny - tylko tej kolumny. CONSTARAINT CHECK (warunek logiczny) Warunek logiczny musi być prosty - niedopuszczalne są podzapytania, ani funkcje, których wartość zależy od okoliczności wywołania np. SYSDATE. Można używać OR i AND. 9 10 Przykład PRIMARY KEY W tabeli pracownik żądamy, aby nazwiska były wpisywane wielkimi literami CREATE TABLE pracownik ( nazwisko varchar2(10) CONSTRAINT wielkie_litery CHECK (nazwisko=upper(nazwisko))...); Prowizja osób innych niż sprzedawca musi być NULL. CREATE TABLE pracownik ( Definicje wszystkich kolumn, CONSTRAINT stanowisko_prowizja_spr (prowizja IS NULL OR stanowisko= SPRZEDAWCA ) ); Definiuje klucz główny tabeli (wymusza automatycznie warunek NOT NULL). Jeżeli klucz główny stanowi pojedyncza kolumna wygodnie jest zapisać ten warunek w składni przy kolumnie:... Kolumna typ CONSTRAINT nazwa_ogr PRIMARY KEY, Jeżeli klucz składa się z dwóch lub więcej kolumn, wtedy należy określić go w składni po kolumnach:. CONSTRAINT nazwa_ogr PRIMARY KEY (kol1,kol2,...).. 11 12

Przykład UNIQUE W tabeli pracownik kluczem jest numer pracownika: id_pracownika CREATE TABLE pracownik (id_pracownika NUMBER(4) CONSTARINT pracownik_pk PRIMARY KEY, ); lub CREATE TABLE pracownik (id_pracownika NUMBER(4) PRIMARY KEY, ); Ustalić klucz w tabeli zlecenie. CREATE TABLE zlecenie ( definicje kolumn CONSTRAINT zlecenie_pk PRIMARY KEY(nr_projektu, id_pracownika)); Definiuje klucz unikalny tabeli. Klucz unikalny pełni podobną rolę co klucz główny, z tym, że nie wymusza automatycznie warunku NOT NULL na należących do niego kolumnach Klucz unikalny składający się z jednej kolumny:... Kolumna typ CONSTRAINT nazwa_ogr UNIQUE, Klucz dla dwóch lub większej liczby kolumn:. CONSTARINT nazwa_ogr UNIQUE (kol1,kol2,...).. 13 14 Przykład FOREIGN KEY W tabeli departament nazwy departamentów nie są kluczem głównym ale też nie powinny się powtarzać. CREATE TABLE departament ( nazwa NUMBER(4) NOT NULL CONSTRAINT d_nazwa_u UNIQUE, ); Definiuje klucz obcy, reprezentujący związek z inną tabelą. Powoduje, że wartości wskazanych kolumn mogą przyjmować jedynie wartości klucza głównego (lub unikalnego) pewnej (najczęściej innej) tabeli. Jeżeli klucz obcy stanowi jedna kolumna:... Kolumna typ CONSTRAINT nazwa_ogr REFERENCES nazwa tabeli (kolumna1), Jeżeli klucz obcy zbudowany jest z większej liczby kolumn. CONSTARINT nazwa_ogr FOREIGN KEY (lista_kolumn1) REFERENCES nazwa_tabeli (lista_kolumn2).. 15 16

FOREIGN KEY Przykład Aby możliwe było zdefiniowanie klucza obcego: Tabela, do której odnosi się klucz musi być utworzona na wskazanym zestawie kolumn musi być utworzony klucz główny lub klucz unikalny jeśli w tabeli obcej odwołujemy się do kolumn z klucza głównego, listę kolumn z tabeli obcej można pominąć Własności kluczy obcych w tabeli z kluczem obcym nie można wstawić wiersza, którego wartość w kolumnie z klucza obcego nie ma odpowiedników w tabeli obcej, w tabeli z kluczem obcym nie można zmodyfikować wiersza, tak aby jego wartość kolumnie z klucza obcego nie miała odpowiedników w tabeli obcej, z tabeli obcej nie można usunąć wiersza, do którego odnoszą się jakiekolwiek wiersze z tabeli z kluczem obcym - wstawienie dyrektywy ON DELETE CASCADE spowoduje, że przy usuwaniu wiersza z tabeli będą usuwane wszystkie odwołujące się do niego wiersze z tabel z kluczem obcym. Utworzyć klucze obce w tabeli pracownik. Jakie to będą klucze? CREATE TABLE pracownik( nr_pracownika number (4) PRIMARY KEY, nazwisko varchar2(10), stanowisko varchar2(9), kierownik number(4) CONSTARAINT pracownik_fk_pr REFERENCES pracownik (nr_pracownika), data_zatrudnienia date, pensja number(7,2), prowizja number (7,2), nr_departamentu number(2) NOT NULL CONSTRAINT pracownik_fk REFERENCES departament ON DELETE CASCADE ); 17 18 Klauzula DEFAULT Tworzenie tabeli przez zapytanie Służy do wskazania jaka wartość ma być wstawiona w polu kolumny jeśli w poleceniu wstawiania nie określono wartości tej kolumny.... Kolumna typ DEFAULT wyrażenie, Podane wyrażenie musi być zgodne z typem kolumny. Wyrażenie musi być proste, nie mogą występować podzapytania Dozwolone są funkcje typu SYSDATE. CREATE TABLE nazwa_tabeli [nazwa_kolumny [NULL/NOT_NULL],] AS SELECT zapytanie nowa tabela składa się z kolumn oraz wierszy określonych poleceniem SELECT jeśli pozycje występujące na liście SELECT mają prawidłowe nazwy (nie są to wyrażenia) lub mają aliasy, lista nazw kolumn nowej tabeli może zostać pominięta jeśli podana jest lista nazw nowej tabeli, liczba pozycji musi się pokrywać z liczbą pozycji, występujących po poleceniu SELECT 19 20

Przykład Utworzyć tabelę zawierającą nazwisko, pensję i grupę zaszeregowania każdego pracownika. CREATE TABLE pracownik_pensja (nazwisko, pensja, stopien) AS SELECT nazwisko, zarobki, nr_przedziału FROM pracownik, poziom_zarobkow WHERE pensja between dolna_granica and gorna_granica; Zmiana definicji tabeli Dodawanie kolumn Zmiana definicji tabeli: ALTER TABLE Dodawanie kolumn: ALTER TABLE nazwa_tabeli ADD (kolumna typ [(rozmiar)], kolumna typ [(rozmiar)],...); 21 22 Zmiana definicji tabeli Zarządzanie więzami integralności Dodawanie więzów integralności: ALTER TABLE nazwa_tabeli ADD (CONSTRAINT nazwa_ogr [warunek])...); Włączanie i wyłączanie sprawdzanie więzów integralności: ALTER TABLE nazwa_tabeli ENABLE CONSTRAINT nazwa_ogr; ALTER TABLE nazwa_tabeli DISABLE CONSTRAINT nazwa_ogr; Usuwanie warunku integralności: ALTER TABLE nazwa_tabeli DROP CONSTRAINT nazwa_ogr; Modyfikacja definicji kolumny ALTER TABLE nazwa_tabeli MODIFY (kolumna typ [(rozmiar)] [NULL NOT NULL]); Nie można wykonać następujących modyfikacji: kolumny, w której występują wartości NULL nie można przedefiniować z NULL na NOT NULL nie można dodać nowej kolumny o własności NOT NULL (chyba, że tabela jest pusta). Dopiero po wpisaniu wartości kolumny można ją zmodyfikować. Nie jest możliwe zmniejszenie rozmiaru kolumny lub zmiany jej typu, chyba, że kolumna jest pusta nie jest możliwa zmiana typu kolumny 23 24

Usuwanie tabel Zmiana nazwy tabeli DROP TABLE nazwa_tabeli; usunięcie tabeli powoduje utratę wszystkich danych zawartych w tabeli oraz wszystkich indeksów tabela może zostać usunięta przez jej właściciela albo administratora bazy danych jeżeli istnieją tabele z kluczami obcymi odwołującymi się do usuwanej tabeli, usuwanie się nie powiedzie, chyba, że na końcu dodamy dyrektywę CASCADE CONSTRAINS. Wtedy zostaną usunięte odpowiednie definicje kluczy obcych w innych tabelach. RENAME stara_nazwa TO nowa_nazwa 25 26 Wstawianie wierszy UPDATE 27 Polecenie wstawiania nowych wierszy do tabeli: INSERT INTO nazwa_tabeli [(lista_kolumn)] VALUES (lista_wartości);) Wstawianie wierszy wybieranych w zapytaniu: INSERT INTO nazwa_tabeli [(lista_kolumn)] SELECT lista_wyrażeń FROM; Parametryzowane polecenie INSERT INSERT INTO nazwa_tabeli [(lista_kolumn)] VALUES(&wartość1, &wartość2,...) Przykład: INSERT INTO dept (deptno, dname, loc) VALUES (&d_numer, &d_nazwa, &d_miasto) 28 Polecenie UPDATE służy do zmiany wartości w istniejących wierszach: UPDATE tabela [alias] SET kolumna= {wyrażenie podzapytanie } [, kolumna= {wyrażenie podzapytanie }]... [WHERE warunek] Przykład: Zmienić dane w wierszu pracownika Nazwisko2: UPDATE pracownik SET job= SPRZEDAWCA, data_zatrudnienia=trunc(sysdate), pensja=pensja*1.1 WHERE nazwisko= Nazwisko2 ;

Przykład DELETE Załóżmy, że mamy informacje o dodatkowych prowizjach dla części pracowników. Są one umieszczone w tabeli prowizje(id_pracownika, prowizja). Dokonać aktualizacji tabeli Pracownik na podstawie informacji zawartej w tabeli prowizje. UPDATE pracownik p SET prowizja=(select c.prowizja+p.prowizja from prowizje c where c.id_pracownika = p.id_pracownika) WHERE id_pracownika in (select id_pracownika from prowizje); Polecenie DELETE służy do usuwania jednego lub wielu wierszy z tabeli. DELETE [FROM] tabela [WHERE warunek]; warunek WHERE określa, które wiersze należy usunąć jeżeli pominiemy klauzulę WHERE wszystkie wiersze zostaną pominięte. 29 30