Adatbázisok-SQL Dr. Viczián Gergely (Dr. Török János V2.0)

Slides:



Advertisements
Hasonló előadás
Tananyag: konzultáció
Advertisements

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.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
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.
Microsoft Access Lekérdezések.
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ő.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
Adatbázisok / SQL v 2.1 Viczián Gergely (eredeti: Török János 2004)
SQL – DQL (Data Query Language ) adat lekérdezések
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
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 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 SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
Nézettáblák létrehozása, módosítása és törlése
- 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.
SQL.
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;
1 Informatikai Szakképzési Portál Adatbázis kezelés Alapfogalmak.
DDL – Adatdefiníciós nyelv
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
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.
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-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.
SQL.
Adatbázis rendszerek I Relációs adatmodell strukturális része Általános Informatikai Tsz. Dr. Kovács László.
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.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
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.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
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-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.
Készítette: Kiss András
Adatbázisok SQL.
Kovács Gergely Péter Bevezetés
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

Adatbázisok-SQL Dr. Viczián Gergely (Dr. Török János V2.0)

Tartalom Egy kis adatbázis történelem Relációs Adatbázis-kezelők Mi az SQL? SQL alapjai parancsok lekérdezés lekérdezési terv variációk (Lotus, Access) Adatbiztonság

Az adatbázisok története „data base” 1963 (~data bank) Charles Bachman – szekv. feldolg. felváltása 1970 E. F. Codd 12 szabálya relációs model 1978 Vulcan CP/M (dBASE) 1979 Oracle 2 1981 Tate és Lashlee dBASE-II PC assembly 1984 dBASE-III (89 / 92 / 99 modosítások) 1986 SQL ANSI és ISO szabvány lesz XML ~ adatbázis + dokumentum

Relációs adatbáziskezelők „RDBMS” Edgar Frank „Tedd” Codd szabályai 0. Reláció kizárólag csak kezelésre Az egységes megjelenésű információ szabálya Garantált lokalizálhatóság szabálya (tábla, oszlop, sor/kulcs) A NULL értékek egységes kezelése (egységes) A rel. modell alapján aktív online katalógust kell üzemben tartani A teljeskörű „adatnyelv” szabálya (lineáris, interaktív, adat) A nézetek frissítésének szabálya Magas szintű beszúrás, frissítés és törlés (egyidejű) Fizikai szintű adatfüggetlenség Logikai szintű adatfüggetlenség Jóság (integritás) függetlenség (adatkorlát, jóság kezelése) Elosztástól való függetlenség (változások, lekérdezések) Megkerülhetetlenség szabálya (alacsony szintű megkerülés)

dBASE USE bertabla REPLACE ALL fizetes WITH fizetes * 1.1 FOR vezeto > 0 LIST ALL nev, beosztas, fizetes TO PRINT

Relációs adatbázis Relációs adatmodell (Codd szabályok) alapján létrehozott adatbázis részei: Felhasználók, jogosultsági rendszerek Táblák Nézetek Indexek (bináris fa) Megszorítások Eljárások, függvények Triggerek Azonos szerkezetű rekordok: táblázat minden oszlop rögzített típusú alap, vagy null érték Automatikus programok változások véglegesítése üres mezők kitöltése integritás biztosítása indexek létrehozása dialektus, más programnyelv

SQL Structured Query Language Általános leíró nyelv adatbázis elérésére, módosítására Relációs adatbázis kezelők elterjedt nyelve ANSI szabvány… Sokféle programtámogatás: Visual Basic (MsSQL) Java PL/SQL ACCESS php (MySQL) A dBASE nem SQL!

SQL hátrányai... Nem igazi relációs adatbázis modell A szintaxis komplikált Sokszor igen hosszú parancsok születnek, amelyek nehezen törhetők darabokra A különböző implementációk kicsit eltérnek egymástól (pl. Oracle és Access) Ékezetes problémák bizonyos megvalósításokban

Az SQL alapjai 1. Lekérdezés Adatmanipuláció Adatleírás (CREATE VIEW) SELECT Adatmanipuláció UPDATE DELETE INSERT INTO Adatleírás CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEX Az olvashatóság miatt írjuk nagybetűvel a parancsokat COMMIT/ROLLBACK

AZ SQL alapjai 2. Lekérdezés Amire kíváncsiak vagyunk Lekérdezés SELECT [any/distinct all/distinct/top/distinctrow] { oszlopok } [AS alias1, alias2,…] FROM táblakifejezés [,…] [IN külső adatbázis] [INNER/LEFT/RIGHT JOIN …] [WHERE ….] [GROUP BY …] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] nincs/van ismétlődés Megjelenített táblázat fejléccíme van/nincs ismétlődés/első n/ nincs dupla sor Lehet az oszlopok után is írni Csak ACCESS, a vizuális összekapcsolás miatt Táblázat/ok Szűrési feltétel Csoportosítás (összeg, átlag) Csoportosítás utáni szűrési feltétel Az eredmény rendezését adja meg

