SQL Fundamentals

Kawm txog DDL, DML thiab JOINs

Lus Askiv Structured Language yog ib qho ntawm cov qauv siv ntawm cov qauv ntaub ntawv niaj hnub. SQL lub sij hawm siv cov kev siv los tsim thiab muab cov ntsiab lus sib txuas ntawm txhua qhov loj platforms. Thaum xub thawj siab, cov lus yuav zoo li ntshai thiab tsis yooj yim, tab sis nws tsis yog txhua yam uas nyuaj.

Cov kev taw qhia no rau cov ntsiab lus qab qab SQL siv cov lus qhia me ntsis ntawm qee cov ntsiab lus tseem ceeb uas siv los tsim thiab kho cov ntaub ntawv.

Txog SQL

Qhov tseeb hais ntawm SQL yog ib qho teeb meem nyob rau hauv lub zej zog database. Hauv nws cov qauv hauv SQL, lub koom haum American National Standards tshaj tawm tias cov lus hais yog "es queue el." Txawm li cas los xij, ntau tus kws tshawb fawb tau coj mus rau cov lus qhuab qhia ua "sequel." Kev xaiv yog koj li.

SQL los hauv ntau flavours. Oracle databases siv nws txoj cai PL / SQL. Microsoft SQL neeg rau zaub mov ua kev siv Transact-SQL. Tag nrho cov variations yog raws li kev lag luam txheem ANSI SQL. Qhov kev qhia no siv ANSI-raws li SQL commands uas ua hauj lwm rau txhua qhov kev sib txuas ntawm cov txheej txheem niaj hnub.

DDL thiab DML

SQL commands tau muab faib ua ob hom lus tseem ceeb. Cov Ntaub Ntawv Txhais Lus (DDL) muaj cov lus txib uas siv los tsim thiab rhuav tshem cov ntaub ntawv thiab cov khoom database. Tom qab txoj kab lus database txhais nrog DDL, cov thawj xibfwb cov neeg ua haujlwm thiab cov neeg siv tau siv Kev Tshaj Tawm Ntaub Ntawv (DML) los mus, ntxig thiab kho cov ntaub ntawv hauv nws.

Cov Ntaub Ntawv Txhais Lus Cov Lus Qhia

Cov Lus Txhais Cov Lus Txhais tau siv los tsim thiab rhuav tshem cov ntaub ntawv thiab cov khoom database. Cov lus txib no feem ntau yog siv los ntawm cov thawj coj hauv lub sij hawm teeb thiab tshem tawm theem ntawm txoj haujlwm database. Ntawm no yog saib cov qauv thiab kev siv ntawm plaub theem DDL cov lus txib:

TSIM. Txhim kho txoj kab kev tswj xyuas database rau ntawm ib lub computer pub koj tsim thiab tswj ntau tus neeg sab nraud. Piv txwv, tej zaum koj yuav xav kom muaj ib qho chaw khaws ntaub ntawv ntawm cov neeg teb xov tooj rau koj qhov chaw muag khoom thiab ib tus neeg ua haujlwm database rau koj lub HR Department. Lo lus CREATE yog siv los tsim kom tau ib qho ntawm cov databases ntawm koj lub platform. Piv txwv, hais kom ua:

CREATE DATABASE cov neeg ua haujlwm

tsim ib qho chaw npliag hu ua "neeg ua hauj lwm" ntawm koj lub DBMS. Tom qab tsim lub database, lub kauj ruam tom ntej yog los tsim cov rooj uas muaj cov ntaub ntawv. Lwm hom kev hloov ntawm CREATE hais kom siv tau rau lub hom phiaj no. Lo lus txib:

TSIM lub rooj personal_info (first_name char (20) tsis thov, last_name char (20) tsis thov, worker_id rau cov tsis thov)

tsim ib lub rooj hu ua "personal_info" nyob rau hauv cov ntaub ntawv tam sim no. Hauv qhov ua piv txwv, cov lus teev muaj 3 yam cwj pwm: first_name, last_name thiab worker_id nrog rau qee cov ntaub ntawv ntxiv.

SIV. USE cov lus txib tso cai rau koj kom qhia tau cov database uas koj xav mus ua haujlwm nrog hauv koj lub DBMS. Piv txwv li, yog tias koj tab tom ua haujlwm hauv qhov kev lag luam muag khoom thiab xav kom muab ib co lus txib uas yuav cuam tshuam rau cov neeg ua hauj lwm database, hais kom lawv nrog cov nram qab no SQL hais kom ua:

SIV neeg ua hauj lwm

Nws tseem ceeb heev uas yuav tsum nco qab txog cov database koj ua haujlwm ua ntej muab SQL commands uas tswj cov ntaub ntawv.

