Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Az SQL nyelv elemei 1 / 36. Az SQL nyelv elemei 2 / 36 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Az SQL nyelv elemei.

Hasonló előadás


Az előadások a következő témára: "Az SQL nyelv elemei 1 / 36. Az SQL nyelv elemei 2 / 36 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Az SQL nyelv elemei."— Előadás másolata:

1 Az SQL nyelv elemei 1 / 36

2 Az SQL nyelv elemei 2 / 36 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Az SQL nyelv elemei

3 3 / 36 Az SQL, azaz Structured Query Language (strukturált lekérdezőnyelv) relációs adatbázis-kezelők lekérdezési nyelve. Angol nyelvterületen 'eszkjuel' a kiejtése. A hagyományokhoz való hűség jegyében sokan 'szíkvel'-nek ejtik, ugyanis korábban Structured English Query Language (SEQUEL) volt az elnevezés, és ezt rövidítették le. Mi is az az SQL

4 Az SQL nyelv elemei 4 / 36 Alapjait az IBM-nél fektették le, még az 1970-es években (SEQUEL). Elvi alapot a relációs adatmodell szolgáltatott, amit Edgar F. Codd 12 szabállyal írt le. Az IBM, az Oracle és más gyártók is érdekeltek voltak egy szabványos lekérdező nyelv kifejlesztésében, amivel a relációs adatbázisok „programozhatók” lehettek. Az iparági összefogással létrejött ANSI NCITS (National Committee on Information Technology Standards) H2 csoport lerakta az SQL alapjait. Az SQL története

5 Az SQL nyelv elemei 5 / 36 A szabványt az ANSI (Amerikai Nemzeti Szabványügyi Intézet – American National Standards Institute) 1986-ban, az ISO (International Organization for Standardization) 1987-ben jegyezte be. Az első változatot SQL86 néven szokták emlegetni. Az SQL-t folyamatosan továbbfejlesztették, hat jelentős kiadást különböztetünk meg: SQL86, SQL89, SQL92, SQL99, (v. más néven: SQL3) SQL:2006, SQL:2008 Az SQL története

6 Az SQL nyelv elemei 6 / 36 Az SQL egy szabványosított lekérdező nyelv, melyet több relációs adatbáziskezelő ismer, különböző operációs rendszeri környezetben. Az SQL nem algoritmikus nyelv, nem tartalmaz algoritmus szerkezeteket (elágazás, ciklus stb.). Az SQL tulajdonágai

7 Az SQL nyelv elemei 7 / 36 Az SQL halmaz orientált nyelv, mely a relációkon dolgozik. A halmaz orientáltság azt jelenti, hogy nem kell definiálni a művelet végrehajtásának lépéseit, hanem a feladat nem eljárás szerű megfogalmazását kell megadni, melyek a reláció vagy relációk kiválasztott sorain hajtódnak végre. Az SQL tulajdonágai

8 Az SQL nyelv elemei 8 / 36 Az SQL felhasználási lehetőségei Az SQL nyelv két felhasználási lehetősége: önálló SQL, vagy 4. generációs eszközbe építve beágyazott SQL Az SQL nyelv önálló felhasználása esetén csak a nyelv utasításai állnak rendelkezésre. Ilyen eszközök a jelentés készítő, az űrlap készítő vagy menü készítő lehet. A beágyazott SQL esetén egy harmadik generációs algoritmikus nyelvbe (C, PL/SQL, Pascal FORTRAN, PHP stb.) ágyazva alkalmazzuk az SQL nyelv elemeit.

9 Az SQL nyelv elemei 9 / 36 Az SQL a következő elemekre osztható: Adat definiciós nyelv (Data Definition Language – DDL), Adatmanipulációs nyelv (Data Manipulation Language, DML), Lekérdező nyelv (Data Query Language – DQL), Adatvezérlő nyelv (Data Control Language, DCL). Az SQL utasítások kulcsszavakból (SQL names, keywords), azonosítókból, műveleti jelekből, literálokból (számszerű, dátumjellegű, szöveges konstansok) állnak. Minden utasítást pontosvesszővel kell lezárni. Az SQL elemei

