ÒdinatèPwogram

SQL-queries plase lòd

SQL - youn nan lang yo pwogramasyon ki pi komen yo kreye epi jere baz done a, menm jan tou pou yon varyete de aksyon ak done nan tèt li.

Kòm montre pratik, li se byen fasil yo sèvi ak epi fè pi plis nan vokabilè a estanda nan lang angle a. Tankou nenpòt ki lang programmation lòt, SQL an gen lojik pwòp li yo ak sentaks, yon seri kòmandman debaz ak règ pou sèvi ak yo.

Klasifikasyon nan kòmandman SQL

Tout kòmandman SQL estanda ki kapab konsidere kòm ki baze sou destinasyon yo. Kòm baz pou klasifikasyon vneglasnoy ka pran ansanm tankou:

  1. sijè rechèch kòmandman.

  2. Ekip bati-an pwosedi ak fonksyon.

  3. deklanchman ak tab sistèm mande.

  4. Kouche nan konbinezon yo travay avèk dat ak fisèl varyab yo.

  5. Kòmande pou travay ak done ak tab.

klasifikasyon Sa a se intèrminabl, men debaz ak lang SQL ansanm sa yo, lòd yo bati jisteman paske nan kalite sa yo.

Lè ou konsidere klasifikasyon an nan lang lan, nou pa mansyone ke li se yon kozman inivèsèl, kòm evidans sijè ki abòde lan sèvi ak li yo. yo sa a lang programmation ak variants li yo itilize pa sèlman nan anviwònman estanda, men tou nan lòt pwogram, ki, yon fason oswa yon lòt, ou te itilize.

ka sijè ki abòde lan itilize nan SQL ka wè nan pèspektiv nan lojisyèl biwo, sètadi MicrosoftAccess. lang sa a, ou pito, espès li yo - MySQL, ou ka administre baz done sou entènèt la. Menm Oracle anviwònman devlopman ki baze sou sèvi ak yo nan lòd SQL nan queries.

Lè l sèvi avèk SQL an MicrosoftAccess

Youn nan sèvi ak lang ki pi komen pou pake lojisyèl pwogram baz done ki konsidere kòm MicrosoftOffice. Etid la nan lojisyèl sa a bay yon kou lekòl nan syans òdinatè, ak nan klas onzyèm ki konsidere kòm yon jesyon baz done sistèm MicrosoftAccess.

Li se etid la nan aplikasyon an elèv yo jwenn konnen ak devlopman nan lang nan baz done epi pou yo jwenn yon konpreyansyon debaz sou tout li enkli ladan li. SQL Aksè ekip olye primitif, nan kou, si nou konsidere yo nan yon fason ki pwofesyonèl. Kouri kòmandman sa yo se trè senp, epi yo ap adapte nan editè a kòd.

Konsidere yon egzanp espesifik:

chwazi Pe_SurName

KI SOTI NAN PHERSON

KI KOTE Pe_Name = 'Mari';

Baze sou ki sentaks la bay lòd, ou ka konprann ke li retounen non an itilizatè nan moun nan, nan ka sa a, yon fanm yo te rele Mari, ki se ki estoke nan tab la Kontak baz done.

Menm si se itilize nan SQL an Aksè limite, pafwa sa yo queries plase senp ka anpil senplifye aplikasyon an nan travay yo asiyen.

Lè l sèvi avèk deklarasyon SQL nan Oracle

Oracle - li nan pwobableman sèlman Microsoft SQL sèvè nan yon konkiran grav. Li se sa a anviwònman devlopman ak jesyon nan baz done a se toujou ap mennen nan amelyorasyon nan nan lojisyèl konpayi karakteristik yo ki Microsoft pwodwi kòm konpetisyon an - se motè a nan pwogrè. Malgre rivalite a konstan, SQL Oracle ekip repete SQL. Li ta dwe remake ke byenke Oracle ak ki konsidere kòm prèske yon kopi konplè nan SQL an, lojik nan sistèm sa a, epi li se lang la jeneralman konsidere kòm pi fasil.

