SQL  - A queryk ereje I. rész
2020. január 12. írta: direct_speech

SQL - A queryk ereje I. rész

Basic Tutorial

Sziasztok!

Ebben a bejegyzésben szeretném nektek bemutatni az SQL - Structured Query Language - lekérdező nyelvet.

sql_image.jpg 

Mire jó az SQL?

SQL-el előbb-utóbb mindenki találkozik, aki relációs adatbázist használ munkája során. BI - Business Intelligence - területen dolgozók, adattárházzal, data lake-el foglalkozó emberek, ETL tool-okat használó fejlesztők, webfejlesztők egyaránt találkoznak az SQL-el.

SQL-el az adatbázisban tárolt adatokat módosíthatjuk, hozhatjuk létre és kérdezhetjük le.

SQL alapok

Az SQL query alap szintaktikája a következő:

select "mit" from "honnan" where "feltételek";

 
A select és from közötti rész reprezentálja azt az adatot, ami az ember látni szeretne. Egy ilyen select utasítást select statement-nek, vagy query-nek nevezünk. Például legyen egy táblánk a következő adattal:

Szeretnénk a táblából lekérdezni Para Zita adatait. Ezt a következő képpen tehetjük meg:

select * from user_table where name = 'Para Zita';

 

A * itt azt jelenti, hogy a tábla minden mezőjét szeretnénk megjeleníteni. Ha csak adott mezőkre vagyunk kíváncsiak, úgy nincs más dolgunk, mint a select és from között ezeket a mezőket vesszővel elválasztva felsorolni:

select name, salary from user_table where name = 'Para Zita';

 
A 'where' utasítás szűrőként / filterként / feltételként szolgál. A 'where' után megadott szűrési feltételek fogják az eredeti adathalmaz számosságát és értékét befolyásolni. A name = 'Para Zita' feltétellel azt mondjuk az SQL értelmezőnek, hogy nekem csak az az adat kell, ami Para Zita-hoz tartozik.

Itt megjegyezném, hogy biztos észrevettétek, hogy a táblaként megadott adatoknál a name is és a salary mező is nagybetűvel volt írva, én pedig kis betűvel írtam meg a select statement-et. A legtöbb relációs adatbázis esetében nem kötelező case sensitive-en írni a query-ket.

 A 'where' után több feltételt is meg lehet adni. Például:

select name, salary, job 
from user_table 
where name in ('Para Zita', 'Beviz Elek')
or salary > 4000;

 
Az 'in' kifejezés használatával (nem csak ezzel) lehet elérni azt, hogy felsorolásszerűen lehessen megadni értékeket, amelyekhez tartozó rekordokat szeretnénk látni.

Láthatjátok, hogy immár egyszerre több emberre is lekérdeztem az adatokat és az 'or' (vagy) logikai kifejezéssel még egy feltételt megszabtam, ami a salary értékre vonatkozott.
De mi történik itt? Az 'in' után megadott  értékeket lekéri a tábálából a quey. Ha figyelmesen megnézzük Para Zitához tartozó salary mező értékét, akkor láthatjuk, hogy 3500.
Az 'or' utáni kifejezés azt mondja, hogy azokat az embereket szeretném látni, akiknek 4000-nél nagyobb a salary. Viszont az 'or' úgy működik, hogy ha akármelyik feltétel teljesül, akkor visszaadja az adatokat. És mivel Para Zita is benne van a táblában, így annak ellenére ő is bekerül az eredmény halmazba, hogy a hozzá tartozó fizetés kisebb, mint 4000.

Ha 'or' helyett az 'and' operátort használnánk, akkor merőben más eredményt kapnánk.

select name, salary, job 
from user_table 
where name in ('Para Zita', 'Beviz Elek')
and salary > 4000;

 
Az 'and' operátor úgy működik, hogy csak abban az esteben ad vissza értéket, ha az összes feltétel teljesül.
Tehát esetünkben Para Zita és Beviz Elek adatait is megtalálja a táblában. Eddig minden jó. Az 'and' után az SQL értelmező az 'and' működése miatt Para Zita és Beviz Elek salary értékét nézi meg.

Mivel Para Zita salary értéke kisebb, mint az 'and' utáni vizsgálatban megadott érték, így ő biztosan nem lesz benne a lekérdezés eredményében. Beviz Elek salary-je azonban nagyobb, mint a feltételben megadott, így az 'and' -el lefuttatott query a következő eredményt adja vissza:

Már ebből a kevés példából is jól látszik, hogy az SQL-t milyen célra használják. Aki relációs adattal foglalkozik, majdhogynem elengedhetetlen eszköz számára az SQL.

Összegzés

A bejegyzésben sort kerítettünk az SQL query-k alap struktúrájának bemutatására és egy pár példán szemléltettem a működését. Ezt egy többrészes sorozatnak tervezem, ahol számos alapfüggvényt fogunk átbeszélni, illetve az SQL további építőelemei kerülnek majd terítékre, úgy mint a joinok, with clause, group by, having, inline select és azon utasítások, amelyek az adat módosításával kapcsolatosak.

Sz.F.

A bejegyzés trackback címe:

https://szokimondofejleszto.blog.hu/api/trackback/id/tr4115378840

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása