Az Oracle SQL 1. Az első lépések.

Slides:



Advertisements
Hasonló előadás
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Advertisements

Tananyag: konzultáció
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Delphi programozás alapjai
SQL Structured Query Language
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis alapú rendszerek
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 4. Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
2006. október 2.Markó Tamás, PTE TTK1 Az Oracle SQL 5. Nézettáblák létrehozása, módosítása és törlése.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Összesítés és csoportosítás lekérdezésekben. Halmazműveletek.
Nézettáblák létrehozása, módosítása és törlése
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
Az SQL nyelv alapjai.
DML. Új rekord beszúrása: INSERT INTO tábla (oszlop1,oszlop2,…) VALUES (érték1,érték2,…); Rekord módosítása: UPDATE tábla SET oszlop = érték WHERE feltétel;
szakmérnök hallgatók számára
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis használat I. 2. gyakorlat.
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
SQL.
A gyakorlatok munkakörnyezete
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
SQL történelem 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az.
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Adatbázis-kezelés.
Előadás másolata:

Az Oracle SQL 1. Az első lépések

Történelem 1. E. F. Codd, 1970: relációs adatmodell ("A Relational Model of Data for Large Shared Data Banks", Communications of the ACM) P. Chen, 1976: kiterjeszti a kulcsok halmazelméleti leírásával IBM, 1976: adatbázisgép tervének közzététele Alapja az „R” adatbázis Kidolgozói Codd és Chen

Célkitűzések IBM-nél A tárolás módja és a logikai adatszerkezet független legyen egymástól Külön adatbázisnyelv, ami szabványosítja az adatszerkezet definiálását az adatok kezelését az adatok biztonságára vonatkozó előírásokat Az adatkezelő utasítások az „adatbevitel - módosítás - törlés” logikáját követik, a fizikai műveleteket elrejtik Munkájuk eredménye a SEQUEL nyelv (Structured English Query Language) tervezői: D. D. Chamberlin, R. F. Boyce

Történelem 2. A SEQUEL név később SQL-re rövidül Hosszú csend, nincs jelentős fejlesztés az IBM-nél (védik a piacon lévő termékeiket?) Relational Software, 1979: az SQL első, kereskedelemben hozzáférhető megvalósítása Új cégek jelennek meg saját relációs adatbáziskezelővel és SQL-lel: 1983: Oracle (adatbáziskezelőjük: Oracle) 1984: Relational Co. (adatbáziskezelőjük: Informix)

Történelem 3. 1986: ANSI szabvány az SQL alaputasításaira (SQL-86, vagy SQL-1) 1987: ISO szabvány az SQL alaputasításaira (SQL-87) Új cégek, növekvő verseny, az IBM is erősít 1989: második ISO szabvány az SQL-re, újabb területeket szabványosít (SQL-89) 1992: harmadik ISO szabvány az SQL-re (SQL-92, vagy SQL-2)

Történelem 4. 1996: a tárolt eljárások és függvények szabványosítása 1999: ISO szabvány (SQL-1999, vagy SQL-3) 2003: ISO szabvány (SQL-2003) 2006: ISO szabvány (SQL-2006) A szabványok kompromisszumok, csak a meglévő gyakorlatot szentesítik! Minden megvalósítás tartalmaz eltéréseket!

Illik tudni... Az Oracle egy cég neve, 1983-ban alakult Többféle programtermékük is van Ezek közül a legismertebb az Oracle adatbázis-kezelő Különböző operációs rendszerekre létezik Az idők során több verziója is elkészült Mi az Oracle 9i-t használjuk

Ismerkedési lehetőségek Kipróbálás céljából a teljes rendszer letölthető ingyenesen az Oracle honlapjáról (www.oracle.com) A teljes (angol nyelvű) dokumentáció elérhető az Interneten több helyen is Nálunk a címe: http://www.ttk.pte.hu/oracle/ Az Oracle Press és az O’Reilly könyvei

A „gyári” dokumentáció fontosabb könyvei Error Messages Master Glossary Master Index SQL Reference SQL*Plus User’s Guide and Reference