sistèm Oracle lè l sèvi avèk yon seri espesifik nan kòmandman se pa tankou yon estrikti konplike. Si nou konsidere kapasite yo done nan anviwònman devlopman baz done, Oracle pa gen estrikti nan konplèks nan enbrike requêtes.

Diferans sa a pèmèt anpil fwa pi vit travay la ak done yo, men, nan kontras, mennen nan itilize rezèvwa nan memwa, nan kèk ka endividyèl elèv yo. Oracle estrikti lajman bati sou tab tanporè ak sèvi ak yo. Kòm yon egzanp: kòmandman SQL nan sistèm lan ki baze sou analoji a ak SQL lang nan tèt li estanda, byenke pa siyifikativman diferan de li.

SELECTCONCAT (CONCAT (CONCAT ( 'Anplwaye', sname), CONCAT (substr (fname, 0, 1), substr (otch, 0, 1))), CONCAT ( 'prinyatnarabotu', acceptdate)) KI SOTI NAN anplwaye KI KOTE acceptdate> to_date ('01 .01.80 ',' dd.mm.yyyy ');

rechèch sa a pral retounen done sou anplwaye, ki moun ki ap travay pou yon sèten peryòd tan. Malgre ke estrikti nan rechèch se diferan de Microsoft SQL sèvè, ekzekisyon an nan SQL kòmande nan sistèm sa yo se menm jan an, eksepte pou detay minè.

Lè l sèvi avèk SQL sou entènèt la

Avèk avenman a nan World Wide Web la, sa vle di entènèt la, lang nan SQL ap agrandi sijè ki abòde lan sèvi ak yo. Kòm se li te ye, se rezo a ki estoke yon anpil nan enfòmasyon, men li se pa chaotic, epi afiche sou sit entènèt yo ak serveurs dapre sèten kritè.

Pou estoke enfòmasyon sou entènèt la, osi byen ke nan lòt kote, yo responsab dirèkteman nan baz done a, ak sit yo se sistèm kontwòl. Tipikman, sit ak kòd yo òganize nan lang programmation diferan, men se baz done a ki baze sou yon kalite SQL la, epi li se lang la nan kreyasyon baz done, oryante nan miskl interfaces yo entènèt.

Sentaks la, li mete nan de baz yo kòmandman ke lang konplètman kopi tout SQL an yo konnen yo, ak kèk nan yo ajoute l ', ki ba l' kontrèman ak Microsoft tSQL sèvè.

SQL kòmande konplètman ki sanble pa sèlman sentaks men tou, yon seri estanda nan mo fonksyon. Sèl diferans ki genyen se nan demann lan apèl ak structuration. Pou egzanp, konsidere yon demann yo kreye yon tab nouvo, li se premye a sa yo anseye pitit nan lekòl sou òdinatè a:

$ Link = mysqli_connect ( 'localhost', "rasin", '', 'tèsteur');

si (! $ lyen) mouri ( "Erè");

$ Rekèt = 'kreye itilizatè tab (

konekte varchar (20)

modpas varchar (20)

');

si (mysqli_query ($ lyen, $ rechèch)) eko "Table kreye.";

elseecho "tab la pa te kreye:" .mysqli_error ();

mysqli_close ($ lyen);

Kòm yon rezilta nan yon demann konsa, ou kapab jwenn yon nouvo tab "itilizatè", nan ki pral gen de jaden: non itilizatè ak modpas.

Sentaks chanje anba entènèt la, men se ki baze sou MicrosoftSQLServer ekip.

Queries Building MicrosoftSQLServer

Echantiyon an nan yon seri patikilye nan tab done se youn nan travay prensipal yo nan SQL. Pou operasyon sa yo, bay yo lòd, ki chwazi nan SQL. Sa a sou li diskite anba a.

