SQL Fundamentals

Alamin ang tungkol sa DDL, DML at JOINs

Ang Nakabalangkas na Wika ng Query ay isa sa mga pangunahing mga bloke ng gusali ng modernong arkitektong database. Tinutukoy ng SQL ang mga pamamaraan na ginamit upang lumikha at manipulahin ang mga pamanggit na database sa lahat ng mga pangunahing platform. Sa unang sulyap, ang wika ay maaaring mukhang intimidating at kumplikado, ngunit hindi lahat ay mahirap.

Ang pagpapakilala sa batayan sa likod ng SQL ay tumatagal ng isang maikling pagtingin sa ilan sa mga pangunahing utos na ginamit upang lumikha at baguhin ang mga database.

Tungkol sa SQL

Ang tamang pagbigkas ng SQL ay isang mapagtatalunan isyu sa komunidad ng database. Sa pamantayan ng SQL nito, ipinahayag ng American National Standards Institute na ang opisyal na pagbigkas ay "es queue el." Gayunpaman, maraming mga propesyonal sa database ang nakuha sa slang pagbigkas "sumunod na pangyayari." Ang pagpili ay sa iyo.

Dumating ang SQL sa maraming lasa. Ang mga database ng Oracle ay gumagamit ng proprietary PL / SQL nito. Ginagamit ng Microsoft SQL Server ang Transact-SQL. Ang lahat ng mga pagkakaiba-iba ay batay sa ANSI SQL standard na industriya. Ang pagpapakilala na ito ay gumagamit ng ANSI-compliant na mga utos ng SQL na gumagana sa anumang modernong sistema ng pamanggit database.

DDL at DML

Ang mga utos ng SQL ay maaaring nahahati sa dalawang pangunahing wika. Ang Data Definition Language (DDL) ay naglalaman ng mga utos na ginamit upang lumikha at sirain ang mga database at database ng mga bagay. Matapos ang istraktura ng database ay tinukoy sa DDL, ang mga administrator ng database at mga gumagamit ay maaaring gumamit ng Data Manipulation Language (DML) upang maipasok, makuha at baguhin ang data na nasa loob nito.

Data Definition Language Commands

Ang Data Definition Language ay ginagamit upang lumikha at sirain ang mga database at database ng mga bagay. Ang mga utos na ito ay pangunahing ginagamit ng mga tagapangasiwa ng database sa panahon ng pag-setup at pagtanggal ng mga phases ng isang proyekto ng database. Narito ang isang pagtingin sa istraktura at paggamit ng apat na pangunahing mga utos ng DDL:

LUMIKHA. Ang pag-install ng isang sistema ng pamamahala ng database sa isang computer ay nagbibigay-daan sa iyo upang lumikha at pamahalaan ang maraming mga independiyenteng database. Halimbawa, maaaring gusto mong panatilihin ang isang database ng mga contact ng customer para sa iyong departamento ng pagbebenta at isang tauhan ng database para sa iyong departamento ng HR. Ang LILIKHA na utos ay ginagamit upang maitatag ang bawat isa sa mga database na ito sa iyong platform. Halimbawa, ang utos:

Gumawa ng mga empleyado ng DATABASE

Lumilikha ng isang walang laman na database na pinangalanang "empleyado" sa iyong DBMS. Matapos ang paglikha ng database, ang susunod na hakbang ay upang lumikha ng mga talahanayan na naglalaman ng data. Ang isa pang variant ng CREATE command ay magagamit para sa layuning ito. Ang utos:

LUMIKHA NG TALAAN personal_info (first_name char (20) hindi null, last_name char (20) hindi null, employee_id int hindi null)

nagtatatag ng table na may pamagat na "personal_info" sa kasalukuyang database. Sa halimbawa, ang talahanayan ay naglalaman ng tatlong mga katangian: first_name, last_name at empleyado_id kasama ang ilang karagdagang impormasyon.

PAGGAMIT. Ang utos ng USE ay nagbibigay-daan sa iyo upang tukuyin ang database na gusto mong magtrabaho kasama sa loob ng iyong DBMS. Halimbawa, kung kasalukuyan kang nagtatrabaho sa database ng mga benta at nais na maglabas ng ilang mga utos na makakaapekto sa database ng empleyado, lagyan ng paunang salita ang mga ito sa sumusunod na SQL command:

PAGGAMIT ng mga empleyado

Mahalaga na laging may kamalayan sa database na nagtatrabaho ka bago mag-isyu ng mga command na SQL na manipulahin ang data.

ALTER. Sa sandaling nakagawa ka ng talahanayan sa loob ng isang database, maaaring gusto mong baguhin ang kahulugan nito. Ang utos ng ALTER ay nagbibigay-daan sa iyo upang gumawa ng mga pagbabago sa istraktura ng isang talahanayan nang hindi tinatanggal at nililikha ito. Tingnan ang sumusunod na command:

ALTER TABLE personal_info Magdagdag ng suweldo ng pera null

Ang halimbawang ito ay nagdaragdag ng isang bagong katangian sa talahanayan ng personal_info-suweldo ng empleyado. Tinutukoy ng argumentong "pera" na ang sahod ng empleyado ay naka-imbak gamit ang isang dolyar at format na sentimo. Panghuli, ang "null" na keyword ay nagsasabi sa database na tama para sa field na ito na walang halaga para sa anumang ibinigay na empleyado.

DROP. Ang pinakahuling utos ng Data Definition Language, DROP, ay nagbibigay-daan sa amin na alisin ang buong mga bagay sa database mula sa aming DBMS. Halimbawa, kung gusto naming permanenteng tanggalin ang personal_info table na aming nilikha, gagamitin namin ang sumusunod na command:

DROP TABLE personal_info

Katulad nito, ang utos sa ibaba ay gagamitin upang alisin ang buong database ng empleyado:

Mga empleyado ng DROP DATABASE

Gamitin ang utos na ito nang may pangangalaga. Ang DROP command ay nagtanggal ng buong mga istraktura ng data mula sa iyong database. Kung nais mong alisin ang mga indibidwal na talaan, gamitin ang DELETE na utos ng Language Manipulation Language.

Mga Pagmamanipula ng Data sa Mga Wika

Ang Data Manipulation Language (DML) ay ginagamit upang makuha, ipasok at baguhin ang impormasyon ng database. Ang mga utos na ito ay ginagamit ng lahat ng mga gumagamit ng database sa panahon ng regular na pagpapatakbo ng database.

INSERT. Ang command na INSERT sa SQL ay ginagamit upang magdagdag ng mga tala sa isang umiiral na talahanayan. Bumabalik sa personal_info halimbawa mula sa nakaraang seksyon, isipin na ang aming departamento ng HR ay kailangang magdagdag ng bagong empleyado sa database nito. Maaari kang gumamit ng isang utos na katulad ng isang ito:

INSERT INTO personal_info values ​​('bart', 'simpson', 12345, $ 45000)

Tandaan na mayroong apat na halagang tinukoy para sa rekord. Ang mga ito ay tumutugma sa mga katangiang talahanayan sa pagkakasunud-sunod na tinukoy nila: first_name, last_name, empleyado_id at suweldo.

PUMILI. Ang SELECT command ay ang pinaka karaniwang ginagamit na utos sa SQL. Pinapayagan nito ang mga gumagamit ng database na makuha ang partikular na impormasyong gusto nila mula sa isang database ng pagpapatakbo. Tingnan ang ilang mga halimbawa, muli gamit ang personal_info table mula sa database ng empleyado.

Kinukuha ng command na ipinapakita sa ibaba ang lahat ng impormasyong nasa loob ng talahanayan ng personal_info. Tandaan na ang asterisk ay ginagamit bilang isang wildcard sa SQL. Ito ay literal na nangangahulugang "Piliin ang lahat mula sa talahanayan ng personal_info."

PUMILI * MULA sa personal_info

Bilang kahalili, maaaring gusto ng mga user na limitahan ang mga katangian na nakuha mula sa database. Halimbawa, maaaring humiling ng departamento ng Human Resources ang isang listahan ng mga huling pangalan ng lahat ng empleyado sa kumpanya. Ang sumusunod na command SQL ay makakakuha lamang ng impormasyong iyon:

Piliin ang last_name MULA personal_info

