BEVEZETÉS Az objektum fogalma



Hasonló dokumentumok
BEVEZETÉS Az objektum fogalma

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adat vs. Információ. Adatok: Információ: Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.

Adatbázisok* tulajdonságai

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázis-kezelés. Harmadik előadás

SQL parancsok feldolgozása

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

B I T M A N B I v: T M A N

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázisok elmélete 9. előadás

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis-kezelés, információs-rendszerek

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázis rendszerek SQL nyomkövetés

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázisok tavaszi félév Vizsgatételsor

Bevezetés: az SQL-be

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok elmélete 10. előadás

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázisok elmélete 9. előadás

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Adatbázis, adatbázis-kezelő

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatmodellezés. 1. Fogalmi modell

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Magas szintű adatmodellek Egyed/kapcsolat modell I.

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

A könyv tartalomjegyzéke

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatigények. Koncepcionális séma (magas szintű modell) Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok)

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Gazdasági folyamatok térbeli elemzése. 5. elıadás

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázis használat I. 5. gyakorlat

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázisok I A relációs algebra

Készítette: Szabóné Nacsa Rozália

Adatbázis-kezelés. alapfogalmak

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Adatbázisok I. Az SQL nyelv

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Az SQL adatbázisnyelv: DML

Relációsémák létrehozása SQL nyelvben

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

SQL DDL-1: táblák és megszorítások

Adatbázis-kezelés. Második előadás

Adatbázis rendszerek Definíciók:

Adatbázisok - 1. előadás

Java és web programozás

Lekérdezések az SQL-ben 1.rész

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Adatbázis Rendszerek II. 8. Gyakorló környezet

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

Adatbázis rendszerek. dr. Siki Zoltán

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Lekérdezések az SQL-ben 1.rész

Elemi alkalmazások fejlesztése IV.

SQL DDL-2 (aktív elemek) triggerek

Adatbázis tartalmának módosítása

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

ADATMODELLEZÉS. Az egyed-kapcsolat modell

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

7. Előadás tartalma A relációs adatmodell

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adat vs. Információ. Adatok: Információ: Az adatok és információk közötti különbség nem strukturális, hanem funkcionális.

Adatmodellezés, alapfogalmak. Vassányi István

Átírás:

BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1

Program (2) Adat (1) Objektum 1. Adatmodell A valós világ elemeinek leképezése adatokra. Az adatok között kapcsolat lehet A világ ugyanazon elemét írják le (frsz. típus) Több különböző azonban egymással össze-függésben lévő dolog leírása Tul. (frsz. típus) 2. Adatbázis-kezelő rendszer Programrendszer az adatok+kapcsolatok ellentmondás-mentes tárolására, megjelenítésére, feldolgozására Többféle leképezési mód Interaktív használat Programozhatóság az elérés biztosítása, az elérés szabályozása, a hibátlanság, ellentmondás-mentesség garanciája. BEVEZETÉS 2

1. Az adatbáziskezelő rendszerek (DBMS) funkciói 1.1 Az adatbázisok szerkezete Modellezési alapelemek adatleírásra - adattárolásra Többszintű kialakítás Külső szint (alséma) Koncepcionális szint (séma) Fizikai szint (belső szint) Vetítések, összekapcsolások (felhasználók) L1(A,B,C) L2(A,B,E,F) L3(E,F,J,K) Táblázatok (adatbázis felügyelő) T1(A,B,C,D) T2(E,F,G,A) T3(H,I,J,K,E) fizikai adatok (operációs rendszer) Az adatokhoz való hozzáférés csak a DBMS-sel 1. AZ ADATBÁZISKEZELŐ RENDSZEREK (DBMS) FUNKCIÓI 3

1.2 Speciális DBMS funkciók Indexelés Tranzakció kezelés Naplózás ( fejben elvégzett műveletek, jóváhagyás) Elkülönítés (több felhasználó) Felújítás (zárolással) Hozzáférési jogok kezelése Adatleíró nyelv (Data Definition Language) - elemdefiníció Adatkezelő nyelv (Data Manipulation Language) - adatkezelés Adatfelügyelő nyelv (Data Control Language) hozzáférés-kezelés Interaktív kezelés Adatszótár (katalógus) Automatikusan karbantartott elemdefiníciók, statisztikák, jogosultságok stb. Lekérdezhető. Központosított adattárolás Lehet osztott, kliens szerver. Fizikai (tárolásfüggetlen) és logikai (nem módosítás-érzékeny) adatfüggetlenség Segédprogramok feldolgozáshoz (jelentések, képernyők) 1. AZ ADATBÁZISKEZELŐ RENDSZEREK (DBMS) FUNKCIÓI 4