Példa SELECT Fokonyv_2K4.Sorsz, Fokonyv_2K4.Datum, Fokonyv_2K4.[Brutto(Tart)], Fokonyv_2K4.[Brutto(Kov)], Fokonyv_2K4.[KP/Bank], [Brutto(Tart)]-[Brutto(Kov)] AS akt FROM Fokonyv_2K4 WHERE (((Fokonyv_2K4.Datum)<=[vegnap]));

Összetettebb példa  SELECT SQL_CALC_FOUND_ROWS base.actiroleID AS col0, actiID, actiName AS col1, actiState AS col3, wbseID, wbseName AS col4, flowID, flowName AS col6, actiPriority AS col8, atypAbr AS col9, actiID AS col10, IF(ISNULL(actiRealStart) OR actiRealStart='0000-00-00',actiPlannedStart,actiRealStart) AS col11, actiPlannedEnd AS col12, IF(ISNULL(actiPlannedEnd) OR actiPlannedEnd='0000-00-00','',IF((ISNULL(actiRealEnd) OR actiRealEnd='0000-00-00') AND actiPlannedEnd>=CURRENT_DATE,'',TO_DAYS(IF(ISNULL(actiRealEnd) OR actiRealEnd='0000-00-00',CURRENT_DATE,actiRealEnd))-TO_DAYS(actiPlannedEnd))) AS col13 FROM TQactirole as base left join TQacti AS acti on (actiID=base.actiroleActiID) left join TQwbse AS wbse on (wbseID=actiWbseID) left join TQflow AS flow on (wbseFlowID=flowID) left join TQatyp AS atyp on (atypID=actiATypID) WHERE actiWbseID>-1 and (flowFCatID<1 or ISNULL(flowFCatID)) AND (base.actiroleRoleID IN ('22')) AND (ISNULL(actiPlannedEnd) OR actiPlannedEnd<=CURDATE()+INTERVAL 7 DAY) AND (actiState='3' OR (3=3 AND actiState<>2) OR (3=4 AND actiState<>0)) GROUP BY actiID ORDER BY col12 asc LIMIT 0,30

Lekérdezési terv A keresés végeredményét általában tovább analizáljuk A kapott halmazt (eredmények különböző táblákból) egy kurzor segítségével tudjuk tovább olvasni

Fontosabb különbségek Adattípusok NUMERIC-NUMBER DATE  Oracle-ben dátum és idő is, máshol csak dátum időnként van nem sztenderd típus is Gyors keresésnél néha csak pontos találat lehetséges, míg máshol nem Helyettesítések (%_ (Oracle) *?#[a-z](Access)) Programozási kiterjesztések

Programozás Visual Basic for ACCESS Flexibilis lekérdezések formokkal! Sub test() Dim s As String s=”SELECT ….” DoCmd.RunSQL s End Sub Flexibilis lekérdezések formokkal!

PHP @ $db = mysql_pconnect('localhost', 'root', ''); if (!$db) { echo 'Nem konnektál!'; exit; } mysql_select_db('gergo'); $q = "SELECT tartuser.userid as uid, tartuser.nev, sum( tartitem.osszeg ) as ossz , max( tartitem.datum ) as utolso" ." FROM tartuser, tartitem" ." WHERE tartitem.userid = tartuser.userid" ." GROUP BY tartitem.userid" ." ORDER BY ossz desc"; $res = mysql_query($q); $n = mysql_num_rows($res); $ossz=0; echo '<table border=1>'; echo ‘<tr><td>Név</td>'; echo '<td>Tart</td>'; echo '<td>Utsó</td>'; echo '</tr>'; for ($i=0;$i<$n; $i++) { $row = mysql_fetch_array($res); if($row['ossz']!=0) { echo '<tr>'; echo '<td><a href=user.php?id='.$row['uid'].'&wr=1>'.$row['nev']‘; echo ‘</a></td>'; echo '<td>'.$row['ossz'].'</td>'; $ossz+=$row['ossz']; echo '<td>'.substr($row['utolso'],5).'</td></tr>'; echo "<tr><td>Összesen:</td><td>$ossz</td><td></td></tr>";

Adatbiztonság Az adatbázis feladata Rendszergazda/főnök feladata minden esemény naplózása összeomlás után automatikus helyreállás hibás adatok kiszűrése Rendszergazda/főnök feladata biztonsági másolat készítése jogosultságok beállítása/ellenőrzése biztonsági frissítések figyelése, különösen webes alkalmazásnál auditálás