SQL põhialused

Lugege DDL-, DML- ja JOIN-ide kohta

Struktureeritud päringuliin on tänapäevase andmebaasi arhitektuuri üks põhilisi ehitusplokke. SQL määratleb meetodid, mida kasutatakse kõigi peamiste platvormide relatsioonandmebaaside loomiseks ja nendega manipuleerimiseks. Esmapilgul võib keel tunduda hirmutav ja keerukas, kuid see pole nii raske.

See SQL-i põhialuste tutvustamine annab lühikese ülevaate andmebaasi loomiseks ja muutmiseks kasutatud peamiste käskude kohta.

SQL-i kohta

SQLi õige hääldus on andmebaasi kogukonnas vaidlustav küsimus. Oma SQL standardis teatas Ameerika Riiklik Standardiinstituut, et ametlik hääldus on "es eile järjekord el." Kuid paljud andmebaasi spetsialistid on võtnud slängi sõna "järge". Valik on sinu.

SQL pärineb paljudest maitsetest. Oracle'i andmebaasid kasutavad oma patenditud PL / SQL-i. Microsoft SQL Server kasutab Transact-SQL-i. Kõik variatsioonid põhinevad tööstusharu standardis ANSI SQL. Selles kasutuses kasutatakse ANSI nõuetele vastavaid SQL käske, mis töötavad mis tahes kaasaegses relatsioonandmebaasisüsteemis.

DDL ja DML

SQL käsud on jagatud kaheks peamiseks alamkanaliks. Andmepädevuskeel (DDL) sisaldab käske, mida kasutatakse andmebaaside ja andmebaaside objektide loomiseks ja hävitamiseks. Kui andmebaaside struktuur on määratletud DDL-iga, võivad andmebaasi administraatorid ja kasutajad selles sisalduvate andmete sisestamiseks, otsimiseks ja muutmiseks kasutada andmete manipuleerimise keelt (DML).

Andmepõhise keelekäsklused

Andmepädevuskeelt kasutatakse andmebaaside ja andmebaaside objektide loomiseks ja hävitamiseks. Selliseid käske kasutavad peamiselt andmebaasi haldajad andmebaasi projekti seadistamise ja eemaldamise faasis. Siin on pilk nelja põhilise DDL-käskluse struktuurile ja kasutamisele:

CREATE Andmebaasihaldussüsteemi installimine arvutisse võimaldab teil luua ja hallata mitmeid sõltumatuid andmebaase. Näiteks võite soovida säilitada oma müügiosakonna klientide kontaktide andmebaasi ja personaliosakonna personali andmebaasi. Käsku CREATE kasutatakse nende platvormide iga andmebaasi loomiseks. Näiteks käsk:

CREATE DATABASE töötajad

loob DBMSis tühja andmebaasi nimega "töötajad". Pärast andmebaasi loomist on järgmine samm luua tabeleid, mis sisaldavad andmeid. Sellel eesmärgil saab kasutada ka CREATE-i muud varianti. Käsk:

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

loob praeguses andmebaasis tabeli pealkirjaga "personal_info". Näites sisaldab tabel kolme atribuuti: first_name, last_name ja employee_id koos mõne lisateabega.

KASUTA. USE-käsk võimaldab määrata andmebaasi, mida soovite oma DB-s kasutada. Näiteks kui te töötate praegu müügiandmebaasis ja soovite välja anda mõne käsku, mis mõjutavad töötajate andmebaasi, anna neile esmalt järgmine SQL käsk:

KASUTA töötajad

Enne SQL-käskude andmist, mis manipuleerivad andmete väljastamisega, on oluline alati teadlik andmebaasist, kus te töötate.

ALTER Kui olete loonud andmebaasi tabeli, võite selle määratlust muuta. Käsk ALTER võimaldab muuta tabeli struktuuri ilma selle kustutamata ja taasesitamisega. Vaadake järgmist käsku:

ALTER TABLE personal_info LISA palgaga raha null

See näide lisab personaalset infoga tabelile uue atribuudi - töötaja palk. "Raha" argumendis täpsustatakse, et töötaja palk salvestatakse dollarit ja senti vormingus. Lõpuks ütleb "null" märksõna andmebaasile, et see väli on selle valdkonna jaoks korrektne ja ei sisalda konkreetse töötaja jaoks väärtust.

DROP Andmepädevuse keele (DROP) lõplik käsk võimaldab meil kogu DBMS-is andmebaasi objekte eemaldada. Näiteks kui me tahame jäädavalt eemaldada loodud isikliku info-tabeli, me kasutame järgmist käsku:

DROP TABLE personal_info

Samamoodi kasutatakse alltoodud käsu kogu töötajate andmebaasi eemaldamiseks:

DROP DATABASE töötajad

Kasuta seda käsku ettevaatlikult. Käsk DROP eemaldab teie andmebaasist kogu andmestruktuuri. Kui soovite eemaldada individuaalsed dokumendid, kasutage andmete käsitsi keele käsku DELETE.

Andmete manipuleerimise keelekäsklused

Andmehalduse keelt (DML) kasutatakse andmebaasi teabe allalaadimiseks, sisestamiseks ja muutmiseks. Neid käske kasutavad kõik andmebaasi kasutajad andmebaasi rutiinse toimimise ajal.