2. Az adatmodellezés alapjai 2.1 Az adatmodell fogalma (bővített pontosított definíció) Szűkebb értelemben a leírásra szolgáló adatok szerkezete (a modellezési alapelemek) Általánosabban tartalmazza az alapelemeket, az alapelemekkel végzett műveleteket és az integritási kényszereket Adatszerkezet az adatok tárolására szolgáló elemi adatok rendszere Művelet a megjelenítési igényeknek megfelelően (pl. indexek) Integritási kényszer az ellentmondásmentességet biztosító feltételek, megszorítások (pl. egyértelműség biztosítása - kulcs) 5

2.2 Egyed, egyedhalmaz Egyed - a világ egy megkülönböztetett fizikai objektuma (Egyedtípus, Entitás, Rekordtípus) Egyedhalmaz - azonos, megkülönböztetőjegyekkel jellemzett objektumok Emberek gyűjteménye Különbözőség biztosítása természetes módon (pl. személyi szám), mesterségesen (a kezelő rendszer biztosítja azonosító) Kis József 1 3312 Nagy Irén 2 3312 2. AZ ADATMODELLEZÉS ALAPJAI 6

2.3 Kapcsolat, kapcsolat-előfordulás, kapcsolattíp. Kapcsolat -Két egyedhalmaz, illetve az egyedhalmazok elemei között fennálló viszony -(a kapcsolatelőfordulások halmaza) Kapcsolat-előfordulás -Az egyedhalmazok elemei között fennálló viszony Kapcsolattípus -1:1-1:N -N:M Emberek autók Kis József ABC-123 1:N 2. AZ ADATMODELLEZÉS ALAPJAI 7

2.4 Tulajdonság, tulajdonságérték, értékhalmaz Tulajdonság - Az egyedhalmaz egyedeinek (attribútum) azon jellemzői, amelyek az egyedhalmazt definiálják vagy - az egyedhalmazok közti kapcsolatok jellemzői. Tulajdonságérték - az egyedekhez, vagy a kapcsolat-előfordulásokhoz tarozó konkrét adat Értékhalmaz - A tulajdonságok lehetséges (értéktartomány) értékei (domain) 2. AZ ADATMODELLEZÉS ALAPJAI 8

Példa Kapcsolatok Tulajdonságok Emberek (Név, Szem.szám,Szakma) Tulajdonságértékek Kapcsolat előfordulás Kis József 1 33 Mérnök, közg. Nagy Irén 2 33 Tanuló Kapcsolat előfordulások Autók(Rendszám,Típus) Kovács István 1 33 - ABC- 123 VW tulajdonos autó 1:N tulajdonos lakás N:M házastárs1 házastárs2 1:1 Egyedek Kapcsolat előfordulások Lakások (Cím, Hrsz) DEF- 456 GHJ- 789 Alfa Opel 1111 Bp. Báb Hrsz 12 1211 Bp. Vas u Hrsz 23 1031 Bp. Gát u Hrsz 45 Egyedhalmazok 2. AZ ADATMODELLEZÉS ALAPJAI 9

3. Az egyed-kapcsolat modell (E-K) (Entity-Relationship) (SSADM Structured System Analysis and Design Method alapok) Egyedhalmaz 3.1 Az EK modell tulajdonságai Egyértékű Többértékű Egyszerű Összetett Kulcstulajdonság Alaptulajdonság név minden egyednél egyetlen érték több értéket is felvehet (pl. egy anya gyerekei) nem bontható további tulajdonságokra további tulajdonságokra bontható (pl. lakcím = irszám + város + ) Az elemeket egyértelműen azonosító egyértékű tul. Létezik más tulajdonságoktól függetlenül Származtatott tul. 3. AZ EGYED-KAPCSOLAT MODELL Egyéb tulajdonságokból előállított életkor=fv(szül.dat) 10

