13 legfontosabb SQL parancs, amelyet minden programozónak tudnia kell

13 legfontosabb SQL parancs, amelyet minden programozónak tudnia kell

Az adatbázisok mozgatják a modern internetet. Minden nagy vagy dinamikus webhely valamilyen módon használ adatbázist, és azzal kombinálva Strukturált lekérdezési nyelv (SQL) , az adatok kezelésének lehetőségei végtelenek. Ha már ismeri az SQL -t, ellenőrizze ezeket a programozási készségeket, amelyeket minden webhelyfejlesztőnek tudnia kell.





Ma néhányat mutatok nektek alapvető SQL parancsok programozóként tudnia kell.





Az adatbázis -táblából visszaadott adatoknak sok neve van. Az adatokat általában úgy hívják Sorok , Rekordok , vagy Tuples . Ezeket a kifejezéseket felcserélhetően fogom használni ebben a cikkben.





Előszó

A mai példák mindegyike négy kitalált táblázaton alapul. Az vevő táblázat tartalmazza az ügyfelek nevét és életkorát:

Az Magasság táblázat tartalmazza bármely személy nevét és magasságát:



Az személyzet táblázat tartalmazza az alkalmazottak nevét és életkorát - pontosan ugyanazt, mint az ügyfél táblázat:

A döntő asztal nevezett emberek tartalmazza az emberek nevét és életkorát, akárcsak az ügyfél- és személyzeti táblázatok:





1. Válassza a lehetőséget

Az válassza ki az utasítás a legegyszerűbb, és elengedhetetlen, hogy megértse, mivel szinte minden más parancsot alátámaszt. A legjobb gyakorlatnak tartják, hogy a fenntartott SQL -szavakat nagybetűvel írja, mivel ez megkönnyíti a parancs olvasását és megértését.

Ahogy a neve is sugallja, a select megszokta válassza ki adatokat egy adatbázisból. Íme a legegyszerűbb használat:





SELECT * FROM table;

Ennek két része van. Az első rész ( SELECT * ) megadja, hogy mely oszlopokat szeretné kiválasztani. A csillag azt jelzi, hogy ki akarja jelölni a táblázat összes oszlopát. A második rész ( FROM táblázatból ) megmondja az adatbázis motorjának, hogy honnan szeretné lekérni ezeket az adatokat. Cserélje le a „táblát” az adatbázis táblájának nevével.

Ez a kiválasztás „csillag kiválasztása” néven ismert. A csillag használata jó módja annak, hogy megtudja, milyen adatok találhatók a táblázatban, de nem javaslom, hogy bármilyen termelési kódhoz használja őket. Kiválasztott csillag használatakor az adatbázis motor feladata, hogy bemutatja a kívánt adatokat. Ön nem tudja ellenőrizni az adatok visszaadásának sorrendjét, ezért ha valaki új oszlopot ad hozzá a táblázathoz, előfordulhat, hogy a programozási nyelvén szereplő változók már nem a megfelelő adatokat tartalmazzák. Szerencsére van megoldás.

Kifejezetten megadhatja, hogy mely oszlopokat szeretné lekérni, például:

SELECT age, name FROM people;

Ez a lekérdezés lekéri az 'életkor' és a 'név' oszlopokat az 'emberek' táblázatból. Ez a nyílt kifejezés kissé fárasztó lehet, ha sok adata van, de ez csökkenti a jövőbeni problémákat, és megkönnyíti az SQL megértését a jövőbeli programozók számára.

Ha további adatokat szeretne kiválasztani, de nem tárolja egyik táblázatban sem, akkor ezt a következőképpen teheti meg:

SELECT age, '1234' FROM people;

Az egyetlen idézőjelben lévő karakterláncot vissza kell adni, ahelyett, hogy egyezne az oszlop nevével.

2. Hol

A select parancs kiválóan alkalmas adatok lekérésére, de mi van, ha kicsit jobban szeretné szűrni az eredményeket? Mi a helyzet, ha csak azokat az embereket keresik le, akiknek kék a szemük? Mi a helyzet a januárban született, szerelőként dolgozó emberekkel? Itt található a ahol parancsot adja be. Ez lehetővé teszi, hogy feltételeket alkalmazzon a select számára, és egyszerűen hozzáfűzheti az utasítás végéhez:

SELECT age, name FROM people WHERE age > 10;

