SQL parancsok Cheat Sheet

SQL parancsok Cheat Sheet

Az SQL a strukturált lekérdezési nyelv. Kifejezetten a relációs adatbázisokban tárolt adatok kezelésére és elérésére hozták létre. Az SQL első kereskedelmi vállalkozása az Oracle volt, amelynek SQL * Plus lekérdezési nyelve továbbra is az összes relációs adatbázis-kezelő rendszer (RDMS) alapja..

Ma a MySQL, SQL Server, SAP és Sybase mind az SQL-t használja az adatbázis-hozzáféréshez. Ebben az útmutatóban megadjuk az SQL parancsok standard verzióját, különös figyelmet fordítva az SQL * Plus Oracle megvalósítására.

A SZERKESZTŐ VÁLASZTÁSA: Javasoljuk a SolarWinds infrastruktúra-kezelő eszközöket, hogy figyeljék az összes Microsoft-eszközt, beleértve az SQL Server-et is. Szüksége van megfigyelő segédprogramok készletére, amelyek kölcsönhatásba léphetnek annak érdekében, hogy lefedjék az összes olyan szolgáltatást, amely támogatja a relációs adatbázist.

Relációs adatbázisok

Az SQL kezeli relációs adatbázisok. A relációs adatbázis táblákat tartalmaz, amelyeket elválasztottak az adatok ismétlésének csökkentése érdekében. Az adatkategóriák megfelelő csoportosításáról szóló döntés folyamatát „normalizálás.„Egyes esetekben a teljesítményigény azt sugallhatja, hogy a táblák jobban működnek, ha nem teljesen normalizálják. Ezt a folyamatot „denormalizációnak” hívják, és ez ritka előfordulás.

Minden táblázatnak oszlopra van szüksége, amely egyedileg azonosítja az egyes sorokat. Ezt nevezzük „elsődleges kulcs.A többi táblához, amely csatlakozhat az entitáshoz, minden rekordban hivatkozást kell tartalmaznia az elsődleges kulcsra. Ezt a hivatkozást „idegen kulcs." Te csatlakozik táblázatokat összeállítva, ha az idegen kulcsot egy táblában az elsődleges kulccsal illeszti egy másikban. Ezt a műveletet az SQL segítségével hajtják végre. Az Entitás-kapcsolati diagram hasznos referencia az SQL utasítás strukturálásának eldöntésekor.

A hozzáférés felgyorsítása érdekében normális a index az adatbázis minden elsődleges kulcsán. Lehetőség van a gyakran használt illesztések tárolására is virtuális táblák létrehozására, amelyeket „nézetek.”

Még egy adatbázis-objektum a ravasz. Ez egy SQL elem, amely akkor indul el, amikor egy értéket hozzáadnak egy oszlophoz vagy megváltoztatják. A ravaszt frissíti az értékek egy másik táblázat oszlopában vagy ugyanazon táblázat többi oszlopában. Ez akkor fordul elő, ha egy értéket hozzáadunk vagy megváltoztatunk az oszlopban, amelyen a ravaszt elhelyezzük. Ez korlátozhatja az oszlopba bevihető értékeket is.

DQL, DDL, DCL és DML

Az SQL négy parancs-alkészletet tartalmaz. Ezek Az adatkérdezés nyelve (DQL), Adatleírás nyelve (DDL), Adatkezelő nyelv (DCL) és Adatmanipulációs nyelv (DML).

A legtöbb projektnél a Adatbázis adminisztrátor (DBA) az egyetlen olyan csapattag, aki felhasználási jogosultsággal rendelkezik DDL. Ez a parancscsoport táblákat, indexeket, triggereket és nézeteket hoz létre, módosít és dob.

DML a rekordok hozzáadására, megváltoztatására vagy eltávolítására szolgál az adatbázis tábláiból. Az SQL funkciókhoz való hozzáférés általában a felhasználói közösség támogató személyzetére vagy vezető, felelős tagjaira korlátozódik.

DQL a jelentések létrehozására szolgál az adatbázisból. Ezt a parancs-részhalmazt a programozók használják, és a végfelhasználók számára is elérhetővé tehetik, hogy saját lekérdezéseiket végrehajthassák.

A felhasználói jogosultságok kezelését ugyanabban az adatbázisban tárolják, mint az adatokat. E táblákhoz való hozzáférés azonban általában a DBA-ra korlátozódik. A felhasználói hozzáférés kezelése mindezen keresztül történik DCL.

