Kompjuters, Ipprogrammar
SQL-mistoqsijiet kmand
SQL - waħda mill-lingwi ta 'programmar aktar komuni biex joħolqu u jamministraw database, kif ukoll għal varjetà ta' azzjonijiet ma 'id-data nnifisha.
Kif turi l-prattika, huwa pjuttost faċli biex jintużaw u jagħmel l-aktar ta 'l-vokabularju standard tal-lingwa Ingliża. Bħal kull lingwa ta 'programmar oħra, il-SQL għandha loġika tagħha stess u sintassi, sett ta' kmandi bażiċi u r-regoli għall-użu tagħhom.
Klassifikazzjoni ta 'kmandi SQL
jikkmanda SQL standard kollha jista 'jitqies bbażati fuq id-destinazzjoni tagħhom. Bħala bażi għall vneglasnoy klassifikazzjoni tista 'tieħu tali settijiet bħala:
għall-mistoqsija jikkmanda.
Timijiet mibnija fil-proċeduri u l-funzjonijiet.
kawżi u tabelli sistema kmand.
Settijiet ta 'kombinazzjonijiet biex jaħdmu ma' l-data u string varjabbli.
Jikkmanda għall-ħidma ma 'dejta u tabelli.
Din il-klassifikazzjoni hija bla tmiem, iżda l-SQL lingwa settijiet bażiċi kmand huma mibnija preċiżament minħabba dawn it-tipi.
Meta wieħed iqis il-klassifikazzjoni tal-lingwa, biex ma nsemmux li huwa universali, kif muri mill-ambitu ta 'l-użu tiegħu. Din il-lingwa ta 'programmar u l-varjanti tagħha huma utilizzati mhux biss fl-ambjent standard iżda wkoll fi programmi oħra, li, b'xi mod jew ieħor, inti użajt.
L-ambitu tal-użu ta 'SQL jistgħu jitqiesu mill-perspettiva ta' softwer uffiċċju, jiġifieri MicrosoftAccess. Din il-lingwa, jew minflok, l-ispeċi tiegħu - MySQL, inti tista 'tamministra d-database Internet. Anke ambjent għall-iżvilupp Oracle bbażata fuq l-użu tagħhom fl kmandi SQL ta 'mistoqsijiet.
Bl-użu SQL fil MicrosoftAccess
Wieħed mill-lingwa użi l-aktar komuni għall-ipprogrammar database pakkett tas-software hija kkunsidrata MicrosoftOffice. L-istudju ta 'dan is-software jipprovdi kors skola tax-xjenza tal-kompjuter, u fil-grad ħdax hija kkunsidrata sistema ġestjoni ta' database MicrosoftAccess.
Huwa l-istudju ta 'l-applikazzjoni l-istudenti jiffamiljarizzaw irwieħhom mal-iżvilupp tal-lingwa ta' databases u jiksbu fehim bażiku ta 'kulħadd dan inklużi. tim SQL Aċċess pjuttost primittiv, naturalment, jekk aħna jikkunsidraw lilhom b'mod professjonali. Running dawn jikkmanda hija sempliċi ħafna, u huma adattati fid-editur kodiċi.
Ikkunsidra eżempju speċifiku:
Pe_SurName TAGĦŻEL
MILL PHERSON
FEJN Pe_Name = "Mary";
Ibbażat fuq il-sintassi kmand, inti tista 'tifhem li jmur lura l-isem tal-utent tal-persuna, f'dan il-każ, mara jisimha Marija, li hija maħżuna fit-tabella Kuntatti database.
Għalkemm l-użu ta 'SQL fl-aċċess huwa limitat, xi kultant dawn il-mistoqsijiet sempliċi jistgħu jissimplifikaw l-implimentazzjoni tal-kompiti assenjati.
Jintużaw id-dikjarazzjonijiet SQL fil Oracle
Oracle - huwa probabbilment l-unika Microsoft SQL Server kompetitur serju. Huwa dan l-ambjent iżvilupp u ġestjoni ta ' database huwa kostanti twassal għat-titjib tas-kumpanija softwer karatteristiċi tal-prodott Microsoft bħala l-kompetizzjoni - hija l-magna tal-progress. Minkejja l-rivalità kostanti, tim SQL Oracle ripetut SQL. Għandu jiġi nnutat li għalkemm Oracle u huwa meqjus kważi Kopja kompluta tad-SQL, il-loġika ta 'din is-sistema, u l-lingwa hija ġeneralment meqjusa aktar faċli.
sistema Oracle użu ta 'sett speċifiku ta' kmandi mhuwiex tali struttura kkumplikata. Jekk inqisu li l-kapaċitajiet tad-data ta 'ambjenti ta' żvilupp database, Oracle ma jkollux l-istruttura kumplessa tal-mistoqsijiet nested.
Din id-differenza jippermetti ħafna drabi biex tħaffef il-ħidma ma 'l-informazzjoni, iżda, b'kuntrast, iwassal għal użu ineffiċjenti tal-memorja, f'xi każijiet individwali. istruttura Oracle ssejset prinċipalment fuq it-tabelli temporanji u l-użu tagħhom. Bħala eżempju: jikkmanda SQL fis-sistema huma bbażati fuq l-analoġija mal-istandards tal-lingwa SQL innifsu, għalkemm mhux differenti b'mod sinifikanti minnha.
SELECTCONCAT (CONCAT (CONCAT ( "Impjegat", sname), CONCAT (Substr (fname, 0, 1), Substr (otch, 0, 1))), CONCAT ( "prinyatnarabotu", acceptdate)) MINN impjegati FEJN acceptdate> TO_DATE ('01 .01.80 "," jj.xx.ssss ");
Din il-mistoqsija se terġa 'lura d-data dwar l-impjegati, li huma impjegati għal ċertu perjodu ta' żmien. Għalkemm l-istruttura mistoqsija hija differenti minn Microsoft SQL Server, l-eżekuzzjoni ta 'SQL jikkmanda f'dawn is-sistemi huwa simili, ħlief għad-dettalji minuri.
Bl-użu SQL fuq l-Internet
Bil-miġja tal-World Wide Web, jiġifieri l-Internet, il-lingwa SQL qed tespandi l-ambitu ta 'użu. Kif inhu magħruf, in-netwerk hija maħżuna ħafna ta 'informazzjoni, iżda mhuwiex kaotika, u stazzjonati fuq il-websajts u s-servers skont ċerti kriterji.
Għall-ħażna informazzjoni fuq l-Internet, kif ukoll f'postijiet oħra, huma responsabbli direttament għad-database, u s-siti huma sistemi ta 'kontroll. Tipikament, siti u kodiċi huma organizzati fil-lingwi differenti ta 'programmazzjoni, iżda d-database hija bbażata fuq tip ta' l-SQL, u huwa l-lingwa tal-ħolqien tad-database, orjentati lejn l-interfaces web MySQL.
Is-sintassi u s-sett bażiku ta 'kmandi li lingwa kompletament kopja l-SQL familjari, ma' wħud mill żidiet tiegħu, li jagħtih b'differenza Microsoft tSQL Server.
SQL jikkmanda kompletament simili mhux biss sintassi iżda wkoll sett standard ta 'kliem funzjoni. L-unika differenza hija fit-talba sejħa u l-istrutturar. Per eżempju, jikkunsidraw talba li tinħoloq tabella l-ġdida, hija l-ewwel dak li jgħallmu lit-tfal fl-iskejjel fuq il-kompjuter:
$ Link = mysqli_connect ( "localhost", "root", "", "tester");
jekk (! $ rabta) die ( "Żball");
$ Mistoqsija = "joħolqu l-utenti mejda (
login varchar (20)
Varchar password (20)
");
jekk (mysqli_query ($ rabta, $ mistoqsija)) eku "Tabella maħluqa.";
elseecho "It-tabella ma tkunx inħolqot:" .mysqli_error ();
mysqli_close ($ rabta);
Bħala riżultat ta 'tali talba, tista' tikseb xi mejda "utenti" ġodda, fejn ikun hemm żewġ oqsma: username u password.
Sintassi jitbiddlu taħt il-Web, iżda hija bbażata fuq tim MicrosoftSQLServer.
Mistoqsijiet bini MicrosoftSQLServer
Il-kampjun ta 'sett partikolari ta' tabelli tad-data huwa wieħed mill-kompiti ewlenin tal SQL. Għal dawn l-operazzjonijiet, sakemm il-kmand tagħżel SQL. Li dwar dan diskussi hawn taħt.
Termini ta 'team building huma sempliċi ħafna, u ħafna tagħżel kmand SQL hija mibnija kif ġej. Per eżempju, hemm tabella li fiha d-dejta disponibbli għall-impjegati li, per eżempju, isem Persuna s. Aħna joħolqu l-problema li t-tabella għandek bżonn biex tagħżel data dwar impjegat, li data tat-twelid - fl-intervall mill-ewwel ta 'Jannar sa l-ewwel ta' Marzu tas-sena kurrenti, inkluża. Għal dan il-kampjun huwa meħtieġ biex tesegwixxi kmand SQL, li mhux biss disinn standard, iżda wkoll il-kundizzjoni għażla:
Agħżel * minn Persuna
Fejn P_BerthDay> = '01 / 01/2016 "u P_BerthDay <= '03 / 01/2016"
Eżekuzzjoni ta 'dan il-kmand se terġa' lura d-data kollha dwar l-impjegati, birthday tiegħu huwa fil-perjodu, li ġiet stabbilita minnek. Kultant inti tista 'tkun ikkontestata li juru biss l-isem aħħar, l-ewwel isem u kunjom tal-impjegat. Għal dan il-għan, talba biex jibnu b'mod kemmxejn differenti, per eżempju, kif ġej:
SelectP_Name - isem
P_SurName - kunjom
P_Patronimic - patronimiku
minn persuna
Fejn P_BerthDay> = '01 / 01/2016 "u P_BerthDay <= '03 / 01/2016"
Madankollu, din hija biss għażla ta 'xejn. Huwa, essenzjalment, ma jaffettwax xejn, iżda tipprovdi biss informazzjoni. Imma jekk inti tiddeċiedi li tieħu bis-serjetà l-lingwa SQL, ser ikollok biex jitgħallmu kif jagħmlu bidliet lill-database, peress kostruzzjoni tagħhom mingħajr ma huwa sempliċement impossibbli. Kif dan isir se jiġu diskussi hawn taħt.
Bażiku SQL jikkmanda biex jibdlu d-data
Is-sintassi hija mibnija mhux biss għall mistoqsi, iżda wkoll għall-manipulazzjoni tad-data. Bażikament, l-programmer database kompitu huwa miktub l-iskrittura għall-kampjuni u rapporti, imma xi kultant inti għandek bżonn tagħmel bidliet għall-tabella. SQL jikkmanda lista għal tali azzjonijiet huwa żgħir u jikkonsisti minn tliet timijiet ewlenin:
Daħħal (trans. Daħħal).
Aġġornament (trans. Aġġornament).
Ħassar (trans. Neħħi).
L-għan ta 'dawn it-timijiet huwa faċli li jiġi ddeterminat, huwa biżżejjed li biss jittraduċu l-isem tagħhom. Dawn il-kmandijiet huma faċli biex jintużaw u ma jkollhomx kostruzzjoni kkumplikata tal-iskema, iżda huwa ta 'min isemmi li xi wħud minnhom, jekk użati ħażin, jista' jikkawża danni irreparabbli lid-database.
Bħala regola, qabel ma tuża dawn il-kmandijiet MSSQL għandek bżonn biex tikkunsidra u tqis il-konsegwenzi kollha possibbli ta 'implimentazzjoni tagħhom.
Wara t-tagħlim dawn il-kmandijiet, inti se tkun tista 'tibda b'mod sħiħ taħdem ma' tabelli database, u b'hekk timmodifika dan u tagħmel xi varjabbli ta 'spjegazzjoni ġodda fuq jew ineħħu qodma.
daħħal tim
Li daħħal id-data fis-tabella tuża l-tim sikur - Daħħal. data żbaljat mdaħħla dejjem possibbli li jitneħħew u żid għad-database mill-ġdid.
Daħħal kmand li daħħal data ġdida fit-tabella u jippermettilek li żżid bħala sett komplut, u selettiv.
Per eżempju, jikkunsidraw ddaħħal kmand fl-Persuna tabella deskritt qabel. Sabiex jagħmlu l-SQL kmand għandu jitmexxew fit-tabella tad-data, li tippermetti li daħħal id-data kollha fit-tabella jew imla selettivament.
Daħħal fit persuna
Agħżel "Grigoriev '' Vitali", "Petrovich", "1988/01/01"
MS SQL kmand Server tali pjan huwa awtomatikament mimli bl-ċelluli kollha tat-tabella mad-data speċifikata. Hemm sitwazzjonijiet fejn l-impjegat ma jkollux inizjali tan-nofs, per eżempju, huwa wasal biex jaħdmu fuq l-iskambju mill-Ġermanja. F'dan il-każ, imexxu l-informazzjoni inserts kmand li ġejjin, li se jġib għall-tabella biss dak li huwa meħtieġ. Is-sintassi ta 'dan il-kmand huwa kif ġej:
Insertintoperson (P_Name, P_SurName, P_BerthDay)
Valuri ( "David", "Hook", "1986/02/11")
Dan it-tim timla biss il-phone speċifikat, u l-oħrajn kollha se tkun nulla.
Kmand li jibdlu l-informazzjoni
Biex jinbidlu l-informazzjoni bħala linja kollha, u xi ċelloli jużaw Aġġornament kmand SQL. Wettaq din il-kmand irid biss ċerti kundizzjonijiet, jiġifieri, preċiżament indika f'liema linja tan-numru meħtieġ li jsiru bidliet.
Aġġornament SQL kmand għandu sintassi sempliċi. Biex ikun żgurat użu xieraq, inti tispeċifika liema data fil kolonna u rekord għandu jinbidel. Sussegwentement, joħolqu b'kitba u esegwit. Ikkunsidra eżempju. Għandna bżonn li tinbidel id-data tat-twelid ta 'David Hook, li hija inkluża fit-tabella impjegat fil-numru 5.
aġġornament Persuna
Set P_BerthDay = '02 / 10/1986 "fejn P_Id = 5
Kundizzjoni (fil-iskrittura) mhux se jibdlu l-data tat-twelid ta 'rekords kollha mejda, u jaġġorna biss l neċessarju.
Huwa dan it-tim ta 'programmaturi jużaw ħafna drabi, minħabba li jippermettilek li jibdlu l-informazzjoni fit-tabella mingħajr ma jikkawżaw ħsara sinifikanti lis-informazzjoni kollha.
Jikkmanda biex jużaw mibnija fil-proċeduri u l-funzjonijiet
Bl-għajnuna ta 'l-SQL lingwa, inti ma tistax biss jibnu mistoqsijiet, imma wkoll sabiex joħolqu built-in mekkanniżmi sabiex taħdem ma' data. Bħala regola, hemm żminijiet meta inti tixtieq li tuża fil-ġisem tal-kampjun mistoqsija miktuba qabel.
Ġudizzju loġikament, imbagħad inti għandek bżonn li kopja u paste-test kampjun fil-post it-tajjeb, imma int tista 'tagħmel soluzzjoni sempliċi. Ikkunsidra eżempju fejn l-interface buttuna taħdem murija li jistampaw ir-rapport, per eżempju fl-Excel. Din l-operazzjoni se titwettaq kif meħtieġ. Għal tali finijiet, huma mibnija fil-proċeduri maħżuna. Jikkmanda SQL mistoqsijiet, f'dan il-każ, huma fil-proċess u huma kkawżati minn tim SQLExec.
Ejja nassumu li l-proċedura għall-dati irtirar tat-twelid ta 'impjegati bil-tabella persuna deskritta preċedentement ġiet maħluqa. F'dan il-każ, m'hemmx bżonn li tikteb il-mistoqsija kollu. Biex tikseb l-informazzjoni meħtieġa hija biżżejjed biex tesegwixxi l-Exec kmand [isem proċedura] u jgħaddu l-parametri meħtieġa għall-kampjunar. Bħala eżempju nistgħu nikkunsidraw l-mekkaniżmu għall-ħolqien ta 'tali natura tal-proċedura:
CREATEPROCEDUREPrintPerson
@DB smalldatetime
@DE smalldatetime
KIF
SET NOCOUNT FUQ;
* TAGĦŻEL minn Persuna
MILL HumanResources.vEmployeeDepartmentHistory
FEJN P_BerthDay> = @DB u P_BerthDay <= @DE
ANDEndDateISNULL;
GO
Din il-proċedura prospetti informazzjoni kollha dwar l-impjegati birthday tiegħu se jkun fil-perjodu ta 'żmien partikolari.
Organizzazzjoni integrità tad-data. jqajjem
Xi SM SQL tal-kmand, wieħed jista 'anki ngħid, id-disinn tista' mhux biss jorganizzaw manipulazzjoni tad-data, iżda wkoll biex tiġi żgurata l-integrità tagħhom. Għal tali finijiet fil-lingwa mfassla disinn tas-sistema, li joħloq programmer innifsu. Dawn huma msejħa jqajjem, li jistgħu jipprovdu kontroll tad-data.
F'dan il-każ, għall-organizzazzjoni ta 'kondizzjonijiet tat-test bl-użu SQL-mistoqsijiet standard kmand. Fil jqajjem, inti tista 'toħloq ħafna ta' kondizzjonijiet u limitazzjonijiet għad-dejta li se jikkontrollaw l-aċċess mhux biss għall-informazzjoni imma wkoll biex jipprojbixxu t-tneħħija, il-modifika, jew daħħal id-data.
It-tipi ta 'kmandi SQL li jistgħu jintużaw fil-grillu, mhux limitati. Ikkunsidra l-eżempju li ġej.
Jekk aħna jiddeskrivu l-mekkaniżmu għall-ħolqien l-grillu, allura it-tipi ta 'kmandi SQL huma l-istess bħal meta tinħoloq proċedura. algoriżmu fih innifsu se jiġi deskritt hawn taħt.
L-ewwel pass huwa li jiddeskrivi l-kmand servizz biex joħolqu jqajjem:
JINħOLOQ Trigger Person_Insert
punt li jmiss għal tabella:
ONPerson
Jindika għal liema operazzjonijiet dejta (f'dan il-każ, id-data tibdel operazzjoni).
Il-pass li jmiss huwa li jispeċifika l-imwejjed u varjabbli:
tiddikjara int @ID. @Date smalldatetime @nID int. @nDatesmalldatetime
tiddikjara Aktar prekursuri li jagħżlu tabelli tad-data tneħħija u l-inserzjoni ta 'data:
JIDDIKJARAW cursor C1 għall tagħżel P_Id, P_BerthDay minn Imdaħħla
JIDDIKJARAW C2 cursor għall tagħżel P_Id, P_BerthDay minn imħassra
Tiddefinixxi l-passi għażla tad-data. Ladarba fil-ġisem prekursuri jippreskrivu kondizzjoni u reazzjoni miegħu:
jekk @ID = @nID u @nDate = '01 / 01/2016 "
tibda
operazzjoni Run sMasseges "impossibbli. Data mhijiex xierqa "
aħħar
Ta 'min isemmi li l-grillu ma tistax biss joħolqu, iżda wkoll itfi għal waqt. Tali manipulazzjoni tista 'żżomm biss programmer jwettqu kmand SQL Server:
altertablePERSONdisabletriggerall - li jiskonnettja jqajjem kollha maħluqa għall-mejda, u, għaldaqstant, altertablePERSONenabletriggerall - għall-inklużjoni.
jikkmanda dawn SQL bażiku iktar komunement użati, iżda l-kombinazzjoni tagħhom jista 'jkun differenti ħafna. SQL - lingwa ta 'programmar flessibbli ħafna u tagħti l-iżviluppatur massimu ta' possibbiltajiet.
konklużjoni
Minn dan t'hawn fuq nistgħu biss jikkonkludi: ħiliet lingwistiċi SQL ta 'most għal dawk li jixtiequ li jidħlu serjament fil-programmazzjoni. Hija tinsab fil-qalba tal-operazzjonijiet kollha mwettqa fl-Internet u fid-database dar. Huwa għalhekk li l-programmer futur trid tkun taf l-għadd ta 'kmandi tal-lingwa, għaliex huwa biss dawn jistgħu jkunu, biex ngħidu hekk, biex jikkomunikaw mal-kompjuter.
Naturalment, hemm nuqqasijiet, kif fil kollox f'din id-dinja, iżda huma tant żgħar li sempliċiment ċar qabel il-merti. Fost l-lingwa SQL programmazzjoni hija kważi l-unika waħda tat-tip tiegħu, għaliex huwa universali, u l-għarfien dwar il-kitba skripts u l-kodiċi huma l-bażi ta 'kważi-siti kollha.
Il-vantaġġ prinċipali ta 'SQL bezogovorchno jista' jitqies sempliċità tagħha, minħabba li, wara kollox, kien hu li introdotti fil-kurrikulu skolastiku. Peress li jistgħu jimmaniġġjaw anke programmer novizzi, mhux verament kapaċi sew fil-lingwi.
Similar articles
Trending Now