Strukturirani poizvedbeni jezik (SQL) je eden temeljnih gradnikov sodobne arhitekture baz podatkov. SQL definira metode, ki se uporabljajo za ustvarjanje in upravljanje relacijskih baz podatkov na vseh glavnih platformah. Na prvi pogled se jezik morda zdi zastrašujoč in zapleten, vendar ni vse tako težko.
O SQL
Pravilna izgovorjava SQL je sporna težava znotraj skupnosti baz podatkov. Ameriški nacionalni inštitut za standarde je v svojem standardu SQL izjavil, da je uradna izgovorjava "čakalna vrsta el. "Vendar se je veliko strokovnjakov za baze podatkov lotilo nadaljevanja slengovske izgovorjave." Tako kot pri izgovorjavi od GIF, ni pravega odgovora.
SQL je na voljo v različnih okusih. Oraclove zbirke podatkov uporabljajo lastniški PL / SQL. Microsoft SQL Server uporablja Transact-SQL. Vse različice temeljijo na industrijskem standardu ANSI SQL.
Ta uvod uporablja ukaze SQL, združljive z ANSI, ki delujejo v katerem koli sodobnem sistemu relacijskih baz podatkov.
DDL in DML
Ukaze SQL lahko razdelimo na dva glavna podjezika. Jezik za definicijo podatkov vsebuje ukaze, ki se uporabljajo za ustvarjanje in uničevanje baz podatkov in predmetov baz podatkov. Ko je struktura baze podatkov definirana z DDL, lahko skrbniki in uporabniki baze podatkov z jezikom za manipulacijo podatkov vstavijo, pridobijo in spremenijo podatke, ki jih vsebuje.
SQL podpira tretjo vrsto sintakse, imenovano Jezik za nadzor podatkov. DCL ureja varnostni dostop do predmetov v bazi podatkov. Na primer, a Skript DCL podeli ali prekliče določenim uporabniškim računom pravico do branja ali pisanja v tabele znotraj enega ali več določenih področij baze podatkov. V večini upravljanih večuporabniških okolij skrbniki baz podatkov običajno izvajajo skripte DCL.
Ukazi za definicijo podatkov
Jezik definicije podatkov se uporablja za ustvarjanje in uničenje baz podatkov in predmetov baz podatkov. Te ukaze v glavnem uporabljajo skrbniki baz podatkov med fazami namestitve in odstranjevanja projekta baze podatkov. DDL se vrti okoli štirih primarnih ukazov -ustvariti, uporaba, spreminjati, in padec.
Ustvari
The ustvariti ukaz vzpostavi zbirke podatkov, tabele ali poizvedbe na vaši platformi. Na primer ukaz:
USTVARITE BAZE PODATKOV;
ustvari prazno bazo podatkov z imenom zaposlenih v vašem DBMS. Po izdelavi baze podatkov je naslednji korak ustvarjanje tabel, ki vsebujejo podatke. Druga različica ustvariti ukaz doseže ta namen. Ukaz:
USTVARI TABELO personal_info (first_name char (20) ni null, last_name char (20) not null, worker_id int not null);
vzpostavi tabelo z naslovom osebne_informacije v trenutni bazi podatkov. V primeru tabela vsebuje tri atribute: ime, priimek, in zaposlen_id skupaj z nekaterimi dodatnimi informacijami.
Uporaba
The uporaba ukaz določa aktivno bazo podatkov. Če na primer trenutno delate v prodajni zbirki podatkov in želite izdati nekaj ukazov, ki bodo vplivali na bazo podatkov zaposlenih, jim predgovorite z naslednjim ukazom SQL:
Zaposleni v USE;
Pred izdajo ukazov SQL, ki manipulirajo s podatki, še enkrat preverite bazo podatkov, v kateri delate.
Spreminjati
Ko ustvarite tabelo v zbirki podatkov, spremenite njeno definicijo s pomočjo spreminjati ukaz, ki spremeni strukturo tabele, ne da bi jo izbrisal in ponovno ustvaril. Oglejte si naslednji ukaz:
ALTER TABLE personal_info DODAJ plačo denar null;
Ta primer v tabelo personal_info doda nov atribut - plačo zaposlenega. The denarja argument določa, da plače zaposlenega shranjujejo v obliki dolarjev in centov. Končno, nič Ključna beseda sporoča zbirki podatkov, da je v redu, da to polje ne vsebuje vrednosti za nobenega zaposlenega.
Spusti
Zadnji ukaz jezika za definicijo podatkov, padec, odstrani celotne predmete baze podatkov iz našega DBMS. Če želite na primer trajno odstraniti tabelo personal_info, ki smo jo ustvarili, uporabite naslednji ukaz:
KAPITALNA TABELA personal_info;
Podobno bi spodnji ukaz uporabili za odstranitev celotne baze podatkov zaposlenih:
DROP DATABASE zaposlenih;
Ta ukaz uporabljajte previdno. The padec ukaz iz baze podatkov odstrani celotne podatkovne strukture. Če želite odstraniti posamezne zapise, uporabite izbriši ukaz jezika za manipulacijo s podatki.
Ukazi za upravljanje podatkovnih jezikov
Jezik za manipulacijo s podatki se uporablja za pridobivanje, vstavljanje in spreminjanje informacij iz baze podatkov. Ti ukazi DML ponujajo tipičen okvir za rutinsko interakcijo z bazo podatkov.
Vstavi
The vstavi ukaz doda zapise v obstoječo tabelo. Če se vrnemo na primer personal_info iz prejšnjega oddelka, si predstavljamo, da mora naš kadrovski oddelek v bazo dodati novega zaposlenega. Uporabite ukaz, podoben temu:
VSTAVITE V personal_info
vrednosti ('bart', 'simpson', 12345, 45000 USD);
Za zapis so podane štiri vrednosti. Ti ustrezajo atributom tabele v vrstnem redu, kot so bili definirani: ime, priimek, zaposlen_id in plača.
Izberite
The izberite ukaz je najpogosteje uporabljen ukaz v SQL. Pridobi posebne informacije iz operativne baze podatkov. Oglejte si nekaj primerov in ponovno uporabite tabelo personal_info iz baze podatkov o zaposlenih.
Spodaj prikazani ukaz pridobi vse informacije v tabeli personal_info. Zvezdica je v SQL nadomestni znak.
IZBERI *
FROM personal_info;
Atribute, ki so pridobljeni iz baze podatkov, lahko omejite tudi tako, da določite kaj izbere. Na primer kadrovska služba lahko zahteva seznam priimkov vseh zaposlenih v podjetju. Naslednji ukaz SQL bi pridobil samo te informacije:
IZBERI priimek
FROM personal_info;
The kje klavzula omejuje zapise, ki jih pridobijo, na tiste, ki izpolnjujejo določena merila. Generalnega direktorja morda zanima pregled kadrovskih evidenc vseh visoko plačanih zaposlenih. Naslednji ukaz pridobi vse podatke v personal_info za zapise, katerih vrednost plače presega 50.000 USD:
IZBERI *
FROM personal_info
KJE plača> 50000 USD;
Nadgradnja
The nadgradnja ukaz spremeni podatke v tabeli bodisi v velikem obsegu bodisi posamično. Recimo, da podjetje letno vsem zaposlenim poveča plačo za 3 odstotke življenjskih stroškov. Naslednji ukaz SQL uporabi to bump za vse zaposlene, shranjene v bazi podatkov:
POSODOBITE personal_info
SET plača = plača * 1,03;
Ko bo novi uslužbenec Bart Simpson pokazal uspešnost, ki presega klic dolžnosti, želi vodstvo prepoznati njegove zvezdniške dosežke z zvišanjem 5000 dolarjev. Klavzula WHERE za to povišanje izpostavlja Barta:
POSODOBITE personal_info
SET plača = plača + 5000
WHERE zaposleni_id = 12345;
Izbriši
Na koncu si oglejmo še izbriši ukaz. Ugotovili boste, da je sintaksa tega ukaza podobna sintaksi drugih ukazov DML. Ukaz DELETE z a kje klavzulo, odstranite zapis iz tabele:
IZBRIŠI IZ personal_info
WHERE zaposleni_id = 12345;
DML podpira tudi zbirna polja. V izberite izjava, matematični operaterji všeč vsota in štetje povzeti podatke v poizvedbi. Na primer poizvedba:
izberite count (*) iz personal_info;
šteje število zapisov v tabeli.
Pridružitev zbirke podatkov
A pridruži se stavek združuje podatke v več tabelah za učinkovito obdelavo velikih količin podatkov. V teh izjavah je resnična moč baze podatkov.
Preučiti uporabo osnovnega pridruži se operacijo združevanja podatkov iz dveh tabel, nadaljujte s primerom z uporabo tabele personal_info in dodajte dodatno tabelo v mešanico. Predpostavimo, da imate imenovano tabelo disciplinski ukrep ki je bil ustvarjen z naslednjo izjavo:
USTVARI TABELO disciplinary_action (action_id int not null, worker_id int not null, komentarji char (500));
Ta tabela vsebuje rezultate disciplinskih ukrepov za zaposlene v podjetju. Ne vsebuje nobenih informacij o zaposlenem, razen številke zaposlenega.
Recimo, da ste bili zadolženi za izdelavo poročila, v katerem so navedeni disciplinski ukrepi zoper vse zaposlene s plačo večjo od 40.000 USD. V tem primeru je uporaba JOIN operacije preprosta. Pridobite te informacije z naslednjim ukazom:
IZBERITE osebno_informacijskoime, osebno_informacijsko_ime, disciplinarne_akcije.com komentarji
FROM personal_info INNER PRIDRUŽITE se disciplinary_action ON personal_info.employee_id = disciplinary_action.employee_id
WHERE personal_info.salary> 40000;
Vrste pridružitev