Van egy hasznos SQL parancs, amely nem tartozik a DQL, DDL, DCL vagy DML osztályozásba. Ez "leírniAmelyet általában úgy valósítanak meg, mint DESC. Ez egy objektum felépítését mutatja az adatbázisban. Táblázat esetén megjelenik az oszlopok listája, valamint az adattípus és az egyes méretek. Megmutatja az SQL-t, amely létrehozott egy nézetet vagy triggert, és megmutatja az adott indexben szereplő oszlopokat.

Relációs operátorok

A relációs adatbázisok mögött meghúzódó elméletet a E. F. Codd A Codd meghatározásán belül lekérdező eszköz követelménye felel meg, amelynek nyolc alapvető relációs műveletet kell végrehajtania. Ezek:

  1. SELECT
  2. PROJEKT
  3. CSATLAKOZIK
  4. TERMÉK
  5. UNIÓ
  6. átvág
  7. KÜLÖNBSÉG
  8. FELOSZT

A relációs adatbázisból származó adatokhoz való hatékony hozzáféréshez el kell végeznie ezeket a műveleteket. Ezeket az alábbiakban magyarázzuk.

SELECT

A SELECT eredetileg hívták KORLÁTOZ. Ez az a képesség, hogy az adatbázisból egy rekordot vagy egyező rekordok egy csoportját kinyerjük. Amellett, hogy elméleti művelet, SELECT a főparancs neve az SQL implementációkban. Valójában az összes adatkeresést a KIVÁLASZTÁS valósítja meg. A parancs annyira erős, hogy sok-sokféle módon módosítható. A legtöbb SQL, amelyet meg kell tanulnod, a SELECT utasítás „záradéka”.

PROJEKT

A PROJEKT egy oszlop (vagy “attribútum”) elkülönítésének képessége a táblázatban. Ezt mindig a SELECT utasítás valósítja meg.

CSATLAKOZIK

A JOIN összekapcsolja a táblákat egy közös attribútummal. Az idegen kulcsot használja az egyik táblázatban, hogy megfeleljen egy másik táblázat elsődleges kulcsának értékéhez. A törvény két táblát átmenetileg egységesít. Ezt záradékként valósítják meg a SELECT utasításban. A két tábla közötti összekapcsolás automatikusan kihagy minden olyan rekordot, amely nem szerepel mindkét támogató táblában. Egy „külső csatlakozás”Olyan rekordokat jelenít meg, amelyeknek nincs egyezésük a másik táblázatban, és a mezőket, amelyeket a másik táblázatnak kellett volna szolgáltatnia, üresen hagyja.

TERMÉK

A TERMÉKET más néven „alkalommal.”Ezt SELECT utasításként valósítják meg, amely két táblából nyer adatokat, de nem határozza meg a közöttük lévő összekapcsolást. A való életben nagyon kevés gyakorlati oka van annak, hogy valaki soha egyszer fellépne két asztalon. Ez általában figyelmeztető jel, hogy rosszul írtál egy JOIN-záradékot. A TERMÉK eredménye az, hogy az egyik táblában minden selejtező rekord megegyezik a másik táblázat minden kvalifikációs rekordjával. Tehát, ha két táblából készít SELECT utasítást, amelyek mindegyikében tíz rekord van, az eredmények összesen 100 rekordot fognak eredményezni.

UNIÓ

Az UNION a halmazelmélet közös operátora. Ha két halmazod van, akkor az unió egyesíti mindkét halmaz összes tagját. A másolatot eltávolítják az eredményekből. Az SQL-ben ezt a VAGY Logikai operátor.

átvág

Az INTERSECT a halmazelmélet másik fő operátora. Ha két halmazod van, az metszéspont azokat a tárgyakat írja le, amelyek mindkét halmaz tagjai. Bármely tárgy, amely csak a két halmaz egyikének tagja, kizárásra kerül az eredményekből. Az SQL-ben ezt a ÉS Logikai operátor.

KÜLÖNBSÉG

A DIFFERENCIA „mínusz”, És a jelölésben a mínuszjel („ - ”) jelöli. A DIFERENCIA megvalósításához többféle mód van. Ez létrehozható egy logikai érték beillesztésével NEM a kiválasztási kritériumokban, és a következővel is megvalósítható: MÍNUSZ operátor, majd egy alkérdés.

FELOSZT

A DIVIDE egy szokatlan művelet, amelyhez hasonlóan a PRODUCT-hoz is nagyon kevés gyakorlati alkalmazás van. Codd a DIVIDE-t bármilyen relációs rendszer és a lekérdező eszköz savtesztének tekintette, így minden SQL-megvalósítás magában foglalja ezt a képességet, csak azért, hogy „relációs” címet kapjon. Valójában soha nem fogja használni. A DIVIDE megvalósításához sorozat subquery-t kell bevinni a MÍNUSZ az Oracle SQL * Plus és az an KIVÉVE operátor más SQL implementációkban, például az SQL Server és a PostgreSQL.

