Oldal kiválasztása
Tábla módosítása

SQL Lekérdezések

Adatbázis-lekérdezések végrehajtása : SQL SELECT és FROM záradék

Az SQL nyelvben a lekérdezések végrehajtására a SELECT és FROM záradékokat használjuk. Ezek az utasítások lehetővé teszik az adatok kiválasztását és lekérdezését az adatbázisból. Ebben a fejezetben bemutatom a SELECT és FROM záradékok használatát, valamint néhány példát adok az adatbázis-lekérdezések végrehajtására.

A SELECT utasítás használatával megadhatjuk, hogy mely oszlopokat szeretnénk kiválasztani az adatbázisból. A FROM záradék pedig meghatározza, hogy mely táblákból kívánjuk lekérdezni az adatokat.

Az alapvető formátum a következő:

SELECT column1, column2, ... FROM table_name;

A fenti példa szerint megadjuk a kívánt oszlopokat a SELECT utasításban, majd a FROM kulcsszóval megadjuk a tábla nevét, amelyből szeretnénk lekérdezni az adatokat.

 Példák adatbázis-lekérdezésekre a SELECT és FROM záradékokkal:

Az összes oszlop lekérdezése egy táblából:

Az alábbi példa bemutatja, hogyan lehet az összes oszlopot lekérdezni egy táblából:

SELECT * FROM users;

A fenti példában az „users” táblából az összes oszlop kerül kiválasztásra.

Kiválasztott oszlopok lekérdezése:

Ha csak bizonyos oszlopokat szeretnénk kiválasztani, megadhatjuk azokat a SELECT utasításban. Például:

SELECT name, email FROM users;

A fenti példában csak a „name” és „email” oszlopok kerülnek kiválasztásra a „users” táblából.

Több tábla összekapcsolása:

Ha több táblából szeretnénk adatokat lekérdezni, összekapcsolhatjuk azokat a FROM záradékban. Például:

SELECT users.name, orders.order_number 
FROM users JOIN orders ON users.id = orders.user_id;

A fenti példa bemutatja, hogy hogyan kapcsoljuk össze a „users” és „orders” táblákat a felhasználók nevének és a rendelésszámok lekérdezéséhez.

Az SQL SELECT és FROM záradék nagyon fontosak az adatbázis-lekérdezések végrehajtásában. Használja ezeket az utasításokat az adatok kiválasztásához és lekérdezéséhez az adatbázisból. A SELECT záradék segítségével meghatározhatja, mely oszlopokat szeretné visszakapni, míg a FROM záradék az adatok forrását határozza meg, vagyis mely táblából kíván lekérdezni.

Az SQL SELECT és FROM záradék lehetővé teszi a rugalmas adatbázis-lekérdezések végrehajtását, ahol szűrheti, csoportosíthatja, összevonhatja vagy rendezheti az adatokat a választott oszlopok alapján. Ez az alapvető ismeret nagyon hasznos az adatbázis-kezelésben és az adatfeldolgozásban.

ORDER BY záradék

Az ORDER BY záradékot arra használjuk, hogy egy lekérdezés eredményhalmazát egy vagy több oszlop szerint rendezzük. A rendezés lehet növekvő (ASC) vagy csökkenő (DESC) sorrendben. Alapértelmezés szerint a rendezés növekvő.

Szintaxis:

SELECT oszlop1, oszlop2, …

FROM táblanév

ORDER BY oszlop1 [ASC|DESC], oszlop2 [ASC|DESC], …;

Példák:

Tegyük fel, hogy van egy Felhasznalok táblánk a következő adatokkal:

Nev Kor Orszag
Anna 30 Magyarorszag
Bence 25 Franciaorszag
Csaba 35 Magyarorszag
Dóra 28 Nemetorszag
Elemér 25 Magyarorszag

Exportálás Táblázatok-fájlba

Rendezés növekvő sorrendben (Kor):

SELECT Nev, Kor

FROM Felhasznalok

ORDER BY Kor ASC;

Eredmény:

Nev Kor
Bence 25
Elemér 25
Dóra 28
Anna 30
Csaba 35

Az SQL WHERE utasítása

Az SQL WHERE utasítás egy kulcsfontosságú elem az adatbázis-lekérdezésekben. Segítségével pontosan megadhatjuk a keresett adatok kritériumait, és csak azokat a rekordokat kapjuk vissza, amelyek megfelelnek ezeknek a feltételeknek. Ezáltal nagyobb rugalmasságot és precizitást nyújt az adatok lekérdezése során. Az SQL WHERE utasítás használata lehetővé teszi a specifikus adatok megtalálását az adatbázisban, és segít a pontosabb eredmények elérésében.

WHERE utasítás alapvető szintaxisa

Az SQL WHERE utasítás az alábbi módon használható:

SELECT oszlopok
FROM tabla
WHERE feltetelek;

Ahol:

oszlopok: A lekérdezés során visszaadott oszlopok listája vagy a wildcard (*) karakter, amely az összes oszlopot jelöli.

tabla: Az adatokat tartalmazó tábla neve.

feltetelek: A keresési feltételek, amelyeket a rekordoknak teljesíteniük kell ahhoz, hogy visszatérjenek.

Feltételek megadása a WHERE utasításban

A WHERE utasításban különböző feltételeket adhatunk meg az adatok szűréséhez. Ezek a feltételek az adatok oszlopaira vonatkozhatnak, és az alábbi összehasonlító operátorokat használhatjuk:

=: Egyenlőség operátor, amely akkor igaz, ha az érték megegyezik a feltételben megadott értékkel.

  • vagy !=: Nem-egyenlőség operátor, amely akkor igaz, ha az érték nem egyezik meg a feltételben megadott értékkel.
  • <: Kisebb operátor, amely akkor igaz, ha az érték kisebb, mint a feltételben megadott érték.
  • >: Nagyobb operátor, amely akkor igaz, ha az érték nagyobb, mint a feltételben megadott érték.
  • <=: Kisebb vagy egyenlő operátor, amely akkor igaz, ha az érték kisebb vagy egyenlő a feltételben megadott értékkel.
  • >=: Nagyobb vagy egyenlő operátor, amely akkor igaz, ha az érték nagyobb vagy egyenlő a feltételben megadott értékkel.
  • BETWEEN: Tartomány operátor, amely akkor igaz, ha az érték a megadott két érték közé esik.
  • LIKE: Mintaillesztő operátor.

A mintaillesztő operátor (LIKE) az alábbiak szerint használható:

  • %: A százalék karakter a helyettesítő karakterként működik. Például, ha %an% mintát használunk, akkor az olyan szövegrészeket találjuk meg, amelyekben az „an” karakterek bármilyen számú karakterrel előtte vagy utána találhatók. Példa: „panama”, „banana”.
  • _: Az aláhúzás karakter a helyettesítő karakterként működik, de csak egyetlen karaktert helyettesít. Például, ha a_c mintát használunk, akkor az olyan szövegrészeket találjuk meg, amelyekben az „a” karakter előtt és után egy-egy karakter van. Példa: „abc”, „adc”.
  • []: Zárójelben megadhatunk karaktereket, amelyek közül bármelyik egyezhet a helyén. Például, ha [abc]an mintát használunk, akkor az olyan szövegrészeket találjuk meg, amelyekben az „a”, „b” vagy „c” karakter előtt van egy „an”. Példa: „ban”, „can”.

Ezek az alapvető feltételek és operátorok lehetővé teszik a WHERE utasítás használatát az adatok pontos kiválasztására az adatbázisból.

Példák a WHERE utasítás használatára

Az összes felhasználó lekérése, akiknek a neve „John”:

SELECT *
FROM users
WHERE name = 'John';

Az összes rendelés lekérése, amelyek összege meghaladja az 1000-et:

SELECT *
FROM orders
WHERE total_amount > 1000;

Az összes termék lekérése, amelyeknek a készletmennyisége kisebb vagy egyenlő 10:

SELECT *
FROM products
WHERE stock_quantity <= 10;

Az összes felhasználó lekérése, akiknek az e-mail címe tartalmazza a „gmail.com” domaint:

SELECT *
FROM users
WHERE email LIKE '%gmail.com';

Az összes rendelés lekérése, amelyek dátuma 2022. január 1. után van:

SELECT *
FROM orders
WHERE order_date > '2022-01-01';

