SQL 1 SEQUEL, Structured English Query Language: SQL ANSI, ISO: SQL86, SQL89, SQL92. Alap (entry), közbenső (intermediate), teljes (full) szint. A DDL.

Slides:



Advertisements
Hasonló előadás
10. gyakorlat SQL SELECT.
Advertisements

Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
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.
1 Informatikai Szakképzési Portál Adatbázis kezelés Az SQL nyelv elemei.
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.
15. tétel Adatbázis felhasználói és jogosultságaik
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
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.
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
SQL – DQL (Data Query Language ) adat lekérdezések
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis rendszerek II.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
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
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 :
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
- 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;
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 Véső Tamás Véső Tamás OE­NIK / 29.
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.
DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.
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.
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.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
1 Informatikai Szakképzési Portál Adatbázis kezelés DQL – Adatlekérdező nyelv.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázisok gyakorlat
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 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.
SQL.
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.
1 SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok.
Adatbázis rendszerek II.
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

SQL 1 SEQUEL, Structured English Query Language: SQL ANSI, ISO: SQL86, SQL89, SQL92. Alap (entry), közbenső (intermediate), teljes (full) szint. A DDL nyelvi komponenssel létrehozhatók és módosíthatók a különböző relációk, domainek és integritási feltételek. DML csoport utasításaival elvégezhető a táblázatokban tárolt adatok módosítása, törlése és az új adatok felvitele. Lekérdező utasítások: Query. Az SQL: - relációs RDBMS kezelő nyelv szabvány, nem RDBMS, - relációs algebrán alapszik, - szöveges, nem algoritmikus, előíró jellegű utasításokat tartalmaz, - halmazorientált, - négy utasításcsoportot tartalmaz: - adatdefiníciós, DDL, - adatlekérdező, Query, - adatkezelő, DML, - adatvezérlő, DCL, - kiadható interaktívan és algoritmikus környezetbe építve.

SQL DDL 2 A példáknál használt táblák: AUTO TULRSZTIPSZINEVJAR bkx720Opelbordo cmt111Golfpiros aaa156Trabifeher lui999Opelkek kjs234Ladakek EMBER IDNEVSZULEVCIM Bela1975Budapest 2Geza1979Miskolc 3Feri1974Pecs

SQL DDL 3 Táblák létrehozása: CREATE TABLE táblanév (m1 t1 [i1][,..., mi ti [ii]],[ig]); ii integritási feltétel: UNIQUE, NOT NULL UNIQUE (m1 [,m2..,mi]) Adattípusok: CHAR (n) : n hosszúságú szöveg NUMBER (n [,m]) : n hosszú számjegy, melyből m a tizedesjegyek hossza DATE : dátum CREATE TABLE AUTO (TUL NUMBER(3) NOT NULL, RSZ CHAR(7) NOT NULL UNIQUE, TIP CHAR(10), SZIN CHAR(10), EVJ NUMBER(4), AR NUMBER(8)); CREATE TABLE EMBER (ID NUMBER(3) NOT NULL UNIQUE, NEV CHAR(20), SZULEV NUMBER(4), CIM CHAR(20));

SQL DDL 4 Tábla törlése: DROP TABLE táblanév; Pl. DROP TABLE auto; View létrehozása: CREATE VIEW viewnév [(m1 [,m2...,mi])] AS műveletsor; Pl. CREATE VIEW auto2 AS SELECT rsz FROM auto WHERE tip LIKE 'Fiat%'; View törlése: DROP VIEW viewnév;

SQL DML 5 Rekordok felvitele: INSERT INTO táblanév VALUES (e1 [,e2...,ei]); Pl. INSERT INTO auto VALUES (3,'bhk546','Fiat','kek',1989,NULL); INSERT INTO táblanév műveletsor; A művelet egy SELECT lekérdezési utasítás lehet.

SQL DML 6 Rekordok törlése: DELETE FROM táblanév [ WHERE feltétel]; A feltételben logikai műveletek: AND, OR, NOT és relációs operátorok: =, >, =,, BETWEEN, IN, LIKE, IS NULL o1 BETWEEN o2 AND o3 o1 IN (o2 [,o3...,oi]) o1 LIKE 'sssss' [ESCAPE 'x'] Az 'sssss' mintában: % : egy tetszőleges karaktersorozatot helyettesít _ : egyetlen egy karaktert helyettesít o1 LIKE 'DOS^_%' ESCAPE '^'

