Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Çfarë është SQL. Funksionaliteti i gjuhës SQL

02/07/07 11.6K

Një hyrje në menaxhimin e bazës së të dhënave relacionale

sql shpesh referohet si Esperanto për Sistemet e Menaxhimit të Bazave të të Dhënave (DBMS). Në të vërtetë, nuk ka asnjë gjuhë tjetër në botë për të punuar me bazat e të dhënave (DB), e cila do të përdorej kaq gjerësisht në programe. Standardi i parë sol u shfaq në 1986 dhe ka fituar pranim universal deri tani. Mund të përdoret edhe kur punoni me DBMS jo-relacionale. Ndryshe nga mjetet e tjera softuerike, të tilla si gjuhët C dhe Cobol, të cilat janë prerogativë e programuesve profesionistë, sql përdoret nga specialistë nga një gamë e gjerë fushash. Programuesit, administratorët e DBMS, analistët e biznesit - ata të gjithë përpunojnë me sukses të dhënat duke përdorur sql. Njohja e kësaj gjuhe është e dobishme për të gjithë ata që kanë të bëjnë me një bazë të dhënash.

Në këtë artikull, ne do të shqyrtojmë konceptet themelore të sql. Le të tregojmë sfondin e tij (dhe të shpërndajmë disa mite gjatë rrugës). Do të njiheni me modelin relacional dhe do të arrini të fitoni aftësitë e para në punën me sql, të cilat do të ndihmojnë në zhvillimin e mëtejshëm të gjuhës.

A është e vështirë për të mësuar sql? Varet nga sa thellë do të thellohesh në thelbin. Ka shumë për të mësuar për t'u bërë profesionist. Gjuha sql u shfaq në 1974 si subjekt i një punimi të vogël kërkimor prej 23 faqesh dhe ka bërë një rrugë të gjatë që atëherë. Teksti i standardit aktual - dokumenti zyrtar "gjuha standarde ndërkombëtare e bazës së të dhënave sql" (zakonisht quhet sql-92) - përmban mbi gjashtëqind faqe, por nuk thotë asgjë për veçoritë specifike të versioneve sol të zbatuara në DBMS e microsoft, oracle, sybase dhe të tjera. Gjuha është aq e zhvilluar dhe e larmishme sa që vetëm një listë e thjeshtë e aftësive të saj do të kërkojë disa artikuj në revistë, dhe nëse mbledh gjithçka që është shkruar në temën e sol, do të marrësh një bibliotekë me shumë vëllime.

Sidoqoftë, për përdoruesin mesatar nuk është aspak e nevojshme të njohë sql plotësisht dhe plotësisht. Si një turist që e gjen veten në një vend ku flasin një gjuhë të pakuptueshme, mjafton të mësosh vetëm disa shprehje të zakonshme dhe rregulla gramatikore, dhe në sql - duke ditur pak, mund të marrësh shumë rezultate të dobishme. Në këtë artikull, ne do të shikojmë komandat bazë sql, rregullat për vendosjen e kritereve për zgjedhjen e të dhënave dhe do të tregojmë se si të merrni rezultatet. Si rezultat, ju do të jeni në gjendje të krijoni në mënyrë të pavarur tabela dhe të futni informacione në to, të krijoni pyetje dhe të punoni me raporte. Kjo njohuri mund të bëhet bazë për zotërimin e mëtejshëm të pavarur të sql.

Çfarë është sql?

sql është një gjuhë e specializuar jo-procedurale që ju lejon të përshkruani të dhëna, të merrni dhe të përpunoni informacione nga DBMS relacionale. Specializimi do të thotë që sol është menduar vetëm për të punuar me një bazë të dhënash; është e pamundur të krijosh një sistem aplikimi të plotë vetëm me anë të kësaj gjuhe - për këtë do t'ju duhet të përdorni gjuhë të tjera në të cilat mund të futni komanda sql. Prandaj, sql quhet edhe një mjet gjuhësor ndihmës për përpunimin e të dhënave. Një gjuhë ndihmëse përdoret vetëm në lidhje me gjuhë të tjera.

Një gjuhë aplikimi për qëllime të përgjithshme zakonisht ka lehtësira për krijimin e procedurave, por sql jo. Me ndihmën e tij, nuk mund të tregoni se si duhet të kryhet një detyrë e caktuar, por mund të përcaktoni vetëm se çfarë është saktësisht. Me fjalë të tjera, kur punojmë me sql, na interesojnë rezultatet, jo procedurat për marrjen e tyre.

Vetia më thelbësore e sql është aftësia për të hyrë në bazat e të dhënave relacionale. Madje shumë njerëz mendojnë se shprehjet "baza e të dhënave e përpunuar me anë të sql" dhe "baza e të dhënave relacionale" janë sinonime. Sidoqoftë, së shpejti do të shihni se ka një ndryshim midis të dyve. Standardi sql-92 nuk e ka as termin relacion.

Çfarë është një DBMS relacionale?

Pa hyrë në detaje, një DBMS relacionale është një sistem i bazuar në një model të menaxhimit të të dhënave relacionale.

Koncepti i një modeli relacional u propozua për herë të parë në veprën e Dr. EF Codd, botuar në vitin 1970. Ai përshkruante aparatin matematikor për strukturimin dhe menaxhimin e të dhënave, dhe gjithashtu propozoi një model abstrakt për përfaqësimin e çdo informacioni real. Para kësaj, kur përdorni një bazë të dhënash, kërkohej të merren parasysh veçoritë specifike të ruajtjes së informacionit në të. Nëse struktura e brendshme e bazës së të dhënave ndryshonte (për shembull, për të përmirësuar performancën), programet e aplikimit duhej të ripunoheshin, edhe nëse nuk kishte ndryshime në nivelin logjik. Modeli relacional bëri të mundur ndarjen e veçorive të veçanta të ruajtjes së të dhënave nga niveli i aplikacionit. Në të vërtetë, modeli nuk përshkruan në asnjë mënyrë se si ruhet dhe aksesohet informacioni. Merret parasysh vetëm mënyra se si ky informacion perceptohet nga përdoruesi. Falë shfaqjes së modelit relacional, qasja ndaj menaxhimit të të dhënave ka ndryshuar rrënjësisht: nga një art është kthyer në shkencë, e cila çoi në një zhvillim revolucionar të industrisë.

Konceptet bazë të modelit relacional

Sipas modelit relacional, një relacion është një lloj tabele me të dhëna. Një relacion mund të ketë një ose më shumë atribute (karakteristika) që korrespondojnë me kolonat e kësaj tabele dhe një grup (ndoshta bosh) të dhënash që përfaqësojnë grupe të këtyre atributeve (ato quhen tuples n-ar, ose rekorde) dhe që korrespondojnë me rreshtat të tryezës.

Për çdo tuple, vlerat e atributeve duhet t'i përkasin të ashtuquajturave domene. Në fakt, një domen është një grup të dhënash që përcakton grupin e të gjitha vlerave të vlefshme.

Le të marrim një shembull. Supozoni se keni një DomainDaysWeeks që përmban vlera nga e hëna deri të dielën. Nëse relacioni ka një atribut DayWeek që korrespondon me këtë domen, atëherë çdo tufë e lidhjes në kolonën e Ditës së Javës duhet të përmbajë një nga vlerat e listuara. Shfaqja e vlerave Janar ose Cat nuk lejohet.

Ju lutemi vini re: atributi duhet të ketë një nga vlerat e vlefshme. Vendosja e vlerave të shumta në të njëjtën kohë është e ndaluar. Kështu, përveç kërkesës që vlerat e atributeve t'i përkasin një domeni të caktuar, duhet të plotësohet edhe kushti i atomicitetit të tij. Kjo do të thotë se zbërthimi është i papranueshëm për këto vlera, domethënë nuk mund t'i ndash në pjesë më të vogla pa humbur kuptimin kryesor. Për shembull, nëse vlera e atributit përmban njëkohësisht të hënën dhe të martën, atëherë mund të dallohen dy pjesë, duke ruajtur kuptimin origjinal - Dita e javës; prandaj, kjo vlerë e atributit nuk është atomike. Sidoqoftë, nëse përpiqeni të ndani kuptimin e "e hënës" në pjesë, ju merrni një grup shkronjash individuale - nga "P" në "K"; kuptimi origjinal humbet, pra kuptimi i "e hënës" është atomik.

