Awọn ilana SQL

Mọ nipa DDL, DML ati JOINs

Iwa Ikọju Ikọju Structured jẹ ọkan ninu awọn ohun amorindun ti awọn ile-iṣẹ iṣọpọ data igbalode. SQL ṣe alaye awọn ọna ti a lo lati ṣẹda ati lati ṣe amojuto awọn isura infomesonu ibatan lori gbogbo awọn iru ẹrọ pataki. Ni iṣaju akọkọ, ede le dabi ibanujẹ ati iṣoro, ṣugbọn kii ṣe pe o ṣoro.

Ifihan yii si awọn ipilẹṣẹ lẹhin SQL gba ifojusi kukuru ni diẹ ninu awọn ofin akọkọ ti a lo lati ṣẹda ati iyipada apoti isura infomesonu.

Nipa SQL

Ọrọ pronunciation ti SQL jẹ otitọ jẹ ọrọ ti ariyanjiyan laarin agbegbe igbimọ data. Ninu irufẹ aṣa rẹ, American National Standards Institute sọ pe ifọrọhan iṣẹ ni "es queue el". Sibẹsibẹ, ọpọlọpọ awọn akosemose ti ipilẹṣẹ ti ya si pronunciation "apele". Aṣayan jẹ tirẹ.

SQL wa ni ọpọlọpọ awọn eroja. Awọn apoti ipamọ data isanwo lo PL / SQL tirẹ. Microsoft SQL Server ṣe lilo ti Transact-SQL. Gbogbo awọn iyatọ ti wa ni orisun lori apẹẹrẹ ile-iṣẹ ANSI SQL. Ifihan yii nlo ilana SQL ti o ni ibamu pẹlu ANSI ti o ṣiṣẹ lori eyikeyi igbalode ibatan data.

DDL ati DML

Awọn ofin SQL le pin si awọn ede-meji akọkọ. Awọn Data Definition Ede (DDL) ni awọn ofin ti a lo lati ṣẹda ati ki o run awọn isura data ati awọn nkan ipilẹ data. Lẹhin ti ipilẹ data ti wa ni asọye pẹlu DDL, awọn alakoso data ati awọn olumulo le lo Ẹrọ Imudaniloju Data (DML) lati fi sii, gbajade ati yi awọn data ti o wa ninu rẹ pada.

Idapada Data Awọn ofin Aṣẹ

Awọn Data Definition Ede ti lo lati ṣẹda ati ki o run awọn isura data ati awọn nkan ipilẹ data. Awọn ofin wọnyi ni lilo pataki nipasẹ awọn alakoso data ni akoko igbimọ ati awọn igbesẹ yiyọ kuro ninu iṣẹ akanṣe data. Eyi ni kan wo ni ọna ati lilo ti awọn ipilẹ DDL mẹrin merin:

Ṣẹda. Fifi eto isakoso ipamọ data lori kọmputa kan ngbanilaaye lati ṣẹda ati lati ṣakoso ọpọlọpọ awọn apoti isura data aladani. Fun apẹẹrẹ, o le fẹ lati ṣetọju ibi-ipamọ kan ti awọn olubasoro onibara fun ile-iṣẹ rẹ tita ati ibi ipamọ data ti eniyan fun ẹka ẹka HR rẹ. Awọn koodu CREATE ni a lo lati fi idi kọọkan ninu awọn apoti isura data sori ẹrọ rẹ. Fun apẹẹrẹ, aṣẹ naa:

Ṣẹda awọn oṣiṣẹ DATABASE

ṣẹda aaye ipamọ ti a sọ ni "awọn abáni" lori awọn DDB rẹ. Lẹhin ti ṣẹda ipamọ data, igbesẹ ti o tẹle ni lati ṣẹda tabili ti o ni awọn data. Iyatọ miiran ti ofin CREATE le ṣee lo fun idi yii. Ilana naa:

Ṣẹda TABLE personal_info (orukọ akọkọ_name (20) kii ṣe asan, last_name char (20) ko ṣe asan, employee_id int ko null)

ṣeto tabili kan ti akole "personal_info" ni database ti o wa lọwọlọwọ. Ni apẹẹrẹ, awọn tabili ni awọn ero mẹta: orukọ akọkọ, last_name ati employee_id pẹlú pẹlu awọn afikun alaye.

Lilo. Ilana USE jẹ ki o ṣọkasi database ti o fẹ ṣiṣẹ pẹlu laarin awọn DDB rẹ. Fun apere, ti o ba n ṣiṣẹ lọwọlọwọ ni ibi ipamọ tita ati pe o fẹ lati fun awọn aṣẹ kan ti yoo ni ipa lori database data-ṣiṣe, ṣafihan wọn pẹlu aṣẹ SQL wọnyi:

Awọn oṣiṣẹ Amẹrika

