SQL Fundamentals

Ithute ka DDL, DML le JOINs

Puo ea Structured Query ke e 'ngoe ea mehaho e meholo ea mehaho ea morao-rao ea marang-rang. SQL e hlalosa mekhoa e sebelisetsoang ho bopa le ho tsamaisa lits'ebeletso tsa litaba tse amanang le li-platform tse kholo. Ha u sheba ka lekhetlo la pele, puo eo e ka 'na ea bonahala e tšosa ebile e rarahane, empa hase eona e thata.

Tlhaloso ena ea lintho tsa bohlokoa ka morao ho SQL e sheba ka bokhutšoanyane litaelo tse ka sehloohong tse sebelisetsoang ho bopa le ho fetola lits'ebeletso tsa marang-rang.

Ka SQL

Tlhaloso e nepahetseng ea SQL ke bothata ba likhang har'a sechaba sa databalo. Ka tloaelo ea eona ea SQL, American National Standards Institute e phatlalalitse hore polelo ea molao e boletsoeng ka molao ke "leqhoa le leng". Leha ho le joalo, ba bangata ba litsebi tsa litsebi tsa litsebi ba nkile mantsoe a slang "sequel." Khetho ke ea hau.

SQL e na le litlolo tse ngata. Oracle databases e sebelisa PL / SQL ea eona ea thepa. Microsoft SQL Server e sebelisa Transact-SQL. Liphetoho tsohle li thehiloe holim'a sekala sa ANSI SQL. Kenyelletso ena e sebelisa litaelo tsa SQL tse lumellanang le ANSI tse sebetsang tsamaisong efe kapa efe ea morao-rao ea basebetsi ba ditshwantsho.

DDL le DML

SQL litaelo li ka aroloa ka lipuo tse peli tse ka sehloohong. Puo ea Tlhaloso ea Data (DDL) e na le litaelo tse sebelisetsoang ho bopa le ho senya marang-rang le databalo tsa lintho. Ka mor'a hore mohaho oa basebetsi o hlalosoe ka DDL, basebelisi ba basebetsi le basebelisi ba ka sebelisa Puo ea Matšoao a Data (DML) ho kenya, ho fumana le ho fetola boitsebiso bo ka har'a lona.

Litlhaloso tsa Puo ea Lipuo

Puo ea Tlhaloso ea Ditshebeletso e sebelisetsoa ho bopa le ho senya marang-rang le dintho tsa basebetsi. Melao ena e sebelisoa ka ho khetheha ke batsamaisi ba databases nakong ea mekhahlelo ea ho seta le ho tlosoa ha morero oa database. Mona ho sheba sebopeho le tšebeliso ea litaelo tse 'nè tsa motheo tsa DDL:

BALA. Ho kenya lenaneo la tsamaiso ea boitsebiso ka khomphuta ho u lumella ho theha le ho laola mananeo a mangata a ikemetseng. Ka mohlala, u ka 'na ua batla ho boloka lebenkele la basebelisi ba bareki bakeng sa lefapha la hau la thekiso le basebetsi ba lefapha la HR. Taelo ea CREATE e sebelisoa ho theha e 'ngoe le e' ngoe ea marang-rang ana sethaleng sa hau. Ka mohlala, taelo:

BATLANG BATHO BA SEBELETSO

e hlahisa lebenkele le se nang letho le bitsoang "basebetsi" ho DBMS ea hau. Ka mor'a ho bopa database, mohato o latelang ke ho etsa litafole tse nang le data. Mofuta o mong o fapaneng oa taelo ea CREATE o ka sebelisetsoa morero ona. Taelo:

BALA TABLE motho_info (pele_name char (20) e seng null, last_name char (20) ha e na letho, mosebetsi_id int ha ho letho)

o theha tafole e nang le "personal_info" ho database ea hona joale. Mohlala, tafole e na le litšobotsi tse tharo: pele_name, last_name le employee_id hammoho le boitsebiso bo eketsehileng.

SEBELISA. Taelo ea USE e u lumella hore u hlalose hore na u batla ho sebetsa le mang ka DBMS ea hau. Ka mohlala, haeba u ntse u sebetsa seterekeng sa thekiso 'me u batla ho fana ka litaelo tse tla ama basebetsi ba basebetsi, ba li hlahise ka taelo e latelang ea SQL:

SEBELISA basebetsi