3.2 Az EK modell kapcsolatai A kapcsolatokat 1 N Név jellel jelöljük. A kapcsolatoknak is vannak tulajdonságaik tul1 tul2 és típusuk. A kapcsolatban résztvevők száma alapján beszélünk a kapcsolat fokáról Unáris, vagy rekurzív Bináris, vagy két résztvevős Trináris: háromrésztvevős. Sz.számF Sz.számN 1 1 házasság Hrsz Cím Ir.sz Város Lakások Sz.szám N Lak.Tul M 1 Név Emberek Sz.szám Szakm Hrsz Autótul. N Autók Típus Rendszám 3. AZ EGYED-KAPCSOLAT MODELL Sz.szám Rendszám 11

Az ISA kapcsolat is a kapcsolat az egyedek közötti 1:1 megfeleltetés Pl. egy iskola tanárai és alkalmazottai a halmazok között alá- és fölérendelés az egyedhalmazok hierarchiája Az alárendelt halmaz részhalmaz, a tulajdonságok is öröklődnek. Specializáció Az egyedhalmaz részhalmazokra való bontása Explicit megadással (pl. Bp.-i és vidéki lakások megadáskor) Vagy szabállyal (pl. irszám), azaz származtatással Általánosítás Az egyedhalmazok uniója Egzisztenciálisan függő (gyenge) egyedhalmazok Ha létezése más egyedhalmaztól függ (pl. vevők, számlák) 3.3 Integritási kényszer Egyértékű kulcstulajdonság az egyedhalmazokban A valós kapcsolatok tükrözése 3. AZ EGYED-KAPCSOLAT MODELL Tanárok Alkalmazottak Egyéb alk. 12

3.4 Példák E-K modellre 3.4.1 Lemezek- szoftverek számítógépes nyilvántartása A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójuk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Adatok Lemezkód, Lemezmárka Lemez kapacitás Szoftverkód, Szoftvernév Gyártókód Gyártónév 3. AZ EGYED-KAPCSOLAT MODELL 13

Megoldás LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver 1 LemezKód L_Kapacitás Szoftverkód SZ_GY Gyártókód L_Márka N A lemezeken különböző gyártótól származó szoftverek vannak A lemezeket kapacitás és a gyártó jellemzi. A szoftvereket nevük és előállítójuk azonosítja. Egy lemezen több szoftver is lehet. Egy szoftver lehet többlemezes is. Adatok Lemezkód, Lemezmárka Lemez kapacitás Szoftverkód, Szoftvernév Gyártókód 3. AZ EGYED-KAPCSOLAT MODELL Gyártónév Gyártókód Gyártó Gyártónév 14

3.4.2 DVD kölcsönző számítógépes nyilvántartása A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal 3. AZ EGYED-KAPCSOLAT MODELL 15

Megoldás FilmKód Lemzkód Lemezkód Lemezár FilmKód Filmek Filmcím Tartalom A lemezek a filmek a kölcsönzők és a kölcsönzések adatai A filmeket a lemezeket és a kölcsönzőket kód jellemzi. Lehet egy lemezen több film és egy film több lemezen is. Egy kölcsönző több lemezt kölcsönözhet. Egy lemez egy időben egy helyen lehet csak. Adatok Filmkód Filmcím Lemezkód Lemez ár Kölcsönző kód Kölcsönző név Kölcsönző cím Elvitel Visszahozatal N Elvitel vissza M Kölcs_név Lemezek N Kölcsönz Kölcsönzők Kölcs_kód Kölcs_cím 3. AZ EGYED-KAPCSOLAT MODELL 1 Lemezkód Kölcs_kód 16

4. A relációs adatmodell Adatok valódi kétdimenziós táblázatban Az oszlopok az attribútumok (oszlophalmaz - reláció) az elemi (atomi) adattípusok az értékek A sorok a reláció előfordulások halmazát alkotják nincs két azonos sor A sorok és oszlopok felcserélhetők A relációt névvel azonosítjuk Név + attribútumok = reláció séma Az oszlopok száma a reláció fokszáma A sorok száma a reláció kardinalitása Szuperkulcs sorokat megkülönböztető oszlophalmaz Kulcs minimális elemszámú szuperkulcs Elsődleges kulcs a megkülönböztetésre választott kulcs Másodlagos kulcsok Egyszerű (egy oszlop), vagy összetett (több oszlop) Elsődleges tulajdonság valamely kulcs része 17