O ṣe pataki lati ma ṣe akiyesi nigbagbogbo ti ibi-ipamọ ti o n ṣiṣẹ ni iṣaaju ki o to ṣe ipinfunni awọn ofin SQL ti o ṣakoso awọn data.

AYE. Lọgan ti o ba ṣẹda tabili kan laarin ibi ipamọ data, o le fẹ lati tun ayipada rẹ pada. Iṣẹ ALTER fun ọ laaye lati ṣe iyipada si sisẹ ti tabili lai paarẹ ati ṣe atunṣe rẹ. Ṣayẹwo wo aṣẹ wọnyi:

ALTER TABLE personal_info ADD owo sisan ni asan

Àpẹrẹ yìí ṣe àfikún aṣiṣe tuntun sí tabili ti ara ẹni-iṣẹ-iṣẹ ti oṣiṣẹ. Ọrọ ariyanjiyan "owo" sọ pe owo-ọya ti oṣiṣẹ wa ni ipamọ pẹlu lilo awọn iṣiro kan ati awọn iṣiro. Níkẹyìn, ọrọ-ọrọ "aṣiṣe" sọ fún àkóónú náà pé ó dara fún pápá yìí kí o má ṣe ní iye kankan fún gbogbo oṣiṣẹ.

DROP. Atẹyin ipari ti Data Definition Language, DROP, ngbanilaaye lati yọ gbogbo awọn ohun ipamọ data lati ọdọ DBMS wa. Fún àpẹrẹ, tí a bá fẹ yọ àwíyé ti ara ẹni tá a ṣẹdá kúrò láéláé, a gbọdọ lo àṣẹ tó wà yìí:

DROP TABLE personal_info

Bakannaa, ofin ti o wa ni isalẹ yoo wa ni lilo lati yọ gbogbo igbasilẹ ti oṣiṣẹ ṣiṣe:

Ṣiṣẹ awọn oṣiṣẹ DOPABASE

Lo pipaṣẹ yii pẹlu itọju. Ilana DROP yọ gbogbo awọn ẹya data lati ibi ipamọ rẹ. Ti o ba fẹ yọ awọn igbasilẹ kọọkan kuro, lo pipaṣẹ ATI ti Ikọju Iṣakoso Data.

Awọn Ilana Ede Ọna kika data

Awọn Ero Ikọju Data (DML) ni a lo lati gba pada, fi sii ati ṣatunṣe alaye ipamọ. Awọn ofin wọnyi ni o lo fun gbogbo awọn olumulo ipamọ data nigba iṣẹ iṣiro ti database.

FI SII. Ṣiṣẹ sii ni SQL ti a lo lati fi awọn igbasilẹ si tabili ti o wa tẹlẹ. Pada si apẹẹrẹ personal_info lati apakan ti tẹlẹ, ro pe oṣiṣẹ Eka HR nilo lati fi iṣẹ titun kan kun si ipamọ data rẹ. O le lo aṣẹ kan to iru eyi:

ṢIṢE TI awọn oniye ti ara ẹni-ara ẹni ('bart', 'simpson', 12345, $ 45000)

Ṣe akiyesi pe awọn iye mẹrin wa ni pato fun gbigbasilẹ. Awọn wọnyi ni ibamu si awọn eroja tabili ni aṣẹ ti a ti sọ wọn: akọkọ_name, last_name, employee_id ati ekunwo.

SELE. Ilana SELECT jẹ pipaṣẹ ti a lo julọ ni SQL. O gba awọn olumulo ipamọ data lati gba alaye ti o ni imọran ti wọn fẹ lati inu ipamọ data ṣiṣe. Ṣayẹwo awọn apẹẹrẹ diẹ, lẹẹkansi lilo tabili ti ara ẹni ara ẹni lati ibi-iṣẹ iṣẹ-ṣiṣe.

Atilẹyin ti o han ni isalẹ gba gbogbo alaye ti o wa ninu tabili ti ara ẹni. Ṣe akiyesi pe aami akiyesi ni a lo bi ohun-iṣiye ni SQL. Itumọ ọrọ gangan tumọ si "Yan ohun gbogbo lati inu tabili ti ara ẹni".

SELE * LATI personal_info

Ni idakeji, awọn olumulo le fẹ lati ṣe iyokuro awọn eroja ti a gba lati ibi-ipamọ. Fun apẹẹrẹ, Eka Ile-iṣẹ Eda Eniyan le beere akojọ awọn orukọ ti o kẹhin fun gbogbo awọn oṣiṣẹ ni ile. Awọn ofin SQL wọnyi yoo gba nikan pe alaye:

Ṣẹ orukọ last_name LATI personal_info