Az SQL WHERE utasítás sokoldalú eszköz az adatok kiválasztására és szűrésére az adatbázisban. A megfelelő feltételek és operátorok kiválasztása lehetővé teszi a pontos és releváns adatok megtalálását a lekérdezések során.

SQL OPERÁTOROK BEMUTATÁSA PÉLDÁKKAL

Az SQL operátorok az adatbázis-lekérdezések során használt speciális kifejezések, amelyek segítségével összetett feltételeket és összehasonlításokat hajthatunk végre az adatokon. Az operátorok lehetővé teszik a lekérdezések pontosabb és specifikusabb meghatározását, és különböző logikai műveleteket végezhetünk velük az adatokon. Ebben a fejezetben bemutatjuk az SQL operátorok néhány fontos típusát, és megadunk rájuk példákat.

NOT OPERÁTOR

A NOT operátor az ellentétét jelenti egy adott feltételnek vagy kifejezésnek. Használatakor az eredeti feltétel vagy kifejezés igaz voltának negált változatát kapjuk eredményül.

SELECT *
FROM users
WHERE NOT age > 18;

Ez a lekérdezés az összes felhasználót visszaadja, akiknél az életkor nem nagyobb, mint 18.

AND OPERÁTOR

Az AND operátor logikai ÉS kapcsolatot teremt két vagy több feltétel között. A lekérdezés csak akkor ad vissza eredményt, ha mind a feltételek igazak.

SELECT *
FROM users
WHERE age > 18 AND country = 'USA';

Ez a lekérdezés az összes olyan felhasználót visszaadja, akiknél az életkor nagyobb, mint 18, és az országuk az USA.

OR OPERÁTOR

Az OR operátor logikai VAGY kapcsolatot teremt két vagy több feltétel között. A lekérdezés eredményt ad, ha legalább az egyik feltétel igaz.

SELECT *
FROM users
WHERE age > 18 OR country = 'USA';

Ez a lekérdezés az összes olyan felhasználót visszaadja, akiknél az életkor nagyobb, mint 18, vagy az országuk az USA.

 BETWEEN OPERÁTOR

A BETWEEN operátor segítségével tartomány alapú kereséseket hajthatunk végre. A lekérdezés csak azokat a rekordokat adja vissza, amelyek az adott tartományba esnek.

SELECT *
FROM products
WHERE price BETWEEN 10 AND 50;

A LIKE operátor az SQL lekérdezésekben használt operátor, amely lehetővé teszi az adatbázisban történő mintaillesztést. A LIKE operátor használatakor részleges vagy pontos illesztést végezhetünk a karakterláncokra.

Az SQL LIKE operátor a következő formában használható:

SELECT column1, column2, ...
FROM table
WHERE column LIKE pattern;

Ahol a „column” a kiválasztott oszlop neve, a „table” pedig a tábla neve, amelyben keresni szeretnénk. A „pattern” pedig a minta, amelyre szeretnénk illeszteni.

A LIKE operátor használható speciális karakterekkel, amelyeket a minta definiálásához használhatunk:

A „%” jel a helyettesítő karakter, amelyet bármely karakterláncra illesztünk. Például, ha az „a%” mintát használjuk, akkor az „a”-val kezdődő összes karakterláncra illesztést végzünk.

Az „_” jel a helyettesítő karakter, amelyet pontosan egy karakterre illesztünk. Például, ha az „_at” mintát használjuk, akkor az „cat”, „bat” vagy „rat” karakterláncokra illesztést végzünk.

A „[]” zárójelek közé írhatunk karaktereket vagy karaktertartományokat, amelyekre illeszteni szeretnénk. Például, ha a „[abc]” mintát használjuk, akkor az „a”, „b” vagy „c” karakterekre illesztést végzünk.

A „[^]” zárójelek közé írhatunk karaktereket vagy karaktertartományokat, amelyeket nem szeretnénk illeszteni. Például, ha a „[^abc]” mintát használjuk, akkor nem illesztjük az „a”, „b” vagy „c” karaktereket.

Például, ha szeretnénk megtalálni az összes olyan felhasználót, akiknek a neve „John”-nal kezdődik, az alábbi lekérdezést használhatjuk:

SELECT *
FROM users
WHERE name LIKE 'John%';