Spoji so v več okusih. V stavku SQL je prva tabela (običajno imenovana Preglednica A ali Leva miza) se pridruži drugi tabeli (običajno imenovani Preglednica B ali Desna miza) na pozicijski način. Če torej spremenite vrstni red tabel v stavku join, se bodo rezultati operacije razlikovali. Glavne vrste združevanja vključujejo:
- Notranje pridružitev: Ujema se samo z zapisi, kjer je na pogoj se ujema z enakimi zapisi v obeh tabelah.
- Zunanje Pridružite se: Ujema se samo z zapisi iz obeh tabel, ki izključi rezultati, opredeljeni v na stanje.
- Pridružite se: Ujema se z vsemi zapisi iz tabele B in zapisi iz tabele A, ki se ujemajo z na stanje.
- Levo Pridružite se: Ujema se z vsemi zapisi iz tabele A in zapisi iz tabele B, ki se ujemajo z na stanje.
- Cross Join: Ujema se z vsemi zapisi, kot da bi bile tabele enake. Ta postopek generira nekaj, kar se imenuje kartezijanski izdelek. Pogosto so navzkrižna združevanja nezaželena, ker se ujemajo z vsako vrstico tabele A, posamično, z vsako vrstico tabele B. Če je torej tabela A ponudila pet zapisov, tabela B pa 9 zapisov, poizvedba za navzkrižno združevanje ponuja 45 nastalih vrstic.