SQL DML 7 o1 IS NULL o1 NOT BETWEEN o2 AND o3 o1 NOT IN (o2 [,o3...,oi]) o1 NOT LIKE 'sssss' [ESCAPE 'x'] o1 IS NOT NULL Az relációs operátorok operandusai, az o1,o2,..., oi értékei jelenthetnek konstansokat, és jelenthetnek mezőket is. Az operátorok nagy része különböző rendszerspecifikus függvényben valósul meg. Pl. DELETE FROM auto WHERE tip LIKE 'Trabant%' OR ar < ; DELETE FROM auto; (Minden rekordot töröl!)

SQL DML 8 Rekordok módosítása: UPDATE táblanév SET m1=e1 [,m2=e2...,mi=ei] [WHERE feltétel]; Pl. UPDATE auto SET ar = 1.25*ar WHERE tip LIKE 'Fiat%';

SQL SELECT 9 Projekció: SELECT m1 [,m2...,mi] FROM táblanév; Pl. SELECT rsz FROM auto; RSZ bkx-720 cmt-111 aaa-156 lui-999 kjs-234 SELECT nev,cim FROM ember; NEV CIM Bela Budapest Geza Miskolc Feri Pecs

SQL SELECT 10 SELECT * FROM auto; ID NEV SZULEV CIM Bela 1975 Budapest 2 Geza 1979 Miskolc 3 Feri 1974 Pecs SELECT DISTINCT tip FROM auto; TIP Golf Lada Opel Trabi Kiterjesztés: SELECT rsz, tip, ar/ FROM auto;

SQL SELECT 11 Szelekció: SELECT.... FROM... WHERE feltétel; Pl. SELECT rsz FROM auto WHERE szin = 'piros'; RSZ cmt-111 SELECT nev FROM ember WHERE szulev<1977; NEV Bela Feri

SQL SELECT 12 SELECT * FROM auto WHERE szin<>'piros'; TUL RSZ TIP SZIN EVJ AR bkx-720 Opel bordo aaa-156 Trabi feher lui-999 Opel kek kjs-234 Lada kek SELECT * FROM ember WHERE szulev BETWEEN 1975 AND 1980; ID NEV SZULEV CIM Bela 1975 Budapest 2 Geza 1979 Miskolc

SQL SELECT 13 SELECT rsz FROM auto WHERE szin IN ('piros','kek','zold'); RSZ cmt-111 lui-999 kjs-234 SELECT * FROM ember WHERE cim IS NULL; ID NEV SZULEV CIM SELECT * FROM ember WHERE nev LIKE 'G%'; ID NEV SZULEV CIM Geza 1979Miskolc

SQL SELECT 14 SELECT * FROM ember WHERE nev LIKE '_eza%'; ID NEV SZULEV CIM Geza 1979 Miskolc SELECT * FROM ember WHERE nev LIKE '%ez%'; ID NEV SZULEV CIM Geza 1979 Miskolc SELECT nev,2004-szulev FROM ember; NEV 2004-SZULEV Bela 29 Geza 25 Feri 30

SQL SELECT 15 SELECT tip, ar/150 FROM auto; TIP AR/ Opel Golf Trabi Opel 3000 Lada SELECT... FROM... [WHERE...] ORDER BY k1 [ASC|DESC][,k2 [ASC|DESC]...,ki[ASC|DESC]]; Pl. SELECT * FROM auto WHERE szin<>'piros' ORDER BY szin DESC, tip; TUL RSZ TIP SZIN EVJ AR kjs-234 Lada kek lui-999 Opel kek aaa-156 Trabi feher bkx-720 Opel bordo