Ez a lekérdezés visszaadja az összes olyan felhasználót, akiknek a neve „John”-nal kezdődik.

A LIKE operátor nagyon hasznos, amikor részleges vagy mintaillesztésre van szükségünk az adatbázislekérdezéseinkben. Használhatjuk a kereséseket, a szűréseket és a rendezéseket is a kívánt eredmények eléréséhez.

EXISTS OPERÁTOR

Az EXISTS operátor egy másik lekérdezés eredményét használja fel, és azt ellenőrzi, hogy az eredményhalmaz üres-e vagy sem. Ha az eredményhalmaz nem üres, akkor az EXISTS operátor igaz értéket ad vissza.

SELECT *
FROM users
WHERE EXISTS (
SELECT *
FROM orders
WHERE orders.user_id = users.id
);

Ez a lekérdezés az összes olyan felhasználót adja vissza, akik rendelkeznek legalább egy rendeléssel a „orders” táblában.

ANY OPERÁTOR

Az ANY operátor egy összehasonlító operátort használ, és azt ellenőrzi, hogy az adott érték bármelyik elemére igaz-e a kifejezés. Az ANY operátorral együtt használhatóak az összehasonlító operátorok, mint például az =, <>, >, stb.

SELECT *
FROM products
WHERE price > ANY (
SELECT price
FROM products
WHERE category = 'Electronics'
);

Ez a lekérdezés az összes olyan terméket adja vissza, amelyek ára nagyobb, mint bármely elektronikai termék ára.

ALL OPERÁTOR

Az ALL operátor egy összehasonlító operátort használ, és azt ellenőrzi, hogy az adott érték mind az elemére igaz-e a kifejezés. Az ALL operátorral együtt használhatóak az összehasonlító operátorok, mint például az =, <>, >, stb.

SELECT * FROM products WHERE price > ALL ( SELECT price FROM products WHERE category = ‘Electronics’ );  Ez a lekérdezés az összes olyan terméket adja vissza, amelyek ára nagyobb, mint az összes elektronikai termék ára.

Az SQL operátorok segítségével hatékonyan és rugalmasan tudunk adatbázis lekérdezéseket végezni, és kifejezetten hasznosak, amikor összetett feltételeket kell megadnunk vagy specifikus adatokat szeretnénk kiválasztani a táblákból.

Fontos megjegyezni, hogy az operátorok használatakor ügyeljünk a helyes szintaxisra és a megfelelő zárójelezésre, különben hibákhoz vezethet.

Az SQL operátorok használata rendkívül sokoldalú és alkalmazható a legtöbb adatbáziskezelő rendszerben, beleértve a MySQL-t, PostgreSQL-t, SQL Server-t és másokat.

Az operátorok használatának megértése és gyakorlása rendkívül fontos ahhoz, hogy hatékonyan tudjunk adatbázislekérdezéseket írni és a kívánt eredményeket megszerezni.

Rendezés csökkenő sorrendben (Ar):

Tegyük fel, hogy van egy Termekek táblánk a következő adatokkal:

TermekNev Ar Kategoria
Laptop 1200 Elektronika
Egér 25 Elektronika
Billentyűzet 75 Elektronika
Monitor 300 Elektronika
Nyomtató 150 Elektronika

 

SELECT TermekNev, Ar

FROM Termekek

ORDER BY Ar DESC;

 

Eredmény:

TermekNev Ar
Laptop 1200
Monitor 300
Nyomtató 150
Billentyűzet 75
Egér 25

Több oszlop szerinti rendezés (Varos ASC, VezetekNev ASC): Tegyük fel, hogy van egy Ugyfelek táblánk a következő adatokkal:

VezetekNev KeresztNev Varos
Kovács János Budapest
Nagy Éva Debrecen
Kiss Péter Budapest
Szabó Mariann Szeged
Varga Gábor Debrecen
     

SELECT VezetekNev, KeresztNev, Varos

FROM Ugyfelek

ORDER BY Varos ASC, VezetekNev ASC;

Eredmény:

VezetekNev KeresztNev Varos
Kiss Péter Budapest
Kovács János Budapest
Nagy Éva Debrecen
Varga Gábor Debrecen
Szabó Mariann Szeged