Ke habohlokoa ho lula u ela hloko boitsebiso boo u sebetsang ho bona pele u fana ka litaelo tsa SQL tse tsamaisang data.

ALTER. Hang ha u se u bōpile tafole ka har'a database, u ka 'na ua batla ho fetola tlhaloso ea eona. Taelo ea ALTER e u lumella hore u etse liphetoho mohlophong oa tafole ntle le ho e tlosa le ho e khutlisa hape. Shebang taelo e latelang:

ALTER TABLE person_info ADD chelete ea chelete ntle

Mohlala ona o eketsa tšobotsi e ncha tafoleng ea personal_info-moputso oa basebetsi. Khang ea "chelete" e totobatsa hore moputso oa basebetsi o bolokoa ho sebelisa mokhoa oa lidolara le lente. Qetellong, "motlakase" oa "nnete" o bolella database hore ho lokile hore tšimo ena e se na boleng ba mosebeletsi ofe kapa ofe ea fuoeng.

DROP. Taelo ea ho qetela ea Puo ea Tlhaloso ea Data, DROP, e re lumella hore re tlose lintho tsohle tsa databases tse tsoang DBMS ea rona. Ka mohlala, haeba re batla ho tlosa tafoleng ea personal_info ka ho feletseng, re tla sebelisa taelo e latelang:

DROP TABLE person_info

Ka ho tšoanang, taelo e ka tlase e tla sebelisoa ho tlosa setsi sa basebetsi bohle:

Basebetsi ba DROP DATABASE

Sebelisa taelo ena ka tlhokomelo. Molao oa DROP o tlosa mekhoa eohle ea data ho tloha haukeleng ea hau. Haeba o batla ho tlosa litlaleho tsa batho ka bomong, sebelisa taelo ea HO SELELA ea Puo ea ho Sebelisa Ditaba.

Litaba tsa Puo ea Lipuo

Puo ea ho Sebelisa Data (DML) e sebelisetsoa ho fumana, ho kenya le ho fetola tlhahisoleseding ea leseli. Melao ena e sebelisoa ke basebelisi bohle ba basebetsi nakong ea ts'ebetsong ea basebetsi.

KENA. Taelo ea INSERT SQL e sebelisetsoa ho eketsa litlaleho tafoleng e teng. Ha u khutlela mofuteng oa motho oa botho ho tloha karolong e fetileng, nahana hore lefapha la HR le hloka ho eketsa mosebeletsi e mocha setsing sa hae sa marang-rang. U ka sebelisa taelo e tšoanang le ena:

KOPISA LINTHO TSA BOPHELO (bart ',' simpson ', 12345, $ 45000)

Hlokomela hore ho na le litekanyetso tse 'nè tse hlalositsoeng bakeng sa tlaleho. Tsena li tsamaisana le litšobotsi tsa tafole ka tatellano eo ba e hlalositsoeng: pele_name, last_name, employee_id le moputso.

Khetha. Taelo ea SELECT ke taelo e sebelisoang ka ho fetisisa ho SQL. E lumella basebedisi ba basebetsi hore ba fumane tlhahisoleseding e tobileng eo ba e batlang ho tswa ho basebetsi ba basebetsi. Sheba mehlala e seng mekae, hape u sebelise tafoleng ea personal_info ho tloha lefapheng la basebetsi.

Taelo e bontšitsoeng ka tlase e fumana boitsebiso bohle bo nang le tafoleng ea personal_info. Hlokomela hore asterisk e sebelisoa e le wildcard ho SQL. Sena se bolela "Khetha ntho e 'ngoe le e' ngoe ho tloha tafoleng ea personal_info."

Khetho * HO tsoa ho motho ka mong

Ntle ho moo, basebelisi ba ka 'na ba batla ho fokotsa litšobotsi tse fumanoang ho tloha ho database. Ka mohlala, Lefapha la Basebetsi le ka hloka lethathamo la mabitso a ho qetela a basebetsi bohle khamphani. Taelo e latelang ea SQL e ka fumana boitsebiso boo feela:

SELECT last_name FROM FROM_info

MOLAO oa WHERE o ka sebelisoa ho fokotsa litlaleho tse fumanoang ho ba finyellehang litekanyetso tse tobileng. Motsamaisi-moholo o ka 'na a thahasella ho hlahloba litlaleho tsa basebetsi ba bohle ba hiriloeng haholo. Taelo e latelang e fumana lintlha kaofela tse nang le li-personal_info bakeng sa litlaleho tse nang le phaello ea moputso ho feta $ 50,000:

KHETHO * HO TSOANG ho motho e mong HA HO NA le moputso> $ 50000

QETELA. Taelo ea UPDATE e ka sebelisoa ho fetola boitsebiso bo ka har'a tafole, ebang ke bongata kapa ka bomong. Nka hore khamphani e fa basebeletsi bohle chelete ea 3 lekholong ea litšenyehelo tsa bophelo ba moputso selemo le selemo. Taelo e latelang ea SQL e ka sebelisoa ho potlakela ho e sebelisa ho basebetsi bohle ba bolokiloeng boitsebisong:

SEHLOOHO sa motho -info SET moputso = moputso * 1.03

Ha Bart Simpson eo e mocha a bontša tshebetso ka holimo le ho feta mosebetsing, baokameli ba lakatsa ho lemoha seo a se finyeletseng ka ho hlahisa $ 5,000. Sehlopha sa WHERE se ka sebelisoa ho khetholla Bart bakeng sa ho phahamisa sena:

E FETILENG FETA LINKI EA E-MAIL KHETHO EA LINTHO TSE KOPITSOANG Li-PODCAST LETHATHAMO LA TSE KA HARE

TLOHA. Qetellong, a re shebelle taelo ea DELETE. U tla fumana hore syntax ea taelo ena e tšoana le ea litaelo tse ling tsa DML. Ka bomalimabe, tlaleho ea rona ea morao-rao ea moputso ha e e-s'o finyelle lintho tseo re li lebeletseng 'me Bart ea futsanehileng o se a lelekiloe. Taelo ea DELETE e nang le clause WHERE e ka sebelisoa ho tlosa tlaleho ea hae tafoleng ea personal_info:

TSOHA ho tloha personal_info HA HO basebetsi_id = 12345

LITABA

Kaha joale u ithutile lintho tsa motheo tsa SQL, ke nako ea ho fetela ho e 'ngoe ea likhopolo tse matla ka ho fetisisa tseo puo e lokelang ho e fana-polelo ea JOIN. Tlhaloso ea JOIN e u lumella ho kopanya lisebelisoa tse ngata hore u sebetse ka mokhoa o nepahetseng haholoanyane. Mantsoe ana ke moo matla a 'nete a database a lulang teng.

Ho hlahloba tšebeliso ea ts'ebetso ea motheo ea JOIN ho kopanya data ho litafole tse peli, tsoela pele ka mohlala ho sebelisa tafole ea PERSONAL_INFO 'me u kenye tafoleng e eketsehileng ho motsoako. Nka hore u na le tafole e bitsoang DISCIPLINARY_ACTION e bōpiloeng ka polelo e latelang:

BALA TABLE taeo_action (action_id int not null, employee_id int not null, maikutlo char (500))

Tafole ena e na le liphello tsa liketso tsa khalemelo ho basebetsi ba khampani. U tla hlokomela hore ha e na tlhahisoleseding leha e le efe e mabapi le mosebeletsi ntle le nomoro ea mosebetsi. Ho bonolo ho nahana ka maemo a mangata moo u ka ratang ho kopanya boitsebiso ho tswa ho litafole tsa DISCIPLINARY_ACTION le PERSONAL_INFO.

Nka hore u na le boikarabello ba ho theha tlaleho e thathamisang liketso tsa khalemelo tse etsoang ho basebeletsi bohle ba nang le moputso o moholo ho feta $ 40,000. Tšebeliso ea mosebetsi oa JOIN, tabeng ena, e totobetse. Re ka fumana boitsebiso bona ka sebelisa taelo e latelang:

Khetha khetho ea botho_info.first_name, personal_info.last_name, disciplinary_action.comments FROM FROM_info, disciplinary_action WHERE personal_info.employee_id = khalemelo_action.employee_id LE motho ka mong_info.salary> 40000

Melao e hlahisa litafole tse peli tseo re batlang ho li kenya sehlopheng sa FROM ho tloha moo ho kenyelletsoa polelo ho clause ea WHERE ho fokotsa liphello ho tlaleho e nang le litlhaloso tsa basebetsi le ho finyella litekanyetso tsa rona tsa moputso ho feta $ 40,000.