SQL (
SQL (
Structured Query
Structured Query
Language
Language
)
)
Strukturalny język zapytań używany do tworzenia,
Strukturalny język zapytań używany do tworzenia,
modyfikowania baz danych oraz do umieszczania i
modyfikowania baz danych oraz do umieszczania i
pobierania danych z baz danych.
pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym.
Język SQL jest językiem deklaratywnym.
Decyzję o sposobie przechowywania i pobierania
Decyzję o sposobie przechowywania i pobierania
danych pozostawia się Systemowi Zarządzania Bazą
danych pozostawia się Systemowi Zarządzania Bazą
Danych (DBMS).
Danych (DBMS).
Składnia SQL
Składnia SQL
Użycie SQL polega na zadawaniu zapytań do bazy
Użycie SQL polega na zadawaniu zapytań do bazy
danych. Zapytania można zaliczyć do jednego z trzech
danych. Zapytania można zaliczyć do jednego z trzech
głównych podzbiorów:
głównych podzbiorów:
SQL DDL
SQL DDL
(ang.
(ang.
Data Definition Language
Data Definition Language
– „język definicji
– „język definicji
danych”),
danych”),
SQL DML
SQL DML
(ang.
(ang.
Data Manipulation Language
Data Manipulation Language
– „język
– „język
manipulacji danymi”),
manipulacji danymi”),
SQL DCL
SQL DCL
(ang.
(ang.
Data Control Language
Data Control Language
– „język kontroli nad
– „język kontroli nad
danymi”).
danymi”).
DDL (
DDL (
Data Definition
Data Definition
Language
Language
)
)
CREATE
CREATE
– tworzenie struktury (bazy,
– tworzenie struktury (bazy,
tabeli, indeksu itp.),
tabeli, indeksu itp.),
ALTER
ALTER
– edycja struktury (dodanie
– edycja struktury (dodanie
kolumny do tabeli, zmiana typu
kolumny do tabeli, zmiana typu
danych w kolumnie tabeli itp)
danych w kolumnie tabeli itp)
DROP
DROP
– usuwanie struktury.
– usuwanie struktury.
DML (
DML (
Data Manipulation
Data Manipulation
Language
Language
)
)
INSERT
INSERT
– umieszczenie danych w
– umieszczenie danych w
bazie,
bazie,
UPDATE
UPDATE
– zmiana danych,
– zmiana danych,
DELETE
DELETE
– usunięcie danych z bazy,
– usunięcie danych z bazy,
SELECT
SELECT
– pobranie danych z bazy.
– pobranie danych z bazy.
DCL (Data Control
DCL (Data Control
Language)
Language)
GRANT
GRANT
– przyznanie użytkownikowi
– przyznanie użytkownikowi
praw do tabel,
praw do tabel,
REVOKE
REVOKE
– odbieranie użytkownikowi
– odbieranie użytkownikowi
praw do tabeli, które zostały
praw do tabeli, które zostały
przyznane poleceniem GRANT.
przyznane poleceniem GRANT.
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny_1
nazwa_kolumny_1
typ_danych,
typ_danych,
nazwa_kolumny_2
nazwa_kolumny_2
typ_danych,
typ_danych,
.
.
.
.
.
.
nazwa_kolumny_n
nazwa_kolumny_n
typ_danych
typ_danych
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
data_urodzenia date
data_urodzenia date
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny_1 typ_danych PRIMARY KEY,
nazwa_kolumny_1 typ_danych PRIMARY KEY,
nazwa_kolumny_2 typ_danych,
nazwa_kolumny_2 typ_danych,
.
.
.
.
.
.
nazwa_kolumny_n typ_danych
nazwa_kolumny_n typ_danych
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
data_urodzenia date
data_urodzenia date
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_2 typ_danych,
nazwa_kolumny_2 typ_danych,
.
.
.
.
.
.
nazwa_kolumny_n typ_danych,
nazwa_kolumny_n typ_danych,
PRIMARY KEY(nazwa_kolumny)
PRIMARY KEY(nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
data_urodzenia date,
data_urodzenia date,
PRIMARY KEY(id)
PRIMARY KEY(id)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_2 typ_danych,
nazwa_kolumny_2 typ_danych,
.
.
.
.
.
.
nazwa_kolumny_n typ_danych,
nazwa_kolumny_n typ_danych,
PRIMARY KEY(nazwa_kolumny_a,
PRIMARY KEY(nazwa_kolumny_a,
nazwa_kolumny_b, …, nazwa_kolumny_m)
nazwa_kolumny_b, …, nazwa_kolumny_m)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Dowod
CREATE TABLE Dowod
(
(
seria
seria
char(3),
char(3),
numer
numer
number(9),
number(9),
data
data
date,
date,
PRIMARY KEY(seria, numer)
PRIMARY KEY(seria, numer)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Dowod
CREATE TABLE Dowod
(
(
seria
seria
char(3)
char(3)
PRIMARY KEY
PRIMARY KEY
,
,
numer
numer
number(9)
number(9)
PRIMARY KEY
PRIMARY KEY
,
,
data
data
date
date
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_1 typ_danych,
nazwa_kolumny_2 typ_danych,
nazwa_kolumny_2 typ_danych,
.
.
.
.
.
.
nazwa_kolumny_n typ_danych,
nazwa_kolumny_n typ_danych,
[CONSTRAINT nazwa]
[CONSTRAINT nazwa]
PRIMARY KEY(nazwa_kolumny)
PRIMARY KEY(nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
data_urodzenia date,
data_urodzenia date,
CONSTRAINT pk_osoba PRIMARY KEY(id)
CONSTRAINT pk_osoba PRIMARY KEY(id)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT |
{ CASCADE | SET NULL | SET DEFAULT |
RESTRICT }],
RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY(nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY(nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20) NOT NULL,
varchar(20) NOT NULL,
nazwisko
nazwisko
varchar(30) NOT NULL,
varchar(30) NOT NULL,
data_urodzenia date NULL,
data_urodzenia date NULL,
CONSTRAINT pk_osoba PRIMARY KEY(id)
CONSTRAINT pk_osoba PRIMARY KEY(id)
);
);
Jeśli nie określimy własności NULL / NOT NULL pole będzie miało własność NULL
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20) DEFAULT ‘Anna’ NOT
varchar(20) DEFAULT ‘Anna’ NOT
NULL,
NULL,
nazwisko
nazwisko
varchar(30) NOT NULL,
varchar(30) NOT NULL,
data_urodzenia date,
data_urodzenia date,
CONSTRAINT pk_osoba PRIMARY KEY(id)
CONSTRAINT pk_osoba PRIMARY KEY(id)
);
);
Jeśli nie podamy wartości dla pola imie, przyjmie ono wartość domyślną, czyli ‘Anna’
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20) NOT NULL,
varchar(20) NOT NULL,
nazwisko
nazwisko
varchar(30) NOT NULL,
varchar(30) NOT NULL,
login
login
varchar(20) UNIQUE,
varchar(20) UNIQUE,
data_urodzenia date NULL,
data_urodzenia date NULL,
CONSTRAINT pk_osoba PRIMARY KEY(id)
CONSTRAINT pk_osoba PRIMARY KEY(id)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych,
nazwa_kolumny typ_danych,
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] UNIQUE(nazwa_kolumny)
[CONSTRAINT [nazwa]] UNIQUE(nazwa_kolumny)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer,
integer,
imie
imie
varchar(20) NOT NULL,
varchar(20) NOT NULL,
nazwisko
nazwisko
varchar(30) NOT NULL,
varchar(30) NOT NULL,
login
login
varchar(20),
varchar(20),
data_urodzenia date NULL,
data_urodzenia date NULL,
CONSTRAINT pk_osoba PRIMARY KEY(id),
CONSTRAINT pk_osoba PRIMARY KEY(id),
CONSTRAINT unq_login UNIQUE(login)
CONSTRAINT unq_login UNIQUE(login)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL,
imie varchar(20) NOT NULL,
nazwisko varchar(30) NOT NULL,
nazwisko varchar(30) NOT NULL,
plec char CHECK(plec
plec char CHECK(plec
=‘
=‘
K’
K’
OR
OR
plec
plec
=‘
=‘
M’)
M’)
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL,
imie varchar(20) NOT NULL,
nazwisko varchar(30) NOT NULL,
nazwisko varchar(30) NOT NULL,
plec char CHECK(plec in (‘K’, ‘k’,
plec char CHECK(plec in (‘K’, ‘k’,
‘
‘
M’, ‘k’)
M’, ‘k’)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych,
nazwa_kolumny typ_danych,
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT |
{ CASCADE | SET NULL | SET DEFAULT |
RESTRICT }],
RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] CHECK(warunek)
[CONSTRAINT [nazwa]] CHECK(warunek)
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL,
imie varchar(20) NOT NULL,
nazwisko varchar(30) NOT NULL,
nazwisko varchar(30) NOT NULL,
plec char,
plec char,
CONSTRAINT check_plec
CONSTRAINT check_plec
CHECK(plec in (
CHECK(plec in (
‘
‘
K’, ‘k’, ‘M’, ‘m’)
K’, ‘k’, ‘M’, ‘m’)
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE osoba
CREATE TABLE osoba
(
(
…
…
data_ur date,
data_ur date,
data_zgonu date
data_zgonu date
CHECK(data_zgonu>=data_ur)
CHECK(data_zgonu>=data_ur)
…
…
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE osoba
CREATE TABLE osoba
(
(
…
…
data_ur date,
data_ur date,
data_zgonu date,
data_zgonu date,
…,
…,
CHECK(data_zgonu>=data_ur)
CHECK(data_zgonu>=data_ur)
);
);
nazwa_kolumny typ_danych CHECK(warunek)
nazwa_kolumny typ_danych CHECK(warunek)
CREATE TABLE osoba
CREATE TABLE osoba
(
(
…
…
data_ur date,
data_ur date,
data_zgonu date,
data_zgonu date,
…
…
,
,
CONSTRAINT check_date
CONSTRAINT check_date
CHECK(data_zgonu>=data_ur)
CHECK(data_zgonu>=data_ur)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny typ_danych [REFERENCES
nazwa_kolumny typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT |
{ CASCADE | SET NULL | SET DEFAULT |
RESTRICT }],
RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
);
);
UWAGA. Aby zdefiniować klucz obcy, wcześniej musi być zadeklarowana tabela,
na którą ten klucz obcy wskazuje.
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny1 typ_danych [Null | Not Null],
nazwa_kolumny1 typ_danych [Null | Not Null],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny7 typ_danych [REFERENCES
nazwa_kolumny7 typ_danych [REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT |
{ CASCADE | SET NULL | SET DEFAULT |
RESTRICT }],
RESTRICT }],
.
.
.
.
.
.
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
[CONSTRAINT [nazwa]] PRIMARY KEY (nazwa_kolumny)
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
znak
znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
ON
ON
DELETE
DELETE
…
…
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
znak
znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
ON
ON
DELETE
DELETE
…
…
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
znak
znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
ON
ON
DELETE
DELETE
…
…
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
znak
znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
ON
ON
DELETE
DELETE
…
…
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
ON DELETE RESTRICT
ON DELETE RESTRICT
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
ON DELETE SET NULL
ON DELETE SET NULL
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
Null
Null
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
ON DELETE SET NULL
ON DELETE SET NULL
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
ON DELETE CASCADE
ON DELETE CASCADE
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int REFERENCES Znak(id)
Id_znaku int REFERENCES Znak(id)
ON DELETE CASCADE
ON DELETE CASCADE
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [Null | Not Null],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [UNIQUE],
nazwa_kolumny typ_danych [CHECK(warunek)],
nazwa_kolumny typ_danych [CHECK(warunek)],
.
.
.
.
.
.
PRIMARY KEY (nazwa_kolumny),
PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]]
[CONSTRAINT [nazwa]]
FOREIGN KEY
FOREIGN KEY
(nazwa_kolumny_klucza_obcego)
(nazwa_kolumny_klucza_obcego)
REFERENCES
REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int,
Id_znaku int,
FOREIGN KEY (Id_znaku) REFERENCES Znak(id)
FOREIGN KEY (Id_znaku) REFERENCES Znak(id)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny2 typ_danych [Null | Not Null],
nazwa_kolumny2 typ_danych [Null | Not Null],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
.
.
.
.
.
.
PRIMARY KEY (nazwa_kolumny),
PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] FOREIGN KEY
[CONSTRAINT [nazwa]] FOREIGN KEY
(nazwa_kolumny_klucza_obcego)
(nazwa_kolumny_klucza_obcego)
REFERENCES
REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int,
Id_znaku int,
CONSTRAINT fk_osoba_znak FOREIGN KEY (Id_znaku)
CONSTRAINT fk_osoba_znak FOREIGN KEY (Id_znaku)
REFERENCES Znak(id)
REFERENCES Znak(id)
);
);
Tworzenie struktury
Tworzenie struktury
tabeli
tabeli
CREATE TABLE nazwa_tabeli
CREATE TABLE nazwa_tabeli
(
(
nazwa_kolumny2 typ_danych [Null | Not Null],
nazwa_kolumny2 typ_danych [Null | Not Null],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny3 typ_danych [DEFAULT domyślna_wartość],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny4 typ_danych [UNIQUE],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny5 typ_danych [CHECK(warunek)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
nazwa_kolumny6 typ_danych [COMPUTE(wyrażenie)],
.
.
.
.
.
.
PRIMARY KEY (nazwa_kolumny),
PRIMARY KEY (nazwa_kolumny),
[CONSTRAINT [nazwa]] FOREIGN KEY
[CONSTRAINT [nazwa]] FOREIGN KEY
(nazwa_kolumny_klucza_obcego)
(nazwa_kolumny_klucza_obcego)
REFERENCES
REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
[ON { UPDATE | DELETE }
[ON { UPDATE | DELETE }
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
{ CASCADE | SET NULL | SET DEFAULT | RESTRICT }]
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int,
Id_znaku int,
CONSTRAINT fk_osoba_znak FOREIGN KEY (Id_znaku)
CONSTRAINT fk_osoba_znak FOREIGN KEY (Id_znaku)
REFERENCES Znak(id) ON DELETE RESRTICT
REFERENCES Znak(id) ON DELETE RESRTICT
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int,
Id_znaku int,
CONSTRAINT fk FOREIGN KEY (Id_znaku)
CONSTRAINT fk FOREIGN KEY (Id_znaku)
REFERENCES Znak(id) ON DELETE SET NULL
REFERENCES Znak(id) ON DELETE SET NULL
);
);
Id
Id
Imie
Imie
Id
Id
znaku
znaku
Id
Id
Znak
Znak
0
0
1
1
Adam
Adam
01
01
0
0
1
1
Baran
Baran
0
0
2
2
Ewa
Ewa
Null
Null
Id znaku = id
Id znaku = id
0
0
2
2
Ryby
Ryby
0
0
3
3
Jacek
Jacek
01
01
0
0
3
3
Byk
Byk
0
0
4
4
Julia
Julia
Null
Null
0
0
4
4
Lew
Lew
0
0
5
5
Anna
Anna
02
02
CREATE TABLE osoba
CREATE TABLE osoba
(
(
Id int PRIMARY KEY,
Id int PRIMARY KEY,
Imie char(20),
Imie char(20),
Id_znaku int,
Id_znaku int,
CONSTRAINT fk FOREIGN KEY (Id_znaku)
CONSTRAINT fk FOREIGN KEY (Id_znaku)
REFERENCES Znak(id) ON DELETE CASCADE
REFERENCES Znak(id) ON DELETE CASCADE
);
);
Tworzenie struktury tabeli.
Tworzenie struktury tabeli.
Przykład
Przykład
CREATE TABLE Pozycja_zam
CREATE TABLE Pozycja_zam
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
id_zamowienia integer NOT NULL,
id_zamowienia integer NOT NULL,
id_towaru integer NOT NULL,
id_towaru integer NOT NULL,
ilosc_towaru_na_zamowieniu integer DEFAULT 1 NOT
ilosc_towaru_na_zamowieniu integer DEFAULT 1 NOT
NULL,
NULL,
FOREIGN KEY (id_zamowienia) REFERENCES
FOREIGN KEY (id_zamowienia) REFERENCES
Zamowienie(id) ON DELETE CASCADE,
Zamowienie(id) ON DELETE CASCADE,
FOREIGN KEY (id_towaru) REFERENCES
FOREIGN KEY (id_towaru) REFERENCES
Towar(id) ON DELETE SET NULL
Towar(id) ON DELETE SET NULL
);
);
Tworzenie struktury tabeli.
Tworzenie struktury tabeli.
Przykład
Przykład
CREATE TABLE Pracownik
CREATE TABLE Pracownik
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL,
imie varchar(20) NOT NULL,
nazwisko varchar(20) NOT NULL,
nazwisko varchar(20) NOT NULL,
data_urodzenia date NOT NULL,
data_urodzenia date NOT NULL,
data_zatrudnienia date DEFAULT SysDate,
data_zatrudnienia date DEFAULT SysDate,
id_dzialu integer REFERENCES Dzial(id),
id_dzialu integer REFERENCES Dzial(id),
CHECK(extract(YEAR from data_zatrudnienia) –
CHECK(extract(YEAR from data_zatrudnienia) –
extract(YEAR from data_urodzenia) >= 18)
extract(YEAR from data_urodzenia) >= 18)
);
);
Edycja struktury tabeli
Edycja struktury tabeli
Dodanie kolumny
Dodanie kolumny
ALTER TABLE nazwa_tabeli ADD
ALTER TABLE nazwa_tabeli ADD
(nazwa_kolumny typ_danych [Default watrość])
(nazwa_kolumny typ_danych [Default watrość])
Usunięcie kolumny
Usunięcie kolumny
ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny
ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny
[CASCADE CONSTRAINTS]
[CASCADE CONSTRAINTS]
Zmiana własności kolumny
Zmiana własności kolumny
ALTER TABLE nazwa_tabeli MODIFY nazwa_kolumny nowa_definicja
ALTER TABLE nazwa_tabeli MODIFY nazwa_kolumny nowa_definicja
Zmiana nazwy kolumny
Zmiana nazwy kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
RENAME COLUMN nazwa_kolumny TO nowa_nazwa_kolumny
RENAME COLUMN nazwa_kolumny TO nowa_nazwa_kolumny
Zmiana nazwy tabeli
Zmiana nazwy tabeli
RENAME nazwa_tabeli TO nowa_nazwa_tabeli
RENAME nazwa_tabeli TO nowa_nazwa_tabeli
Dodanie klucza obcego
Dodanie klucza obcego
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
ADD FOREIGN KEY nazwa_kolumny_klucza_obcego REFERENCES
ADD FOREIGN KEY nazwa_kolumny_klucza_obcego REFERENCES
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
nazwa_tabeli_macierzystej(nazwa_kolumny_klucza_głównego)
Edycja struktury tabeli
Edycja struktury tabeli
Dodanie kolumny
Dodanie kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
ADD (nazwa_kolumny
ADD (nazwa_kolumny
typ_danych [ograniczenie])
typ_danych [ograniczenie])
ALTER TABLE osoba ADD
ALTER TABLE osoba ADD
(wiek integer NULL);
(wiek integer NULL);
Edycja struktury tabeli
Edycja struktury tabeli
Zmiana własności kolumny
Zmiana własności kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
MODIFY nazwa_kolumny
MODIFY nazwa_kolumny
nowa_definicja
nowa_definicja
ALTER TABLE osoba MODIFY
ALTER TABLE osoba MODIFY
wiek NOT NULL
wiek NOT NULL
Edycja struktury tabeli
Edycja struktury tabeli
Usunięcie kolumny
Usunięcie kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
DROP COLUMN
DROP COLUMN
nazwa_kolumny
nazwa_kolumny
ALTER TABLE osoba DROP COLUMN wiek;
ALTER TABLE osoba DROP COLUMN wiek;
Edycja struktury tabeli
Edycja struktury tabeli
Usunięcie kolumny
Usunięcie kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
DROP COLUMN
DROP COLUMN
nazwa_kolumny
nazwa_kolumny
ALTER TABLE osoba DROP COLUMN
ALTER TABLE osoba DROP COLUMN
id_osoby;
id_osoby;
Edycja struktury tabeli
Edycja struktury tabeli
Usunięcie kolumny
Usunięcie kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
DROP nazwa_kolumny
DROP nazwa_kolumny
ALTER TABLE osoba DROP COLUMN
ALTER TABLE osoba DROP COLUMN
id_osoby CASCADE CONSTRAINTS;
id_osoby CASCADE CONSTRAINTS;
Edycja struktury tabeli
Edycja struktury tabeli
Zmiana nazwy kolumny
Zmiana nazwy kolumny
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
RENAME COLUMN
RENAME COLUMN
nazwa_kolumny TO
nazwa_kolumny TO
nowa_nazwa_kolumny
nowa_nazwa_kolumny
ALTER TABLE osoba RENAME COLUMN
ALTER TABLE osoba RENAME COLUMN
data_urodzenia TO data_ur
data_urodzenia TO data_ur
Edycja struktury tabeli
Edycja struktury tabeli
Zmiana nazwy tabeli
Zmiana nazwy tabeli
RENAME nazwa_tabeli TO
RENAME nazwa_tabeli TO
nowa_nazwa_tabeli
nowa_nazwa_tabeli
RENAME osoba TO osoby
RENAME osoba TO osoby
Edycja struktury tabeli
Edycja struktury tabeli
Dodanie klucza obcego
Dodanie klucza obcego
ALTER TABLE nazwa_tabeli
ALTER TABLE nazwa_tabeli
ADD FOREIGN KEY
ADD FOREIGN KEY
(nazwa_kolumny_klucza_obcego)
(nazwa_kolumny_klucza_obcego)
REFERENCES
REFERENCES
nazwa_tabeli_macierzystej(nazwa_
nazwa_tabeli_macierzystej(nazwa_
kolumny_klucza_głównego)
kolumny_klucza_głównego)
ALTER TABLE osoba ADD FOREIGN KEY
ALTER TABLE osoba ADD FOREIGN KEY
(id_znaku) REFERENCES Znak(id)
(id_znaku) REFERENCES Znak(id)
Edycja struktury tabeli. Dodanie klucza
Edycja struktury tabeli. Dodanie klucza
obcego
obcego
CREATE TABLE osoba
CREATE TABLE osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL,
imie varchar(20) NOT NULL,
id_znaku integer
id_znaku integer
);
);
ALTER TABLE osoba ADD FOREIGN KEY
ALTER TABLE osoba ADD FOREIGN KEY
(id_znaku) REFERENCES Znak(id);
(id_znaku) REFERENCES Znak(id);
CREATE TABLE osoba
CREATE TABLE osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL
imie varchar(20) NOT NULL
);
);
ALTER TABLE osoba ADD
ALTER TABLE osoba ADD
(
(
id_znaku integer,
id_znaku integer,
FOREIGN KEY (id_znaku) REFERENCES Znak(id)
FOREIGN KEY (id_znaku) REFERENCES Znak(id)
);
);
Edycja struktury tabeli. Dodanie klucza
Edycja struktury tabeli. Dodanie klucza
obcego
obcego
CREATE TABLE osoba
CREATE TABLE osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL
imie varchar(20) NOT NULL
);
);
ALTER TABLE osoba ADD
ALTER TABLE osoba ADD
id_znaku integer REFERENCES Znak(id);
id_znaku integer REFERENCES Znak(id);
Edycja struktury tabeli. Dodanie klucza
Edycja struktury tabeli. Dodanie klucza
obcego
obcego
CREATE TABLE osoba
CREATE TABLE osoba
(
(
id integer PRIMARY KEY,
id integer PRIMARY KEY,
imie varchar(20) NOT NULL
imie varchar(20) NOT NULL
);
);
ALTER TABLE osoba ADD
ALTER TABLE osoba ADD
id_znaku integer REFERENCES Znak(id)
id_znaku integer REFERENCES Znak(id)
ON DELETE SET NULL;
ON DELETE SET NULL;
Edycja struktury tabeli. Dodanie klucza
Edycja struktury tabeli. Dodanie klucza
obcego
obcego
Usunięcie tabeli
Usunięcie tabeli
DROP TABLE nazwa_tabeli
DROP TABLE nazwa_tabeli
[CASCADE CONSTRAINTS];
[CASCADE CONSTRAINTS];
DROP TABLE Osoba;
DROP TABLE Osoba;
Usunięcie tabeli
Usunięcie tabeli
DROP TABLE nazwa_tabeli
DROP TABLE nazwa_tabeli
[CASCADE CONSTRAINTS];
[CASCADE CONSTRAINTS];
DROP TABLE Osoba
DROP TABLE Osoba
CASCADE CONSTRAINTS;
CASCADE CONSTRAINTS;
Tabela Osoba zostanie usunięta wraz z kluczami obcymi,
które na nią wskazują.
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
INSERT INTO nazwa_tabeli
INSERT INTO nazwa_tabeli
[(nazwa_kolumny1, nazwa_kolumny2,
[(nazwa_kolumny1, nazwa_kolumny2,
…, nazwa_kolumnyN)]
…, nazwa_kolumnyN)]
VALUES (wartość1, wartość2, ...,
VALUES (wartość1, wartość2, ...,
wartośćN)
wartośćN)
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba (id, imie, nazwisko)
INSERT INTO Osoba (id, imie, nazwisko)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
INSERT INTO nazwa_tabeli
INSERT INTO nazwa_tabeli
[(nazwa_kolumny1, nazwa_kolumny2,
[(nazwa_kolumny1, nazwa_kolumny2,
…,
…,
nazwa_kolumnyN)]
nazwa_kolumnyN)]
VALUES (wartość1, wartość2, ...,
VALUES (wartość1, wartość2, ...,
wartośćN)
wartośćN)
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba
INSERT INTO Osoba
(id, imie, nazwisko)
(id, imie, nazwisko)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
INSERT INTO Osoba
INSERT INTO Osoba
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Kowalski’ , ‘Jan’);
VALUES (1, ‘Kowalski’ , ‘Jan’);
INSERT INTO Osoba (imie, nazwisko)
INSERT INTO Osoba (imie, nazwisko)
VALUES (‘Jan’, ‘Kowalski’);
VALUES (‘Jan’, ‘Kowalski’);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
INSERT INTO Osoba
INSERT INTO Osoba
VALUES (‘Jan’, ‘Kowalski’,1);
VALUES (‘Jan’, ‘Kowalski’,1);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Kowalski’, ‘Jan’);
VALUES (1, ‘Kowalski’, ‘Jan’);
INSERT INTO Osoba (imie, nazwisko)
INSERT INTO Osoba (imie, nazwisko)
VALUES (‘Jan’, ‘Kowalski’);
VALUES (‘Jan’, ‘Kowalski’);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
INSERT INTO Osoba
INSERT INTO Osoba
VALUES (‘Jan’, ‘Kowalski’,1);
VALUES (‘Jan’, ‘Kowalski’,1);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Kowalski’, ‘Jan’);
VALUES (1, ‘Kowalski’, ‘Jan’);
INSERT INTO Osoba (imie, nazwisko)
INSERT INTO Osoba (imie, nazwisko)
VALUES (‘Jan’, ‘Kowalski’);
VALUES (‘Jan’, ‘Kowalski’);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
INSERT INTO Osoba
INSERT INTO Osoba
VALUES (‘Jan’, ‘Kowalski’,1);
VALUES (‘Jan’, ‘Kowalski’,1);
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
);
);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Kowalski’, ‘Jan’);
VALUES (1, ‘Kowalski’, ‘Jan’);
INSERT INTO Osoba (imie, nazwisko)
INSERT INTO Osoba (imie, nazwisko)
VALUES (‘Jan’, ‘Kowalski’);
VALUES (‘Jan’, ‘Kowalski’);
INSERT INTO Osoba (id, nazwisko, imie)
INSERT INTO Osoba (id, nazwisko, imie)
VALUES (1, ‘Jan’, ‘Kowalski’);
VALUES (1, ‘Jan’, ‘Kowalski’);
INSERT INTO Osoba
INSERT INTO Osoba
VALUES (‘Jan’, ‘Kowalski’,1);
VALUES (‘Jan’, ‘Kowalski’,1);
Dodawanie do tabeli
Dodawanie do tabeli
danych pochodzących z
danych pochodzących z
innej tabeli
innej tabeli
INSERT INTO nazwa_tabeli
INSERT INTO nazwa_tabeli
[(nazwa_kolumny1, nazwa_kolumny2,
[(nazwa_kolumny1, nazwa_kolumny2,
…,
…,
nazwa_kolumnyN)]
nazwa_kolumnyN)]
SELECT [(nazwa_kolumny1,
SELECT [(nazwa_kolumny1,
nazwa_kolumny2, …, nazwa_kolumnyN)]
nazwa_kolumny2, …, nazwa_kolumnyN)]
FROM nazwa_tabeli_2
FROM nazwa_tabeli_2
Dodawanie rekordów do
Dodawanie rekordów do
tabeli
tabeli
CREATE TABLE Osoba
CREATE TABLE Osoba
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30),
varchar(30),
data_ur
data_ur
date,
date,
plec
plec
char,
char,
wiek
wiek
integer
integer
);
);
CREATE TABLE Seniorzy
CREATE TABLE Seniorzy
(
(
id
id
integer
integer
PRIMARY KEY,
PRIMARY KEY,
imie
imie
varchar(20),
varchar(20),
nazwisko
nazwisko
varchar(30)
varchar(30)
);
);
INSERT INTO Seniorzy(id, imie, nazwisko)
INSERT INTO Seniorzy(id, imie, nazwisko)
SELECT (id, imie, nazwisko) from Osoba
SELECT (id, imie, nazwisko) from Osoba
WHERE wiek>=60;
WHERE wiek>=60;
Sekwencja
Sekwencja
Obiekt posiadający możliwość zmiany
Obiekt posiadający możliwość zmiany
generowanej wartości w sposób określony
generowanej wartości w sposób określony
przez jego parametry.
przez jego parametry.
Nie jest on związany z żadnym innym
Nie jest on związany z żadnym innym
obiektem, ale stanowi oddzielny byt.
obiektem, ale stanowi oddzielny byt.
CREATE SEQUENCE Licznik;
CREATE SEQUENCE Licznik;
Przy każdym wywołaniu obiekt ten będzie
Przy każdym wywołaniu obiekt ten będzie
generował kolejne liczby całkowite
generował kolejne liczby całkowite
począwszy od 1.
począwszy od 1.
Sekwencja - parametry
Sekwencja - parametry
START WITH – ustala wartość , od której będą
START WITH – ustala wartość , od której będą
generowane kolejne liczby,
generowane kolejne liczby,
INCREMENT BY – definiuje wartość, o którą
INCREMENT BY – definiuje wartość, o którą
różnią się dwie liczby wygenerowane kolejno,
różnią się dwie liczby wygenerowane kolejno,
MAXVALUE – określa maksymalną wartość,
MAXVALUE – określa maksymalną wartość,
która może być wygenerowana,
która może być wygenerowana,
MINVALUE – najmniejsza wartość, która może
MINVALUE – najmniejsza wartość, która może
być wygenerowana,
być wygenerowana,
UWAGA. Wszystkie parametry liczbowe są liczbami
UWAGA. Wszystkie parametry liczbowe są liczbami
całkowitymi i mogą być ujemne
całkowitymi i mogą być ujemne
Sekwencja – parametry
Sekwencja – parametry
CYCLE / NOCYCLE – określa, czy po
CYCLE / NOCYCLE – określa, czy po
osiągnięciu ograniczenia górnego lub dolnego
osiągnięciu ograniczenia górnego lub dolnego
nastąpi ponowienie generacji
nastąpi ponowienie generacji
CACHE – określa liczbę przechowywanych w
CACHE – określa liczbę przechowywanych w
pamięci kolejnych wartości generowanych
pamięci kolejnych wartości generowanych
przez sekwencję. Zwiększenie tej wartości
przez sekwencję. Zwiększenie tej wartości
przyspiesza przetwarzania, przy dużym
przyspiesza przetwarzania, przy dużym
zrównolegleniu operacji sięgających do danej
zrównolegleniu operacji sięgających do danej
sekwencji, kosztem zasobów pamięci
sekwencji, kosztem zasobów pamięci
NOORDER – nie gwarantuje generowania
NOORDER – nie gwarantuje generowania
kolejnych wartości
kolejnych wartości
Sekwencja –
Sekwencja –
parametry domyślne
parametry domyślne
CREATE SEQUENCE Licznik
CREATE SEQUENCE Licznik
INCREMENT BY 1
INCREMENT BY 1
START WITH 1
START WITH 1
MAXVALUE 1.0E28
MAXVALUE 1.0E28
MINVALUE 1 CYCLE
MINVALUE 1 CYCLE
CACHE 20
CACHE 20
NOORDER;
NOORDER;
Sekwencja – metody
Sekwencja – metody
sekwencja.NEXTVAL – wygenerowanie
sekwencja.NEXTVAL – wygenerowanie
kolejnej liczby zgodnie z definicją użytej
kolejnej liczby zgodnie z definicją użytej
sekwencji
sekwencji
INSERT INTO Osoba VALUES
INSERT INTO Osoba VALUES
(Licznik.NEXTVAL, ‘Alicja’, ‘Nowak’)
(Licznik.NEXTVAL, ‘Alicja’, ‘Nowak’)
Sekwencja – metody
Sekwencja – metody
sekwencja.NEXTVAL – wygenerowanie
sekwencja.NEXTVAL – wygenerowanie
kolejnej liczby zgodnie z definicją użytej
kolejnej liczby zgodnie z definicją użytej
sekwencji
sekwencji
INSERT INTO Osoba VALUES
INSERT INTO Osoba VALUES
(Licznik.NEXTVAL, ‘Alicja’, ‘Nowak’)
(Licznik.NEXTVAL, ‘Alicja’, ‘Nowak’)
sekwencja.CURRVAL – wyświetlenie
sekwencja.CURRVAL – wyświetlenie
bieżącej wartości używanej sekwencji
bieżącej wartości używanej sekwencji
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
UPDATE Osoba
UPDATE Osoba
SET imie = UPPER(imie);
SET imie = UPPER(imie);
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
UPDATE Osoba
UPDATE Osoba
SET
SET
imie = UPPER(imie),
imie = UPPER(imie),
nazwisko = UPPER(nazwisko);
nazwisko = UPPER(nazwisko);
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
UPDATE Osoba
UPDATE Osoba
SET imie = ‘Anna’;
SET imie = ‘Anna’;
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
Edycja rekordów
Edycja rekordów
UPDATE nazwa_tabeli
UPDATE nazwa_tabeli
SET nazwa_kolumny = wartość
SET nazwa_kolumny = wartość
[WHERE warunek]
[WHERE warunek]
UPDATE Osoba
UPDATE Osoba
SET imie = ‘Anna’
SET imie = ‘Anna’
WHERE id = 1;
WHERE id = 1;
Usuwanie rekordów
Usuwanie rekordów
DELETE FROM nazwa_tabeli
DELETE FROM nazwa_tabeli
[WHERE warunek]
[WHERE warunek]
Usuwanie rekordów
Usuwanie rekordów
DELETE FROM nazwa_tabeli
DELETE FROM nazwa_tabeli
[WHERE warunek]
[WHERE warunek]
DELETE FROM Osoba;
DELETE FROM Osoba;
Usuwanie rekordów
Usuwanie rekordów
DELETE FROM nazwa_tabeli
DELETE FROM nazwa_tabeli
[WHERE warunek]
[WHERE warunek]
Usuwanie rekordów
Usuwanie rekordów
DELETE FROM nazwa_tabeli
DELETE FROM nazwa_tabeli
[WHERE warunek]
[WHERE warunek]
DELETE FROM Osoba
DELETE FROM Osoba
WHERE id > 5;
WHERE id > 5;
Usuwanie rekordów
Usuwanie rekordów
DELETE FROM nazwa_tabeli
DELETE FROM nazwa_tabeli
[WHERE warunek]
[WHERE warunek]
DELETE FROM Osoba
DELETE FROM Osoba
WHERE id = 5;
WHERE id = 5;
DELETE FROM Osoba
DELETE FROM Osoba
WHERE data_ur IS NULL;
WHERE data_ur IS NULL;