Az SQL nyelv bemutatása

Az Oracle adatbázis csak SQL nyelvű utasításokkal érhető el! Az SQL jelentősége Az Oracle adatbázis csak SQL nyelvű utasításokkal érhető el!

Az SQL nyelv fontosabb formai jellemzői A kulcsszavakban nincs különbség a kis- és nagybetű között select, Select, SELECT egyenértékű Az utasítások végén pontosvessző van Az utasítások szabadon széttörhetők több sorra

Az utasítások szerkezete Követik a beszélt nyelv logikáját, kiolvasva értelmes, kerek angol mondatokat kapunk Az utasítások szakaszokra (záradék, clause) oszthatók minden szakaszt jellemző kulcsszó vezet be az egyes szakaszok pontosítják az utasítás tárgyát és a végrehajtás feltételeit

Példa SQL utasításra SELECT vevokod, nev1, telefon FROM vevok alaputasítás SELECT vevokod, nev1, telefon FROM vevok WHERE nev1 LIKE ‘K%’ ORDER BY nev1, vevokod; WHERE- szakasz: válogatás ORDER BY szakasz: a rendezés megadása

Az utasítások fajtái Adatdefiníciós: CREATE, ALTER, DROP DDL, data definition language Adatkezelési: SELECT, INSERT, UPDATE, DELETE DML, data manipulation language Adatbiztonsági: GRANT, REVOKE DCL, data control language Kiegészítő utasítások az egyes megvalósításokban a tárolás előírása az adatmentés és a visszatöltés elvégzése a működés körülményeinek beállítása

Create Adatbázis objektum létrehozása CREATE TABLE Szamla ( Szamlaszam NUMERIC(24), Tulajdonos VARCHAR(60), Nyitas DATE, Allapot VARCHAR(1), PRIMARY KEY (Szamlaszam) );

Alter Adatbázis-objektum módosítása ALTER TABLE Szamla MODIFY Szamlaszam VARCHAR(26);

DROP Egy adatbázisbeli objektum (index) megszüntetése DROP INDEX Szamla_1; Egy adatbázisbeli objektum (tábla) megszüntetése DROP TABLE egy_tabla;

COMMENT Megjegyzést fűz egy adatbázis-objektumhoz COMMENT ON TABLE Szamla IS 'Ügyfelek bankszámlaszámai'; COMMENT ON COLUMN Szamla.Allapot IS 'Számla állapota: "N" – Normál, "D" – Törölve';

Select leggyakrabban használt utasítás inkább deklaratívnak tekinthető, mint procedurálisnak az adatok egy halmazát válogatja ki a halmaz általában szekvenciálisan olvasható különleges jelzés, EOF – End of File BOF – Beginning of File

Select akiknek egynél több aktív bankszámlája van SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos HAVING COUNT(*) > 1 ORDER BY Tulajdonos

Több Select Az eredményhalmaz oszlopait kell itt felsorolni SELECT Vevo.Nev, (SELECT SUM(Osszeg) FROM Rendeles WHERE VevoID = Vevo.ID) RendelesOsszeg

Összetett Select a legnagyobb árbevételű munkáinkat SELECT munka_szám FROM munka WHERE óraszám*óradíj = ( SELECT max(óraszám*óradíj) FROM munka );

Select/from mely adatbázis-táblákból szeretnénk összegyűjteni az adatokat ? SELECT * FROM Beteg, Kezeles

Select/from minden beteghez csak a hozzá tartozó kezelést SELECT * FROM Beteg KEY JOIN Kezeles definiált külső kulcs a Kezeles tábláról a Beteg táblára !!!! Az orcle ezt nem támogatja, még akkor sem, ha van külső kulcs

Select/Where A Boole-algebra kifejezései használhatók, OR, AND és NOT operátorokkal

Select/Where Szűrési feltételeket fogalmaz meg = szűkíti az eredmény halmazt SELECT * FROM Beteg, Kezeles WHERE Beteg.ID = Kezeles.BetegID AND Kezeles.Datum = CURRENT DATE

