Adatbzis rendszerek I Az SQL nyelv elemei II
Adatbázis rendszerek I Az SQL nyelv elemei II Általános Informatikai Tsz. Dr. Kovács László
SQL Objektumok védelme: engedélyezés: GRANT művelet ON objektum TO felhasználó | PUBLIC WITH GRANT OPTION; visszavonás: REVOKE művelet ON objektum FROM felhasználó ; GRANT INSERT, DELETE ON AUTO TO PUBLIC KL
SQL Tranzakció kezelés: Véglegesítés, elfogadás: COMMIT; Visszavonás: REVOKE ; Tranzakció kezdete DDL utasítások AUTOCOMMIT KL
SQL Operátorok: = !=, <> <, > >=, <= IN NOT IN IS NULL IS NOT NULL SELECT NEV FROM OSZTALY WHERE OKOD NOT IN (SELECT OSZT FROM DOLGOZO WHERE BEOSZT = ‘TITKAR’ AND NEV IS NOT NULL) KL
SQL Operátorok: EXISTS LIKE BETWEEN op ANY op ALL SELECT NEV FROM IRO WHERE EXISTS (SELECT KOD FROM KONYV WHERE CIM LIKE ‘%SZIV%’ AND IRO. KOD = KONYV. IRO) SELECT NEV FROM IRO WHERE KOD <> ALL (SELECT IRO FROM KONYV WHERE AR < 100000) KL
SQL Domain CREATE DOMAIN dnev AS tipus DEFAULT ertek CONSTRAINT CHECK (feltétel); DROP DOMAIN dnev; CREATE DOMAIN NEM AS CHAR(1) DEFAULT ‘N’ CONSTRAINT CHECK (NEM IN (‘F’, ’N’)); CREATE TABLE DOLGOZO (KOD NUMBER(3) PRIMARY KEY, NEV CHAR(30) NOT NULL, NEME NEM); KL
SQL Szinonímák CREATE SYNONYM snev FOR teljesnév; DROP SYNONYM snev; Felhasználói SYSTEM Globális feltétel CREATE ASSERTION anev CHECK (feltétel); DROP ASSERTION anev; CREATE ASSERTION ell CHECK (NOT EXITS (SELECT KOD FROM EMBER WHERE KOD NOT IN (SELECT TULAJ FROM AUTO)) ); KL
SQL DML és SELECT INSERT INTO tnev SELECT-parancs; INSERT INTO tnev VALUES (mezo=(SELECT. . ), . . ); UPDATE tnev SET mezo = (SELECT …) WHERE INSERT INTO UTAZOK SELECT KOD, NEV FROM DOLGOZOK WHERE BIDO < TO_DATE(‘YYYY. MM. DD’, ’ 1985. 01’); INSERT INTO DOLGOZO VALUES(FIZ = (SELECT MAX(FIZ) + 1000 FROM DOLGOZO), NEV=‘K. B’, . . ); UPDATE OSZT O 1 SET LETSZAM = (SELECT COUNT(*) FROM DOLGOZO D 1 WHERE D 1. OSZT = O 1. KOD); KL
SQL SELECT mező függvények CAST (kif AS tipus) NVL(kif 1, kif 2) CASE WHEN kif 1 IS NOT NULL ertek 1 WHEN kif 2 IS NOT NULL ertek 2 ELSE ertekn END mezőnév RTRIM(kif) SELECT NEV, CASE WHEN FIZ IS NOT NULL FIZ WHEN FIZ IS NULL 0. 0 END FIZTETES FROM DOLGOZO WHERE RTRIM(VAROS) = ‘MISKOLC’; KL
SQL Ideiglenes táblák CREATE GLOBAL | LOCAL TEMPORARY TABLE tnev (mezo 1 tip 1 ifelt 1, …. ); Tábla feltöltése létrehozáskor: CREATE. . . TABLE tnev (mezo 1 tip 1 ifelt 1, …. ) AS SELECT. . . ; CREATE TABLE REGIDOLGOZO (KOD NUMBER(3) PRIMARY KEY, NEV CHAR(30) NOT NULL, NEME NEM) AS SELECT KOD, NEV, NEME FROM DOLGOZO WHERE KOR>52; KL
SQL Származtatott táblák dolgozo munkában állók B bérügy családosak szociális osztály A C Szinkronizáció problémája KL
SQL SNAPSHOT CREATE SNAPSHOT stnev (mezo 1 tip 1 ifelt 1, …. ) REFRESH FAST | COMPLETE START WITH kidő NEXT nidő AS SELECT …; Előnyök Hátrányok CREATE SNAPSHOT CSALADOSAK REFRESH COMPLETE NEXT ‘SYSDATE + 7’ AS SELECT * FROM DOLGOZO WHERE GYEREKSZAM > 0; KL
SQL VIEW CREATE VIEW vnev (mezo 1 tip 1 ifelt 1, …. ) AS SELECT …; Virtuális tárolás Előnyök Hátrányok CREATE VIEW BENNLEVOK AS SELECT * FROM DOLGOZO WHERE BETEGSZAB IS NULL; SELECT * FROM BENNLEVOK WHERE BEOSZT = ‘A’; KL
SQL VIEW felhasználása: - adathozzáférés egyszerűsítése - programok áttekinthetősége - védelem DOLGOZO Nem DNEVEK igen CREATE VIEW DNEVEK AS SELECT NEV, BEOSZT FROM DOLGOZO KL
SQL Index CREATE INDEX inev ON tnev (mezo 1 ASC|DESC, …. ); DROP INDEX inev; A rekordelérések meggyorsítása Automatikus felhasználás Explicit vagy implicit Hatékonyság és indexdarabszám CREATE INDEX I 1 ON DOLGOZO (NEV ASC, KOR DESC); SELECT * FROM DOLGOZO WHERE NEV = ‘BALOGH’; KL
SQL Sequence CREATE SEQUENCE snev INCREMENT BY ert CYCLE MAXVALUE ertek. . ; Adatbázis szintű számláló. snev. NEXTVAL snev. CURRVAL Felhasználható az INSERT, SELECT utasításban Helyettesiti az AUTOINCREMENT mezőtípust CREATE SEQUENCE sz 1 CYCLE; INSERT INTO DOLGOZO VALUES (sz 1. NEXTVAL, ’PETER’, . . ); KL
SQL Szabvány és RDBMS SQL Számos kiegészítő funkció CREATE TABLE tnev (mezo 1 tipus 1 ifelt 1, …, ifelt) PCTREE ertek PCTUSED ertek INITTRANS ertek MAXTRANS ertek TABLESPACE ertek STORAGE INITIAL ertek NEXT ertek MINEXETENS ertek MAXEXTENS ertek PCTINCREASE ertek FREELIST ertek CLUSTER knev (mezo 1, . . ) DISABLE kif AS SELECT …; KL
SQL Egyéb adatbázis objektumok: - trigger - job - alert - tárolt eljárás - tárolt függvény - felhasználó - profile - role - schema - database link - replication - cluster - lock. . . KL
SQL változatok interaktív SQL program CLI-SQL E-SQL PL-SQL T-SQL KL
- Slides: 19