Bevezetés: az SQL-be

Hasonló dokumentumok
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

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

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

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

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

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

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

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Információs rendszerek Adatbázis-kezelés

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

Bevezetés: Relációs adatmodell

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

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

Az SQL adatbázisnyelv: DML

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

SQL DDL-2 (aktív elemek) triggerek

Relációs algebra 2.rész példák

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

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

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

Bevezetés: Relációs adatmodell

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

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

Bevezetés: Relációs adatmodell

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

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

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

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

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

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Adatbázis tartalmának módosítása. SQL DML utasítások

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

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

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

Adatbázis használat I. 5. gyakorlat

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

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

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

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

Relációs algebra 1.rész alapok

SQL parancsok feldolgozása

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

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

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

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

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

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

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

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

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

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

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

Az adatbázisrendszerek világa

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

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

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

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

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

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

Adatbázisok* tulajdonságai

BEVEZETÉS Az objektum fogalma

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Adatbázis Rendszerek II. 3. SQL alapok

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

Relációs adatbázisok tervezése ---2

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

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

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

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

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

Tranzakciókezelés PL/SQL-ben

Haladó DBMS ismeretek 1

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

Adatbázisok biztonsága

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


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

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

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis rendszerek SQL nyomkövetés

Adatbázisok-1 előadás

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

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

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

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

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

Java és web programozás

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

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

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

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

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

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

Magas szintő adatbázismodellek

Tankönyv példák kidolgozása

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Átírás:

Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben SEQUEL) uis az SQL előfutára IBM fejlesztette ki a 70-es években: SEQUEL SQL más is volt pl. Ingres : QUEL (ez kalkulus alapú lekérdezés) Szabványok (ANSI, ISO) SQL86, SQL89, SQL92 (SQL2), SQL:1999 (SQL3), SQL: 2003, SQL:2006, SQL:2008 Nyelvjárások (Oracle, Sybase, DB2, Progress, MSSQL, mysql, SQL Server, PostgreSQL, Access, ) Az SQL megvalósítások között vannak különbségek, gyakorlatokon az Oracle SQL-t nézzük meg részletesen. 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

SQL fı komponensei Sémaleíró nyelv, DDL (Data Definition Language) CREATE, ALTER, DROP Adatkezelő nyelv, DML (Data Manipulation Language) INSERT, UPDATE, DELETE, SELECT -- Az SQL elsődlegesen lekérdező nyelv (Query Language) SELECT utasítás (az adatbázisból információhoz jussunk) Adatvezérlő nyelv, DCL (Data Control Language) GRANT, REVOKE Tranzakció-kezelés COMMIT, ROLLBACK, SAVEPOINT Procedurális kiterjesztések Oracle PL/SQL (Ada alapján), SQL/PSM (PL/SQL alapján) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Adatbázis relációsémák definiálása Az SQL használata szerint építjük fel az előadást, vagyis a Tk.2.3. fejezete után a Tk.6.SQL fejezetével folytatjuk, majd visszatérünk újra a megszorításokra (Tk.7.fejezet) Az SQL tartalmaz adatleíró részt (DDL), az adatbázis objektumainak a leírására és megváltoztatására. Objektumok leíró parancsa a CREATE utasítás. A relációt az SQL-ben táblának (TABLE) nevezik, az SQL alapvetően háromféle táblát kezel: Alaptáblák (permanens) CREATE TABLE Nézettáblák CREATE VIEW (ezt később nézzük) Átmeneti munkatáblák (WITH utasítás is később) Alaptáblák megadása: CREATE TABLE 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Tábla/reláció sémák SQL-ben A legegyszerűbb formája: CREATE TABLE relációnév ( Attribútum deklarációk listája, További kiegészítések ); Az attribútum deklaráció legalapvetőbb elemei: Attribútumnév típus [kiegészítő lehetőségek] -- itt: a típus olyan, amit az SQL konkrét megvalósítása támogat (gyakorlaton Oracle környezetben nézzük meg), Típusok, pl: INTEGER, REAL, CHAR, VARCHAR, DATE -- A kiegészítő lehetőségek például [PRIMARY KEY] vagy [DEFAULT érték] (köv.lapon példa) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Példa: sörivók adatbázis Sörök(név, gyártó) Sörözők(név, város, tulaj, engedély) Sörivók(név, város, tel) Kedvel(név, sör) Felszolgál(söröző, sör, ár) Látogat(név, söröző) Az aláhúzás jelöli a kulcsot (a sorok a kulcs összes attribútumán nem vehetik fel ugyanazt az értékeket). -- Ez a kulcs, külső kulcs és hivatkozási épség megszorításoknak lesz később kiváló példája. 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Egyszerő példák táblák létrehozására CREATE TABLE Sörözık ( név CHAR(20), város VARCHAR2(40), tulaj CHAR(30), engedély DATE DEFAULT SYSDATE ); CREATE TABLE Felszolgál ( sörözı CHAR(20), sör VARCHAR2(20), ár NUMBER(10,2) DEFAULT 100 ); 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Az SQL értékekrıl (bıvebben gyakorlaton) INTEGER, REAL, stb, a szokásos értékek, számok. STRING szintén, de itt egyes-aposztróf közé kell tenni a szöveget (vagyis nem macskaköröm közé). Két egyes-aposztróf = egynek felel meg, például Joe s Bar megfelel a Joe s Bar szövegnek. Bármely érték lehet NULL (erről később a 6.1.fejezetben) DATE és TIME típusok is vannak az SQL-ben. A dátum formátumát meg kell adni DATE yyyy-mm-dd Például: DATE 2007-09-30 (2007. szept. 30) Az idő formátumát is meg kell adni TIME hh:mm:ss Például: TIME 15:30:02.5 (délután fél 4 múlt két és fél másodperccel) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Kulcs megadása PRIMARY KEY vagy UNIQUE Nincs a relációnak két olyan sora, amely a lista minden attribútumán megegyezne. Kulcs esetén nincs értelme a DEFAULT értéknek. Kulcsok megadásának két változata van: Egyszerű kulcs (egy attribútum) vagy Összetett kulcs (attribútumok listája) (példákat lásd a következő oldalon) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Egyszerő kulcs megadása Ha a kulcs egyetlen attribútum, akkor ez az attribútum deklarációban megadható <attribútumnév> <típus> PRIMARY KEY vagy <attribútumnév> <típus> UNIQUE Példa: CREATE TABLE Sörök ( ); név gyártó CHAR(20) UNIQUE, CHAR(20) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Összetett kulcs megadása Ha a kulcs több attribútumból áll, akkor a CREATE TABLE utasításban az attribútum deklaráció után a kiegészítő részben meg lehet adni további tábla elemeket: PRIMARY KEY (attrnév 1, attrnév k ) Példa: CREATE TABLE Felszolgál ( sörözı CHAR(20), ); sör ár VARCHAR2(20), NUMBER(10,2), PRIMARY KEY (sörözı, sör) 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