ALTER. Thaum koj tau tsim ib lub rooj nyob rau hauv lub database, koj yuav xav hloov nws lub ntsiab lus. Qhov ALTER cov lus txib tso cai rau koj hloov cov qauv ntawm lub rooj tsis muaj kev sib txuas lus thiab rov tsim kho nws. Ua tib zoo saib cov lus txib nram no:

ALTER TABLE personal_info ADD nyiaj hli nyiaj thov

Qhov piv txwv no ntxiv rau tus cwj pwm tshiab rau cov lus personal_info - tus neeg ua haujlwm cov nyiaj hli. Cov lus hais tias "nyiaj" yog qhia tias tus neeg ua haujlwm tau nyiaj hli siv cov nyiaj thiab nyiaj xees. Thaum kawg, tus "thov" tseem ceeb qhia rau tus database tias nws tsis zoo rau daim teb no kom tsis muaj nqi rau ib tus neeg ua haujlwm twg.

TSIS. Qhov kawg lus qhia ntawm Cov Lus Txhais Cov Lus, DROP, tso cai rau peb tshem tag nrho cov khoom database ntawm peb DBMS. Piv txwv, yog tias peb xav mus tas li tshem tawm cov lus personal_info uas peb tau tsim, peb yuav siv cov lus qhia nram no:

NROV TABLE personal_info

Zoo sib xws, cov lus txib hauv qab no yuav raug siv los tshem tag nrho cov neeg ua hauj lwm database:

TUS NEEG DATABASE cov neeg ua haujlwm

Siv cov lus txib no nrog kev saib xyuas. DROP cov lus txib tshem tawm tag nrho cov ntaub ntawv ntawm koj tus database. Yog tias koj xav tshem tawm cov ntaub ntawv ntawm tus kheej, siv DELETE cov lus txib ntawm Cov Ntaub Ntawv Qhia Txog Manipulation.

Cov Kev Qhia Manipulation Cov Lus Qhia

Cov ntaub ntawv Manipulation Language (DML) siv los muab, ntxig thiab hloov cov ntaub ntawv database. Cov lus txib no yog siv los ntawm txhua tus neeg siv cov ntaub ntawv thaum lub caij ua haujlwm ntawm lub database.

INSERT. INSERT hais kom ua hauv SQL yog siv los ntxiv cov ntaub ntawv rau ib lub rooj uas twb muaj lawm. Rov qab mus rau tus qauv ntawm personal_info ntawm tshooj dhau los, xav txog tias peb lub HR Department xav ntxiv ib tus neeg ua haujlwm tshiab rau nws cov ntaub ntawv. Koj siv tau cov lus txib zoo ib yam li no:

INSERT INTO personal_info qhov tseem ceeb ('bart', 'simpson', 12345, $ 45000)

Nco ntsoov tias muaj plaub yam teev tseg rau cov ntaub ntawv. Cov xov no sib raug rau cov lus qhia hauv qhov kev txiav txim uas lawv tau txhais: first_name, last_name, worker_id thiab cov nyiaj hli.

Xaiv. Qhov hais kom ua SELECT yog qhov kev siv ntau tshaj plaws hauv SQL. Nws pub rau cov neeg siv cov ntaub ntawv khaws cov lus qhia uas lawv xav tau los ntawm kev ua hauj lwm database. Ua tibzoo saib ob peb qhov ua piv txwv, siv cov lus personal_info los ntawm tus neeg ua haujlwm database.

Cov lus txib nram qab no rov qab tau cov lus qhia nyob hauv cov lus personal_info. Nco ntsoov tias tus cim hnub qub yog siv ua daim wildcard hauv SQL. Qhov no txhais tau tias "Xaiv txhua yam ntawm tus personal_info cov lus."

Xaiv * ntawm personal_info

Xwb, cov neeg siv yuav xav txwv cov cwj pwm uas tau muab rov qab los ntawm lub database. Piv txwv li, Department of Human Resources yuav tsum tau sau cov npe ntawm tag nrho cov neeg ua hauj lwm hauv lub tuam txhab. Cov nram qab no SQL hais kom ua yuav muab tsuas yog cov ntaub ntawv:

Xaiv last_name ntawm personal_info

Qhov chaw txiav txim siab siv tau los txwv cov ntaub ntawv uas tau muab rov qab rau cov uas tau ua raws li cov qauv teev tseg. Tus Thawj Coj kuj yuav xav saib xyuas cov neeg ua hauj lwm cov ntaub ntawv ntawm tag nrho cov neeg ua haujlwm tau them nyiaj ntau. Cov lus txib nram qab no tau txais tag nrho cov ntaub ntawv muaj nyob hauv personal_info rau cov ntaub ntawv uas muaj nyiaj hli ntau tshaj $ 50,000:

XAIV * LOS NTAWM personal_info qhov twg nyiaj hli> $ 50000

Hloov tshiab. Cov lus qhia hloov tshiab tuaj yeem siv los hloov cov ntaub ntawv nyob rau hauv ib lub rooj, xws li hauv ib qho los sis ib tus zuj zus. Pom hais tias lub tuam txhab muab tag nrho cov neeg ua hauj lwm rau cov nyiaj hli nce txog 3 feem pua ​​ntawm lawv cov nyiaj hli. Cov lus hais hauv qab SQL no yuav raug siv kom sai sai rau qhov no rau tag nrho cov neeg ua hauj lwm khaws cia hauv database:

Hloov tshiab personal_info SET nyiaj hli = nyiaj hli * 1.03

Thaum tus neeg ua haujlwm tshiab Bart Simpson qhia txog kev ua haujlwm saum toj thiab tshaj ntawd txoj haujlwm hu ua, tus thawj tswj hwm xav paub txog nws txoj kev ua tiav nrog $ 5,000. Lub chaw ua haujlwm nyob rau qhov twg yuav raug siv los tawm rau Bart rau qhov nce no:

Hloov tshiab personal_info SET nyiaj hli = nyiaj hli + $ 5000 qhov twg ua haujlwm worker_id = 12345

RHO TAWM. Thaum kawg, cia li saib DELETE hais kom ua. Koj yuav pom tau tias cov syntax ntawm qhov kev hais kom ua no zoo ib yam li ntawm DML lwm cov lus txib. Hmoov tsis, peb cov neeg tau txais nyiaj tshaj tawm cov ntaub ntawv tsis tau ua tiav raws li cov kev cia siab thiab cov neeg pluag Bart tau raug tso tawm. DELETE lo lus txib nrog ib qhov clause siv tau los tshem tawm nws cov ntaub ntawv los ntawm cov lus personal_info:

RHO TAWM NTAWM personal_info qhov twg tus neeg ua haujlwm_id = 12345

Koom tes

Tam sim no uas koj tau kawm cov kev qhia ntawm SQL, nws yog lub sij hawm los mus rau ib qho ntawm cov ntsiab lus tseem ceeb tshaj plaws uas cov lus muaj rau-lus JOIN. Ib nqe lus hais txog JOIN tso cai rau koj muab cov ntaub ntawv nyob rau ntau lub rooj rau kev ua cov txheej txheem loj. Cov nqe lus no yog qhov tseeb qhov tseeb ntawm lub database muaj nyob.

Txheeb xyuas kev siv cov kev khiav hauj lwm yooj yim kom muab cov ntaub ntawv los ntawm ob lub rooj sib tham, txuas ntxiv nrog tus qauv siv PERSONAL_INFO cov lus thiab ntxiv ib qho ntxiv rau lub ntse. Koj xav tias koj muaj ib lub rooj hu ua DISCIPLINARY_ACTION uas tau tsim nrog cov lus qhia nram qab no:

TSIM TXOJ CAI kev qhuab ntuag (action_id tus tsis thov, neeg ua haujlwm_id tus tsis thov, tawm char (500))

Cov lus no muaj cov ntsiab lus ntawm kev qhuab qhia rau cov neeg ua haujlwm hauv lub tuam txhab. Koj yuav pom tias nws tsis muaj cov ntaub ntawv hais txog tus neeg ua haujlwm uas tsis yog tus neeg ua haujlwm. Nws yooj yim heev xav txog ntau yam scenarios uas koj xav muab cov lus qhia los ntawm DISCIPLINARY_ACTION thiab PERSONAL_INFO cov lus.

Xav tias koj tau ua haujlwm nrog tsim ib daim ntawv tshaj tawm uas teev cov kev qhuab qhia rau txhua tus neeg ua haujlwm nrog cov nyiaj hli ntau dua $ 40,000. Kev siv ntawm kev sib koom tes, qhov no, yog ncaj. Peb tuaj yeem muab cov ntaub ntawv no los siv cov lus qhia nram qab no:

Xaiv personal_info.first_name, personal_info.last_name, disciplinary_action.com los ntawm personal_info, disciplinary_action qhov twg personal_info.employee_id = disciplinary_action.employee_id THIAB personal_info.salary> 40000

Txoj cai qhia txog ob lub rooj ntawv uas peb xav koom nrog hauv cov lus cuav thiab tom qab ntawd nrog rau cov lus qhia nyob rau hauv qhov chaw txiav txim siab kom txiav txim siab rau cov ntaub ntawv uas tau hloov cov neeg ua haujlwm tus neeg ua haujlwm thiab ua tau raws li peb cov nyiaj hli ntau dua $ 40,000.