SQL pagrindai

Sužinokite apie DDL, DML ir JOIN

Struktūrinių užklausų kalba yra vienas iš pagrindinių modernaus duomenų bazių architektūros elementų. SQL apibrėžia metodus, naudojamus kuriant ir valdant reliacines duomenų bazes visose pagrindinėse platformose. Iš pirmo žvilgsnio kalba gali pasirodyti bauginanti ir sudėtinga, tačiau tai dar nėra sunku.

Šis SQL užuominų pagrindų įvadas trumpai apžvelgia kai kurias pagrindines komandas, naudojamas kurti ir keisti duomenų bazes.

Apie SQL

Teisingas SQL ištrynimas yra ginčytinas klausimas duomenų bazės bendruomenėje. Savo SQL standarte Amerikos nacionalinis standartų institutas pareiškė, kad oficialus tarimas yra "es esate eilėje el." Tačiau daugelis duomenų bazių specialistų paėmė į slengų kalbą "tęsinys". Tavo pasirinkimas.

SQL ateina daugelyje skonių. Oracle duomenų bazės naudoja savo patentuotą PL / SQL. Microsoft SQL Server naudoja Transact-SQL. Visi variantai grindžiami pramonės standarto ANSI SQL. Šiame įžangoje naudojamos su ANSI suderinamos SQL komandos, kurios veikia bet kurioje šiuolaikinėje reliacinėje duomenų bazėje.

DDL ir DML

SQL komandos gali būti suskirstytos į dvi pagrindines pogrupius. Duomenų apibrėžimo kalba (DDL) yra komandos, naudojamos duomenų bazių ir duomenų bazių objektams kurti ir sunaikinti. Po to, kai duomenų bazės struktūra yra apibrėžta su DDL, duomenų bazės administratoriai ir vartotojai gali naudoti duomenų manipuliavimo kalbą (DML), norėdami įterpti, išimti ir keisti jame esančius duomenis.

Duomenų apibrėžimo kalbos komandos

Duomenų apibrėžimo kalba naudojama duomenų bazių ir duomenų bazių objektų kūrimui ir sunaikinimui. Šias komandas dažniausiai naudoja duomenų bazių administratoriai duomenų bazės projekto diegimo ir šalinimo etapuose. Štai keturių pagrindinių DDL komandų struktūros ir naudojimo apžvalga:

Kurti Diegdami duomenų bazės valdymo sistemą kompiuteryje galite kurti ir valdyti daugybę nepriklausomų duomenų bazių. Pavyzdžiui, galbūt norėsite išlaikyti klientų kontaktų duomenų bazę savo pardavimų skyriui ir personalo duomenų bazę savo HR departamentui. CREATE komanda naudojama kiekvienai iš šių platformų nustatytų duomenų bazių. Pavyzdžiui, komanda:

CREATE DATABASE darbuotojų

sukuria tuščią duomenų bazę, pavadintą "employees" savo DBVS. Sukūrę duomenų bazę, kitas žingsnis yra sukurti lenteles, kuriose yra duomenų. Kitas CREATE komandos variantas gali būti naudojamas tam tikslui. Komanda:

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

nustato lentelę pavadinimu "personal_info" dabartinėje duomenų bazėje. Pavyzdyje lentelėje yra trys atributai: first_name, last_name ir employee_id kartu su papildoma informacija.

NAUDOJIMAS. USE komanda leidžia jums nurodyti duomenų bazę, su kuria norite dirbti savo DBVS. Pavyzdžiui, jei šiuo metu esate dirbęs pardavimų duomenų bazėje ir norite išleisti keletą komandų, kurios paveiks darbuotojų duomenų bazę, įtrauksite juos į šią SQL komandą:

USE darbuotojams

Prieš išduodant SQL komandas, manipuliuojančias duomenimis, visada svarbu žinoti duomenų bazę, kurioje dirbate.

ALTER. Sukūrę duomenų bazėje esančią lentelę galbūt norėsite keisti jos apibrėžtį. ALTER komanda leidžia jums keisti struktūros lentelę, neištrindami ir neatsiversdami. Pažvelkite į šią komandą:

ALTER TABLE personal_info ADD algos pinigai null

Šis pavyzdys prideda naują "personal_info" lentelės atributą - darbuotojo atlyginimą. "Pinigų" argumentas nurodo, kad darbuotojo atlyginimas yra saugomas naudojant dolerių ir centų formatą. Galiausiai, "nulinis" raktinis žodis nurodo duomenų bazę, kad tai gerai, kad šiame lauke nėra jokio konkretaus darbuotojo vertės.

DROP Galutinė duomenų apibrėžimo kalbos komanda DROP leidžia mums pašalinti visus duomenų bazės objektus iš mūsų DBVS. Pavyzdžiui, jei mes norime visam laikui pašalinti sukurtą "personal_info" lentelę, turėtume naudoti šią komandą:

DROP TABLE personal_info

Panašiai toliau nurodyta komanda bus naudojama visos darbuotojų duomenų bazės pašalinimui:

DROP DATABASE darbuotojai

Naudokite šią komandą atsargiai. DROP komanda pašalina visas duomenų struktūras iš savo duomenų bazės. Jei norite pašalinti atskirus įrašus, naudokite komandą DELETE duomenų manipuliavimo kalba.

Duomenų manipuliavimo kalbos komandos

Duomenų manipuliavimo kalba (DML) naudojama duomenų bazės informacijos paieškai, įterpimui ir keitimui. Šias komandas naudoja visi duomenų bazės naudotojai per įprastą duomenų bazės veikimą.