Select/ GROUP BY Egyes sorok összevonását, csoportosítását írja elő az eredménytáblában SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos Csoportosítás a tulajdonos alapján, COUNT(*) egy-egy csoport sorainak számát adja vissza, az összevonás előtt

Select/Having Szűrés a csoportosítás utáni eredményhalmazra SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos HAVING COUNT(*) > 1 csak azok a csoportok jelennek meg, amelyek egynél több sorból lettek összevonva

Select/Order By az eredményhalmaz rendezését adja meg SELECT * FROM Beteg ORDER BY Szuletes DESC születési dátum szerint sorba rendezve, elöl a legfiatalabbal

Case select app_id,budget_info_type,amount from acq_budget_info CASE WHEN logikai vizsgálat THEN kifejezés ha igaz .. ELSE kifejezés ha az előzőekre nem illeszkedik A logikai vizsgálat eredményétől függően vezérelhetjük, hogy mit szeretnénk az adott oszlopban látni select app_id,budget_info_type,amount from acq_budget_info

Case A lekérdezés transzponáltja select APP_ID, max(net_income), max(gross_income), max(bonus) from ( select APP_ID, case when BUDGET_INFO_TYPE='net_income' then amount else null end as net_income, case when BUDGET_INFO_TYPE='gross_income' then amount else null end as gross_income, case when BUDGET_INFO_TYPE='bonus' then amount else null end as bonus, from acq_budget_info) xx group by APP_ID

Lekérdezési terv Query plan Az adatbázis kezelők eltérő algoritmusokat használnak (pl: * és @) Az eltérések a változókezelés, elágazások, ciklusok kezelése, kivételkezelés stb. vannak Gyakori a szabály-alapú (rule-based) (relációs adatbázis szerkezetét), és a költség-alapú (cost-based),(átlagát, szórását )

Insert Adatokat ad hozzá egy táblához INSERT INTO Szamla (Szamlaszam, Tulajdonos, Nyitas, Allapot) VALUES (123456, 'H. Kovács Géza', '1996.05.14.', 'N');

Update Módosítást hajtunk végre UPDATE Szamla SET Allapot = 'D' WHERE Szamlaszam = 123456;

Delete Törlés végzünk DELETE FROM Beteg WHERE TAJ = '123 456 789';

Egyéb utasítások Tudunk bonyolultabb algoritmusokat is írni Pl: például komoly adatkezelési feladatokat szeretnénk az ügyfél-oldalról a kiszolgáló-oldalra áthelyezni csak egyszerűsíteni akarjuk a programozást, pl a TAJ számból kiszedni a szóközöket

Jelentős különbségek SQL-ben Az Oracle rendszereiben nincs NUMERIC, helyette a NUMBER-t kell használni Az Oracle nem támogatja a VARCHAR-t, helyette a VARCHAR2-t javasolja Az Oracle nem támogatja a LONG VARCHAR-t, helyette a CLOB-ot javasolja Az Oracle-ben a DATE dátumot és időt is tartalmazhat, más rendszerekben ez csak dátum lehet

Jelentős különbségek SQL-ben SELECT-FROM szakaszba írt összekapcsolási utasításokat, mások csak a SELECT-WHERE-ben fogadják el SELECT * FROM Beteg KEY JOIN Lelet SELECT * FROM Beteg, Lelet WHERE Beteg.ID = Lelet.BetegID

Jelentős különbségek SQL-ben gyors keresésnél csak a teljesen pontosan beírt keresőkérdésre találják meg a választ, néhol figyelni kell a kis- és nagybetűkre, valamint az ékezetek helyes használatára (Oracle, Firebird) Ahol egyenrangúak (Sybase Ase, Sybase ASA)

Jelentős különbségek SQL-ben From nélküli Select SELECT SYSDATE SQL kiszolgálók esetében nem működik, mivel a FROM náluk kötelező nyelvi elem!! az Oracle minden adatbázisában szerepelteti a DUAL táblát, amelynek egyetlen rekordja van. Így Oracle SQL-ben ezt kell írnunk SELECT SYSDATE FROM DUAL

