Osnove SQL

Več o DDL, DML in JOIN

Jezik strukturiranih poizvedb je eden temeljnih gradnikov sodobne arhitekture baz podatkov. SQL določa metode, ki se uporabljajo za ustvarjanje in manipulacijo relacijskih podatkovnih baz na vseh glavnih platformah. Na prvi pogled se jezik morda zdi zastrašujoč in zapleten, vendar ni vse tako težko.

Ta uvod v osnove za SQL si kratko ogleda nekatere glavne ukaze, uporabljene za ustvarjanje in spreminjanje podatkovnih zbirk.

O SQL

Pravilno izgovorjava SQL je sporna težava znotraj skupnosti baz podatkov. Ameriški nacionalni institut za standarde je v svojem standardu SQL izjavil, da je uradni izgovor "es queue el." Vendar pa so številni strokovnjaki za bazo podatkov posneli slangovo izgovorjavo "nadaljevanje". Izbira je tvoja.

SQL je na voljo v številnih okusih. Oracle podatkovne baze uporabljajo svojo lastniško PL / SQL. Microsoft SQL Server uporablja Transact-SQL. Vse različice temeljijo na industrijskem standardu ANSI SQL. Ta uvod uporablja ANSI-skladne ukaze SQL, ki delujejo na vsakem sodobnem sistemu relacijskih baz podatkov.

DDL in DML

SQL ukaze lahko razdelimo na dva glavna pod-jezika. Jezik določanja podatkov (DDL) vsebuje ukaze, ki se uporabljajo za ustvarjanje in uničenje podatkovnih zbirk in objektov baze podatkov. Ko je struktura baze podatkov definirana z DDL, lahko administratorji baz podatkov in uporabniki uporabijo Jezik za manipulacijo podatkov (DML) za vstavljanje, nalaganje in spreminjanje podatkov v njem.

Ukazi za določanje podatkov

Jezik za določanje podatkov se uporablja za ustvarjanje in uničevanje podatkovnih zbirk in objektov baze podatkov. Te ukaze uporabljajo predvsem skrbniki baz podatkov med fazami namestitve in odstranjevanja projekta baze podatkov. Tukaj si oglejte strukturo in uporabo štirih osnovnih ukazov DDL:

CREATE. Nameščanje sistema za upravljanje baz podatkov na računalniku omogoča ustvarjanje in upravljanje številnih neodvisnih podatkovnih baz. Na primer, morda boste želeli vzdrževati bazo podatkov o stiku s strankami za vaš prodajni oddelek in zbirko osebja za vaš oddelek za kadre. Ukaz CREATE se uporablja za vzpostavitev vsake od teh baz podatkov na vaši platformi. Na primer, ukaz:

CREATE DATABASE zaposlenih

ustvari prazno podatkovno bazo z imenom "zaposleni" v vašem DBMS. Po ustvarjanju baze podatkov je naslednji korak ustvariti tabele, ki vsebujejo podatke. V ta namen lahko uporabite še eno različico ukaza CREATE. Ukaz:

CREATE TABLE osebno_info (first_name char (20) ni null, last_name char (20) ni null, employee_id int ni nič)

v trenutni podatkovni bazi vzpostavi tabelo z naslovom "personal_info". V primeru, da tabela vsebuje tri atribute: first_name, last_name in employee_id skupaj z nekaterimi dodatnimi informacijami.

UPORABA. Z ukazom USE lahko v svoji DBMS določite bazo podatkov, s katero želite delati. Če na primer trenutno delate v prodajni bazi podatkov in želite izdati nekaj ukazov, ki bodo vplivali na bazo podatkov zaposlenih, jih predgovorirajte z naslednjim ukazom SQL:

Uporabi zaposlene

Pomembno je, da se vedno zavedate baze podatkov, v kateri delate, preden izdate ukaze SQL, ki manipulirajo s podatki.

SPREMINJATI. Ko ustvarite tabelo znotraj baze podatkov, boste morda želeli spremeniti njegovo definicijo. Ukaz ALTER vam omogoča, da spremenite strukturo tabele, ne da bi jo izbrisali in ponovno ustvarili. Oglejte si naslednji ukaz:

ALTER TABLE osebno_info ADD plačilo denarja null

Ta primer doda nov atribut tabeli personal_info - plača zaposlenega. Argument "denar" določa, da se plača zaposlenega shranjuje v obliki dolarjev in centov. Končno, ključna beseda "null" pove bazi podatkov, da je v redu, da to polje ne vsebuje vrednosti za nobenega zaposlenega.

DROP. Končni ukaz jezika za določanje podatkov, DROP, nam omogoča odstranjevanje celotnih predmetov baze podatkov iz našega DBMS-a. Če na primer želimo trajno odstraniti tabelo personal_info, ki smo jo ustvarili, bi uporabili naslednji ukaz:

DROP TABLE personal_info

Podobno bi bil spodnji ukaz uporabljen za odstranitev celotne podatkovne baze zaposlenih:

DROP DATABASE zaposlenih

Ta ukaz uporabite previdno. Ukaz DROP odstrani celotne podatkovne strukture iz vaše baze podatkov. Če želite odstraniti posamezne zapise, uporabite ukaz DELETE na jeziku za manipulacijo s podatki.

Ukazi za jezikovno upravljanje podatkov

Jezik za manipulacijo s podatki (DML) se uporablja za pridobivanje, vstavljanje in spreminjanje informacij o bazo podatkov. Te ukaze uporabljajo vsi uporabniki baz podatkov med rutinskim delovanjem baze podatkov.

