Vissza a bloghoz

A MySQL lekérdezések áttekintése

A MySQL lekérdezések áttekintése

Az üzleti fenntarthatóság nehéz a megfelelő adatkezelés nélkül. Egy jól meghatározott rendszer felépítése elengedhetetlen a belső és külső műveletek kezeléséhez. Az üzleti adatokba való részletes betekintés segít megérteni a teljes munkafolyamatot és mérni a teljesítményt. Ráadásul az adatbázisok használata időt takarít meg, és lehetővé teszi az információk könnyed elérését.

Mi az az adatbázis?

Az adatbázis egy olyan szervezett rendszer, amelyet az információk biztonságos tárolására használnak. Kategorizálást kínál, és lehetővé teszi táblázatok létrehozását a hasonló típusú elemek egy csoportba történő rendezéséhez. A táblázatok lehetőséget biztosítanak az információk több sorban és oszlopban történő listázására. Ennek eredményeként javul az adatok minősége és konzisztenciája. A tárolási és könnyen hozzáférhető képességek mellett az adatbázisok jelentős szerepet játszanak a magánélet védelmében és a rendszerek biztonságossá tételében. Legyen szó ad hoc jellegűről vagy egy alkalmazásba kódolt folyamat részéről, az adatok lekérdezése az adatbázis-kezelés egyik legkritikusabb szempontja.

Egy lekérdezés a relációs DMS-ben minden olyan parancs, amelyet adatok táblából való lekérésére használnak. SELECT utasításokat szinte mindig használnak a Structured Query Language (SQL) lekérdezésekben. Számos módszer létezik az információk adatbázisból történő lekérésére. Általában a fejlesztők a parancssori opciót részesítik előnyben, mert az gyors és hatékony. Lehetővé teszi a lekérdezések zökkenőmentes elküldését.

Ebben az útmutatóban bemutatjuk a MySQL-t, és megbeszéljük, hogyan dolgozhatsz lekérdezésekkel a MySQL-ben. Kezdjük el!

Előfeltételek

Az útmutató követéséhez a következőkre lesz szükséged:

1. lépés — Adatbázis létrehozása és beállítása

Mielőtt elkezdenénk és megírnánk az első SQL lekérdezésünket, létre kell hoznunk egy adatbázist, és táblákat kell hozzáadnunk. Ezután feltöltjük a táblákat mintaadatokkal. Az adatbázisokkal való munka segít megérteni az alapvető beállításokat, és önbizalmat ad a lekérdezésekkel való munkához.

A gyakorlati tapasztalat a leghatékonyabb módja a fogalmak felépítésének és az adatbázisok fontosságának megértésének. Ebben az útmutatóban végigvezetünk az adatbázisok használatán és azok jelentőségén a valós problémák megoldásában. Nézzünk meg egy forgatókönyvet, hogy megértsük, hogyan segíthetnek az adatbázisok a rekordok strukturált rendszerezésében.

Forgatókönyv: Létrehozunk egy adatbázist, ahol egy főiskolás diákokból álló csoport nyaralni megy, hogy megünnepeljék a születésnapjukat. A nyaralás előtt azt tervezik, hogy részt vesznek egy barátságos úszóversenyen. Emellett a csoport minden tagja tervez egy tennivalólistát a tevékenységekről, hogy a kirándulásuk izgalmas és élvezetes legyen.

Először nyisd meg a MySQL-t root felhasználóként:

Ezután hozz létre egy adatbázist a következő parancs futtatásával:

Ezután használjuk az adatbázisunkat a következő paranccsal:

Ezután táblákat hozunk létre az adatbázisunkban. Nevezd el az első táblát így: celebration. A táblázatunkban oszlopok lesznek a barátaink neveinek (name), az általuk megnyert versenyeknek (wins) és egy oszlop a best legjobb idejüknek (time):

Ezután feltöltjük a táblánkat adatokkal:

Ezután hozzon létre egy másik táblát az adatbázisunkban, hogy tárolja a kedvenc születésnapi tevékenységeikre vonatkozó információkat. Létrehozunk egy táblát, amelynek neve vacation és a következő oszlopokkal fog rendelkezni:

Lista

Részletek

name:

Tárolja az egyes barátok nevét.

birthdate:

Nyomon követi az egyes személyek születési dátumát.

activity:

Nyilvántartja a kedvenc tevékenységüket.

Destination:

Tárolja az egyes személyek kedvenc úti céljára vonatkozó információkat.

meal:

Nyomon követi az egyén által kedvelt kedvenc ételt.

Töltse fel a táblát adatokkal:

Ezzel befejezte az adatbázis beállítását.

2. lépés — Kezdő lépések a SELECT utasításokkal

Az SQL-lekérdezések általában a következővel kezdődnek: SELECT. Ez a lekérdezésekben arra szolgál, hogy meghatározza, a tábla mely oszlopai térjenek vissza az eredményekkel. Egy lekérdezésnek mindig tartalmaznia kell a következőt is: FROM, amely a lekérdezni kívánt tábla megadására szolgál.

A lekérdezések az alábbi szintaxist követik:

A lekérdezési szintaxist fogjuk használni a következő oszlop visszaadásához: meal oszlop a következő táblából: vacation tábla:

A kimenetünk a következő lesz:

Több oszlopot is kiválaszthat, ha vesszővel választja el őket:

Output:

Egy csillagot (*) is használhat, ha a tábla összes oszlopát szeretné ábrázolni:

Output:

Ha olyan rekordokat szeretne szűrni, amelyek megfelelnek egy meghatározott feltételnek, használja a WHERE záradékot. Azok a sorok, amelyek nem felelnek meg a megadott feltételnek, kikerülnek az eredmények közül. A WHERE záradék a következő szintaxist használja:

Ez egy összehasonlító operátor, amely meghatározza, hogyan kell a megadott oszlopot összehasonlítani az értékkel. A gyakori SQL összehasonlító operátorok a következők:

Operátor

Használat

=

Egyenlőség

!=

Egyenlőtlenség

<

Kisebb, mint

>

Nagyobb, mint

<=

Kisebb vagy egyenlő

>=

Nagyobb vagy egyenlő

BETWEEN

Azt vizsgálja, hogy az érték a megadott tartományon belül esik-e.

IN

Azt vizsgálja, hogy egy sor értéke szerepel-e a megadott értékek halmazában.

EXISTS

Azt vizsgálja, hogy létezik-e sor

LIKE

Azt vizsgálja, hogy egy érték megegyezik-e a megadott karakterlánccal

IS NULL

Null értékeket vizsgál

IS NOT NULL

A NULL-tól eltérő összes értéket vizsgálja

Ha meg szeretné tudni Aisha kedvenc úti célját, a következő lekérdezést használhatja:

The query will then return:

SQL supports the use of wildcard characters, which are especially useful in WHERE clauses. Percentage signs ( %) denote zero or more unknown characters, while underscores ( _) denote a single unknown character. These are helpful if you want to find a specific entry in a table but aren’t sure about the entry.

For instance, if you had forgotten the favorite destination of a friend and only knew the letter, it starts with, for example, “m.” You can find the destination name by use of the following query:

The query will return:

When working with databases, you may encounter columns or tables with relatively long or difficult-to-read names. In these cases, you can make the names more readable by using the AS keyword to create an alias. Aliases created with AS are only valid for the duration of the query for which they were created:

Step 3 — Introduction to Aggregate Functions

Amikor adatokkal dolgozik, nem mindig magukat az adatokat szeretné látni. Ehelyett inkább az adatokról szeretne információt kapni. Egy SELECT query, you can interpret or run calculations on your data using the SQL syntax. These are referred to as aggregate functions.

A COUNT függvény megszámolja és visszaadja a megadott feltételeknek megfelelő sorok számát. Ha például meg szeretné tudni, hány barátja szeretne a Maldív-szigetekre utazni, a következő lekérdezést használhatja:

A következő eredmények fognak visszatérni:

MIN a legkisebb érték megkeresésére szolgál egy adott oszlopban:

A lekérdezés kimenete a következő lesz:

MAX a legnagyobb numerikus érték megkeresésére szolgál egy adott oszlopban:

A várható kimenet a következő:

Mind a MIN mind a MAX függvény használható numerikus és alfabetikus adatokon is. Ha karakterlánc (string) értékeket tartalmazó oszlopra alkalmazzuk, a MIN függvény az ábécérendben legelső értéket adja vissza.

A MIN függvény az ábécérendben legelső értéket adja vissza:

A kimenet a következő lesz:

A MAX függvény az ábécérendben legutolsó értéket adja vissza:

A kimenet a következő lesz:

4. lépés — Lekérdezési kimenetek manipulálása

Egy másik népszerű záradék, amelyet használnak, a GROUP BY záradék. Akkor használatos, ha egy aggregált függvényt hajtunk végre egy oszlopon, de egy másik oszlop egyező értékeivel összefüggésben:

A kimenet a következő lesz:

A lekérdezési eredmények rendezéséhez használja a ORDER BY záradékot. A numerikus értékek alapértelmezés szerint növekvő sorrendben, míg a szöveges értékek ábécérendben vannak rendezve. Az alábbi lekérdezés kilistázza a name és birthdate oszlopokat, de az eredményeket a következő szerint rendezi: birthdate:

A kimenet a következő lesz:

A kimenet növekvő sorrendben van; a csökkenő sorrendbe állításhoz zárja le a lekérdezést a következő szóval: DESC:

Tekintse meg a kimenetet:

A HAVING záradék azért került hozzáadásra az SQL-hez, hogy a WHERE záradékhoz hasonló funkcionalitást biztosítson, miközben kompatibilis az aggregált függvényekkel is. A különbség a két záradék között az, hogy a WHERE az egyes rekordokra való hivatkozásra szolgál, míg a HAVING a csoportrekordokra hivatkozik. Ebből kifolyólag a GROUP BY záradéknak jelen kell lennie minden alkalommal, amikor a HAVING záradékot használjuk:

A lekérdezés kimenete a következő lesz:

A COUNT értéke mindegyiknél 1, mert nincs két olyan barát, aki ugyanazt a tevékenységet kedvelné.

