SQL alapok

Tudjon meg többet a DDL, DML és JOIN kapcsolatokról

A strukturált lekérdezési nyelv a modern adatbázis-architektúra egyik alapvető építőeleme. Az SQL meghatározza a relációs adatbázisok létrehozására és manipulálására használt módszereket minden nagyobb platformon. Első pillantásra a nyelv félelmetes és összetettnek tűnhet, de ez nem minden nehéz.

Az SQL alapjainak bevezetése rövid áttekintést nyújt az adatbázisok létrehozásához és módosításához használt fő parancsok közül.

Az SQL-ről

Az SQL helyes kiejtése az adatbázis közösségében vitatható kérdés. SQL szabványában az American National Standards Institute kijelentette, hogy a hivatalos kiejtés "es queue el." Azonban sok adatbázis szakember vett a slang kiejtés "folytatás". A választás a tiéd.

Az SQL számos ízben jön létre. Az Oracle adatbázisok saját tulajdonú PL / SQL-jét használják. A Microsoft SQL Server a Transact-SQL programot használja. Mindegyik változat az iparági szabvány ANSI SQL alapján készült. Ez a bevezetés ANSI-kompatibilis SQL parancsokat használ, amelyek bármely modern relációs adatbázis rendszeren dolgoznak.

DDL és DML

Az SQL parancsok két fő al-nyelvre oszthatók. Az Adatmeghatározási Nyelv (DDL) tartalmazza az adatbázisok és adatbázis objektumok létrehozására és megsemmisítésére szolgáló parancsokat. Miután az adatbázis struktúráját DDL-sel definiálták, az adatbázis adminisztrátorok és a felhasználók használhatják az adatkezelési nyelvet (DML) a benne lévő adatok beillesztésére, lekérésére és módosítására.

Adatmeghatározás Nyelvi parancsok

Az Adatmeghatározási Nyelv adatbázisok és adatbázis objektumok létrehozására és megsemmisítésére szolgál. Ezeket a parancsokat elsősorban adatbázis-adminisztrátorok használják az adatbázisprojekt telepítési és eltávolítási fázisai során. Íme a négy alapvető DDL parancs struktúrája és használata:

TEREMT. Adatbázis-kezelő rendszer telepítése számítógépen lehetővé teszi számos független adatbázis létrehozását és kezelését. Például érdemes megőriznie az ügyfélszolgálatok adatbázisát az értékesítési részlegénél és a személyzeti adatbázisban a HR részlegénél. A CREATE parancs segítségével minden egyes adatbázis megtalálható a platformon. Például a parancs:

CREATE DATABASE alkalmazottak

létrehoz egy üres, "alkalmazottak" nevű adatbázist a DBMS-ben. Az adatbázis létrehozása után a következő lépés az adatot tartalmazó táblák létrehozása. A CREATE parancs egy másik változata használható erre a célra. A parancs:

CREATE TABLE personal_info (first_name char (20) nem nulla, last_name char (20) nem nulla, employee_id int nem null)

létrehoz egy "personal_info" nevű táblát a jelenlegi adatbázisban. A példában a táblázat három attribútumot tartalmaz: first_name, last_name és employee_id valamint néhány további információ.

HASZNÁLAT. Az USE parancs lehetővé teszi, hogy megadja a DBMS-ben lévő adatbázist. Például ha jelenleg az értékesítési adatbázisban dolgozik, és olyan parancsokat szeretne kiadni, amelyek hatással lesznek a munkavállalói adatbázisra, akkor az alábbi SQL paranccsal előterjesztheti őket:

FELHASZNÁLÓI alkalmazottak

Fontos, hogy mindig tudatában legyen az adatbázisnak, amelyen dolgozik, mielőtt kiadná az SQL-parancsokat, amelyek manipulálják az adatokat.

VÁLTOZTAT. Miután létrehozott egy táblát egy adatbázisban, érdemes módosítani a meghatározását. Az ALTER parancs lehetővé teszi, hogy változtatásokat hajtson végre a táblázat struktúráján, törlés nélkül és újra létrehozásakor. Vessünk egy pillantást a következő parancsra:

ALTER TABLE personal_info ADD fizetési pénz null

Ez a példa új attribútumot ad a személyes_info táblához - egy alkalmazott fizetése. A "pénz" argumentum meghatározza, hogy a munkavállaló fizetését dollár és cent formátumban tárolják. Végül a "null" kulcsszó azt mondja az adatbázisnak, hogy ez a mező nem megfelelő értéket tartalmaz a megadott alkalmazottak számára.

CSEPP. Az Adatmeghatározási Nyelv (DROP) végső parancsja lehetővé teszi számunkra, hogy teljes adatbázis objektumokat távolítsunk el a DBMS-ről. Ha például a létrehozott személyes_info táblát véglegesen el szeretnénk távolítani, a következő parancsot használnánk:

DROP TABLE személyes_info

Hasonlóképpen az alábbi parancsot használjuk a teljes alkalmazotti adatbázis eltávolítására:

DROP DATABASE alkalmazottak

Használja ezt a parancsot óvatosan. A DROP parancs eltávolítja a teljes adatstruktúrát az adatbázisból. Ha el szeretné távolítani az egyes rekordokat, használja az Adatkezelési nyelv DELETE parancsát.

Adatkezelési nyelvek parancsai

Az adatkezelési nyelv (DML) az adatbázis-információk lekérésére, beillesztésére és módosítására szolgál. Ezeket a parancsokat az adatbázis minden felhasználó használja az adatbázis rutin mûködése során.