4.1 Egyedhalmazok a relációs modellben Az átírás szabályai 1. Tábla név = az egyedhalmaz neve 2. A tábla attribútumai = tulajdonság nevek 3. Az oszlopok értékkészlete = a tulajdonság értékkészlete 4. Tábla sorok = egyedhalmaz sorok 5. Probléma a többértékű tulajdonságok kezelése Minden tulajdonságértéket új sorba írunk, azonos atomi értékekkel 6. Ha nincs többértékű, akkor marad a kulcs, egyébként többelemű Emberek Autók Lakások Sz.szám Név Szakma Rendszám Típus Hrsz. Cím 4.2 Speciális adatértékek NULL Alapértelmezett 4. A RELÁCIÓS ADATMODELL 18

4.3 Kapcsolatok ábrázolása Az egyik reláció bővítése a másik előfordulását azonosító oszlopokkal. (Idegen kulcs) 1:1 esetén bármelyik táblázatba a másik elsődleges kulcsa 1:N esetén csak az egyikbe a másik elsődleges kulcsa N:M esetén új tábla az elsődleges kulcsokkal és a kapcsolatot jellemző tulajdonságokkal. Autók Emberek Rendszám Típus Tulaj 1:N Sz.szám Név Házastársak 1:1 1:1 Férj Feleség Lakás tulajdonosok Sz.szám Hrsz 1:1 Lakások 1:1 Szakma N:M Hrsz Cím 1:N Sz.szám Szakma 4. A RELÁCIÓS ADATMODELL 19

4.3.1 Példák E-K modell átírására 4.3.1.1 Lemezek- szoftverek számítógépes nyilvántartása LemezKód Szoftverkód Szoftverkód Szoftvernév Lemez N Tartalom M Szoftver 1 LemezKód L_Kapacitás L_Márka Szoftverkód SZ_GY N Gyártókód Gyártó Gyártókód Gyártónév 4. A RELÁCIÓS ADATMODELL 20

Megoldás Lemez Lemezkód L_márka L_kapacitás Tartalom 1:1 1:1 Lemezkód Szoftverkód Szoftver Szoftverkód Szoftvernév N:M 1:1 SZGY Szoftverkód Gyártó_kód 1:N 1:1 Gyártó Gyártó_kód Gyártó_név 4. A RELÁCIÓS ADATMODELL 21

4.3.1.2 DVD kölcsönző számítógépes nyilvántartása FilmKód Lemzkód Lemezkód Lemezár FilmKód Filmek N Filmcím Tartalom Elvitel vissza M Lemezek N Kölcsönz 1 Lemezkód Kölcs_kód Kölcsönzők Kölcs_név Kölcs_kód Kölcs_cím 4. A RELÁCIÓS ADATMODELL 22

Megoldás Filmek Filmkód Filmcím Tartalom 1:1 Filmkód Lemezkód 1:1 Lemezek Lemezkód Lemezár N:M 1:1 Kölcsönz Filmkód Kölcs_kód Elvitel Vissza 1:1 1:N Kölcsönzők Kölcs_kód Kölcs_név Kölcs_cím 4. A RELÁCIÓS ADATMODELL 23

4.4 Integritási kényszerek Az elsődleges kulcs megszorításai Egyedi értékek Nem lehet benne NULL Az idegen kulcs megszorításai hivatkozási feltétel Másik táblázat elsődleges kulcsa, vagy NULL Az adatbázis-kezelő módosításkor felügyeli Visszautasítás vagy Továbbgyűrűző, kaszkád frissítés vagy NULL értékre állítás 4.5 Relációs műveletek Halmazműveletek Azonos struktúra esetén - Egyesítés, Metszet, Különbség Csonkító műveletek Vetítés - oszlopok, Kiválasztás - sorok Kapcsoló műveletek Descartes minden mindennel, Join közös oszlopok kapcsolnak, Theta kapcsolás más szempontok alapján. Átnevezés 4. A RELÁCIÓS ADATMODELL 24

