adatbázis kezelés delphiben. sql lekérdezésekzeus.nyf.hu/~bajalinov/lev_visual/03/delphi...

Post on 22-Mar-2019

243 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Adatbázis kezelés Delphiben.SQL lekérdezések

Structured Query Language – adatbázisok kezelésére szolgáló lekérdező nyelv

Szabályok:Utasítások tetszés szerint tördelhetők

Utasítások végét pontosvessző zárja

Kisbetű nagybetű használata egyaránt lehetséges

Listában lévő elemeket vesszővel választjuk el

Egymásba ágyazhatók az utasítások

SQL műveletek

Matematikai: +, -, *, /, **, ^

Stringműveletek: +, *, ||, &

Bináris műveletek: NOT, AND, OR

Összehasonlítás: <, >, =, !=, <>, NOT=

Predikátumok: IS, LIKE, BETWEEN…AND, IN, CHECK, WHERE, HAVING

SQL adatdefiníciós utasítások

Az adatbázis szerkezetének megváltoztatására:

CREATE - táblák létrehozása

ALTER - táblák szerkezetének megváltoztatása

DROP - táblák törlése

RENAME - táblák átnevezése

TRUNCATE - táblák csonkítása

INSERT - új sorok beszúrása

DELETE - utasítás sort vagy sorokat töröl

SQL adatkezelő utasítások

Adatok olvasására az adatbázisból:

SELECT - adatlekérdezés

INSERT - adat létrehozása

UPDATE - adat változtatása

DELETE - adat törlése

Példák

INSERT INTO szemely VALUES (‘Szabolcs',

‘Miskolc‘, 20213456);

UPDATE szemely SET nev=‘Katalin' WHERE ID=5;

DELETE FROM szemely WHERE ID=30;

Szintaktika

SELECT <mező_neve> FROM <tábla_neve>

WHERE <feltételek>

ORDER BY <mező_nevek>;

FROM - azt a relációt adja meg, amelyre a lekérdezés vonatkozik

WHERE - feltétel, a logikai kifejezés igaz esetén, kiválasztja a rendszer a megfelelő rekordokat

SzintaktikaBETWEEN...AND - operátor esetén a feltétel két határ által

megadott intervallumban található. Pl.:

SELECT * FROM tabla WHERE mez between 40 and 80;

LIKE - operátor azt ellenőrzi, hogy az értékek megfelelnek-e a megadott karaktermintának. Pl.:

SELECT * FROM tabla WHERE nev LIKE ‘Kata';

Szintaktika

ORDER BY - utasításrész a SELECT utasítás utolsó része,

egy vagy több oszlop szerint rendezi az eredménytáblát.

SELECT * FROM szemely

WHERE varos LIKE ‘Pécs'

ORDER BY nev;

Példák

SELECT tabla1.oszlop, tabla2.oszlop

FROM tabla1, tabla2 WHERE

tabla1.oszlop1=tabla2.oszlop2;

SELECT * FROM szemely;

SELECT nev,alkotascim,datumk,tema

FROM festmeny,festo WHERE

festo.idf=festmeny.idf and nev LIKE

'Matisse%';

Példák

SELECT idk,festo.idf,nev,alkotascim

FROM festmeny,festo

WHERE festmeny.idf=festo.idf and

datumk<1900 and tema LIKE

'mitológikus kép'

ORDER BY 4;

SELECT * FROM festmeny WHERE tema IN

('enteriőr','csendélet');

Példák

SELECT COUNT (*)

FROM festo

WHERE nemzetiseg LIKE 'francia';

SELECT alkotascim, datumk AS

"készült",nev AS "festette"

FROM festmeny,festo

WHERE festo.idf=festmeny.idf and

idk<20;

Példák

SELECT * FROM festmeny

WHERE alkotascim ~ 'puszta';

Beágyazott lekérdezés:

SELECT nev,alkotascim,datumk

FROM festo,festmeny

WHERE festo.idf=festmeny.idf and

datumk=(select MIN(datumk) from

festmeny);

SQL utasítások Delphiben

Delphi alkalmazásokban a TQuery komponens segítségével futtathatunk SQL utasításokat

Fajtái:

DDL : Data Definition Language – DB szerkezet módosítása

DML : Data Manipulation Language – DB adatainak kezelése

DCL : Data Control Language – egyéb DB kezelési feladatok

Végrehajtásukat a BDE irányítja

TQuery komponens

Tulajdonságai:

DataBaseName – adatbázis komponens vagy álnév

DataSource –az adatforrás

SQL – maga a forrás

Active – tervezési időben látható eredmény

TQuery komponens használata

Helyezzünk el egy TQuery komponenst az adatmodulon

DataBaseName tulajdonságát állítsuk be

Írjuk be az SQL utasítást

Ha az eredményék ki akarjuk iratni, akkor irányítsunk rá egy DataSource komponenst

Az adatmegjelenítési elemeket ehhez a DataSource-hoz kell majd kapcsolnunk

SQL megadása futási időben

Dinamikus lekérdezés is generálható úgy, hogy a felhasználói igények alapján felépített lekérdezést képező SQL utasítást, string-ként a TQuery

komponens SQL tulajdonságába tesszük.

Pl.:

Query1.SQL.Clear; //kitörli a meglévő utasítást

Query1.SQL.Add(‘Select * from tabla’); //hozzáfűz

Query1.Open; // megnyitja

SQL megadása futási időben

Ha a felhasználó által bevitt adatok alapján szeretnénk módosítani a lekérdezést:

procedure TForm1.Button1Click(Sender: TObject);

var s:string;

begin

s:= Edit1.Text;

Query1.SQL.Clear;

Query1.SQL.Add(‘Select * from tabla where a=’’’+s+’’’;’);

Query1.Open;

end;

SQL megadása futási időben

Fájlból is betölthető a lekérdezés:

Pl.:procedure TForm1.Button1Click(Sender: TObject);

begin

Query1.SQL.LoadFromFile(‘filenev.SQL’);

Query1.SQL.Open;

end;

Tábla tartalmának végigjárása

DataModule.TáblaNév.DisableControls; //hozzáférés letiltás

//kikapcsolja vizuális komponensek frissítését run-timeban

DataModule.TáblaNév.First; //első elemre ugrás

While not DataModule.TáblaNév.Eof do

begin

... // utasítások megadása

DataModule.TáblaNév.Next; //következő elemre ugrás

end;

DataModule.TáblaNév.EnableControls; //hozzáférés engedélyezés

Táblához hozzáfűzés futási időben

DataModule.TáblaNév.Append; //hozzáfűzés kezdete

DataModule.TáblaNév.FieldByName(‘mezőnév’).AsTípus:=...;

//pl. feltételben az adott mező adott típusként való vizsgálata

DataModule.TáblaNév.FieldByName(‘mezőnév’).Value:=...;

//adott mező értéke szerint való vizsgálata

DataModule.TáblaNév.Post; //utasítás végrehajtás

Link – SQL példák

http://hu.wikipedia.org/wiki/SQL_programozási_nyelv

top related