Marrëdhëniet kanë edhe veti të tjera. Më e rëndësishmja prej tyre është vetia matematikore e operacioneve të mbyllura. Kjo do të thotë që si rezultat i kryerjes së ndonjë operacioni në një relacion, duhet të shfaqet një relacion i ri. Kjo veti ju lejon të merrni rezultate të parashikueshme kur kryeni operacione matematikore në marrëdhënie. Përveç kësaj, bëhet e mundur të përfaqësohen operacionet në formën e shprehjeve abstrakte me nivele të ndryshme foleje.

Në punën e tij origjinale, Dr. Codd përcaktoi një grup prej tetë operatorësh të quajtur algjebër relacionale. Katër operatorët - bashkimi, shumëzimi logjik, ndryshimi dhe prodhimi kartezian - u mbartën nga teoria tradicionale e grupeve; pjesa tjetër e operatorëve u krijuan posaçërisht për të trajtuar marrëdhëniet. Në punën e mëvonshme të Dr. Codd, Chris Date dhe të tjerëve, janë propozuar operatorë shtesë. Pjesa tjetër e këtij artikulli do të diskutojë tre operatorë relacionalë - prodhimi (projekti), kufizimet (zgjidhni ose kufizoni) dhe bashkimin (bashkimin).

sql dhe modeli relacional

Tani që jeni njohur me modelin relacional, le ta harrojmë atë. Sigurisht, jo përgjithmonë, por vetëm për të shpjeguar sa vijon: megjithëse ishte modeli relacional i propozuar nga Dr. Codd ai që u përdor në zhvillimin e sql, nuk ka asnjë korrespodencë të plotë apo fjalë për fjalë midis tyre (kjo është një nga arsyet pse termi relacion). Për shembull, konceptet sql table dhe relacion nuk janë ekuivalente, sepse tabelat mund të përmbajnë disa rreshta identikë në të njëjtën kohë, ndërsa tuples identikë nuk lejohen në një marrëdhënie. Për më tepër, sql nuk ofron domene relacionale, megjithëse llojet e të dhënave luajnë një rol në një farë mase (disa përkrahës me ndikim të modelit relacional tani po përpiqen të përfshijnë domenet relacionale në standardin e ardhshëm sql).

Fatkeqësisht, mospërputhja midis sql dhe modelit relacional ka krijuar shumë konfuzion dhe polemika gjatë viteve. Por meqenëse tema kryesore e artikullit është të mësuarit e sql, dhe jo modeli relacional, këto probleme nuk mbulohen këtu. Vetëm mos harroni se ka dallime midis termave të përdorur në sql dhe në modelin relacional. Më tej në artikull do të përdoren vetëm termat e pranuar në sql. Në vend të marrëdhënieve, atributeve dhe tuples, ne do të përdorim homologët e tyre sql: tabela, kolona dhe rreshta.

SQL statike vs dinamike

Ju tashmë mund të jeni njohur me terma si sql statike dhe dinamike. Një pyetje sql është statike nëse përpilohet dhe optimizohet përpara ekzekutimit të programit. Ne kemi përmendur tashmë një nga format e sql statike kur folëm për futjen e komandave sql në programet C ose Cobol (ka një emër tjetër për shprehje të tilla - embedded sql). Siç mund ta merrni me mend, një pyetje dinamike sql përpilohet dhe optimizohet gjatë ekzekutimit të programit. Si rregull, përdoruesit e zakonshëm përdorin vetëm sql dinamike, e cila u lejon atyre të krijojnë pyetje në përputhje me nevojat imediate. Një nga opsionet për përdorimin e pyetjeve dinamike sql është thirrja e tyre në mënyrë interaktive ose direkte (madje ekziston një term i veçantë - directsql), kur pyetjet e dërguara për përpunim futen në mënyrë interaktive nga terminali. Ekzistojnë disa dallime midis sql statike dhe dinamike në sintaksën e strukturave të përdorura dhe në veçoritë e ekzekutimit, por këto çështje janë përtej qëllimit të artikullit. Vëmë re vetëm se për qartësinë e të kuptuarit, shembujt janë dhënë në formën e pyetjeve të drejtpërdrejta sql, pasi kjo ju lejon të mësoni se si të përdorni sql jo vetëm për programuesit, por edhe për shumicën e përdoruesve fundorë.

Si të mësoni sql

Tani jeni gati të shkruani pyetjet tuaja të para sql. Nëse keni akses në bazën e të dhënave përmes sql dhe dëshironi të përdorni shembujt tanë në praktikë, atëherë merrni parasysh sa vijon: duhet të identifikoheni si përdorues me leje të pakufizuara dhe do t'ju nevojiten mjete softuerike për përpunimin interaktiv të pyetjeve sql (nëse jemi duke folur për një bazë të dhënash të rrjetit, duhet të flisni me administratorin e bazës së të dhënave për t'ju dhënë të drejtat e duhura). Nëse nuk ka qasje në bazën e të dhënave përmes sql - mos u mërzitni: të gjithë shembujt janë shumë të thjeshtë dhe mund t'i kuptoni "të thatë", pa shkuar në makinë.

Për të kryer ndonjë veprim në sql, duhet të ekzekutoni një shprehje në gjuhën sql. Ekzistojnë disa lloje të shprehjeve, megjithatë, midis tyre mund të dallohen tre grupe kryesore: komandat ddl (gjuha e përcaktimit të të dhënave), komandat dml (gjuha e manipulimit të të dhënave) dhe mjetet e kontrollit të të dhënave. Kështu, në njëfarë kuptimi, sql kombinon tre gjuhë të ndryshme.

Përshkrimi i të dhënave Komandat e gjuhës

Le të fillojmë me një nga komandat kryesore ddl - krijimin e tabelës. Ekzistojnë disa lloje tabelash në sql, kryesoret janë dy lloje: bazë (bazë) dhe selektive (pamje). Tabelat që i referohen të dhënave të jetës reale janë themelore; selektive - këto janë tabela "virtuale" që krijohen në bazë të informacionit të marrë nga tabelat bazë; por për përdoruesit, format duken si tabela të rregullta. Komanda krijimi i tabelës është për krijimin e tabelave bazë.

Në komandën e krijimit të tabelës, duhet të specifikoni emrin e tabelës, të specifikoni listën e kolonave dhe llojet e të dhënave që ato përmbajnë. Mund të ketë elementë të tjerë opsionalë si parametra, por së pari le të shohim vetëm parametrat bazë. Le të tregojmë formën më të thjeshtë sintaksore për këtë komandë:

krijoni tabelën Emri i tabelës (Typi i të dhënave të kolonës);

krijimi dhe tabela janë fjalë kyçe sql; Emri i tabelës, kolona dhe lloji i të dhënave janë parametra formalë në vend të të cilave përdoruesi vendos çdo herë vlerat aktuale. Parametrat Column dhe DataType janë të mbyllura në kllapa. Në sql, kllapat përdoren zakonisht për të grupuar artikujt individualë. Në këtë rast, ato ju lejojnë të kombinoni përkufizimet për kolonën. Pikëpresja në fund është ndarësi i komandave. Duhet të plotësojë çdo shprehje sql.

Le të shohim një shembull. Le të themi se dëshironi të krijoni një tabelë për të ruajtur të dhënat për të gjitha takimet. Për ta bërë këtë, futni komandën në sql:

krijoni takime në tryezë (data e takimit);

Pas ekzekutimit të kësaj komande, do të krijohet një tabelë me emrin takime me një kolonë, data_caktimi, në të cilën mund të shkruhen të dhënat e tipit data. Meqenëse nuk është futur asnjë e dhënë për momentin, numri i rreshtave në tabelë është zero (me komandën e krijimit të tabelës jepet vetëm përkufizimi i tabelës; vlerat aktuale futen nga komanda insert, e cila diskutohet më vonë ).