(DDL) CREATE TABLE <táblanév> (<oszlopnév> <típus> [NOT NULL] [ CONSTRAINT egyoszlopos *] [, CONSTRAINT többoszlopos **] [, ]); 5. Az SQL nyelv Tábla létrehozása CREATE TABLE CREATE TABLE Lajos0 (alma char(255) NOT NULL, körte integer); * {CONSTRAINT <név> {PRIMARY KEY NOT NULL UNIQUE } REFERENCES <tábln> [(<oszln1>, <oszln2> )]} CREATE TABLE Lajos2 (alma integer CONSTRAINT x PRIMARY KEY, körte integer CONSTRAINT y UNIQUE); CREATE TABLE Lajos4(alma integer CONSTRAINT x PRIMARY KEY, körte integer CONSTRAINT y UNIQUE, narancs integer REFERENCES Geza0(elso)); ** CONSTRAINT <név> {PRIMARY KEY (<oszlopn1>[, <oszlopn2> ]) NOT NULL (<oszlopn1>[, <oszlopn2> ]) UNIQUE (<oszlopn1>[, <oszlopn2> ]) FOREIGN KEY (<oszln1>[, <oszln2> ]) REFERENCES <táblanév> (<(oszln1>[, <oszln2> ])} CREATE TABLE Geza1(elso integer, masodik integer, CONSTRAINT y PRIMARY KEY (elso, masodik)); CREATE TABLE Lajos5 (alma integer CONSTRAINT x PRIMARY KEY, körte integer, narancs integer, CONSTRAINT sok FOREIGN KEY (körte, narancs) REFERENCES Geza1(elso,masodik)); 4. AZ SQL NYELV 25

(DDL) Index létrehozása CREATE INDEX CREATE [ UNIQUE] INDEX <indexnév> ON <táblanév> (<oszlopnév> [ASC DESC] [, <oszlopnév> [ASC DESC], ]) [ WITH { PRIMARY DISALLOW NULL IGNORE NULL}]; CREATE UNIQUE INDEX prim on Lajos0(alma ASC ) WITH IGNORE NULL; CREATE UNIQUE INDEX elso ON Geza1(elso) WITH DISALLOW NULL; (DDL) Tábla módosítása ALTER TABLE ALTER TABLE <táblanév> { ADD { COLUMN <oszlopnév> <típus> [NOT NULL] [ CONSTRAINT egyoszlopos *] CONSTRAINT többoszlopos ** } DROP { COLUMN <oszlopnév> CONSTRAINT <oszlopnév> } }; ALTER TABLE Lajos5 ADD COLUMN banan integer CONSTRAINT uj REFERENCES Geza1(elso) ; ALTER TABLE Lajos5 DROP CONSTRAINT uj; ALTER TABLE Lajos5 DROP COLUMN banan; 4. AZ SQL NYELV 26

(DDL) Kényszer hozzáadása ALTER TABLE <táblanév> ADD CONSTRAINT <név> { * **}; ALTER TABLE Lajos5 ADD CONSTRAINT pk UNIQUE(körte); (DDL) Kényszer törlése ALTER TABLE <táblanév> DROP CONSTRAINT <név>; ALTER TABLE Lajos5 DROP CONSTRAINT pk; (DDL) Index törlése DROP INDEX DROP INDEX <indexnév> ON <táblanév> DROP INDEX prim ON Lajos0; (DDL) Tábla törlése DROP TABLE DROP TABLE <név>; DROP TABLE Lajos; 4. AZ SQL NYELV 27

(DML) Lekérdezés SELECT SELECT [ ALL DISTINCT TOP n [PERCENT] ] { <kifejezés lista> * } FROM { <táblázat név> > } [másodnév] [, ] [ WHERE <kiválasztási feltétel> ] [ GROUP BY <oszlopnév lista> ] [ HAVING <kiválasztási feltétel> ] [ ORDER BY {<oszl.név> <egész áll>} [ASC DESC] [, ] ] ; Táblanév.oszlopnév vagy Táblanév!oszlopnév vagy [Tábla név]![oszlop név] vagy [Tábla név].[oszlop név] A záradékok sorrendje kötött A záradékok kiértékelési sorrendje: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. 4. AZ SQL NYELV 28

SELECT * FROM Tabla1; SELECT TOP 3 * FROM Tabla1; SELECT TOP 25 PERCENT * FROM Tabla1; SELECT Nev AS Név, Eletkor AS Életkor FROM Tabla1; SELECT Eletkor FROM Tabla1; (DML) SELECT <kifejezéslista> FROM <tábla>; SELECT DISTINCT eletkor FROM Tabla1; (DML) SELECT aggregátor(<kifejezés>) FROM <tábla>; AVG (< kifejezés> <oszlopnév>) COUNT ( * <oszlopnév>) MAX (< kifejezés> <oszlopnév>) MIN (< kifejezés> <oszlopnév>) SUM (< kifejezés> <oszlopnév>) STDEV (< kifejezés> <oszlopnév>), STDEVP (< kifejezés> <oszlopnév>) VAR ( < kifejezés>), VARP ( < kifejezés>) FIRST ( < kifejezés>), LAST ( < kifejezés>) SELECT AVG(eletkor) AS atlag FROM Tabla1; SELECT COUNT(*) AS db FROM Tabla1; SELECT MAX(eletkor+testmagassag) AS ektm FROM Tabla1; SELECT STDEV(eletkor) AS szoras FROM Tabla1; (DML) SELECT <kif.lista> FROM <tábla> WHERE <feltétel>; SELECT * FROM Tabla1 WHERE Eletkor>20; LIKE, IS, IN, BETWEEN, ANY, SOME, ALL, EXISTS, UNIQUE, LIKE *? # [ae] [!ae] [a-c] SELECT * FROM Tabla1 WHERE Nev Like "*Kiss*"; BETWEEN SELECT Nev FROM Tabla1 WHERE (Eletkor Between 15 And 36); 4. AZ SQL NYELV 29

(DML) SELECT <kif.lista> FROM <tábla> GROUP BY <kif>; Kell aggregátor SELECT ffi, Count(*) FROM Tabla1 GROUP BY FFi; SELECT Eletkor, AVG(Testmagassag) AS [atlag testmagassag] FROM Tabla1 GROUP BY Eletkor; (DML) SELECT <kif.lista> FROM <tábla> GROUP BY <kif> HAVING <feltétel>; Kell aggregátor SELECT ffi, Count(*) AS darab FROM Tabla1 GROUP BY FFi HAVING FFi ; SELECT ffi, count(*) AS db, AVG(Testmagassag) AS [atlag testmag], AVG(Eletkor) AS [atlag eletkor] FROM Tabla1 GROUP BY FFi HAVING Not FF; SELECT Tabla1.* FROM Tabla1 WHERE (Eletkor>(SELECT AVG(eletkor) FROM Tabla1)) and (Testmagassag>(SELECT AVG(Testmagassag) FROM Tabla1)); SELECT Tabla1.* FROM Tabla1, 7_atlag_eletk WHERE (Tabla1.Eletkor>[7_atlag_eletk].atlag); SELECT Nev FROM TABLA1 ORDER BY Nev DESC; (DML) összetett SELECT (DML) SELECT <kif.lista> FROM <tábla> ORDER BY <kif> [ASC DESC]; 4. AZ SQL NYELV 30

SELECT * FROM Tabla1 WHERE Eletkor>parameter; (DML) Paraméterek (DML) SELECT <kif.lista> FROM <tábla> {INNER LEFT RIGHT} JOIN ON <feltétel>; SELECT Auto.Rendszam, Auto.Tipus, Tabla1.Nev AS tulajdonos FROM Tabla1 INNER JOIN Auto ON Tabla1.Azonosító=Auto.Tulaj; SELECT Auto.Rendszam, Auto.Tipus, Tabla1.Nev AS tulajdonos FROM Tabla1 LEFT JOIN Auto ON Tabla1.Azonosító=Auto.Tulaj; TRANSFORM Avg(Tabla1.Testmagassag) AS AvgOfTestmagassag SELECT Tabla1.Eletkor FROM Tabla1 GROUP BY Tabla1.Eletkor PIVOT Tabla1.Nev; UNION (DML) TRANSFORM <aggregátor> <SELECT utasítás> PIVOT <oszlopnév> [IN (<érték1>, [<érték2> [, ]])]; SELECT * FROM Tabla1 WHERE Eletkor>30 UNION SELECT * FROM Tabla1 WHERE Eletkor<20; (DDL) Halmaz 4. AZ SQL NYELV 31

(DDL) INSERT, DELETE CREATE TABLE Tabla (Azonosító COUNTER Primary Key, Nev CHAR(50), FFi BIT, Eletkor Integer, Testmagassag Integer) ; INSERT INTO Tabla VALUES (1, "Nagy Lajos", TRUE, 12, 165); INSERT INTO Tabla SELECT * FROM tabla1; DELETE * FROM Tabla; (DML) UPDATE SET UPDATE Tabla1 SET Eletkor = Eletkor * 2 WHERE FFI; 4. AZ SQL NYELV 32