Az SQL utasítások feldolgozása Az alkalmazás egy SQL utasítást (szöveg!) küld az adatbázisba Az adatbázis ellenőrzéseket végez: szintaxis a hivatkozott objektumok megléte, az adattípusok helyessége jogosultság Az adatbázis elvégzi a kért utasítást Adatokat és / vagy állapot-információkat ad vissza SQL utasítás adatbázis alkalmazás adatok

A kliens-server környezet Az adatbáziskezelő egy szerveren fut (nálunk Linux alatt) A használatához a kliens gépekre megfelelő programot kell telepíteni megfelelő módon elküldi az SQL utasításokat fogadja az adatbázisból érkező adatokat Az Oracle által szállított hagyományos kliens program az SQL*Plus Újabb, kényelmesebb az SQL Developer Mindkettő többfajta operációs rendszerre is létezik

Az utasítások végrehajtásának követése Az SQL utasítások végrehajtási módjáról és annak hatékonyságáról felvilágosítást lehet kérni További információk a gyári dokumentációban: SQL*Plus User’s Guide and Reference, 9. fejezet: Tuning SQL*Plus

Az Oracle munkakörnyezete

Objektumok egy adatbázisban 1. Tábla (adattábla, table): az adatok tárolási helye Nézet (nézettábla, view): meglévő táblákból kiválogatott / származtatott adatokat „tartalmaz” (inkább: szolgáltat) táblaként kezelhető mint a választó lekérdezés Accessben Index: az adatok gyors visszakeresését segítő segéd-információk Sorozat (sequence): egyedi egész értékeket szolgáltat hasonló szerep, mint a számláló adattípusnak Accessben

Objektumok egy adatbázisban 2. Tárolt eljárások (function, procedure, package): PL/SQL nyelven írt, az adatbázisban tárolt és az adatbázis-szerveren futó eljárások / függvények / programcsomagok Trigger: különleges PL/SQL eljárás nem az alkalmazás hívja, hanem bizonyos adatbázis-események (pl. rekord beszúrása) hatására automatikusan elindul ellenőrzésre, az integritás biztosítására használjuk Az újabb Oracle verziók a PL/SQL mellett a Java használatát is támogatják

A DUAL tábla Az Oracle specialitása Egy sora és egy oszlopa van Minden felhasználónak van rá SELECT jogosultsága Jól használható számítások végrehajtatására vagy függvények kiértékelésére SELECT 2+3 FROM DUAL; SELECT USER, SYSDATE FROM DUAL;

A TNSNAMES.ORA fájl Egyszerű szövegfájl A hagyományos kliensprogramok esetében minden kliensgépen megtalálható (pl. a C:\oracle\ora92\network\Admin-ban) Az adatbázisok nevéhez megadja a hálózati helyet A karbantartásához külön program is van: Start menü / Programok / Oracle - OraHome92 / Configuration and Migration Tools / Net Manager

A SCOTT felhasználó Az Oracle telepítésekor egy minta-adatbázis is telepíthető: egy SCOTT nevű felhasználó TIGER jelszóval néhány tábla adatokkal Nagyon sok Oracle példa hivatkozik ezekre az adatokra

A DEPT tábla A SCOTT felhasználó táblája DEPT: department (részleg) DEPTNO: department number (a részleg száma) DNAME: department name (a részleg neve) LOC: location (helység)

Az EMP tábla A SCOTT felhasználó táblája EMP: employee, alkalmazott EMPNO: employee number, az alkalmazott kódja ENAME: employee name, az alkalmazott neve JOB: munkakör MGR: manager, a főnökének a kódja HIREDATE: belépési dátum SAL: salary, fizetés COMM: commission, ??? DEPTNO: department number (a részleg száma)

A példa-adatbázis szerkezete

A példa-adatbázis szerkezete A Stolnicki-könyvből átvéve, egyszerűsítve A mezőtípusok az Oracle lehetőségeihez igazítva vevők rendelések cikktörzs a rendelések tételei

A vevők adatai (VEVOK tábla)

A rendelések adatai (RENDEL tábla)

A rendelések tételei (RTETEL tábla)

A cikkek adatai (CIKK tábla) sql01 első lépések