10 Az SQL nyelv elemei 10 / 36 Adattípusok a DBASE IV-ben A dBase IV öt alapmezőtípust támogat: Numerikus (N)Numerikus (N) Szöveges (C)Szöveges (C) Dátum (D)Dátum (D) Logikai (L)Logikai (L) Memo (M)Memo (M) A dBase nyelv gyakorlatilag az adatbázisokkal egyidõs, egyike a legelsõ adatbáziskezelõ nyelveknek. Mint ilyen, nem is tekinthetõ igazán programozási nyelvnek, pusztán az adatbázisokon gyakran végzett műveletek leírására és fájlban való rögzítésére szolgáló eszköznek. Ez volt az első széleskörben elterjedt adatbázis kezelő program. Az alap ötlet Wayne Ratliff-tól származik aki 1978-ban assembly-ben írt egy adatbázis programot (még CP\M alá) hogy segítse az irodai futball-házibajnokságot. dBase II was the first widely used database management system (DBMS) for microcomputers. (1981–1983) dBASE III was the first release written in the C programming language to make it easier to support and port to other platforms. (1983–1985) dBASE IV The new version was going to be more powerful, faster, easier to create databases with, improved indexes, networkable, support SQL internally as well as interact with SQL Server, and would include a compiler. (1988–1990)

11 Az SQL nyelv elemei 11 / 36 Adattípusok a DBASE IV-ben Karakteres (C): Max 254 hosszú tetszőleges szöveges adat karakterenként egy byte-on ASCII kódban helyigény szöveg hossza + 2 byte. Numerikus (N): Előjeles számok ábrázolására alkalmas. Az egyetlen, matamatikai műveletek végrehajtására alkalmas típus. Dátum (D): 8 karakter hosszú (hónap/nap/év). Értelmezettek rajta bizonyos alapműveletek pl. egészszám hozzáadása ill kivonása egy dátumból, vagy dátumok összegének, különbségének meghatározása) Logikai (L): Tetszőleges kétértékű adat tárolására. Mérete 1 byte. Memo (M): Tetszõleges karakteres szöveges adat tárolására alkalmas. A felső határát a használt szerkesztő határozza meg. Az adatbázisban mindig 10 karakternyi helyet foglal el. A tartalom maga külön.dbt kiterjesztésű fájlban tárolódik.

12 Az SQL nyelv elemei 12 / 36 SQL adattípusok MS Acces 2003 Adattípus Tárolási méret Leírás BINARYKarakteren- ként 1 bájt Bármilyen adat tárolására alkalmas. Az adatokon semmilyen átalakítás nem történik (például szöveggé alakítás). Az adatok kimenetként később is a bináris mezőbe való beíráskor megadott formában jelennek meg. BIT1 bájtYes és No értékeket, valamint mindig két lehetséges érték egyikét tartalmazó mezők. MONEY8 bájtRögzített tizedes jegyű számok a következő értékhatárok között: – ,5808 és ,5807

13 Az SQL nyelv elemei 13 / 36 SQL adattípusok MS Acces 2003 Adattípus Tárolási méret Leírás REAL4 bájtEgyszeres pontosságú lebegőpontos szám a következő határok közt: – 3,402823E38 és – 1,401298E-45 között negatív értékek esetén, + 1,401298E-45 és + 3,402823E38 között pozitív értékek esetén, és 0. FLOAT8 bájtDupla pontosságú lebegőpontos szám a következő határok között: – 1, E308 és – 4, E-324 negatív értékek esetén, + 4, E-324 és + 1, E308 között pozitív értékek esetén, és 0.

14 Az SQL nyelv elemei 14 / 36 SQL adattípusok MS Acces 2003 Adattípus Tárolási méret Leírás TINYINT1 bájt0 és 255 közötti egész szám. SMALLINT2 bájtKisebb egész szám – és között. INTEGER4 bájtNagyobb egész szám – és között. DECIMAL17 bájtPontos numerikus adattípus, amelynek értékei és között lehetnek. Megadhatja mind a pontosságot (a szám hány jegyet tartalmaz: 1-28), mind pedig a tizedesjegy- pontosságot (hány tizedes jegyet tartalmaz: 0 - megadott pontosság). Az alapértelmezés szerinti pontosság: 18, a tizedesjegy-pontosság pedig nulla.

15 Az SQL nyelv elemei 15 / 36 SQL adattípusok MS Acces 2003 Adattípus Tárolási méret Leírás DATETIME (Lásd: DOUBLE) 8 bájtA 100. és év közé eső dátum- vagy időpontérték. UNIQUE- IDENTIFIER 128 bitEgyedi azonosítószám távoli eljáráshívásokhoz. TEXT2 bájt/ karakter Nulla és 2,14 GB közötti terjedelmű. IMAGESzükség szerinti Nulla és 2,14 GB közötti terjedelmű. OLE objektumok esetén használatos. CHARACTER2 bájt/ karakter Nulla és 255 karakter közötti terjedelmű.

16 Az SQL nyelv elemei 16 / 36 A példák olvasása A parancsok ismertetésénél NAGY betűvel az SQL parancsokon belüli fix szöveg, kisbetűvel a felhasználó által megadható részek, [ ] szögletes zárójelbe a parancsok elhagyható részei,... (három pont) az előző rész ismételhetőségére utal, | (függőleges vonal) jelet az egymást kizáró paraméterek közé, ezek közül csak egy adható meg.