SQL SELECT 16 Csoportképzés: MIN(k) : minimumérték MAX(k) : maximumérték AVG(k) : átlagérték SUM(k) : összeg COUNT(k): darabszám SELECT... FROM... [WHERE...] GROUP BY k [ORDER BY..]; Pl. SELECT tip, AVG(ar) FROM auto GROUP BY tip; SELECT... FROM... [WHERE...] GROUP BY... HAVING feltétel [ORDER BY..]; Pl. SELECT tip, AVG(ar) FROM auto GROUP BY tip HAVING AVG(ar) < ;

SQL SELECT 17 SELECT AVG(evj) FROM auto; AVG(EVJ) SELECT MIN(evj) FROM auto; MIN(EVJ) SELECT SUM(ar) FROM auto; SUM(AR)

SQL SELECT 18 SELECT tip, COUNT(tip) FROM auto GROUP BY tip; TIP COUNT(TIP) Golf 1 Lada 1 Opel 2 Trabi 1 SELECT tip, AVG(ar) FROM auto GROUP BY tip; TIP AVG(AR) Golf Lada Opel Trabi

SQL SELECT 19 SELECT tip,AVG(evj) FROM auto GROUP BY tip HAVING AVG(evj)>1986; TIP AVG(EVJ) Lada 1989 Opel 1991 SELECT tip FROM auto WHERE szin='kek' GROUP BY tip HAVING AVG(evj)>1990; TIP Opel

SQL SELECT 20 SELECT tip FROM auto GROUP BY tip ORDER BY COUNT(*); TIP Golf Lada Trabi Opel

SQL SELECT 21 Join: SELECT * FROM táblanév1, táblanév2; CREATE TABLE ember (kod NUMBER(4), nev CHAR(30), cim CHAR(30)); (az ember tábla kissé módosítva) SELECT rsz, nev, cim FROM auto, ember WHERE tulaj = kod; SELECT auto.rsz, ember.nev, ember.cim FROM auto, ember WHERE auto.tulaj = ember.kod; SELECT a.rsz, e.nev, e.cim FROM auto a, ember e WHERE a.tulaj = e.kod;

SQL SELECT 22 Példák: SELECT a.rsz, e.nev FROM auto a,ember e WHERE a.tul = e.id; RSZ NEV bkx-720 Bela cmt-111 Bela kjs-234 Bela aaa-156 Geza lui-999 Feri SELECT a.rsz,e.nev FROM auto a,ember e WHERE a.evj < 1991 AND a.tul = e.id; RSZ NEV cmt-111 Bela kjs-234 Bela aaa-156 Geza

SQL SELECT 23 SELECT e.nev,COUNT(*) FROM ember e, auto a WHERE a.tul = e.id GROUP BY e.nev; NEV COUNT(*) Bela 3 Feri 1 Geza 1 SELECT e.nev FROM ember e, auto a WHERE a.tul = e.id GROUP BY e.nev HAVING COUNT(*)>1; NEV Bela

SQL SELECT 24 Allekérdezés (subquery): Egy lekérdezés szelekciós feltételében hivatkozhatunk egy másik lekérdezés eredményére, amit allekérdezésnek (subquery) neveznek. Az allekérdezést mindig zárójelben kell megadni. Az allekérdezés formailag megegyezik a normál SELECT utasítás alakjával, de az allekérdezésben nem használható a rendezett kiírást előíró ORDER BY opció. Az allekérdezés eredménye több rekordot is tartalmazhat, ezért csak a halmazokat kezelő operátorokat és logikai kvantorokat használhatunk a feltételekben: IN, EXISTS, NOT EXISTS, ANY, ALL. EXISTS (allekérdezés) Ha az allekérdezés eredménytáblája nem üres, akkor a fenti kifejezés igaz értéket ad vissza. Tagadása: NOT EXISTS (allekérdezés) Pl. SELECT e.nev FROM ember e WHERE NOT EXISTS (SELECT * FROM auto a WHERE a.tulaj=e.kod); SELECT e.nev FROM ember e WHERE e.kod NOT IN (SELECT a.tulaj FROM auto a); {optimalizálható!}