Parametrat appointments dhe appointment_date quhen identifikues sepse vendosin emrat për objekte specifike të bazës së të dhënave, në këtë rast, emrat për tabelën dhe kolonën, përkatësisht. Ekzistojnë dy lloje identifikuesish në sql: të rregullt dhe të kufizuar. Identifikuesit e theksuar janë të mbyllur në thonjëza të dyfishta dhe janë të ndjeshme ndaj shkronjave të vogla. Identifikuesit e rregullt nuk dallohen nga ndonjë karakter i kufizuar dhe nuk janë të ndjeshëm ndaj shkronjave të vogla. Ky artikull vlen vetëm për identifikuesit e rregullt.

Simbolet e përdorura për të ndërtuar identifikues duhet të ndjekin disa rregulla. Në identifikuesit e zakonshëm, mund të përdoren vetëm shkronjat (jo domosdoshmërisht latinisht, por edhe alfabete të tjera), numrat dhe karakteri i nënvizimit. Identifikuesi nuk duhet të përmbajë shenja pikësimi, hapësira ose karaktere të veçanta (#, @,% ose!); gjithashtu, nuk mund të fillojë me një shifër ose nënvizim. Fjalë kyçe të veçanta sql mund të përdoren për identifikues, por kjo nuk rekomandohet. Identifikuesi synon të përcaktojë një objekt, kështu që duhet të ketë një emër unik (brenda një konteksti të caktuar): nuk mund të krijoni një tabelë me një emër që gjendet tashmë në bazën e të dhënave; nuk mund të keni kolona me të njëjtin emër në të njëjtën tabelë. Meqë ra fjala, mbani në mend se emërimet dhe emërimet janë të njëjtët emra për sql. Është e pamundur të krijosh një identifikues të ri vetëm duke ndryshuar madhësinë e shkronjave.

Edhe pse një tabelë mund të ketë vetëm një kolonë, në praktikë, zakonisht kërkohen tabela me shumë kolona. Komanda për krijimin e një tabele të tillë në përgjithësi duket si kjo:

krijoni tabelën Emri i tabelës (Tipi i të dhënave të kolonës [(, Lloji i të dhënave të kolonës)]);

Kllapat katrore përdoren për të treguar elementë opsionalë, ato kaçurrelë përmbajnë elementë që mund të përfaqësojnë një listë të strukturave me një shteg (kur futni një komandë reale sql, nuk vendosen as njëra, as tjetra kllapa). Kjo sintaksë ju lejon të specifikoni çdo numër kolonash. Vini re se ka një presje përpara artikullit të dytë. Nëse ka disa parametra në listë, atëherë ato ndahen nga njëri-tjetri me presje.

krijoni takimet e tabelës2 (data e takimit, ora e takimit, përshkrimi varchar (256));

Kjo komandë krijon tabelën e takimeve2 (tabela e re duhet të ketë një emër tjetër, pasi tabela e takimeve është tashmë e pranishme në bazën e të dhënave). Ashtu si tabela e parë, ajo ka një kolonë appointment_date për të regjistruar datën e takimeve; përveç kësaj, kolona appointment_time u shtua për të regjistruar oraret e këtyre takimeve. Parametri i përshkrimit është një varg teksti që mund të përmbajë deri në 256 karaktere. Lloji i specifikuar për këtë parametër është varchar (shkurt për ndryshimin e karaktereve), pasi nuk dihet paraprakisht se sa hapësirë ​​do të kërkohet për regjistrimin, por është e qartë se përshkrimi nuk do të marrë më shumë se 256 karaktere. Kur përshkruani një parametër në llojin e vargut të karakterit (dhe disa lloje të tjera), tregohet gjatësia e parametrit. Vlera e tij është e specifikuar në kllapa në të djathtë të emrit të tipit.

Ju mund të keni vënë re se në dy shembujt që shikuam, hyrja e komandës është formatuar ndryshe. Nëse në rastin e parë komanda vendoset plotësisht në një rresht, atëherë në të dytën pas kllapave të para të hapura vazhdohet shkrimi nga një rresht i ri dhe përcaktimi i secilës kolonë tjetër fillon nga një rresht i ri. Nuk ka kërkesa të veçanta për formatimin e rekordeve në sql. Thyerja e një rekordi në rreshta e bën më të lehtë leximin. Gjuha sql lejon, gjatë shkrimit të komandave, jo vetëm të ndahet rreshti i komandës për rresht, por edhe të futen indencat në fillim të rreshtave dhe hapësirat midis elementeve të regjistrimit.

Tani që i dini rregullat themelore, le të shohim një shembull më kompleks të krijimit të një tabele me shumë kolona. Në fillim të artikullit u shfaq tabela e punonjësve. Ai përmban kolonat e mëposhtme: mbiemrin, emrin, datën e punësimit, departamentin, kategorinë dhe pagën për vitin. Komanda e mëposhtme sql përdoret për të përcaktuar këtë tabelë:

krijimi i punonjësve të tabelës (karakteri i mbiemrit (13) jo null, karakteri i emrit (10) jo null, data_data e punësimit, karakteri i zyrës së degës (15), i vogël i nivelit të klasës, dhjetori i pagës (9, 2));

Ka disa elementë të rinj në ekip. Para së gjithash, është shprehja jo null në fund të përkufizimit të kolonave mbiemri dhe emri. Me ndihmën e strukturave të tilla vendosen kërkesa që duhet të plotësohen. Në këtë rast, tregohet se gjatë futjes duhet të plotësohen fushat mbiemri dhe emri; nuk mund t'i lini bosh këto kolona (kjo është mjaft logjike: si mund ta identifikoni një punonjës pa e ditur emrin e tij?).

Përveç kësaj, ekzistojnë tre lloje të reja të dhënash në shembull: karakteri, i vogël dhe dhjetori. Deri më tani, pothuajse nuk kemi folur për lloje. Megjithëse nuk ka domene relacionale në sql, ajo ka një grup të llojeve bazë të të dhënave. Ky informacion përdoret gjatë ndarjes së memories dhe krahasimit të vlerave; në një masë të caktuar ngushton listën e vlerave të mundshme ndërsa shkruani, megjithatë, kontrollimi i tipit në sql është më pak i rreptë se në gjuhët e tjera.

Të gjitha llojet e të dhënave të disponueshme në sql mund të ndahen në gjashtë grupe: vargjet e karaktereve, vlerat e sakta numerike, vlerat numerike të përafërta, vargjet e biteve, koha e datës dhe intervalet. Ne kemi renditur të gjitha varietetet, por në këtë artikull vetëm disa prej tyre do të shqyrtohen në detaje (vargjet bit, për shembull, nuk janë me interes të veçantë për përdoruesit e zakonshëm).

Meqë ra fjala, nëse menduat se ora e datës ishte një gabim shtypi, e keni gabuar. Ky grup (datatime) përfshin shumicën e llojeve të të dhënave të lidhura me kohën e përdorur në sql (parametra të tillë si intervalet kohore ndahen në një grup të veçantë). Në shembullin e mëparshëm, ne kemi hasur tashmë dy lloje të dhënash nga grupi datatime - data dhe koha.

Lloji tjetër i të dhënave me të cilin jeni njohur tashmë është karakteri që ndryshon (ose thjesht varchar); i përket grupit të vargjeve të karaktereve. Nëse varchar përdoret për të ruajtur vargjet me gjatësi të ndryshueshme, atëherë lloji char i gjetur në shembullin e tretë është menduar për ruajtjen e vargjeve me një numër fiks karakteresh. Për shembull, kolona mbiemri do të përmbajë vargje prej 13 karakteresh, pavarësisht nga mbiemri aktual i futur, qoftë poe apo penworth-chickering (në rastin e poe, 10 karakteret e mbetura do të mbushen me hapësira).

Nga këndvështrimi i përdoruesit, varchar dhe char kanë të njëjtin kuptim. Pse ju desh të prezantonit dy lloje? Fakti është se në praktikë zakonisht duhet të gjesh një kompromis midis performancës dhe kursimit të hapësirës në disk. Si rregull, përdorimi i vargjeve me gjatësi fikse jep njëfarë fitimi në shpejtësinë e aksesit, megjithatë, nëse vargjet janë shumë të gjata, hapësira në disk humbet. Rezervimi i 256 karaktereve për çdo rresht komenti në takimet2 mund të mos jetë racional; më shpesh sesa jo, linjat do të jenë dukshëm më të shkurtra. Nga ana tjetër, edhe mbiemrat kanë gjatësi të ndryshme, por zakonisht kërkojnë rreth 13 karaktere; në këtë rast, humbjet do të jenë minimale. Ekziston një rregull i mirë i përgjithshëm: nëse e dini se gjatësia e vargut ndryshon pak ose është relativisht e vogël, atëherë përdorni char; ndryshe, varchar.

Dy llojet e reja të të dhënave të ardhshme, të vogla dhe dhjetore, i përkasin grupit të vlerave numerike të sakta. smallint është shkurt për numër të plotë të vogël. Sql gjithashtu ofron një lloj të dhënash me numër të plotë. Prania e dy llojeve të ngjashme në këtë rast shpjegohet me konsideratat e kursimit të hapësirës. Në shembullin tonë, vlerat e parametrit grade_level mund të përfaqësohen duke përdorur një numër dyshifror, kështu që përdoret lloji smallint; megjithatë, në praktikë, nuk dihet gjithmonë se cilat vlera maksimale mund të kenë parametrat. Nëse nuk ka një informacion të tillë, atëherë përdorni numër të plotë. Hapësira aktuale e alokuar për ruajtjen e parametrave të vogël dhe të plotë dhe diapazoni përkatës i vlerave për këto parametra janë specifike për platformën.

Lloji i të dhënave dhjetore, i përdorur zakonisht për kontabilitetin financiar, ju lejon të specifikoni një model me numrin e kërkuar të shifrave dhjetore. Meqenëse ky lloj përdoret për shënime të sakta numerike, ai garanton saktësi gjatë kryerjes së veprimeve matematikore në të dhënat dhjetore. Nëse përdorni lloje të dhënash nga grupi i shënimeve numerike të përafërta për vlerat dhjetore, për shembull float (numri me pikë lundruese), kjo do të çojë në gabime rrumbullakimi, kështu që ky opsion nuk është i përshtatshëm për llogaritjet financiare. Për të përcaktuar parametrat e tipit dhjetor, përdoret shënimi i mëposhtëm:

ku p është numri i numrave dhjetorë, d është numri i numrave dhjetorë. Në vend të p, shkruani numrin e përgjithshëm të shifrave domethënëse në vlerat e përdorura, dhe në vend të d, shkruani numrin e shifrave pas presjes dhjetore.

Shiriti anësor "Krijimi i një tabele" tregon përmbledhjen e plotë të hyrjes së komandës për krijimin e tabelës. Ai përmban elementë të rinj dhe tregon formatin për të gjitha llojet e të dhënave të konsideruara (Në parim, ka lloje të tjera të dhënash, por deri më tani nuk i konsiderojmë ato).

Në fillim, mund të duket se sintaksa e komandave sql është shumë e ndërlikuar. Por ju mund ta kuptoni lehtësisht nëse studioni me kujdes shembujt e mësipërm. Një element shtesë u shfaq në diagram - një shirit vertikal; shërben për të përvijuar dizajne alternative. Me fjalë të tjera, kur përcaktoni secilën kolonë, ju duhet të zgjidhni llojin e duhur të të dhënave (siç e mbani mend, kllapat katrore përfshijnë parametra opsionalë, dhe kllapat kaçurrelë mbyllin konstruksione që mund të përsëriten shumë herë; këto karaktere speciale nuk shkruhen në komanda reale sql ). Pjesa e parë e diagramit përmban emrat e plotë për llojet e të dhënave, e dyta - emrat e tyre të shkurtuar; në praktikë, ju mund të përdorni ndonjë prej tyre.

Pjesa e parë e artikullit është përfunduar. E dyta do t'i kushtohet studimit të komandave të futjes, zgjedhjes, përditësimit dhe fshirjes së dml. Ai gjithashtu do të mbulojë kushtet e përzgjedhjes së të dhënave, krahasimin dhe operatorët logjikë, përdorimin e vlerave null dhe logjikën treshe.

Krijimi i një tabele. Sintaksa për komandën e krijimit të tabelës: në kllapa katrore janë parametra opsionale, në kllapa kaçurrela - konstruksione të përsëritura.

krijoni tabelën e tabelës (karakteri i kolonës (gjatësia) [kufizim] | karakteri i ndryshëm (gjatësia) [kufizim] | data [kufizim] | koha [kufizim] | numër i plotë [kufizim] | i vogël [kufizim] | dhjetore (përpikëri, shifra dhjetore) [ kufizim] | float (përpikëri) [kufizim] [(, karakteri i kolonës (gjatësia) [kufizim] | varchar (gjatësia) [kufizim] | data [kufizim] | koha [kufizim] | int [kufizim] | i vogël [kufizim] | dec (përpikëri, numra dhjetore) [kufizim] | float (saktësia) [kufizim])]);

Sekreti i emrit Sql

Në fillim të viteve 1970. ibm ka filluar të vërë në praktikë modelin e bazës së të dhënave relacionale të Dr. Codd. Donald Chamberlin dhe një grup të tjerësh në Divizionin e Kërkimeve të Avancuara kanë krijuar një gjuhë prototip të quajtur gjuha e strukturuar e pyetjeve në anglisht, ose thjesht vazhdim. Më vonë u zgjerua dhe u rafinua. Versioni i ri i propozuar nga ibm quhet vazhdim / 2. Është përdorur si një ndërfaqe softuerike (api) për dizajnimin e sistemit të parë të bazës së të dhënave relacionale nga ibm - system / r. Për shkak të konsideratave ligjore, ibm vendosi të ndryshojë emrin: në vend të vazhdimit / 2, përdorni sql (gjuhë e strukturuar e pyetjeve). Kjo shkurtesë shpesh shqiptohet si "si-ku-el".

Ekzistojnë dallime domethënëse midis prototipeve të hershme të vazhdimit dhe standardit të njohur tashmë sql në organizata të ndryshme. Jim Melton, i cili ishte i përfshirë në përgatitjen e standardit sql-92, madje deklaroi se shumë e kanë gabim, duke besuar se fjala "strukturuar" pasqyron saktë specifikat e kësaj gjuhe (jim melton dhe alan r. Simon "të kuptuarit e sql-së së re : një udhëzues i plotë". San francisco : morgan kaufmann, 1993. isbn: 1-55860-245-3). Prandaj, në fakt, sql është vetëm një emër, një sekuencë shkronjash s-q-l dhe asgjë më shumë.

Mire keq

Në këtë kapitull...

  • Çfarë është SQL
  • Keqkuptime SQL
  • Një vështrim në standardet e ndryshme SQL
  • Njohja me komandat standarde SQL dhe fjalët e rezervuara
  • Paraqitja e numrave, simboleve, datave, orëve dhe llojeve të tjera të të dhënave
  • Vlerat dhe kufizimet e papërcaktuara
  • Përdorimi i SQL në një sistem klient / server
  • SQL në ueb

SQLështë një gjuhë fleksibël që mund të përdoret në mënyra të ndryshme. Është mjeti më i zakonshëm që përdoret për të komunikuar me një bazë të dhënash relacionale. Në këtë kapitull, unë do të shpjegoj se çfarë është SQL dhe çfarë nuk është, në veçanti, se si SQL ndryshon nga llojet e tjera të gjuhëve kompjuterike. Më pas do të njiheni me komandat dhe llojet e të dhënave që suporton standardi SQL. Gjithashtu, unë do të shpjegoj konceptet bazë si vlera të papërcaktuara dhe kufizimet... Së fundi, do të ofrojë një përmbledhje të mënyrës se si SQL përshtatet në mjedisin e klientit/serverit, si dhe në internetin dhe intranetet e organizatave.

Çfarë është SQL dhe çfarë nuk është

Gjëja e parë për të kuptuar në lidhje me SQL është se nuk është procedurale si FORTRAN, Basic, C, COBOL, Pascal dhe Java. Për të zgjidhur një problem duke përdorur një nga këto gjuhë procedurale, duhet të shkruani një procedurë që kryen operacionet e specifikuara një nga një derisa të përfundojë detyra. Procedura mund të jetë një sekuencë lineare ose të përmbajë degë, por në secilin rast, programuesi specifikon rendin e ekzekutimit.

Me fjalë të tjera, SQL është joprocedurale gjuhe. Për ta përdorur atë për të zgjidhur problemin, tregoni SQL, cfare saktesisht ju duhet sikur po flisni me xhindin nga llamba e Aladinit. Dhe nuk keni pse të thoni si merrni atë që dëshironi për ju. Sistemi i menaxhimit të bazës së të dhënave (DBMS) do të vendosë mënyrën më të mirë për të përmbushur kërkesën tuaj.

Mirë. Thjesht thashë që SQL nuk është një gjuhë procedurale. Në thelb, kjo është e vërtetë. Megjithatë, miliona programues përreth (dhe ju mund të jeni një i tillë) janë mësuar të zgjidhin problemet në mënyrë procedurale, kështu që ka pasur shumë presion në vitet e fundit për të shtuar disa aftësi procedurale në SQL. Prandaj, versioni i ri i specifikimit SQL, SQL: 2003, tani përfshin veçori të gjuhës procedurale si blloqet BEGIN, kushtet IF, funksionet dhe procedurat. Me këto mjete të reja, është e mundur që programet të ruhen në një server në mënyrë që ato të ripërdoren nga shumë përdorues.

Për të ilustruar atë që doja të thoja kur thashë "tregoji sistemit saktësisht se çfarë ju nevojitet", supozoni se keni një tabelë PUNONJËSish me të dhënat e punonjësve dhe dëshironi të zgjidhni të gjitha rreshtat prej saj që përputhen me të gjithë punonjësit "të vjetër". Me punëtorë "të vjetër", mund të nënkuptojmë këdo mbi 40 vjeç ose që fiton më shumë se 60,000 dollarë në vit. Zgjedhja që ju nevojitet mund të bëhet duke përdorur pyetjen e mëposhtme:

ZGJEDH * NGA PUNONJËSI KU MOSHA> 40 OSE PAGË> 60000;

Kjo deklaratë zgjedh nga tabela EMPLOYEE të gjitha rreshtat në të cilat ose kolona AGE (mosha) është më e madhe se 40 ose vlera në kolonën SALARY (paga) është më e madhe se 60 000. SQL vetë di të zgjedhë informacionin. Motori i bazës së të dhënave kontrollon bazën e të dhënave dhe vendos vetë se si të ekzekutojë pyetjen. E tëra çfarë ju duhet të bëni është të tregoni se cilat të dhëna ju nevojiten.

Mbani mend:
Një pyetje është një pyetje që ju bëni në bazën e të dhënave. Nëse ndonjë nga të dhënat e tij i plotëson kushtet e pyetjes suaj, atëherë SQL i transferon ato tek ju
.

Implementimeve moderne SQL u mungojnë shumë nga konstruktet e thjeshta programuese që janë themelore për shumicën e gjuhëve të tjera. Në aplikimet e jetës së përditshme, si rregull, kërkohen të paktën disa nga këto konstruksione, kështu që SQL është me të vërtetë nëngjuhë të dhëna. Edhe me shtesat që u shfaqën në SQL së bashku me standardin SQL: 1999 dhe shtesat shtesë të shtuara në SQL: 2003, ju duhet të përdorni një nga gjuhët e programimit së bashku me SQL për të krijuar një aplikacion të plotë, siç është C.

Ju mund të zgjidhni informacionin nga baza e të dhënave në një nga mënyrat e mëposhtme.

  • Duke përdorur një pyetje të paprogramueshme një herë nga tastiera e kompjuterit, duke futur një komandë SQL dhe duke lexuar rezultatet e ekzekutimit të saj në ekran. Console është një term tradicional për harduerin kompjuterik që kryen punën e tastierës dhe ekranit që gjendet në kompjuterët modernë. Pyetjet e konsolës janë të dobishme kur keni nevojë për një përgjigje të shpejtë për një pyetje specifike. Për të kënaqur çdo nevojë aktuale, mund t'ju nevojiten të dhëna nga baza e të dhënave që nuk ju nevojiten kurrë më parë. Mund të mos ju duhen më kurrë, por tani keni nevojë për to. Futni pyetjen e duhur SQL nga tastiera dhe pas një kohe rezultati do të shfaqet në ekranin tuaj.
  • Me ndihmën e një programi që nxjerr informacion nga një bazë të dhënash, dhe më pas krijon një raport bazuar në këto të dhëna, i cili shfaqet ose në ekran ose në shtyp. Gjuha SQL mund të përdoret kështu. Ju mund të vendosni një pyetje komplekse SQL që mund të jetë e dobishme në të ardhmen në programin tuaj. Kjo ju lejon ta ripërdorni atë në të ardhmen. Kështu, formulimi i kërkesës kryhet një herë. Kapitulli 15 mbulon mënyrën e futjes së kodit SQL në programet e shkruara në një gjuhë tjetër.
bazat e të dhënave që mund të funksionojnë në sisteme të shumta kompjuterike të llojeve të ndryshme. Në të vërtetë, ai i lejon përdoruesit të manipulojnë të dhënat, pavarësisht nëse ata janë duke punuar në një kompjuter personal, stacion pune në rrjet ose mainframe.

Një nga gjuhët që u shfaq si rezultat i zhvillimit të modelit të të dhënave relacionale është gjuha SQL (Structured Query Language), e cila tani është shumë e përhapur dhe në fakt është kthyer në gjuha standarde bazat e të dhënave relacionale. Standard Gjuha SQL u lëshua nga Instituti Kombëtar i Standardeve Amerikane (ANSI) në 1986, dhe në 1987 Organizata Ndërkombëtare e Standardeve (ISO) e miratoi atë si një gjuhë ndërkombëtare. Standardi aktual SQL njihet si SQL / 92.

Përdorimi i çdo standardi shoqërohet jo vetëm me avantazhe të shumta dhe mjaft të dukshme, por edhe me disavantazhe të caktuara. Para së gjithash, standardet drejtojnë zhvillimin e industrisë përkatëse në një drejtim të caktuar; në rastin e SQL, të kesh parime të forta themelore përfundimisht çon në pajtueshmërinë e zbatimeve të ndryshme të tij dhe kontribuon si në rritjen e transportueshmërisë së softuerit dhe bazave të të dhënave në përgjithësi, ashtu edhe në shkathtësinë e administratorëve të bazës së të dhënave. Nga ana tjetër, standardet kufizojnë fleksibilitetin dhe funksionalitetin e një zbatimi të caktuar. Nën zbatimi i gjuhës SQL i referohet produktit softuer SQL të prodhuesit përkatës. Për të përmirësuar funksionalitetin, shtohen shumë zhvillues të bazuar në standarde gjuha standarde SQL shtesa të ndryshme. Duhet të theksohet se standardet kërkojnë ndonjë të plotë zbatime gjuhësore SQL ka karakteristika të caktuara dhe pasqyron gjerësisht tendencat kryesore që jo vetëm çojnë në pajtueshmërinë midis të gjitha implementimeve konkurruese, por gjithashtu kontribuojnë në rritjen e vlerës së programuesve dhe përdoruesve të SQL bazat e të dhënave relacionale në tregun modern të softuerit.

Të gjitha specifike zbatime gjuhësore janë disi të ndryshme nga njëra-tjetra. Është në interesin më të mirë të prodhuesve të sigurojnë që zbatimi i tyre të jetë në përputhje me standardet aktuale ANSI për transportueshmërinë dhe përvojën e përdoruesit. Megjithatë, çdo zbatim SQL përmban përmirësime për të përmbushur nevojat e një serveri të veçantë të bazës së të dhënave. Këto përmirësime ose përmirësime të gjuhës SQL janë komanda dhe opsione shtesë që janë shtesa në paketën standarde dhe të disponueshme në këtë zbatim të veçantë.

Aktualisht, SQL mbështetet nga dhjetëra lloje të ndryshme të sistemeve të menaxhimit të bazës së të dhënave të zhvilluara për një gamë të gjerë platformash kompjuterike, nga kompjuterët personalë te kompjuterët kryesorë.

Të gjitha gjuhët e manipulimit të të dhënave janë krijuar për shumë DBMS më parë bazat e të dhënave relacionale u fokusuan në operacionet me të dhëna të paraqitura si regjistrime logjike të skedarëve. Natyrisht, kjo kërkonte që përdoruesi të kishte njohuri të hollësishme se si ruheshin të dhënat dhe të bënte një përpjekje serioze për të specifikuar se cilat të dhëna duheshin, ku ndodheshin dhe si t'i merrte ato.

Gjuha SQL në shqyrtim fokusohet në operacionet me të dhëna të paraqitura në formën e grupeve logjikisht të ndërlidhura të tabelave të relacioneve. Tipari më i rëndësishëm i strukturave të tij është përqendrimi në rezultatin përfundimtar të përpunimit të të dhënave dhe jo në procedurën e këtij përpunimi. SQL vetë përcakton se ku duhet të përdoren të dhënat, indekset, madje edhe sekuencat më efikase të operacioneve për të marrë rezultatin, dhe për këtë arsye nuk është e nevojshme të specifikohen këto detaje në pyetjen e bazës së të dhënave.

Hyrje në teknologjinë klient-server

Në lidhje me zgjerimin e tregut të shërbimeve të informacionit, prodhuesit e softuerëve filluan të prodhojnë gjithnjë e më shumë sisteme softuerike inteligjente, dhe për këtë arsye voluminoze. Shumë organizata dhe përdorues individualë shpesh nuk ishin në gjendje të vendosnin produktet e blera në kompjuterët e tyre. Për shkëmbimin e informacionit dhe shpërndarjen e tij, u krijuan rrjete kompjuterike dhe filluan të instalohen programe dhe të dhëna përgjithësuese në serverë të veçantë skedarësh.

Falë DBMS që punon me serverët e skedarëve, shumë përdorues kanë akses në të njëjtat baza të të dhënave. Zhvillimi i sistemeve të ndryshme të automatizuar të menaxhimit për organizatat është thjeshtuar. Sidoqoftë, me këtë qasje, i gjithë përpunimi i kërkesave nga programet ose nga terminalet e kompjuterëve të përdoruesve kryhet mbi to, prandaj, për të zbatuar qoftë edhe një kërkesë të thjeshtë, është e nevojshme të lexoni nga serveri i skedarëve ose të shkruani në të skedarë të tërë, dhe kjo çon në konflikte dhe bllokime të rrjetit. Për të eliminuar këto mangësi, u propozua teknologji klient-server, por në të njëjtën kohë nevojitej një gjuhë e vetme komunikimi me serverin - zgjedhja ra në SQL.

Teknologji klient-server nënkupton një mënyrë ndërveprimi ndërmjet komponentëve të softuerit, në të cilin ata formojnë një sistem të vetëm. Siç nënkupton edhe emri, ekziston një proces i caktuar klienti që kërkon burime të caktuara, si dhe procesi i serverit që siguron këto burime. Ata nuk duhet të jenë në të njëjtin kompjuter. Zakonisht është e zakonshme që serveri të vendoset në një nyje të rrjetit lokal, dhe klientët në nyjet e tjera.

Në kontekstin e një baze të dhënash, klienti menaxhon ndërfaqen e përdoruesit dhe logjikën e aplikacionit duke vepruar si stacioni i punës që drejton aplikacionet e bazës së të dhënave. Klienti pranon një kërkesë nga përdoruesi, kontrollon sintaksën dhe gjeneron një pyetje të bazës së të dhënave në SQL ose në një gjuhë tjetër të bazës së të dhënave që përputhet me logjikën e aplikacionit. Më pas dërgon mesazhin te serveri, pret një përgjigje dhe formaton të dhënat e marra për t'ia paraqitur përdoruesit. Serveri pranon dhe përpunon kërkesat në bazën e të dhënave, dhe më pas i dërgon rezultatet përsëri te klienti. Ky përpunim përfshin kontrollimin e kredencialeve të klientit, zbatimin e kërkesave të integritetit dhe ekzekutimin e pyetjes dhe përditësimin e të dhënave. Për më tepër, kontrolli dhe rikuperimi i konkurencës mbështeten.

Arkitektura klient-server ka disa avantazhe.

Çdo komandë SQL fillon me një fjalë kyçe - një folje që përshkruan veprimin që do të kryhet nga komanda, si për shembull CREATE. Një ekip mund të ketë një ose më shumë fjali. Fjalia përshkruan të dhënat me të cilat punon ekipi, ose përmban informacione sqaruese për veprimin e kryer nga ekipi. Çdo klauzolë fillon me një fjalë kyçe, si p.sh. WHERE (ku).Disa klauzola në komandë kërkohen, të tjera jo. Disa fjali mund të përmbajnë fjalë kyçe, shprehje shtesë. Shumë sugjerime përfshijnë emra tabelash ose fushash. Emrat duhet të jenë nga 1 deri në 18 karaktere, të fillojnë me një shkronjë dhe të mos përmbajnë hapësira ose karaktere të veçanta pikësimi. Fjalët kyçe nuk mund të përdoren si emra.

52. SQL (Structured Query Language) - Structured Query LanguageËshtë gjuha standarde e pyetjeve për të punuar me bazat e të dhënave relacionale.

SQL nuk përmban deklarata tradicionale që kontrollojnë rrjedhën e programeve, ai përmban vetëm një grup deklaratash standarde për të hyrë në të dhënat e ruajtura në një bazë të dhënash.

Gjuha SQL mund të përdoret për të hyrë në bazën e të dhënave në dy mënyra: kur punë interaktive dhe ne programet e aplikimit.

Duke përdorur SQL, një përdorues mund të marrë shpejt përgjigje për çdo, duke përfshirë pyetje mjaft komplekse, në një mënyrë interaktive, ndërsa zbatimi i këtyre pyetjeve në një gjuhë tjetër do të kërkonte zhvillimin e një programi përkatës. Në programet aplikative të shkruara në gjuhë të caktuara programimi, SQL përdoret si të ndërtuara gjuhë për të hyrë në bazën e të dhënave.

Duke karakterizuar gjuhën SQL në tërësi, mund të dallohen tiparet e mëposhtme:

· Struktura e nivelit të lartë, që të kujton anglishten;

· Pavarësia nga DBMS specifike;

· Disponueshmëria e standardeve në zhvillim;

· Aftësia për të ekzekutuar pyetje interaktive për të marrë të dhëna dhe për të modifikuar strukturën e tyre;

· Akses i softuerit në bazat e të dhënave;

· Mbështetje për arkitekturën e klientit/serverit;

· Zgjerimi dhe mbështetja për teknologjitë e orientuara nga objekti;



· Aftësia për të hyrë në të dhëna në internet.

Funksionet kryesore të gjuhës SQL:

SQL - gjuha interaktive e pyetjeve... Përdoruesit futin komandat SQL në mënyrë interaktive për të marrë të dhëna dhe për t'i shfaqur ato në ekran dhe për të bërë ndryshime në bazën e të dhënave;

SQL - gjuha e programimit të bazës së të dhënave... Komandat SQL futen në aplikacione për të hyrë në bazën e të dhënave;

SQL - gjuha e administrimit të bazës së të dhënave... Administratori i bazës së të dhënave mund të përdorë SQL për të përcaktuar strukturën e bazës së të dhënave dhe për të kontrolluar aksesin në të dhëna;

SQL - Gjuha e krijimit të aplikacionit të klientit / serverit... Në programet e aplikimit, SQL përdoret si një mjet për të organizuar komunikimin në një rrjet lokal me një server të bazës së të dhënave që ruan të dhënat e përbashkëta, etj.

55. Mundësitë e gjuhës Gjuha SQL, e cila përputhet me standardet më të fundit SQL: 2003, SQL: 1999, është një gjuhë shumë e pasur dhe komplekse, të gjitha mundësitë e së cilës janë të vështira për t'u kuptuar menjëherë, aq më pak për t'u kuptuar. Prandaj, duhet ta ndash gjuhën në nivele. Në një nga klasifikimet e ofruara nga standardi SQL, kjo gjuhë ndahet në nivele "bazë" (hyrje), "të ndërmjetme" (të ndërmjetme) dhe "të plota" (të plota). Niveli bazë përmban rreth dyzet komanda që mund të grupohen në kategori sipas funksionalitetit të tyre.

KRIJO detajet e TABELËS (NOMZ INT, EMRI CHAR (15), YEAR INT, SEX CHAR (3))

Detajet e TABELËS SË RREGULLIMIT

Informacioni i TABELËS ALTER (SEMPOL CHAR (10))

KRIJO PAMJE Klasën M1 SI ZGJEDHJE * NGA Klasa WHERE GROUP = "M-1"

INSERT INTO INTO VALUES Information (980101, "IVANOV I. I.", 1980, "BASHKËRI")

FSHI NGA Detajet KU NOMZ = 980201

Përditëso Detajet SET EMRI I PLOTË = "I. I. KRAVTSOVA" KU NOMZ = 980201

ZGJIDH * NGA Informacioni WHERE EMRI I PLOTË = "SIDOROV S. S." OSE Emri i plotë = "PETROV P. P."

54. Llojet dhe shprehjet e të dhënave Për të hyrë në një tabelë relacionale në SQL, duhet të shkruani (vendosni) një komandë. ZGJIDHfjalë kyçe i tregon DBMS se çfarë veprimi do të kryejë kjo komandë. Komandat e pyetjeve fillojnë me një fjalë kyçe. Përveç SELECT, këto mund të jenë fjalë KRIJO- krijoni, INSERT- fut, FSHIJE- fshij, KOMPJONI- për të përfunduar etj.

NGA - një fjalë kyçe si SELECT që shfaqet në çdo komandë. Pasohet nga një hapësirë ​​e ndjekur nga emri i tabelave të përdorura si burime informacioni. Emrat e tabelave dhe fushave duhet të përmbajnë nga 1 deri në 18 karaktere, të fillojnë me një shkronjë dhe të mos përmbajnë hapësira ose karaktere të veçanta.

KU një fjalë kyçe e ndjekur nga një kallëzues është një kusht i vendosur në një rekord në tabelë, të cilin ai duhet ta plotësojë në mënyrë që të zhduket në përzgjedhje.

URDHËR NGA - renditja e rekordeve të shfaqura (Asc - në rend rritës, Desc - në rend zbritës. Nëse lloji i renditjes nuk është specifikuar, renditja bëhet në rend rritës).

KARAKTER (gjatësia) SHKARKU (gjatësia)Vargjet e karaktereve me gjatësi konstante

INTEGER INTEGER INTNumrat e plotë

I VOGLANumër i vogël i plotë

NUMERIK (precizion, shkallë) DECIMAL (precizion, shkallë DEC (precizion, shkallë)Numri i pikës fikse

FLOAT (përpikëri)Numri i pikës lundruese

Saktësia e dyfishtënumrat me float zap saktësi të lartë

Shprehjet në SQL, ato përdoren për të vendosur kritere për zgjedhjen e të dhënave ose kryerjen e operacioneve mbi vlerat që lexohen nga një bazë të dhënash. Shprehjet janë një sekuencë specifike e fushave të bazës së të dhënave, konstanteve, funksioneve, të lidhura nga operatorët.

Konstante përdoren për të treguar vlera specifike të të dhënave. Konstante në pikë fikse, për shembull: 21 -375,18 62,3

Konstantet e pikës lundruese, për shembull: 1.5Е7 -3.14Е9 2.5Е-6 0.783Е24

Konstantet e vargut duhet të mbyllet në thonjëza të vetme. Shembuj të konstantave të tilla: "Minsk" "New York" "Ivanov I. I."

Mungon vlera(I PAVLEFSHËM). SQL mbështet trajtimin e të dhënave që mungojnë me konceptin e vlerës së munguar.

Shumica e DBMS-ve të orientuara nga SQL mbështesin të ashtuquajturat funksionet agregate (përmbledhëse).... Funksionet e përgjithshme të përdorura zakonisht përfshijnë si më poshtë:

· COUNT- numri i vlerave në kolonën e tabelës;

· SHUMË- shuma e vlerave në kolonë;

· AVG- mesatarja aritmetike e vlerave në kolonë;

· MAX- vlera maksimale në kolonë;

· MINËshtë vlera minimale në kolonë.

Ju mund të përdorni sa vijon në shprehje llojet e operatorëve:

· aritmetike: + (shtesë), - (zbritje), * (shumëzimi), / (ndarja);

· marrëdhënie: = (barabartë),> (më e madhe se),< (меньше), >= (më e madhe se ose e barabartë),<= (меньше или равно), <>(jo e barabartë);

· ngacmues truri: DHE(logjike "DHE"), OSE(logjike "OR"), JO(mohim logjik);

56. Komandat për menaxhimin e transaksioneve ju lejon të siguroni integritetin e bazës së të dhënave.

transaksion SQL Janë disa komanda sekuenciale SQL që duhet të ekzekutohen si një njësi e vetme.

Në gjuhën SQL, përpunimi i transaksionit zbatohet duke përdorur dy komanda - KOMPJONI dhe KTHIM... Ata menaxhojnë ndryshimet e bëra nga një grup skuadrash. Ekipi KOMPJONI raporton përfundimin me sukses të transaksionit. Ai informon DBMS se transaksioni ka përfunduar, të gjitha komandat e tij janë ekzekutuar me sukses dhe nuk ka pasur mospërputhje në bazën e të dhënave. Ekipi KTHIM raporton përfundimin e pasuksesshëm të transaksionit. Ai informon DBMS se përdoruesi nuk dëshiron të përfundojë transaksionin dhe DBMS duhet të heqë të gjitha ndryshimet e bëra në bazën e të dhënave si rezultat i transaksionit. Në këtë rast, DBMS e kthen bazën e të dhënave në gjendjen në të cilën ishte përpara se të ekzekutohej transaksioni.

Komandat KOMPJONI dhe KTHIM përdoren kryesisht në modalitetin e programit, megjithëse mund të përdoren edhe në modalitetin interaktiv.

57. Për të hyrë në komandat e kontrollit i referohet komandave për kryerjen e funksioneve administrative që caktojnë ose revokojnë të drejtën (privilegjin) për të përdorur tabelat e bazës së të dhënave në një mënyrë të caktuar. Çdo përdorues i bazës së të dhënave ka të drejta të caktuara në lidhje me objektet e bazës së të dhënave.

Të drejtat Janë ato veprime me objektin që përdoruesi mund të kryejë. Të drejtat mund të ndryshojnë me kalimin e kohës: të vjetrat mund të anulohen, të rejat mund të shtohen. Ofrohen të drejtat e mëposhtme:

INSERT - e drejta për të shtuar të dhëna në tabelë;

UPDATE - e drejta për të ndryshuar të dhënat e tabelës;

FSHIJE - e drejta për të fshirë të dhënat nga tabela;

· REFERENCAT - e drejta për të përcaktuar çelësin primar.

58 Përfshirja e gjuhës në programet e aplikimit ...Për të integruar i referohet komandave të krijuara për të zbatuar aksesin në bazën e të dhënave nga programet aplikative të shkruara në një gjuhë programimi të caktuar.

Gjuha e strukturuar e pyetjeve ose SQLështë një gjuhë programimi deklarative për përdorim në bazat e të dhënave pothuajse relacionale. Shumë nga veçoritë origjinale të SQL janë marrë për llogaritjen e dyfishtë, por zgjerimet e fundit në SQL përfshijnë gjithnjë e më shumë algjebër relacionale.
SQL u krijua fillimisht nga IBM, por shumë shitës kanë zhvilluar dialektet e tyre. Ai u miratua si standard nga Instituti Kombëtar i Standardeve Amerikane (ANSI) në 1986 dhe ISO në 1987. Në standardin e gjuhës së programimit SQL, ANSI ka deklaruar se shqiptimi zyrtar i SQL është "es que el". Megjithatë, shumë në bazën e të dhënave përdorën shqiptimin zhargon të Sequel, i cili pasqyron emrin origjinal të gjuhës, Sequel, i cili më vonë u ndryshua për shkak të një konflikti të markës dhe emrit midis IBM. Programimi për fillestarët.
Gjuha e programimit SQL u rishikua në 1992 dhe ky version njihet si SQL-92 in. Pastaj 1999 u rishikua përsëri për t'u bërë SQL: 1999 (AKA SQL3). Programimi për Dummies. SQL 1999 mbështet objekte që nuk ishin mbështetur më parë në versione të tjera, por deri në fund të vitit 2001, vetëm disa sisteme të menaxhimit të bazës së të dhënave mbështetën zbatimet SQL: 1999.
SQL, megjithëse përkufizohet si ANSI dhe ISO, ka shumë variacione dhe zgjerime, shumica e të cilave kanë karakteristikat e tyre, si zbatimi PL / SQL i Oracle Corporation ose zbatimi Transact-SQL i Sybase dhe Microsoft, të cilat mund të ngatërrojnë bazat e programimit. Gjithashtu, nuk është e pazakontë që implementimet komerciale të lënë pas dore mbështetjen për veçoritë kryesore të standardit, të tilla lloje të dhënash si data dhe ora, duke preferuar versionin e tyre. Si rezultat, ndryshe nga ANSI C ose ANSI Fortran, të cilat zakonisht mund të barten nga platforma në platformë pa ndryshime të mëdha strukturore, pyetjet SQL rrallë mund të transferohen midis sistemeve të ndryshme të bazës së të dhënave pa modifikime të mëdha. Shumica e njerëzve në fushën e bazës së të dhënave besojnë se kjo mungesë përputhshmërie është e qëllimshme për t'i siguruar secilit zhvillues sistemin e tyre të menaxhimit të bazës së të dhënave dhe për të lidhur klientin me një bazë të dhënash specifike.
Siç sugjeron emri, gjuha e programimit SQL është krijuar për një qëllim specifik, të kufizuar - kërkimin e të dhënave të përfshira në një bazë të dhënash relacionale. Si i tillë, është një grup udhëzimesh të gjuhës programuese për krijimin e mostrave të të dhënave, në vend të një gjuhe procedurale si C ose BASIC, të cilat janë krijuar për të zgjidhur një gamë shumë më të gjerë problemesh. Shtesat gjuhësore si "PL / SQL" janë krijuar për të adresuar këtë kufizim duke shtuar elemente procedurale për SQL duke ruajtur përfitimet e SQL. Një qasje tjetër është që të lejohen pyetjet SQL për të futur komandat procedurale të gjuhës programuese dhe për të ndërvepruar me bazën e të dhënave. Për shembull, Oracle dhe të tjerët mbështesin gjuhën Java në një bazë të dhënash, ndërsa PostgreSQL ju lejon të shkruani funksione në Perl, Tcl ose C.
Një shaka për SQL: "SQL nuk është as e strukturuar dhe as një gjuhë." Shakaja është se SQL nuk është një gjuhë Turing. ...

Zgjidhni * nga T
C1 C2
1 a
2 b
C1 C2
1 a
2 b
Zgjidhni C1 nga T
C1
1
2
C1 C2
1 a
2 b
Zgjidhni * nga T ku C1 = 1
C1 C2
1 a

Duke pasur parasysh një tabelë T, pyetja Select * nga T do të shfaqë të gjithë elementët e të gjitha rreshtave në tabelë.
Nga e njëjta tabelë, pyetja Select C1 nga T do të shfaqë artikujt nga kolona C1 të të gjitha rreshtave në tabelë.
Nga e njëjta tabelë, pyetja Select * nga T ku C1 = 1 do të shfaqë të gjithë elementët e të gjitha rreshtave ku vlera e kolonës C1 është "1".

fjalë kyçe SQL

Fjalët SQL ndahen në një numër grupesh.

E para është Gjuha e manipulimit të të dhënave ose DML(gjuha e menaxhimit të të dhënave). DML është një nëngrup i gjuhës që përdoret për të kërkuar bazat e të dhënave, për të shtuar, përditësuar dhe fshirë të dhënat.

  • SELECT është një nga komandat DML më të përdorura dhe i lejon përdoruesit të specifikojë një pyetje si një përshkrim grup i rezultatit të dëshiruar. Pyetja nuk specifikon se si duhet të vendosen rezultatet - përkthimi i pyetjes në një formë që mund të ekzekutohet në bazën e të dhënave është punë e sistemit të bazës së të dhënave, më konkretisht optimizuesit të pyetjeve.
  • INSERT përdoret për të shtuar rreshta (grup formal) në një tabelë ekzistuese.
  • UPDATE përdoret për të ndryshuar vlerat e të dhënave në një rresht ekzistues në një tabelë.
  • FSHI përcaktimin e rreshtave ekzistues që do të fshihen nga tabela.

Tre fjalë kyçe të tjera mund të thuhet se hyjnë në grupin DML:

  • FILLO PUNËS (ose FILLO TRANSAKSIONIN, në varësi të dialektit të SQL) mund të përdoret për të shënuar fillimin e një transaksioni të bazës së të dhënave që ose do të përfundojë të gjitha ose nuk do të përfundojë fare.
  • COMMIT përcakton që të gjitha të dhënat ndryshojnë pasi të ruhen operacionet.
  • ROLLBACK specifikon që të gjitha ndryshimet e të dhënave që nga kryerja ose rikthimi i fundit duhet të shkatërrohen, deri në pikën që u angazhua në bazën e të dhënave si një "kthim prapa".

COMMIT dhe ROLLBACK përdoren në fusha të tilla si kontrolli i transaksioneve dhe bllokimi. Të dy udhëzimet përfundojnë të gjitha transaksionet aktuale (grupe operacionesh në bazën e të dhënave) dhe lëshojnë të gjitha bllokimet për ndryshimin e të dhënave në tabela. Prania ose mungesa e BEGIN WORK ose e një deklarate të ngjashme varet nga zbatimi specifik i SQL.

Grupi i dytë i fjalëve kyçe i përket grupit Gjuha e përkufizimit të të dhënave ose DDL (Gjuha e përkufizimit të të dhënave). DDL lejon përdoruesin të përcaktojë tabela të reja dhe artikuj të lidhur. Shumica e bazave të të dhënave komerciale SQL kanë zgjerimet e tyre DDL që lejojnë kontrollin mbi elementet jo standarde, por zakonisht jetike të një sistemi të caktuar.
Pikat kryesore të DDL janë krijimi dhe fshirja e komandave.

  • CREATE përcakton objektet (siç janë tabelat) që do të krijohen në bazën e të dhënave.
  • DROP përcakton se cilat objekte ekzistuese në bazën e të dhënave do të hiqen, zakonisht përgjithmonë.
  • Disa sisteme të bazës së të dhënave mbështesin gjithashtu komandën ALTER, e cila i lejon përdoruesit të modifikojë një objekt ekzistues në mënyra të ndryshme - për shembull, duke shtuar kolona në një tabelë ekzistuese.

Grupi i tretë i fjalëve kyçe SQL është Gjuha e kontrollit të të dhënave ose DCL (Gjuha e kontrollit të të dhënave). DCLështë përgjegjës për të drejtat e aksesit të të dhënave dhe lejon përdoruesin të kontrollojë se kush ka akses për të parë ose manipuluar të dhënat në bazën e të dhënave. Këtu janë dy fjalë kyçe kryesore:

  • GRANT - Lejon përdoruesin të kryejë operacione
  • REVOKE - heq ose kufizon aftësinë e përdoruesit për të kryer operacione.

Sistemet e bazës së të dhënave duke përdorur SQL

  • NdërBazë
  • MySQL
  • Orakulli
  • PostgreSQL
  • SQL Server

Si të bëheni profesionist në zhvillimin e faqeve të internetit dhe të filloni të fitoni para? Kurse video të lira me një hyrje hyrëse.

Artikujt kryesorë të lidhur