INSERT. Az SQL INSERT parancs segítségével rekordokat adhat hozzá egy meglévő táblához. Visszatérve az előző részhez tartozó personal_info példához, képzeld el, hogy HR részlegünknek új alkalmazást kell felvennie az adatbázisába. Használhat egy ehhez hasonló parancsot:

INSERT IN személyes_info értékek ('bart', 'simpson', 12345, 45000 $)

Ne feledje, hogy a rekordhoz négy érték van megadva. Ezek megfelelnek a táblázatban szereplő attribútumoknak abban a sorrendben, amelyet definiáltak: first_name, last_name, employee_id and salary.

SELECT. A SELECT parancs a leggyakrabban használt parancs az SQL-ben. Lehetővé teszi az adatbázis-felhasználók számára, hogy a működési adatbázishoz kérjenek konkrét információkat. Vegyünk egy pillantást néhány példara, ismét a personal_info táblát a munkavállalói adatbázisból.

Az alább látható parancs a személyes_info táblában található összes információt behívja. Vegye figyelembe, hogy a csillagot az SQL-ben helyettesítő karakterként használják. Ez szó szerint azt jelenti, hogy "Válassz mindent a personal_info táblából".

SELECT * FROM personal_info

Alternatív megoldásként a felhasználók korlátozhatják az adatbázisból lekérhető attribútumokat. Például az Emberi Erőforrás részlege megkövetelheti a vállalat összes alkalmazottjának utolsó nevét. A következő SQL parancs csak az adatokat olvashatja ki:

SELECT last_name FROM personal_info

A WHERE záradék segítségével korlátozhatók a felveendő rekordok azokhoz, amelyek megfelelnek a megadott kritériumoknak. A vezérigazgató érdekelheti a magasan fizetett alkalmazottak személyzeti nyilvántartását. A következő parancs a személyes_információban található összes adatot lekérni olyan rekordokhoz, amelyeknek fizetési értéke nagyobb, mint 50 000 USD:

SELECT * FROM personal_info WHERE fizetés> 50000 $

UPDATE. Az UPDATE parancs segítségével módosíthatja a táblázatban található információkat, akár tömegesen, akár egyenként. Tegyük fel, hogy a vállalat évente 3 százalékos bérköltségnövekedést ad minden munkavállalónak. A következő SQL parancs segítségével gyorsan alkalmazható az adatbázisban tárolt alkalmazottakra:

UPDATE személyes_info SET fizetés = fizetés * 1.03

Amikor az új alkalmazott, Bart Simpson bemutatja teljesítményét a felhatalmazás felett és túl, a menedzsment 5000 dolláros emeléssel szeretné felismerni csillagászati ​​eredményeit. A WHERE klauzulát arra lehetne használni, hogy kiválassza Bartet az emelésre:

UPDATE személyes_info SET fizetés = fizetés + $ 5000 WHERE employee_id = 12345

TÖRÖL. Végezetül vessünk egy pillantást a DELETE parancsra. Meg fogja találni, hogy a parancs szintaxisa hasonló a többi DML parancshoz. Sajnos, a legutóbbi vállalati bevételi jelentésünk nem elégedett a várakozásokkal, és a szegény Bartet elbocsátották. A DELETE paranccsal WHERE klauzulával lehet eltávolítani a rekordot a personal_info táblából:

TÖRLÉS A személyes_info-ból WHERE employee_id = 12345

csatlakozik

Most, hogy megtanulta az SQL alapjait, itt az ideje, hogy továbblépjen a nyelv egyik leghatékonyabb fogalmára - a JOIN utasításra. A JOIN utasítás lehetővé teszi az adatok több táblázatban való kombinálását a nagy mennyiségű adat hatékony feldolgozásához. Ezek a megállapítások az, ahol az adatbázis valódi ereje lakik.

Egy alapvető JOIN művelet használatának feltérképezésére két táblázatból származó adatok kombinálásához folytassa a PERSONAL_INFO táblázat használatával, és adjon hozzá egy kiegészítő táblát a keverékhez. Tegyük fel, hogy van egy DISCIPLINARY_ACTION nevű táblája, amelyet a következő kijelentéssel hoztak létre:

CREATE TABLE fegyelmi_aktivitás (action_id int nem nulla, employee_id int null, kommentek char (500))

Ez a táblázat a vállalati alkalmazottak fegyelmi intézkedéseinek eredményeit tartalmazza. Észre fogja venni, hogy nem tartalmaz semmilyen információt a munkavállalóról, kivéve a munkavállalói létszámot. Könnyű elképzelni sok olyan forgatókönyvet, ahol az információkat a DISCIPLINARY_ACTION és a PERSONAL_INFO táblákból kívánja kombinálni.

Tegyük fel, hogy megbízott egy jelentés elkészítésével, amely felsorolja a 40 000 dollárnál nagyobb fizetéssel rendelkező munkavállalókkal szembeni fegyelmi intézkedéseket. A JOIN művelet használata ebben az esetben egyszerű. Ezt az információt a következő paranccsal tudjuk letölteni:

SELECT személyes_info.first_name, personal_info.last_name, disciplinary_action.comments FROM személyes_info, disciplinary_action WHERE személyes_info.employee_id = diszciplináris_aktivitás.employee_id ÉS personal_info.salary> 40000

A kód határozza meg a két táblázatot, amelyekhez csatlakozni szeretnénk a FROM-záradékban, majd tartalmaz egy nyilatkozatot a WHERE záradékban, hogy az eredményeket olyan rekordokra korlátozzuk, amelyek azonosító azonosítóval rendelkeznek, és megfelelnek a 40 000 dollárnál magasabb fizetési feltételeknek.