Boolean operátorok

George Boole egy brit matematikus, aki 1864-ben halt meg. Úgy találta ki a logikai algebrát, amelynek gyakorlati alkalmazása nem volt lehetséges, amíg az informatika és a relációs adatbázisok területei meg nem jelentek a 20. század végén. A logikai algebra az SQL műveleteinek központi eleme - a legalapvetőbb SQL lekérdezést csak logikai logika használata nélkül tudta írni. A logikai logika alapja az összes keresőmotor. Az SQL kulcsfontosságú logikai operátorai:

  • ÉS
  • VAGY
  • NEM

Egy másik furcsa viktoriánus Brit, amelyről tudnod kell, az Augustus de Morgan. Megfigyelést tett a logikai halmazelmélet átalakulásáról, amelyet minden SQL programozónak tudnia kell. Ez azt jelenti, hogy a NOT megváltoztathatja az AND és a OR működését. A rövid változat az, hogy óvatosnak kell lennie a zárójelek használatával a nyilatkozatokban a nem kívánt következmények elkerülése érdekében. Tehát az „és” és „vagy” is fontos logikai operátoroknak kell tekinteni az SQL-ben.

ÉS

ÉS végrehajtja a átvág a meghatározott elméletben. Ha olyan adatbázist szeretne kihozni egy adatbázisból, amely csak két követelménynek felel meg, és nem csak az összetett kritériumok egyikének, akkor AND-t kell használnia. Például futtathat egy vetőmag-vállalkozást, és az adatbázis egy táblázatot tartalmaz, amely az összes vetőmagot tárolja az attribútumokkal. Az ügyfél felhív és csak sárga begóniát akar. Tehát keresne az adatbázisában faj = „begónia” ÉS szín = „sárga” a megfelelő magkatalógus megszerzéséhez.

VAGY

VAGY megadja neked a két halmaz összes tagját - ez az UNIÓ a halmazelméletben. Tehát a mag adatbázisában, ha lekérdezést futtatott: faj = „begónia” VAGY szín = „sárga”, olyan eredményeket kap, amelyek tartalmazzák a sárga rózsa, a sárga begónia, a rózsaszín begónia és a sárga nárcisz. Ebben a példában a sárga begónia kétszer minősül. A relációs elméletben csak egy rekordot kell visszaadni. Szerencsére az SQL magában foglalja a minősítőt KÜLÖNBÖZŐ, tehát belépve KIVÁLASZTÁS DISTINCT * Virágoktól, ahol faj = „begónia” VAGY szín = „sárga”, ez a sárga begónia rekord csak egyszer jelenik meg.

NEM

NEM könnyű megérteni. Nem zárja ki azokat az eredményeket, amelyeket az alábbi állítás eredményezne: ÉS NEM, VAGY NEM. A gyakorlatban szinte soha nem fogja használni a „VAGY NEM” kérdést. Ha a vetőmag vevője bármi más színű begóniát szeretne, kivéve a sárga színűt, akkor Ön ezt használja faj = „begónia” ÉS NEM szín = „sárga” kiválasztani a kínált termékeket.

Konzolok

De Morgan törvénye szerint:

„A diszjunció tagadása a negatívumok összekapcsolása; és a konjunkció tagadása a negatívumok diszjunktusa ”.

A sima angol nyelvben használjon óvatosan zárójeleket az SQL-utasításban, amikor a NEM-et is tartalmazza, hogy megakadályozza az AND-k átalakulását legkülső régiókká és fordítva. A sorozatkezelési feltételek együtt csökkenthetik a kiválasztási kritériumokat is. Például, NEM (faj = „begónia” ÉS szín = „sárga”) ugyanaz mint NEM faj = “begónia” VAGY NEM szín = “sárga”.

Nyilvántartások kibontása

A különböző SQL implementációk eltérő szintaxist használnak, de ebben az útmutatóban az Oracle SQL * Plus-ját fogjuk követni. Az SQL adatkiválasztás alapvető felépítése:

SELECT
TÓL TŐL

HOL

Ez megadja az értékek listáját egy táblázat egyik oszlopában. Ez a PROJEKT Codd által meghatározott relációs művelet.

Felvehet oszlopokat a KIVÁLASZTÁShoz, vagy használhatja a helyettesítő karakter operátort (“*”), Hogy a táblázat összes oszlopát megkapja:

KIVÁLASZT *
TÓL TŐL

HOL