Tèm ak Kondisyon yo bilding ekip yo trè senp, epi li se trè chwazi lòd nan SQL konstwi jan sa a. Pou egzanp, gen se yon tab nan ki done yo ki disponib pou anplwaye ki, pou egzanp, non yon moun nan. Nou poze pwoblèm nan ki tab la ou bezwen chwazi done sou anplwaye yo, ki dat nesans - nan entèval an soti nan premye a nan janvye jiska premye a nan mwa Mas la ane aktyèl la, enklizif. Pou tankou yon echantiyon nesesè egzekite yon lòd SQL, ki se pa sèlman yon konsepsyon estanda, men tou, kondisyon an seleksyon:

Chwazi * de yon moun

Ki kote P_BerthDay> = '01 / 01/2016 'ak P_BerthDay <= '03 / 01/2016'

Ekzekisyon nan lòd sa a pral retounen tout done sou anplwaye yo, ki gen anivèsè nesans se nan peryòd la, ki te mete nan ou. Pafwa ou ka defye yo montre sèlman non ki sot pase a, premye non ak patronimik nan anplwaye a. Pou sa ka fèt, yon demann yo voye bati yon fason yon ti kras diferan, pou egzanp, jan sa a:

SelectP_Name - Non

P_SurName - ti non

P_Patronimic - patronimik

soti nan moun

Ki kote P_BerthDay> = '01 / 01/2016 'ak P_BerthDay <= '03 / 01/2016'

Sepandan, sa a se jis yon seleksyon nan anyen. Li se, nan sans, pa afekte anyen, men sèlman bay enfòmasyon. Men, si ou deside pran oserye lang nan SQL, w ap gen pou aprann kijan pou fè chanjman nan baz done a, depi konstriksyon yo san yo pa li se tou senpleman enposib. Ki jan sa a se fè li pral diskite anba a.

Debaz SQL kòmande chanje done

se sentaks la bati pa sèlman pou rekèt, men tou, pou done manipilasyon. Fondamantalman, pwogramè a baz done travay ap ekri script la pou echantiyon yo ak rapò, men pafwa ou bezwen pou fè chanjman nan tab la. SQL kòmande lis pou aksyon sa yo se ti ak konsiste de twa ekip prensipal:

  1. Antre (trans. Antre).

  2. (Mizajou trans.) Mizajou.

  3. Debarase m de (trans. Retire).

Rezon ki fè ekip sa yo se fasil detèmine, li se ase yo jis tradui non yo. kòmandman sa yo, se fasil yo sèvi ak epi yo pa gen yon konstriksyon konplike nan konplo a, men li se vo mansyone ke kèk nan yo, si yo itilize mal, li ka lakòz irevèrsibl domaj nan baz done a.

Kòm yon règ, anvan ou sèvi ak kòmandman sa yo MSSQL ou bezwen konsidere ak pran an kont tout konsekans yo posib pou aplikasyon yo.

Apre aprann kòmandman sa yo, ou yo pral kapab bay tout kòmanse travay ak tab baz done, kidonk modifye li, epi fè kèk nouvo varyab eksplikasyon sou oswa retire fin vye granmoun.

ekip Antre

Insert done nan yon tab lè l sèvi avèk ekip la pi bon - Antre. Mal eleman done se toujou posib yo retire ak ajoute nan baz done a ankò.

Antre lòd insert done nouvo an tab la ak pèmèt ou ajoute kòm yon ansanm konplè, ak oaza.

Pou egzanp, konsidere mete yon lòd nan deja dekri moun nan tab. Nan lòd fè yo lòd, ki SQL dwe kouri nan tablo done a, ki pèmèt insert tout done yo nan yon tab oswa ranpli li oaza.

Antre nan moun

Chwazi 'Grigoriev' 'Vitali', 'Petrovich', '1/1/1988'