17 Az SQL nyelv elemei 17 / 36 Segítségével hozhatjuk létre illetve szüntethetjük meg a relációkat, az indexeket illetve a nézet táblázatokat. A nézet táblázat az adatbázisban fizikailag nem létező relációs műveletek (szelekció, projekció, összekapcsolás, halmazműveletek) segítségével létrehozott táblázat, mely a relációkhoz hasonlóan kezelhető Az adat definíciós nyelv

18 Az SQL nyelv elemei 18 / 36 A relációk létrehozása CREATE TABLE reláció_név (attribútum_név adattípus [(szélesség)] [NOT NULL]. (attribútum_név adattípus [(szélesség)] [NOT NULL].... ); Névadási szabályok: a névben csak az angol ABC betűi, a számjegyek és az _, #, $ karakterek szerepelhetnek ??? a névnek betűvel kell kezdődnie a neveknek hatáskörükön belül egyedinek kell lennie (nem lehet egy adatbázisban két azonos nevű reláció, egy relációban két azonos nevű attribútum, stb.) Adatdefiniáló utasítások

19 Az SQL nyelv elemei 19 / 36 Táblák módosítása ALTER TABLE reláció_név ADD attribútum_név adattípus [(szélesség)]; Teljes táblák törlése DROP TABLE reláció_név; Nézettáblák létrehozása, módosítása, törlése létező reláción vagy relációkon végrehajtott művelet eredményét tartalmazó olyan új táblázat, amely mögött a valóságban nem áll megfelelő táblázat CREATE VIEW nézettábla_név [alias_név, alias_név...] AS lekérdezés; Adatdefiniáló utasítások

20 Az SQL nyelv elemei 20 / 36 Az SQL adatmanipulációs része biztosítja a relációk feltöltését, az attribútumok módosítását és a sorok törlését. Az adatmanipulációs nyelv

21 Az SQL nyelv elemei 21 / 36 Új sorok beszúrása INSERT INTO táblanév [(mező_név_1, mező_név_2,...)] VALUES (érték, érték,...); A mezők tartalmának módosítása UPDATE reláció_név SET attribútum_név = érték, attribútum_név = érték,... [WHERE feltétel]; Sorok törlése DELETE FROM reláció_név [WHERE feltétel]; Az adatmanipulációs utasítások

22 Az SQL nyelv elemei 22 / 36 A lekérdező nyelv egyetlen utasításból (SELECT) áll, mely számos alparancsot tartalmazhat, és a lekérdező utasítások többszörös mélységben egymásba ágyazhatók. Figyelem! A szelekció művelete és a SELECT utasítás csak nevében hasonló, egymásnak nem felelnek meg. A lekérdező nyelv

23 Az SQL nyelv elemei 23 / 36 SELECT [DISTINCT] oszloplista SELECT [DISTINCT] oszloplista projekció FROM táblanév_lista FROM táblanév_lista Descartes-szorzat [WHERE feltétel] [WHERE feltétel] szelekció [GROUP BY oszloplista] [GROUP BY oszloplista] csoportosítás [HAVING feltétel] [HAVING feltétel] csoport-feltétel [ORDER BY oszloplista]; [ORDER BY oszloplista]; rendezés A projekció során egy tábla oszlopai közül csak bizonyosakat őrzünk meg az eredmény táblában. A szelekció művelete során egy relációból csak az adott feltételt kielégítő sorokat őrizzük meg az eredmény relációban A lekérdező utasítás

24 Az SQL nyelv elemei 24 / 36 A és B direkt szorzatának eredményeképpen olyan számpárokat kapunk, amelyek-nek első tagja A-nak eleme, második tagja B-nek eleme. Descartes (direkt) szorzat A123A123 B78B78 A × B {1,7} {1,8} {2,7} {2,8} {3,7} {3,8}

25 Az SQL nyelv elemei 25 / 36 A reláció szó „eredetileg” kapcsolatot jelent, és a matematikában a reláció alatt több alaphalmaz Descartes szorzatának egy részhalmazát értik. Minden tábla a hozzá tartozó rekordtípus elméletileg lehetséges előfordulásainak egy részhalmazát tartalmazza, ahol minden rekordelőfordulás a mezőkhöz tartozó domain halmazokból tartalmaz egy-egy elemet az egyes mezőiben, így egy rekordelőfordulás nem más, mint a domain halmazok Descartes szorzatának egy eleme. Így maga a tábla, vagy reláció nem más, mint a domain halmazok Descartes szorzatának egy részhalmaza, tehát a tábla, a reláció matematikai értelemben is megfelel a reláció definíciójának. Descartes (direkt) szorzat A domain alatt a mező által felvehető értékek halmazát értjük.

26 Az SQL nyelv elemei 26 / 36 Descartes (direkt) szorzat

27 Az SQL nyelv elemei 27 / 36 A SELECT utasítás alapváltozata: SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel]; A felsorolt táblák Descartes-szorzatából szelektáljuk a feltételnek eleget tévő sorokat, majd ezekből projekcióval választjuk ki az eredménytábla oszlopait. A DISTINCT opciót akkor kell kiírni, ha az azonos sorokból csak egyet kívánunk megtartani. Ha az oszloplista helyére * karaktert írunk, ez valamennyi oszlop felsorolásával egyenértékű. A SELECT legegyszerűbb változatával adattábla listázását érhetjük el. ( SELECT * FROM Diak; ) A lekérdező utasítás