5. lépés — Több tábla lekérdezése

A JOIN záradék használható a lekérdezés eredményében két vagy több tábla sorainak kombinálására. Ezt úgy éri el, hogy megkeresi a táblák közötti kapcsolódó oszlopot, és megfelelően rendezi a kimenetet.

SELECT utasítások, amelyek tartalmaznak egy JOIN záradékot, az alábbi szintaxist követik:

Ha minden barátjának szeretne egy trófeát vásárolni a wins elért eredményeiért, miközben swimming az birthdays alkalmából, létrehozhat egy lekérdezést, amely összekapcsolja mindkét táblát, hogy egyetlen lekérdezéssel megtalálja az összes kívánt információt:

A kimenet a következő lesz:

Ez egy belső JOIN záradék. Ez azért van, mert kiválasztja az összes olyan rekordot, amelynek egyező értékei vannak mindkét táblában, és kiírja őket egy eredményhalmazba. A lekérdezésnek meg nem felelő rekordok nem szerepelnek az eredményben. Felvehetünk egy új sort a tábláinkba, amely nem felel meg egyik bejegyzésnek sem:

Ezután futtassa újra a SELECT utasítást a JOIN záradékkal:

Mivel a celebration táblában nincs bejegyzés Peterhez, a vacation táblában pedig nincs bejegyzés Ellához, ezek a rekordok hiányoznak.

Az egyik tábla összes rekordját visszaadhatjuk egy külső JOIN záradék használatával. Ez lehet LEFT JOIN vagy RIGHT JOIN. A LEFT JOIN visszaadja az összes rekordot a bal oldali táblából, és csak az egyező rekordokat a jobb oldali táblából. A bal oldali tábla a külső összekapcsolások (outer join) kontextusában az, amelyre a FROM záradék hivatkozik, a jobb oldali tábla pedig bármelyik tábla, amelyre a JOIN utasítás után hivatkozunk.

Futtassa újra a lekérdezést, de használjon egy LEFT JOIN záradékot:

A parancs visszaadja az összes rekordot a bal oldali táblából ( celebration) még akkor is, ha nincs megfelelő rekord a jobb oldali táblában. Ha nincs egyező rekord a jobb oldali táblában, akkor NULL:

Ez pedig a RIGHT JOIN záradék:

A jobb oldali tábla (vacation) összes értéke visszaadásra kerül. Mivel Peter birthdate értéke rögzítve van a jobb oldali táblában, de a bal oldali táblában a name és wins, oszlopok nem szerepelnek, ezek az oszlopok NULL értékeket fognak visszaadni azokban a sorokban:

Használhatja a UNION záradékot a JOIN helyett, hogy több táblából kérdezzen le rekordokat. A UNION operátor abban különbözik a JOIN záradéktól, hogy két SELECT utasítás eredményét egyetlen oszlopban egyesíti, ahelyett, hogy több tábla eredményeit egyedi oszlopokként jelenítené meg egyetlen SELECT utasítás használatával.

A szemléltetéshez futtathatja ezt a lekérdezést:

A lekérdezés eltávolítja a duplikált bejegyzéseket. Ez a(z) UNION operátor alapértelmezett viselkedése:

Az összes bejegyzés (és a duplikátumok) visszaadásához használja a UNION ALL operátort:

Kimenet:

Az alkérdezések egy másik módszert jelentenek több tábla lekérdezésére. Az alkérdezések olyan lekérdezések, amelyek egy másik lekérdezésbe vannak beágyazva (belső vagy beágyazott lekérdezésként is ismertek). Ezek akkor hasznosak, ha egy lekérdezés eredményeit egy különálló aggregációs függvény eredményeivel szeretné összehasonlítani.

Azt a példát fogjuk használni, hogy megkeressük, melyik barát nyert több úszóversenyt, mint Ella. Ahelyett, hogy lekérdezné, hány mérkőzést nyert Ella, majd egy másik lekérdezést futtatna, hogy megnézze, ki nyert ennél több játékot, mindkettőt kiszámíthatja egyetlen lekérdezéssel:

A lekérdezés a következőt adja vissza:

Ha el szeretné vinni a barátait egy meglepetés nyaralásra, egy lekérdezéssel megnézheti, kinek van a legtöbb győzelme, és lekérheti az úti célját:

A lekérdezés a következőt adja vissza:

Ez az utasítás egy alkérdezést tartalmaz egy alkérdezésen belül.

Összegzés

A lekérdezések generálása az egyik leggyakoribb feladat az adatbázis-kezelésben. Számos olyan adatbázis-adminisztrációs eszköz létezik, mint a phpMyAdmin és pgAdmin, amelyeket használhat a lekérdezésekkel való munkához és az eredmények megjelenítéséhez. Azonban a parancssorból futtatott SELECT utasítás a leginkább preferált választás az egyszerű használata és a kiváló irányíthatósága miatt.

Ezenkívül számos adatbázisokkal kapcsolatos útmutatót fedezhet fel a blogunkon:

Kellemes számítógéphasználatot!

author

Preslav Dobrev

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.