Ez Coddé SELECT relációs művelet. Nélkül HOL záradék, minden rekordot megkap a táblázatban.

Több oszlopot vesszők választanak el („,„):

KIVÁLASZTÁS 1. oszlop, 2. oszlop, 7. oszlop
TÓL TŐL

HOL

Az HOL A záradék kiválasztja a konkrét rekordokat. Ez a logikai operátorok legfontosabb célja:

SELECT seed_num, seed_desc
Magoktól
Hol faj = „begónia” ÉS szín = „sárga”

Ezekben a példákban észreveszi, hogy nem idézőjeleket helyez az oszlopok neveire, hanem idézőjeleket tesz az oszlopok értékeire. Ha elfelejti idézőjeleket tenni az értékek köré, a DBMS elvárja, hogy a szavak oszlopnevek legyenek. Tehát a fenti lekérdezésben idézetek nélkül hibaüzenetet kap, amely azt mondja, hogy a táblázatban nincs begónia és sárga oszlop..

Csatlakozó asztalok

Az SQL lekérdezések legfontosabb feladata a táblák összekapcsolása. Számos trükköt végre lehet hajtani a részkeresésekkel, de ha rosszul csatlakozik, akkor a lekérdezése mindig helytelen eredményeket ad vissza.

A csatlakozáshoz a legjobb útmutató az Entitás-kapcsolat diagram. Csatlakozás létrehozásához csak egy táblát kell tartalmaznia a TÓL TŐL A SELECT záradékát, és feltétlenül adja meg a kapcsoló oszlopokat a HOL kikötés. Vegye figyelembe, hogy egyes táblák ugyanazokat az oszlopneveket használhatják. A zavar elkerülése érdekében jobb, ha minden egyes táblát egyesítünk álnév hogy azonosíthassa a SELECT utasításban hivatkozott oszlopok forrását:

SELECT a.seed_num, a.seed_desc, b.supplier_name
Vetőmagoktól a, szállítóktól b
Ahol a.faj = “begónia” ÉS a.color = “sárga”
ÉS b.supplier_ID = a.supplier_ID

A fenti példában, supplier_ID az elsődleges kulcs a beszállítók táblájában, az azonos nevű mező pedig a magtáblában szereplő idegen kulcs, amely a szállítói táblázat megfelelő rekordjához hivatkozik.

Bár technikailag lehetséges OR-t használni csatlakozáshoz, inkább az AND-t használják. Az OR-ket csak a kiválasztási kritériumokhoz használja, és ne csatlakozás létrehozásához.

subqueries

Használhatja a SELECT nyilatkozat mint fő forrás SELECT és csatlakozhat többhez SELECT nyilatkozatok az üzemeltetőkkel együtt, mint például MÍNUSZ. A fő SELECT utasítást kiszolgáló extra lekérdezések eseteit „subqueries."Alkérdezés létrehozásakor a kulcsszó BAN BEN nagyon hasznos lehet.

Például, ha csak sárga begóniákat szeretne kapni az EU-n belüli szállítóktól, akkor létrehozhatja az értékek listáját a BAN BEN úgymint:

SELECT a.seed_num, a.seed_desc, b.supplier_name
Vetőmagoktól a, szállítóktól b
Ahol a.faj = “begónia” ÉS a.color = “sárga”
ÉS b.supplier_ID = a.supplier_ID
ÉS b.szolgáltató_ország IN („Egyesült Királyság”, „Franciaország”, „Németország”…)

Az EU összes országának ez a listája 28 értékre terjed ki, és mindegyiket be kell írnia - a példában szereplő „…” csak röviden szól. Ebben a példában minden kérdését felül kell vizsgálnia, és meg kell változtatnia az értékek listáját, amikor egy ország csatlakozik vagy kilép az EU-ba. Hatékonyabb az EU-országok táblázatainak elkészítése, és erre hivatkozás. Ezután csak egy táblában kell rekordokat hozzáadnia vagy törölnie, mivel az EU összetétele megváltozik.

Ebben a forgatókönyvben létrehoz egy EU_countries nevű táblát, amelynek elsődleges kulcsa egy country_ID mező, és egy country_name oszlop. Ezután létrehozhat egy alkérdéket az EU-országok listájának létrehozásához:

SELECT a.seed_num, a.seed_desc, b.supplier_name
Vetőmagoktól a, szállítóktól b
Ahol a.faj = “begónia” ÉS a.color = “sárga”
ÉS b.supplier_ID = a.supplier_ID
ÉS b.szolgáltató_ország (IN SELECT országnév az EU-országokból)