28 Az SQL nyelv elemei 28 / 36 SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel]; A WHERE záradékban feltételt kell megadni, és csak a feltételnek megfelelő sorokat válogatja ki. A kifejezések elemei lehetnek oszlopok nevei, operátorok, mezőkre vonatkozó függvények. Csak azonos típusú kifejezéseket hasonlíthatunk össze (pl. numerikust numerikussal stb.). Ha több feltételt is megadunk akkor meg kell adni a feltételek közötti viszonyt is az AND, az OR és a NOT szavakkal. A lekérdező utasítás

29 Az SQL nyelv elemei 29 / 36 SELECT [DISTINCT] oszloplista FROM táblanévlista [WHERE feltétel]; <> ==!=<>Az összehasonlításra használható operátorok:, =, =, valamint nem egyenlő: != vagy <>. mezőnév BETWEEN érték1 And érték2Egy mező értéke, két határérték között van-e? mezőnév BETWEEN érték1 And érték2 mezőnév IN (érték1, érték2, …)Adott értékek között van-e: mezőnév IN (érték1, érték2, …) mezőnév LIKE mintaMegfelel-e a mintának: mezőnév LIKE minta *?#[karakterlista][!karakterlista] Mintában használható helyettesítő karakterek: *, ?, #, [karakterlista], [!karakterlista] A lekérdező utasítás

30 Az SQL nyelv elemei 30 / 36 Az adatvezérlő utasításokkal az adatvédelmi és a tranzakció-kezelő műveletek hajthatóak végre. Adatvezérlő nyelv

31 Az SQL nyelv elemei 31 / 36 Védelemmel, jogosultságokkal kapcsolatos utasítások Adott felhasználónak az adatbázis valamelyik objektumára valamilyen jog adása: GRANT jog ON objektum TO {felhasználó|PUBLIC} [WITH GRANT OPTION]; SELECTUPDATE INSERTDELETEJogok: SELECT (olvasási), UPDATE (módosítási), INSERT (beszúrási), DELETE (törlési. Objektum pl.: Tábla, lekérdezés, … PUBLICFelhasználói név vagy PUBLIC = mindenki WITH GRANT OPTIONA felhasználó a kapott jogot továbbadhatja másoknak: WITH GRANT OPTION Adatvezérlő utasítások

32 Az SQL nyelv elemei 32 / 36 Védelemmel, jogosultságokkal kapcsolatos utasítások Jog visszavonása felhasználótól REVOKE jog ON objektum FROM felhasználó; Adatvezérlő utasítások

33 Az SQL nyelv elemei 33 / 36 Tranzakciókezelő utasítások Műveletek eredményének véglegesítéseCOMMIT; Műveletek eredményének visszagörgetéseROLLBACK; Adatvezérlő utasítások

34 Az SQL nyelv elemei 34 / 36 1.A megismert SQL utasítás mindegyikére (kivéve az adatvezérlő utasítások) 1-1 konkrét példát írni az előzőleg elkészített házi feladat adatbázisába! 2.Az Adat definiciós nyelv és az Adatmanipulációs nyelv utasításainak hozzanak létre egy SQL utasítások nevű táblát. Ebben hozzanak létre egy Utasítás nevű, Feljegyzés típus ú mezőt. Ebbe írják bele a két utasítást! 3.A Lekérdező nyelv utasítását a Lekérdezések, SQL nézet ében lehet megadni. 4.A kész feladatot mellékleteként kérem elküldeni a címre. Házi feladat 2.

35 Az SQL nyelv elemei 35 / 36 A házi feladat beérkezésének végső határideje: november Leadási határidő

36 Az SQL nyelv elemei 36 / 36 Köszönöm a figyelmet!


Letölteni ppt "Az SQL nyelv elemei 1 / 36. Az SQL nyelv elemei 2 / 36 Gáspár Bencéné Dr. Vér Katalin nyomán Barna Róbert KE GTK Informatika Tanszék Az SQL nyelv elemei."

Hasonló előadás


Google Hirdetések