Ez a lekérdezés most csak a 10 évnél idősebb emberekre korlátozódik. Több feltételt kombinálhat a ÉS operátor:

SELECT age, name FROM people WHERE age > 10 AND age <20;

Az ÉS parancs pontosan úgy működik, mint az angol nyelven: egy másik feltételt alkalmaz az utasításra. Ebben a példában a visszaküldött adatok bármely 10 és 20 év közötti rekordok lennének. Mivel nincsenek egyező eredmények, nincs adat.

hogyan lehet zenét letölteni az ipod -ról az iTunes -ra

Egy másik ezzel együtt használható parancs VAGY . Íme egy példa:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Ez a lekérdezés olyan rekordokat ad vissza, amelyek életkora meghaladja a 10 évet, vagy a név egyenlő „Joe” -val. Figyeld meg, hogy csak egy egyenlőségjel létezik? A legtöbb programozási nyelv kettős egyenlőt (==) használ az egyenértékűség ellenőrzésére. Erre nincs szükség az adatbázis-motorok túlnyomó többségénél (de ez környezetenként nagyon is lehetséges, ezért először ellenőrizze kétszer).

3. Rendeljen

Az rendelés parancs a visszaadott eredmények rendezésére szolgál. Ez egy másik könnyen használható. Egyszerűen fűzze a nyilatkozat végéhez:

SELECT name, age FROM people ORDER BY age DESC;

Meg kell adnia az oszlopot és a sorrendet, amely lehet ASC emelkedő vagy DESC az ereszkedésért. Rendelhet több oszlop szerint, mint ez:

SELECT name, age FROM people ORDER BY name ASC, age DESC

RENDEZÉS talán a leghasznosabb más parancsokkal kombinálva. Nem minden lekérdezés ad vissza logikus vagy rendezett módon adatokat - ez a parancs lehetővé teszi ennek megváltoztatását.

4. Csatlakozz

Az csatlakozik parancsot szokták csatlakozik egy vagy több táblázatban tárolt kapcsolódó adatok. te csatlakozik a második táblázatot az első táblához, és adja meg az adatok csatlakoztatásának módját. Íme egy alapvető példa:

hogyan kell belépni a bios windows 10 -be
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Van itt néhány dolog. A „LEFT JOIN” szintaxissal kell kezdenie, amely azt határozza meg, hogy egy táblázathoz bal oldali illesztéssel szeretne csatlakozni. Ezután adja meg azt a táblázatot, amelyhez csatlakozni szeretne (magasságok). Az USING (név) A szintaxis szerint a 'name' oszlop mindkét táblázatban megtalálható, és ezt a kulcsot kell használni a táblák összeillesztéséhez.