Lehetőség van beágyazott lekérdezések sorozatának létrehozására, és egyes SQL funkciókhoz legalább két SELECT utasítás szükséges. Például, ha nem uniós vetőmag-szállítókat szeretne szerezni, használhatja a MINUS-ot:

SELECT a.seed_num, a.seed_desc, b.supplier_name
Vetőmagoktól a, szállítóktól b
Ahol a.faj = “begónia” ÉS a.color = “sárga”
ÉS b.supplier_ID = a.supplier_ID
MÍNUSZ
SELECT c.seed_num, c.seed_desc, d.supplier_name
VAGY magvak c, beszállítók d, EU_országok e
WHERE d.supplier_country_ID = e.country_ID
ÉS b.supplier_ID = a.supplier_ID

A fenti példában a második lekérdezés sokkal több rekordot hoz vissza, mint az első. A lekérdezés egyik eredménye sem jelenik meg a kimeneten. A fő lekérdezés minden olyan eredményét, amely megegyezik a második lekérdezés eredményével, eltávolítják a kimeneti listáról.

CSOPORTOSÍT

Az SQL lekérdezheti az adatok összesítését az Ön számára a lekérdezés feldolgozása során. Az CSOPORTOSÍT A záradék lehetővé teszi statisztikai adatok kiszámítását az rekordcsoportokról. Például:

SELECT fajvirág, számoljon (1) példányt
Magoktól
Fajok szerint csoportosítva

Ebben a példában láthat egy funkciót, SZÁMOL. Ehhez paraméterként oszlopra van szükség, de helyette csak tokent adhat, 1.  Ez a példa azt is mutatja, hogy oszlopnevek álneveket adhat meg. A fajok és a virág között nincs kóma a SELECT. A DBMS ezt a második szót úgy értelmezi, hogy az oszlopnév megjelenik a kimeneten. Egyes SQL megvalósításokban ennek az álnévnek idézőjelben kell lennie, másokban ezt a kulcsszónak kell jelölnie MINT:

VÁLASZTÁSI fajokat AS "virág", számoljon (1) AS "példányok"
Magoktól
Fajok szerint csoportosítva

Az értelmes név oszlopba helyezése különösen akkor fontos, ha a lekérdezésben funkciókat használ.

A fenti lekérdezés megadja a fajneveknek a vetőmagtáblából egyértelmű listáját, és megadja a táblázat összes rekordjának számát, amelyek mindegyikével rendelkeznek.

RENDEZÉS

Megadhatja az eredmények kimeneti sorrendjét a RENDEZÉS kikötés. Ez alapértelmezés szerint növekvő sorrendben jeleníti meg az értékeket, de megadhatja azt is, hogy a rekordok csökkenő sorrendben jelenjenek meg.

VÁLASSZON DISTINCT fajokat
Magoktól
RENDELÉS fajok szerint DESC

Ha több oszlop van a kimeneten, akkor bármelyiket megnevezheti rendelési mezőként. A legtöbb SQL megvalósításban nem kell beírnia az oszlop nevét az ORDER BY záradékba, hanem csak az oszlop pozíciójának számát, például RENDELÉS 2 amikor azt akarja, hogy a kimenet második oszlopa diktálja a megjelenítési sorrendet.

Ebben a példában a KÜLÖNBÖZŐ opció a SELECT, amelynek ugyanaz a hatása, mint a CSOPORTOSÍT. Ha azonban összesítő funkciókat ad hozzá a KIVÁLASZTÁSHOZ, akkor a CSOPORTOSÍT ahelyett KÜLÖNBÖZŐ.

SQL funkciók

Már látta a COUNT funkciót. Az SQL minden megvalósításában sok más funkció elérhető. Ezek szigorúan nem az SQL, hanem az SQL verzió készítője által hozzáadott segédprogramok. A statisztikai funkciók, mint például az átlag, az összeg, a max és a min, minden SQL ízben jellemzőek.

Áramlás-szabályozó mechanizmusok, amelyek mint HAs és MÍG hurkok nem léteznek az SQL-ben. A feltételes kiválasztás azonban különféle funkciókkal valósítható meg.

A Comparitech SQL Cheat Sheet

A lehetőségek hosszú listája felsorolható a SELECT utasításra. Ez a rövid útmutató csak a SELECT utasítás alapvető felépítését fedte le, amely az SQL fő eszköze Az adatkérdezés nyelve. Az átfogó listát a Comparitech MySQL Cheat Sheet (PDF) oldalon találhatja meg. Ez a lap tartalmazza az SQL adatleírási nyelvének, adatkezelési nyelvének és az adatkezelési nyelvnek az általános parancsát is.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

7 + = 13

Adblock
detector