INSERT SQL-i käsku INSERT kasutatakse olemasoleva tabeli kirjade lisamiseks. Olles eelmisele jaotisele näinud isikuinfot tagasi, arvestage, et meie personaliosakond peab oma andmebaasi lisama uue töötaja. Võite kasutada käsku, mis on sarnane sellele:

Sisestage personal_info väärtused ("bart", "simpson", 12345, 45000 dollarit)

Pange tähele, et kirje jaoks on määratud neli väärtust. Need vastavad tabeli atribuutidele nende määratud järjekorras: first_name, last_name, employee_id ja palga.

SELECT. SELECT käsk on kõige sagedamini kasutatav käsu SQL. See võimaldab andmebaasi kasutajatel saada konkreetset teavet, mida nad soovivad, tegevuse andmebaasist. Vaadake mõningaid näiteid, kasutades uuesti tööandmebaasi personal_info tabelit.

Allolev käsuallikas otsib kogu informatsiooni, mis sisaldub person_info tabelis. Pange tähele, et tärnit kasutatakse SQL-i wildcard. See sõna otseses mõttes tähendab "Vali kõik alates personal_info tabelis."

SELECT * FROM personal_info

Alternatiivina võivad kasutajad soovida piirata andmebaasist laekuvaid atribuute. Näiteks võib inimressursside osakond nõuda äriühingu kõigi töötajate perekonnanimede nimekirja. Järgmine SQL käsk laadiks ainult sellist teavet:

SELECT last_name FROM personal_info

WHERE-klauslit saab kasutada selleks, et piirata nende kirjete hankimist, mis vastavad kindlaksmääratud kriteeriumidele. Juhataja võib olla huvitatud kõigi kõrgelt tasustatud töötajate personaliarvestuse läbivaatamisest. Järgmine käsk otsib kõiki person_info-i sisaldavaid andmeid kirjade jaoks, mille palgaväärtus on suurem kui 50 000 dollarit:

SELECT * FROM personal_info KUS palka> 50000 dollarit

UPDATE Käsku UPDATE saab kasutada tabelis sisalduva teabe muutmiseks kas lahtiselt või eraldi. Oletame, et ettevõte annab kõigile töötajatele palkade iga-aastase 3% -lise elukalliduse. Järgmisi SQL-käske saab kasutada selle kiireks rakendamiseks kõikidele andmebaasis salvestatud töötajatele:

UPDATE personal_info SET palk = palk * 1.03

Kui uus töötaja Bart Simpson demonstreerib tööülesannete täitmisele eelnenud ülesannet, siis tahab juhatus tunnustada oma silmapaistvaid saavutusi $ 5000 suurenemisega. WHERE-klauslit saab kasutada Bart'i väljavalimiseks selle tõusuks:

UPDATE personal_info SET palk = palk + 5000 $ KUS töötaja_id = 12345

Tühista Lõpuks vaatame käsku DELETE. Leiad, et käsu süntaks on sarnane teiste DML-käskude süntaksiga. Kahjuks ei vastanud meie uusim ettevõtte tulude aruanne ootustele ja halb Bart on koondatud. MIDA käsuga DELETE saab kasutada tema rekordi eemaldamiseks personal_info-tabelist:

Kustutada personaalsest infost WHERE employee_id = 12345

JOINS

Nüüd, kui olete õppinud SQL põhitõdesid, on aeg liikuda mõne kõige võimsama mõistega, mida keel võib pakkuda - JOIN avaldus. JOIN-aruanne võimaldab kombineerida andmeid mitmes tabelis, et tõhusalt töödelda suuri andmekoguseid. Need avaldused on seal, kus andmebaasi tegelik võim on.

Et uurida põhiliste JOIN-operatsiooni kasutamist kahe tabeli andmete kombineerimiseks, jätkake näites tabeli PERSONAL_INFO abil ja lisage segule täiendav tabel. Oletame, et teil on tabel nimega DISCIPLINARY_ACTION, mis on loodud järgmise avaldusega:

CREATE TABLE disciplinary_action (action_id int ei ole null, employee_id int ei null, kommentaarid char (500))

See tabel sisaldab ettevõtte töötajate töötajate distsiplinaarmeetmete tulemusi. Märkate, et see ei sisalda mingit teavet töötaja kohta peale töötaja numbri. Kerge on ette kujutada mitmeid stsenaariume, kus võite soovida teavet DISCIPLINARY_ACTIONist ja PERSONAL_INFO tabelitest kombineerida.

Oletame, et teil on ülesandeks luua aruanne, milles loetletakse distsiplinaarmeetmed kõigi töötajate suhtes, kelle palk on suurem kui 40 000 dollarit. Sellisel juhul on JOIN-operatsiooni kasutamine lihtne. Me saame selle teabe hankida järgmise käsuga:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action KUI personal_info.employee_id = disciplinary_action.employee_id JA personaalne_info.salari> 40000

Koodis määratakse kaks tabelit, mida me tahame liituda FROM-klausliga ja seejärel lisada WHERE-klausliga avalduse, et piirata tulemusi dokumentidega, mis olid vastavate töötajate ID-dega ja vastanud meie kriteeriumidele palga üle 40 000 dollarit.