Ang sugnay ng WHERE ay maaaring gamitin upang limitahan ang mga rekord na nakuha sa mga na nakakatugon sa tinukoy na pamantayan. Ang CEO ay maaaring interesado sa pagrepaso sa mga rekord ng tauhan ng lahat ng mataas na empleyado. Kinukuha ng sumusunod na utos ang lahat ng data na nilalaman sa loob ng personal_info para sa mga rekord na may suweldo na halaga na mas malaki sa $ 50,000:

PUMILI * MULA SA personal_info SAAN suweldo> $ 50000

I-UPDATE. Ang UPDATE na utos ay maaaring gamitin upang baguhin ang impormasyon na nilalaman sa loob ng isang talahanayan, alinman sa maramihan o isa-isa. Ipagpalagay na ang kumpanya ay nagbibigay sa lahat ng empleyado ng 3 porsiyento na cost-of-living increase sa kanilang suweldo taun-taon. Ang sumusunod na command SQL ay maaaring magamit upang mabilis na maisagawa ito sa lahat ng mga empleyado na naka-imbak sa database:

UPDATE personal_info SET salary = suweldo * 1.03

Kapag ang bagong empleyado na si Bart Simpson ay nagpapakita ng pagganap sa itaas at sa kabila ng tawag ng tungkulin, nais ng pamamahala na kilalanin ang kanyang mga nakamit na bituin na may $ 5,000 na pagtaas. Ang sugnay ng WHERE ay maaaring gamitin upang i-single out Bart para sa pagtaas na ito:

UPDATE personal_info SET salary = salary + $ 5000 WHERE employee_id = 12345

TANGGALIN. Sa wakas, tingnan natin ang utos ng DELETE. Makikita mo na ang syntax ng command na ito ay katulad ng sa iba pang mga utos ng DML. Sa kasamaang palad, ang aming pinakabagong ulat sa kinita ng korporasyon ay hindi pa natutupad ang mga inaasahan at ang mahinang Bart ay naalis na. Ang command na DELETE na may Sugnay na SAAN ay maaaring gamitin upang alisin ang kanyang tala mula sa talahanayan ng personal_info:

TANGGALIN MULA personal_info SAAN empleyado_id = 12345

SUMALI

Ngayon na natutunan mo ang mga pangunahing kaalaman ng SQL, oras na upang lumipat sa isa sa mga pinaka-makapangyarihang mga konsepto na inaalok ng wika-ang JOIN statement. Pinapayagan ka ng JOIN statement na pagsamahin ang data sa maraming mga talahanayan upang mahusay na iproseso ang malalaking dami ng data. Ang mga pahayag na ito ay kung saan ang tunay na kapangyarihan ng isang database ay namamalagi.

Upang tuklasin ang paggamit ng isang basic JOIN operation upang pagsamahin ang data mula sa dalawang talahanayan, magpatuloy sa halimbawa gamit ang PERSONAL_INFO table at magdagdag ng karagdagang talahanayan sa halo. Ipagpalagay na mayroon kang table na tinatawag na DISCIPLINARY_ACTION na nilikha gamit ang sumusunod na pahayag:

LUMIKHA NG TALAAN disciplinary_action (action_id int hindi null, employee_id int hindi null, comments char (500))

Ang talahanayan na ito ay naglalaman ng mga resulta ng mga aksyong pandisiplina sa mga empleyado ng kumpanya. Mapapansin mo na wala itong anumang impormasyon tungkol sa empleyado bukod sa numero ng empleyado. Madaling isipin ang maraming sitwasyon kung saan maaari mong pagsamahin ang impormasyon mula sa mga talahanayan ng DISCIPLINARY_ACTION at PERSONAL_INFO.

Ipalagay na nakatalaga ka sa paglikha ng isang ulat na naglilista ng mga aksyong pandisiplina na kinuha laban sa lahat ng empleyado na may suweldong mas malaki sa $ 40,000. Ang paggamit ng isang JOIN operation, sa kasong ito, ay tapat. Mabawi namin ang impormasyong ito gamit ang sumusunod na command:

PUMILI personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AT personal_info.salary> 40000

Tinutukoy ng code ang dalawang talahanayan na gusto naming sumali sa FROM clause at nagsasama ng isang pahayag sa Sugnay ng WHERE upang limitahan ang mga resulta sa mga rekord na may katugmang ID ng empleyado at nakamit ang aming pamantayan ng suweldo na mas malaki sa $ 40,000.