PRIMARY KEY vs. UNIQUE Csak egyetlen PRIMARY KEY lehet a relációban, viszont UNIQUE több is lehet. PRIMARY KEY egyik attribútuma sem lehet NULL érték egyik sorban sem. Viszont UNIQUE-nak deklarált attribútum lehet NULL értékű, vagyis a táblának lehet olyan sora, ahol a UNIQUE attribútum értéke NULL vagyis hiányzó érték. Köv.ea: 6.1.fejezetben: NULL az SQL lekérdezésnél adjuk meg hogyan kell ezzel a speciális értékkel gazdálkodni, hogyan lehet NULL-t kifejezésekben és hogyan lehet feltételekben használni. Itt csak: kulcsok, majd idegen kulcsok megadása lesz. Később, a 7.fejezetben visszatérünk a megszorításokra, arra is, hogy milyen lehetőségeink vannak a hivatkozási épség fenntartására, valamint további megszorításokra. 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Idegen kulcsok megadása Még egy kiegészítő lehetőség Mi köthet össze két táblát? Idegen kulcs (foreign key) megadása Az egyik tábla egyik oszlopában szereplő értékeknek szerepelnie kell egy másik tábla bizonyos attribútumának az értékei között. A hivatkozott attribútumoknak a másik táblában kulcsnak kell lennie! (PRIMARY KEY vagy UNIQUE) Példa: Felszolgál(söröző, sör, ár) táblára megszorítás, hogy a sör oszlopában szereplő értékek szerepeljenek a Sörök(név, gyártó) táblában a név oszlop értékei között. 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Idegen kulcs megadása: attribútumként REFERENCES kulcsszó használatának két lehetősége: attribútumként vagy sémaelemként lehet megadni. 1.) Attribútumként (egy attribútumból álló kulcsra) PÉLDA: CREATE TABLE Sörök ( név CHAR(20) PRIMARY KEY, gyártó CHAR(20) ); CREATE TABLE Felszolgál ( sörözı CHAR(20), sör CHAR(20) REFERENCES Sörök(név), ár REAL ); 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Idegen kulcs megadása: sémaelemként 2. Sémaelemként (egy vagy több attr.-ból álló kulcsra) FOREIGN KEY (attribútum lista) REFERENCES relációnév (attribútum lista) PÉLDA: CREATE TABLE Sörök ( név CHAR(20), gyártó CHAR(20), PRIMARY KEY (név) ); CREATE TABLE Felszolgál ( sörözı CHAR(20), sör CHAR(20), ár REAL, FOREIGN KEY(sör) REFERENCES Sörök(név) ); 02B_BevSQLsemak // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15