SQL SELECT 25 kif reláció_operátor ANY (halmaz) akkor igaz értékű, ha a halmaznak legalább egy elemére igaz értékű a kif reláció_operátor halmezelem kifejezés. kif reláció_operátor ALL (halmaz) akkor ad igaz értéket, ha a halmaznak minden elemére teljesül a kif reláció_operátor halmezelem kifejezés. Pl. SELECT nev, cim FROM ember WHERE id IN (SELECT tul FROM auto WHERE szin = 'kek'); NEV CIM Bela Budapest Feri Pecs

SQL SELECT 26 SELECT nev,cim FROM ember WHERE id NOT IN (SELECT tul FROM auto); NEV CIM SELECT * FROM auto WHERE ar < (SELECT AVG(ar) FROM auto); TUL RSZ TIP SZIN EVJ AR cmt-111 Golf piros aaa-156 Trabi feher kjs-234 Lada kek SELECT * FROM auto a WHERE a.ar > ANY (SELECT b.ar FROM auto b); TUL RSZ TIP SZIN EVJ AR bkx-720 Opel bordo cmt-111 Golf piros lui-999 Opel kek kjs-234 Lada kek

SQL SELECT 27 Két azonos felépítésű tábla egymáshoz fűzhető: SELECT... UNION SELECT...; A bemutatott opciók, lehetőségek bizonyítják, hogy milyen rugalmasan használható az SQL SELECT utasítása, és kellő kreativitással szinte minden lehetséges lekérdezési igény kielégíthető. Az SQL prescriptív jellege miatt ismernünk kell az elvégzendő műveleteket, mielőtt kiadnánk a megfelelő SQL utasítást. Összetettebb esetekben különböző utakon is el lehet jutni az eredménytáblákhoz, de ezek a végrehajtás hatékonyságában esetleg különbözhetnek egymástól.

SQL DCL 28 Az adatbázis több felhasználó információit együttesen tárolja, ezért az RDBMS-nek kell gondoskodnia arról, hogy mindenki csak a jogosult műveleteket végezhesse el, csak a jogosult adatokhoz férhessen hozzá. A SQL rendszerekben minden objektumnak van egy tulajdonosa, mégpedig az a felhasználó, aki azt létrehozta. A táblákon elvégezhető műveleteket jogosultság ellenőrzése szempontjából az alábbi csoportokba bontjuk: SELECT : tábla lekérdezése INSERT : tábla bővítése DELETE : tábla rekordjainak törlése UPDATE(m1 [,m2...,mi]) : tábla rekordjainak módosítása ALL { az előző négyet jelenti } Az jogosultságok megadása a GRANT utasítással történik, melyben meg kell adni, hogy mely táblára, mely műveleteket és kinek engedélyezünk: GRANT művelet ON táblanév TO felhasználó [WITH GRANT OPTION];

SQL DCL 29 A kiadott jogosultságok megszüntetése a REVOKE utasítással végezhető, melyben meg kell adni a felhasználót, a visszavont műveleteket és a vonatkozó táblát is. Az utasítás alakja: REVOKE művelet ON táblanév FROM felhasználó; Az a felhasználó vonhatja vissza a jogosultságokat, akinek joga van azt adományozni, azaz a tulajdonos. Pl. GRANT SELECT ON auto TO gi476; REVOKE ALL FROM gi476;

SQL DCL 30 A vezérlő utasításokhoz tartoznak a műveletvégrehajtást szabályozó, úgynevezett tranzakció kezelő utasítások is. A tranzakció sikeres befejezésének utasítása: COMMIT; Hatására a korábban végrehajtott tevékenységek véglegesítődnek, megőrződnek az adatbázisban. A ROLLBACK; utasítás hatására a korábbi tevékenységek érvénytelenítődnek, mintha ki sem adtuk volna őket. Ezzel hibával félbeszakadt vagy hibás műveletsort lehet töröltetni.

SQL VIEW példák 31 CREATE VIEW embaut AS SELECT a.rsz, a.tip, e.nev FROM auto a, ember e WHERE a.tul = e.id; SELECT * FROM embaut; RSZ TIP NEV bkx-720 Opel Bela cmt-111 Golf Bela aaa-156 Trabi Geza lui-999 Opel Feri kjs-234 Lada Bela SELECT nev FROM embout WHERE tip LIKE ‘O%’; NEV Bela Feri DROP VIEW embaut;