VSTAVI. Ukaz INSERT v SQL se uporablja za dodajanje zapisov v obstoječo tabelo. Vrnitev na primer personal_info iz prejšnjega razdelka si predstavljamo, da mora naš oddelek za kadrovske službe dodati novega zaposlenega v svojo bazo podatkov. Lahko uporabite ukaz, podoben temu:

Vstavi v vrednosti personal_info ('bart', 'simpson', 12345, $ 45000)

Upoštevajte, da za zapis obstajajo štiri vrednosti. Ti ustrezajo atributom tabele v vrstnem redu, ki so bili določeni: first_name, last_name, employee_id in plače.

IZBERI. Ukaz SELECT je najpogosteje uporabljen ukaz v SQL. Uporabnikom baz podatkov omogoča, da pridobijo specifične podatke, ki jih želijo, iz operativne baze podatkov. Oglejte si nekaj primerov, ponovno uporabite tabelo personal_info iz baze podatkov zaposlenih.

Spodaj prikazani ukaz prikliče vse informacije v tabeli personal_info. Upoštevajte, da se zvezdica uporablja kot nadomestna zveza v SQL. To dobesedno pomeni "Izberi vse iz tabele personal_info."

SELECT * FROM personal_info

Druga možnost je, da uporabniki morda želijo omejiti atribute, ki so pridobljeni iz baze podatkov. Na primer, oddelek za človeške vire lahko zahteva seznam priimkov vseh zaposlenih v podjetju. Naslednji ukaz SQL bi pridobil le te podatke:

SELECT last_name od osebne_info

Klavzulo WHERE lahko uporabite za omejitev zapisov, ki so pridobljeni na tiste, ki izpolnjujejo določena merila. CEO bi lahko bil zainteresiran za pregled kadrovske evidence vseh visoko plačanih zaposlenih. Naslednji ukaz prikliče vse podatke, ki jih vsebuje osebna_info, za zapise, katerih vrednost plače presega 50.000 dolarjev:

IZBERITE * IZ osebne_info WHERE plače> 50000 $

NADGRADNJA. Ukaz UPDATE lahko uporabite za spreminjanje podatkov v tabeli, bodisi v razsutem stanju ali posamezno. Predvidevamo, da podjetje vsem zaposlenim daje 3-odstotno življenjsko dobo do višje plače letno. Naslednji ukaz SQL lahko uporabite za hitro uporabo tega za vse zaposlene, shranjene v bazi podatkov:

UPDATE personal_info SET plača = plača * 1.03

Ko novi zaposleni Bart Simpson demonstrira uspešnost nad in po pozivu, vodstvo želi priznati svoje dosežke z zvezdico z dvigom 5000 $. Klavzulo WHERE bi lahko uporabili za izenačitev Barta za to povišanje:

UPDATE personal_info SET plača = plača + $ 5000 WHERE employee_id = 12345

IZBRIŠI. Na koncu si oglejmo ukaz DELETE. Ugotovili boste, da je sintaksa tega ukaza podobna kot pri drugih ukazih DML. Na žalost naša najnovejša poročila o poslovnem izidu niso v celoti ustrezala pričakovanjem, ubogi Bart je bil odpuščen. Ukaz DELETE s klavzulo WHERE lahko uporabite za odstranitev njegovega zapisa iz tabele personal_info:

IZBRIŠI FROM personal_info WHERE employee_id = 12345

Pridruži se

Zdaj, ko ste se naučili osnove SQL-ja, je čas, da se premaknete na enega najmočnejših pojmov, ki jih jezik ponuja - stavek JOIN. Stavek JOIN vam omogoča združevanje podatkov v več tabelah za učinkovito obdelavo velikih količin podatkov. Ti izjavi so, če resnična moč baze podatkov prebiva.

Če želite raziskati uporabo osnovnega postopka JOIN za združevanje podatkov iz dveh tabel, nadaljujte s primerom z uporabo tabele PERSONAL_INFO in dodajte dodatno tabelo v mešanico. Predpostavimo, da imate tabelo z imenom DISCIPLINARY_ACTION, ki je bila ustvarjena z naslednjo izjavo:

CREATE TABLE disciplinary_action (action_id int ni nič, employee_id int ni nič, pripombe char (500))

Ta tabela vsebuje rezultate disciplinskih ukrepov za zaposlene v podjetju. Opazili boste, da ne vsebuje nobenih informacij o zaposlenem, ki ni številka zaposlenega. Preprosto si lahko predstavljate veliko scenarijev, v katerih bi morda želeli združiti podatke iz tabele DISCIPLINARY_ACTION in PERSONAL_INFO.

Predvidevajte, da ste bili zadolženi za pripravo poročila, v katerem so navedeni disciplinski ukrepi proti vsem zaposlenim s plačo, višjo od 40.000 dolarjev. Uporaba operacije JOIN v tem primeru je preprosta. Te podatke lahko pridobimo z naslednjim ukazom:

SELECT osebno_info.first_name, osebno_info.last_name, disciplinary_action.comments OD osebne_info, disciplinary_action WHERE osebno_info.employee_id = disciplinary_action.employee_id IN personal_info.salary> 40000

Koda določa dve tabeli, za katere se želimo pridružiti v določbi FROM, nato pa v stavku WHERE vključi izjavo, da omejimo rezultate na zapise, ki so ustrezali ID-jem zaposlenih, in izpolnjevala naša merila za plačo, višjo od 40.000 USD.