ĮDĖTI. SQL INSERT komanda naudojama įrašams įrašyti į esamą lentelę. Grįžęs prie ankstesnio skyriaus "Personal_info" pavyzdžio, įsivaizduokite, kad mūsų personalo departamentui reikia pridėti naują darbuotoją į savo duomenų bazę. Galite naudoti komandą, panašią į šią:

INSERT INTO personal_info vertės ("Bart", "Simpson", 12345, 45000 USD)

Atkreipkite dėmesį, kad įraše yra keturios reikšmės. Tai atitinka lentelės atributus tokia tvarka, kokia jie buvo apibrėžti: first_name, last_name, employee_id ir alga.

PASIRINKITE SELECT komanda yra dažniausiai naudojama SQL komanda. Tai leidžia duomenų bazės vartotojams iš operacinės duomenų bazės gauti konkrečią norimą informaciją. Peržiūrėkite keletą pavyzdžių, vėl naudodami personal_info lentelę iš darbuotojų duomenų bazės.

Žemiau pateikta komanda surenka visą informaciją, esančią personal_info lentelėje. Atkreipkite dėmesį, kad žvaigždutė yra naudojama kaip SQL pakaitalas. Tai pažodžiui reiškia "Pasirinkite viską iš personal_info stalo".

SELECT * iš personal_info

Arba vartotojai galbūt norės apriboti iš duomenų bazės atvaizdus. Pavyzdžiui, Žmogiškųjų išteklių departamentas gali reikalauti visų įmonės darbuotojų pavardžių sąrašo. Ši SQL komanda sužinojo tik šią informaciją:

SELECT last_name FROM personal_info

WHERE sąlyga gali būti naudojama norint apriboti įrašus, kurie yra gaunami į tuos, kurie atitinka nustatytus kriterijus. Generalinis direktorius gali būti suinteresuotas peržiūrėti visų labai apmokamų darbuotojų personalo įrašus. Ši komanda gauna visus duomenis, esančius personal_info, už įrašus, kurių atlyginimo vertė yra didesnė nei 50 000 JAV dolerių:

SELECT * FROM personal_info WHERE atlyginimas> $ 50000

UPDATE. Komandą UPDATE galima naudoti norint keisti lentelėje esančią informaciją, atskirai arba atskirai. Tarkime, kad bendrovė visiems darbuotojams kasmet gauna 3 proc. Pragyvenimo išlaidų. Šią SQL komandą galima naudoti greitai pritaikyti tai visiems duomenų bazėje saugomiems darbuotojams:

UPDATE personal_info SET atlyginimas = atlyginimas * 1.03

Kai naujasis darbuotojas Bartas Simpsonas demonstruoja našumą aukščiau už pareigų kvietimą, vadyba nori atpažinti savo žvaigždžių pasiekimus su 5000 $ padidinimu. WHERE sąlyga galėtų būti naudojama išskirti Bartą už šį pakėlimą:

ATNAUJINTA personal_info SET atlyginimas = atlyginimas + 5000 $ WHERE employee_id = 12345

IŠTRINTI. Galiausiai pažiūrėkime į komandą DELETE. Pamatysite, kad šios komandos sintaksė yra panaši į kitų DML komandų sintaksę. Deja, mūsų naujausia įmonių pelno ataskaita ne visiškai patenkino lūkesčius, o blogas Bartas buvo atleistas. Komandą DELETE su sąlyga WHERE galima naudoti norint pašalinti jo įrašą iš personal_info lentelės:

Ištrinti iš personal_info WHERE employee_id = 12345

JOINS

Dabar, kai sužinojote SQL pagrindus, atėjo laikas pereiti prie vienos iš galingiausių sąvokų, kurias kalba gali pasiūlyti - JOIN pareiškimą. JOIN ataskaita leidžia suderinti duomenis keliose lentelėse, siekiant efektyviai apdoroti didelius duomenų kiekius. Šie teiginiai yra tai, kur yra tikroji duomenų bazės galia.

Norėdami sužinoti, kaip naudoti pagrindinę JOIN operaciją, norint sujungti duomenis iš dviejų lentelių, tęskite pavyzdį naudodami lentelę PERSONAL_INFO ir pridėkite papildomą lentelę mišiniui. Tarkime, kad turite lentelę DISCIPLINARY_ACTION, sukurtą tokiu teiginiu:

CREATE TABLE disciplinary_action (action_id int not null, employee_id int not null, comments char (500))

Šioje lentelėje pateikiami bendrovių darbuotojų drausminių veiksmų rezultatai. Pastebėsite, kad jame nėra jokios informacijos apie darbuotoją, išskyrus darbuotojo numerį. Nesunku įsivaizduoti daug scenarijų, kuriuose galėtumėte sujungti informaciją iš lentelių DISCIPLINARY_ACTION ir PERSONAL_INFO.

Tarkime, kad jums buvo pavesta kurti ataskaitą, kurioje išvardijami drausminiai veiksmai, kurių imamasi prieš visus darbuotojus, kurių atlyginimas viršija 40 000 JAV dolerių. Šiuo atveju "JOIN" operacijos naudojimas yra paprastas. Mes galime gauti šią informaciją naudodami šią komandą:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_actioncomments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kodas nurodo dvi lenteles, kurias norime prisijungti prie FROM clause, ir tada įtraukia nuostatą WHERE, kad rezultatai būtų apribojami įrašais, kurie atitiko darbuotojų identifikatorius, ir atitiko mūsų kriterijus, kai atlyginimas viršijo 40 000 JAV dolerių.