Awọn gbolohun ATI yii le ṣee lo lati ṣe idinwo awọn igbasilẹ ti a gba wọle si awọn ti o ṣe àwárí awọn iyasọtọ pato. Oludariran le jẹ nife ninu atunyẹwo awọn igbasilẹ akọọlẹ eniyan ti gbogbo awọn oṣiṣẹ ti o sanwo pupọ. Atẹle aṣẹ n gba gbogbo awọn data ti o wa ninu ara ẹni-ara ẹni fun awọn igbasilẹ ti o ni iye owo ti o san ju $ 50,000 lọ:

SELE * LATI personal_info Nibo ni oṣuwọn> $ 50000

Imudojuiwọn. Ilana UPDATE le ṣee lo lati yi alaye ti o wa laarin tabili kan, boya ni afikun tabi leyo. Ṣe akiyesi pe ile-iṣẹ naa fun gbogbo awọn abáni ni iwọn-iye-iye-iye-iye ti o wa ni iye owo-ori lododun. Awọn ofin SQL wọnyi le ṣee lo lati ṣe lojukanna fun gbogbo awọn abáni ti a fipamọ sinu apo-ipamọ:

Ṣiṣe ayẹwo personal_info Ṣeto iṣiye = ekunwo * 1.03

Nigbati aṣiṣẹ tuntun Bart Simpson ṣe afihan iṣẹ loke ati lẹhin ipe ti ojuse, iṣakoso nfẹ lati ṣe akiyesi awọn iṣẹ-ṣiṣe ti o ṣe pataki pẹlu igbẹrun $ 5,000. Eyi ni gbolohun ATI ti a le lo lati mu Bart jade fun ibisi yii:

Imudojuiwọn ti ara ẹni_info Ṣeto iṣiye = salaye + $ 5000 NIBI employee_id = 12345

Duro. Níkẹyìn, jẹ ki a wo oju aṣẹ DELETE. Iwọ yoo ri pe iṣeduro aṣẹ yii jẹ iru eyi ti awọn ilana DML miiran. Laanu, imọran iṣẹ-owo tuntun wa ti ko ni ibamu pẹlu ireti ati Bart ti ko dara. Aṣẹ pipaṣẹ pẹlu gbolohun ATI kan le ṣee lo lati yọ igbasilẹ rẹ kuro ni tabili ti ara ẹni:

Pa kuro LATI personal_info WHERE employee_id = 12345

JOINs

Nisisiyi ti o ti kọ awọn ilana ti SQL, o jẹ akoko lati lọ si ọkan ninu awọn ero ti o lagbara julo ti ede gbọdọ pese-gbólóhùn JOIN. Gbólóhùn JOIN gba ọ laaye lati darapọ awọn data ni awọn tabili pupọ lati ṣe itọju daradara awọn titobi data nla. Awọn gbolohun wọnyi ni ibi ti agbara otitọ ti ibi-ipamọ kan wa.

Lati ṣawari awọn lilo ti ipilẹṣẹ IJO iṣẹ lati darapọ data lati awọn tabili meji, tẹsiwaju pẹlu apẹẹrẹ nipa lilo tabili PERSONAL_INFO ki o fi afikun tabili si apapọ. Ṣebi o ni tabili kan ti a npe ni DISCIPLINARY_ACTION ti a ṣẹda pẹlu gbolohun yii:

Ṣẹda ibawi ipilẹ TABLE (action_id ko ṣe alaiṣe, employee_id int ko nullu, awọn alaye char (500))

Ibẹrẹ yii ni awọn esi ti awọn iṣiro ibawi lori awọn oṣiṣẹ ile-iṣẹ. Iwọ yoo ṣe akiyesi pe ko ni alaye nipa alaye ti oṣiṣẹ ti o yatọ si nọmba nọmba. O rorun lati rii ọpọlọpọ awọn oju iṣẹlẹ ibi ti o le fẹ lati ṣepọ alaye lati awọn tabili DISCIPLINARY_ACTION ati PERSONAL_INFO.

Ṣe akiyesi pe o ti ni idaduro pẹlu ṣiṣẹda iroyin kan ti o ṣe akojọ awọn iṣiro atunṣe ti a mu si gbogbo awọn abáni pẹlu ọya ti o pọ ju $ 40,000 lọ. Lilo lilo iṣẹ JOIN, ninu idi eyi, ni ọna titọ. A le gba alaye yii pada nipa lilo pipaṣẹ wọnyi:

Ṣewe personal_info.first_name, personal_info.last_name, disciplinary_action.comments LATI personal_info, disciplinary_action NIBI personal_info.employee_id = disciplinary_action.employee_id ATI personal_info.salary> 40000

Ofin naa ṣalaye awọn tabili meji ti a fẹ lati darapọ mọ ni gbolohun LATI ati lẹhinna pẹlu ọrọ kan ninu IWE WHERE lati fi opin si awọn esi si awọn akosilẹ ti o ni awọn ID iṣẹ-iṣẹ ti o baamu ati pe awọn ipo wa ti o sanwo ti o pọ ju $ 40,000 lọ.