adatbázis kezelés delphiben. sql lekérdezésekzeus.nyf.hu/~bajalinov/lev_visual/03/delphi...
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