1. elads
Pap-Szigeti Rbert
pap-szigeti.robert@gamf.kefo.hu
A tantrgyrl
5 kredit, ktelez
2 ra elads + 2 ra labor
Elads ZH (adatmodellezs, normalizls,
SQL, relcialgebra) 50 pontrt.
Kt gyakorlati feladatsor a laboron 25-25
pontrt
Jegymegajnls: 35 + 35 ponttl
rsbeli s szbeli vizsga
CooSpace: https://coospace.kefo.hu
Az SQL nyelv
Az SQL nyelv
1986: szabvny SQL, az ANSI definilta ANSI 86 (SQL86 majd SQL89)
1992: SQL2 szabvny
Tovbbfejleszts: SQL3 (rekurzi,
triggerek, objektum-relcis modell)
A jelenlegi SQL-implementcik ltalban
az SQL2-nl jval tbbet tudnak,
ugyanakkor az SQL2 bizonyos rszleteit
nem tartalmazzk (Oracle, dBase IV stb.)
BETWEEN
IS NULL
x is null
not-tal tagadhat
pl. telefon is not null - az telefon mez nem
res
ANY
LIKE
x like maszk-kifejezs
not-tal tagadhat
pl. nv LIKE '%pter%' - igaz minden olyan
nvre, amelyikben a Pter karaktersorozat
szerepel (pl. Kispter Tibor esetn is)
Adatbzis ltrehozsa,
eldobsa
Csak megfelel jogosultsggal
Nem minden krnyezetben
CREATE DATABASE uzlet;
DROP DATABASE uzlet;
not null
[tblamegszortsok] )
char (n)
number (n, m)
date
unique
check felttel
references
Adattpusok
char(n)
varchar(n)
integer
real
decimal(n[,d])
date, time
logical
n hosszsg string
legfeljebb n hosszsg string
egsz szm (rviden int)
lebegpontos szm
n jegy szm, ebbl d tizedesjegy
dtum, id (nhol datetime is)
logikai (boolean)
Mezfelttelek
Tblafelttelek
Fontos tudnivalk
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd));
Plda folytatsa
MySQL-ben
ON-felttelek
REFERENCES (kls kulcs hivatkozs)
esetn ON-felttelek megadsval
szablyozhatjuk a rendszer viselkedst
T a hivatkoz s S a hivatkozott tbla:
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd));
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd) ON UPDATE CASCADE);
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd) ON DELETE CASCADE);
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd) ON UPDATE SET NULL);
Plda
OSZTLY(osztlykd, osztlynv, vezAdszm)
DOLGOZ (adszm, nv, lakcm, osztlykd)
CREATE TABLE Osztly
(osztlykd
CHAR(3) PRIMARY KEY,
osztlynv
CHAR(20),
vezAdszm
DECIMAL(10));
CREATE TABLE Dolgoz
(adszm
DECIMAL(10) PRIMARY KEY,
nv
CHAR(30),
lakcm
CHAR(40) DEFAULT 'ismeretlen',
osztlykd CHAR(3) REFERENCES
Osztly(osztlykd) ON DELETE SET NULL);
ON-felttelek
ON UPDATE CASCADE
ON DELETE CASCADE
ON-felttelek
ha S egy sorban vltozik a kulcs rtke, akkor Tben a r val kls kulcs hivatkozsok rtke
NULL lesz
Objektum trlse
DROP objektumtpus azonost param;
Pl. tbla eldobsa:
Objektum mdostsa
ALTER objektumtpus azonost param;
Tbla mdostsa:
Plda
TELEPULESEK (irszam, telepulesnev)
UGYFELEK (az, nev, irszam, utca_haz)
CREATE TABLE Telepulesek
(irszam
CHAR(4) PRIMARY KEY,
telepulesnev CHAR(40));
CREATE TABLE Ugyfelek
(az
INT PRIMARY KEY auto_increment,
nev
CHAR(30) NOT NULL,
irszam
CHAR(4) REFERENCES
Telepulesek(irszam) ON DELETE CASCADE,
utca_haz CHAR(40));
Folytats
a kvetkez eladson