MS SQL sèvè lòd tankou yon plan se otomatikman ki te ranpli avèk tout selil yo nan tablo a ak done yo espesifye. Gen sitiyasyon kote anplwaye a pa gen okenn premye mitan, pou egzanp, li rive nan travay sou echanj la soti nan Germany. Nan ka sa a, kouri yo foure lòd done yo, ki pral pote sou tab la sèlman sa ki nesesè. Sentaks la nan lòd sa a se jan sa a:

Insertintoperson (P_Name, P_SurName, P_BerthDay)

Valè ( 'David', 'Hook', '2/11/1986')

Ekip sa-a plen sèlman selil la espesifye, ak tout lòt moun yo pral nil.

Kòmandman chanje done yo

Pou chanje done yo kòm yon liy antye, ak kèk selil itilize Mizajou SQL lòd. Fè lòd sa a bezwen sèlman nan sèten kondisyon, sètadi, jisteman endike nan ki liy nan nimewo ki nesesè fè chanjman.

Mizajou SQL lòd gen yon sentaks senp. Pou asire itilizasyon apwopriye, ou presize ki done nan yon kolòn ak yon dosye yo ta dwe chanje. Next, kreye yon script ak egzekite li. Ann pran yon egzanp. Nou bezwen chanje dat la nan nesans David Hook, ki se enkli nan tab la anplwaye nan nimewo 5.

Mizajou moun

Mete P_BerthDay = '02 / 10/1986 'kote P_ID = 5

Kondisyon (nan script la) pa pral chanje dat la nan nesans tout dosye tab, epi mete ajou sèlman ki nesesè a.

Li se ekip sa a nan pwogramasyon itilize pi souvan, paske li pèmèt ou chanje done ki nan tablo a san yo pa sa ki lakòz gwo domaj nan enfòmasyon an tout antye.

Kòmande yo sèvi ak bati-nan pwosedi ak fonksyon

Avèk èd nan SQL nan lang, ou pa ka sèlman bati demann, men tou, yo kreye bati-an mekanis pou travay ak done. Kòm yon règ, gen kèk fwa yo ou vle sèvi ak nan kò a nan echantiyon an rechèch ekri pi bonè.

Jije lojikman, lè sa a ou bezwen yon kopi ak keratin tèks ki nan egzanp lan nan plas la dwat, men ou ka fè yon solisyon senp. Ann pran yon egzanp kote k ap travay koòdone parèt bouton an nan enprime rapò a, pou egzanp nan Excel. pral Operasyon sa a dwe fèt jan sa nesesè. Pou rezon sa yo, yo bati-an pwosedi estoke. Kòmand SQL demann, nan ka sa a, yo nan pwosesis la ak yo ki te koze pa yon ekip SQLExec.

Se pou nou ta kwè ki te pwosedi a pou retrè dat nesans nan anplwaye ki gen tab la moun deja dekri kreye. Nan ka sa a, pa gen okenn bezwen yo ekri sijè rechèch la tout antye. Pou jwenn enfòmasyon ki nesesè se ase al touye Egzekitif la bay lòd [pwosedi name] epi yo pase paramèt ki nesesè pou pran echantiyon. Kòm yon egzanp nou ka konsidere mekanis a pou kreyasyon an tout moun ki tankou yon nati nan pwosedi a:

CREATEPROCEDUREPrintPerson

@DB smalldatetime

@DE smalldatetime

AS

SET NOCOUNT SOU;

Chwazi * de yon moun

KI SOTI NAN HumanResources.vEmployeeDepartmentHistory

KI KOTE P_BerthDay> = @DB ak P_BerthDay <= @DE

ANDEndDateISNULL;

ALE

Pwosedi sa a retounen tout enfòmasyon sou anplwaye ki gen anivèsè nesans yo pral nan yon peryòd tan bay yo.

Òganizasyon done entegrite. deklanchman

Gen kèk MS SQL-lòd, ki ta ka yon menm di, desen an pa ka sèlman òganize done manipilasyon, men tou, asire entegrite yo. Pou rezon sa yo nan lang ki fèt desen an sistèm, ki kreye yon pwogramè tèt li. Sa yo se rele deklanchman, sa ki ka bay kontwòl done.

Nan ka sa a, pou òganizasyon an nan kondisyon tès lè l sèvi avèk estanda SQL-queries plase lòd. Nan deklanchman, ou kapab kreye yon anpil nan kondisyon ak limit pou done ki pral kontwole pa sèlman aksè a enfòmasyon men tou, yo entèdi retire, modifikasyon an, oswa Insert done.

Ki kalite kòmandman SQL ki ka itilize nan yon deklanche, pa limite. Ann pran egzanp sa a.

Si nou dekri mekanis a pou kreye deklanche la, lè sa a ki kalite kòmandman SQL yo se menm bagay la kòm lè y ap kreye yon pwosedi. algorithm poukont li ap dwe dekri anba a.

Premye etap la se a dekri yo lòd, ki sèvis yo kreye deklanchman:

KREYE deklanche Person_Insert

Next pwen A ak yon tab:

ONPerson

Endike pou ki operasyon done (nan ka sa a, done yo chanje operasyon).

Pwochen etap la se ou presize tab yo ak varyab:

deklare @ID Int. @Date smalldatetime @nID Int. @nDatesmalldatetime

Pli lwen deklare kurseur yo chwazi tab done retire ak ensèsyon nan done:

Deklare kurseur C1 pou chwazi P_ID, P_BerthDay soti nan ensere

Deklare kurseur C2 pou chwazi P_ID, P_BerthDay soti nan efase

Defini seleksyon done etap sa yo. Yon fwa nan kò a kurseur preskri kondisyon ak reyaksyon a li:

si @ID = @nID ak @nDate = '01 / 01/2016 '

kòmanse

sMasseges 'operasyon kouri enposib. Dat li pa apwopriye '

fen

Li se vo mansyone ke deklanche a pa ka sèlman kreye, men tou, fèmen pou yon ti tan. manipilasyon sa yo ka kenbe sèlman yon pwogramè fè lòd SQL sèvè:

altertablePERSONdisabletriggerall - nan enfim tout deklanchman kreye pou tab la, epi, kòmsadwa, altertablePERSONenabletriggerall - pou enklizyon.

Sa yo SQL debaz kòmande pi souvan itilize, men konbinezon yo ka trè divès. SQL - yon lang programmation fleksib anpil epi li ba pwomotè a yon maksimòm de posiblite yo.

konklizyon

Soti nan pi wo a la nou ka sèlman konkli: lang ladrès SQL yon dwe pou moun ki vle angaje yo seryezman nan pwogram. Li bay manti nan kè yo ak tout operasyon fèt nan entènèt la ak nan baz done a lakay ou. Se pou rezon sa pwogramè a nan lavni dwe konnen ki kantite kòmandman nan lang lan, paske se sèlman yo ka, se konsa pale, yo kominike avèk òdinatè a.

Natirèlman, gen enpèfeksyon, tankou nan tout bagay nan mond sa a, men yo yo, se pou ti ke tou senpleman pal anvan baz byenfonde yo. Pami tout lang nan pwogram SQL se prèske yon sèl la sèlman nan kalite li yo, paske li se yon kozman inivèsèl, epi ak konesans sou ekri Scripts ak kòd se baz la nan nòmalman tout kote sa yo.

ka Avantaj nan prensipal nan SQL bezogovorchno dwe konsidere senplisite li yo, paske, apre yo fin tout, li te li menm ki te entwodui nan kourikoulòm lekòl la. Depi li ka okipe menm yon pwogramè inisyasyon, pa reyèlman vèrs nan lang.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ht.birmiss.com. Theme powered by WordPress.