Ne aggódjon, ha az oszlopok különböző neveket tartalmaznak minden táblázatban. A „HASZNÁLAT” helyett használhatja az „ON” beállítást:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Az on utasítás kifejezetten megadja, hogy mely oszlopokat kell beírni. Sokféle csatlakozás létezik, és hosszú időbe telne, amíg mindegyik részletesebben belemerülünk, ezért itt egy rövid összefoglaló a használatukról:

  • (BELSŐ ÖSSZEKAPCSOLÁS - Mindkét táblázatban egyező sorokat ad vissza.
  • BAL (KÜLSŐ) CSATLAKOZÁS - Visszaadja a bal oldali táblázat összes sorát, a jobb oldali táblázatból származó egyezésekkel. Ha nincs egyezés, akkor a bal oldali táblázat rekordjai továbbra is megjelennek.
  • JOBB (KÜLSŐ) CSATLAKOZÁS - Ez ellentétes a bal oldali összekapcsolással: a jobb oldali asztal minden sora visszaadásra kerül, a bal oldali táblázatban szereplő összes egyezéssel együtt.
  • TELJES (KÜLSŐ) CSATLAKOZÁS - Bármelyik táblázatban szereplő egyezéssel rendelkező rekordokat adja vissza.

A „BELSŐ” vagy „KÜLSŐ” szintaxis opcionális. Ez megkönnyítheti a dolgok megértését, de az idő nagy részében nem kell megadni.

5. Álnevek

Most már ismeri az alapokat, nézzük meg a álnév parancs. Ez egy táblázat ideiglenes átnevezésére szolgál - több becenév, mint bármi más, mivel ez az új név csak a futó egyedi tranzakción belül létezik. Használja a következőképpen:

SELECT A.age FROM people A;

Bármilyen érvényes nevet használhat, de én szeretem az ábécé betűit. Minden oszlopnév előtt az álnevet előtaggal kell ellátni. Ezt az álnevet közvetlenül a táblához rendeli a bejelentés után. Ez pontosan ugyanaz, mint ezt tenni:

SELECT people.age FROM people;

Ahelyett, hogy hosszú táblanevet kellene beírnia, írjon be egy egyszerű és könnyen megjegyezhető betűt - de mi értelme? Nos, ha egynél több táblázatból választ, könnyen megzavarhatja, hogy melyik oszlop melyik táblázathoz tartozik. Ha történetesen mindkét táblájában azonos nevű oszlop található, akkor az adatbázis -lekérdezés akár a futtatása is meghiúsulhat anélkül, hogy kifejezetten hivatkozna a tábla nevére vagy aliasára. Íme egy példa két táblázattal:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

És itt ugyanez a lekérdezés álnevek mellett:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

A személyzeti táblázat az „A”, az ügyfelek táblája pedig a „B” álnevet kapja. Az alias táblázatok valóban segítenek abban, hogy a kódot könnyebben megértsék, és csökkentse a gépelés szükségességét.

Az 'AS' paranccsal egy alias oszlopot is átnevezhet:

SELECT age AS person_age FROM people;

Ennek a lekérdezésnek a futtatásakor az oszlop neve „person_age” lesz, nem „age”.

6. Unió

Unió nagy parancs. Lehetővé teszi, hogy sorokat fűzzön egymáshoz. Az illeszkedő oszlopokat hozzáfűző összekapcsolásokkal ellentétben az unió nem kapcsolódó sorokat is hozzáfűzhet, feltéve, hogy azonos számú és nevű oszlopot tartalmaz. Használja a következőképpen:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Gondolhat az unióra két lekérdezés eredményeinek ötvözésének módjára. Az unió csak akkor ad vissza eredményeket, ha a két lekérdezés között egyedi sor van. Az 'UNION ALL' szintaxissal az összes adatot visszaadhatja, függetlenül az ismétlődéstől:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Figyelje meg, hogyan változik a sorok sorrendje? Az Union a leghatékonyabban működik, ezért a visszaadott adatok sorrendben változhatnak.

Az unió lehetséges felhasználási módja egy részösszeg: egyesítheti az összeg összegének lekérdezését az egyes forgatókönyvek egyedi lekérdezésére.

7. Beszúrás

Most már mindent tud az adatok adatbázisból történő lekéréséről, de mi a helyzet a beszúrással? Itt található a betét parancs jön be. Íme egy példa:

INSERT INTO people(name, age) VALUES('Joe', 102);

Meg kell adnia a táblázat nevét (személyek) és a használni kívánt oszlopokat (név és életkor). A „VALUES” szintaxist használjuk a beszúrandó értékek megadásához. Ezeknek ugyanabban a sorrendben kell lenniük, mint a korábban megadott oszlopoknak.

A beszúrásokhoz nem adhat meg egy hova vonatkozó záradékot, és gondoskodnia kell arról, hogy kövesse a szükséges táblázatkorlátozásokat.

8. Frissítés

Néhány adat beillesztése után természetes, hogy bizonyos sorokat kell módosítani. Itt a frissítés parancs szintaxisa:

UPDATE people SET name = 'Joe', age = 101;

Meg kell adnia a módosítani kívánt táblát, majd a „SET” szintaxissal megadhatja az oszlopokat és azok új értékeit. Ez a példa jó, de minden egyes rekordot frissíteni fog - ez nem mindig kívánatos!

Hogy pontosabb legyünk, a WHERE záradékokat ugyanúgy használhatjuk, mint a kiválasztás során:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Még több feltételt is megadhat az 'AND' és az 'OR' használatával:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Figyelje meg, hogyan használják a konzolokat a feltételek korlátozására.

dal átvitele az iPod -ról az iTunes -ra

9. Felmondás

Hoppá furcsán hangzó szó, de hihetetlenül hasznos parancs. Tegyük fel, hogy korlátozás van érvényben az asztalán, és megadta, hogy mindig csak egyedi nevű rekordokat szeretne - például nem szeretne két azonos nevű sort tárolni. Ha több 'Joe' értéket próbál beilleszteni, az adatbázis motor hibát jelez, és nem hajlandó megtenni (teljesen helyesen). Az UPSERT lehetővé teszi egy rekord frissítését, ha az már létezik. Ez hihetetlenül hasznos! E parancs nélkül sok logikát kell írnia ahhoz, hogy először ellenőrizze, hogy létezik -e rekord, és illessze be, ha nem, különben töltse le a helyes elsődleges kulcsot, majd frissítse.

Sajnos az upsertek különbözőképpen valósulnak meg a különböző adatbázis -motorokban. A PostgreSQL csak nemrég nyerte el ezt a képességet, míg a MySQL már régóta rendelkezik ezzel. Íme a MySQL szintaxisa referenciaként:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Figyelje meg, hogy ez lényegében egy frissítés és egy beszúrási utasítás, amelyet úgy lehet összefoglalni, hogy „frissítés, ha a beszúrás sikertelen”.

10. Törlés

Töröl a rekordok teljes eltávolítására szolgál - visszaélés esetén nagyon káros lehet! Az alapvető szintaxis használata nagyon egyszerű:

DELETE FROM people;

A többi parancshoz hasonlóan ez is törlődik minden ! Használnia kell egy a hol -t, hogy kissé ésszerűbb sorokra korlátozza - ideális esetben egyet:

DELETE FROM people WHERE name = 'Joe';

Ha rendszert fejleszt, gyakran bölcs dolog „lágy törlést” alkalmazni. Valójában soha nem futtatja a törlés parancsot, hanem létrehoz egy törölt oszlopot, majd ellenőrzi ezt az oszlopot a kiválasztásban - ez elkerülheti a sok esetleges kínos helyzetet, ha gyorsan és egyszerűen vissza tudja állítani az állítólag törölt rekordokat. Ez azonban nem helyettesíti a megfelelő biztonsági mentéseket.

11. Táblázat létrehozása

Az táblázat létrehozása paranccsal táblázatokat készíthetünk. Ez egy másik nagyon egyszerű:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Figyelje meg, hogy az oszlopok nevei és korlátai zárójelben vannak, és az oszlopok megfelelő adattípust kapnak. Elsődleges kulcs van megadva, mint minden jó adatbázis -tervezésnél.

12. Alter táblázat

Az alter asztal parancs a táblázat szerkezetének módosítására szolgál. Ez kissé korlátozott, mivel az adatbázis nem teszi lehetővé a táblázat módosítását, ha a meglévő adatok ütközést okoznának - például egy karakterlánc egészre cserélése. Ilyen esetekben először javítsa ki az adatokat, majd módosítsa a táblázatot. Íme egy példa:

ALTER TABLE people ADD height integer;

Ez a példa hozzáad egy 'magasság' nevű oszlopot egész számmal az emberek táblához. Valójában nincs korlátozás arra vonatkozóan, hogy mit módosíthat.

13. Csepp asztal

Az utolsó parancs az ejtőasztal . Gondolja ezt törlésre, de ahelyett, hogy egyetlen rekordot törölne, minden egyes rekordot eltávolít a táblával együtt! Használja a következőképpen:

DROP TABLE people;

Elég drasztikus parancs, és nincs ok arra, hogy be kell programozni a rendszerbe. Csak manuálisan kell elvégezni az esetek túlnyomó többségében, és ez meg is történhet nagyon romboló.

Ez minden mára. Remélem hasznos trükköket tanultál! Megtanulhatná, hogyan kell weboldalt készíteni , majd használja az újonnan talált készségeit dinamikussá - csak ügyeljen arra, hogy ne kövesse el ezeket a hibákat, és ne hagyja sebezhetővé az SQL -befecskendezést. Ha nem biztos abban, hogy meg kell tanulnia az SQL -t, fontolóra vette a statikus webhelygenerátort?

Miért nem hagy egy megjegyzést alább a kedvenc SQL tippjeivel és trükkjeivel?

Képhitel: HYS_NP/Shutterstock

Részvény Részvény Csipog Email Érdemes Windows 11 -re frissíteni?

A Windows újra lett tervezve. De ez elég ahhoz, hogy meggyőzze Önt, hogy váltson a Windows 10 -ről a Windows 11 -re?

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • SQL
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide