Qasu në sintaksën sql. Zbatimi i SQL në Krahasimin ACCESS Microsoft Access

Ministria e Arsimit e Federatës Ruse

Universiteti Teknik Shtetëror Kuzbass

Departamenti i Shkencave Kompjuterike

dhe teknologjia e informacionit

Pyetje SQL

Udhëzime metodologjike për punën laboratorike për studentët e specialitetit "Ekonomia dhe menaxhimi në ndërmarrje" në kursin "Automatizimi i llogaritjeve ekonomike"

Përpiluar nga E.A. Bessonov

Miratuar në mbledhjen e departamentit Procesverbali Nr. 11 i 23.06.2000

Një kopje elektronike ruhet në bibliotekën e ndërtesës kryesore të KuzGTU

Kemerovo 2001

SQL (Strukturuar Query Language) është një gjuhë e strukturuar e pyetjeve.

owls) që nga viti 1986. është gjuha standarde e bazës së të dhënave relacionale. Në veçanti, përdoret në aplikacionet Access dhe Excel. Standardi i gjuhës SQL është përshkruar në.

Pyetjet në MS Access ruhen dhe zbatohen duke përdorur gjuhën SQL. Edhe pse shumica e pyetjeve mund të krijohen në mënyrë grafike (Model Queries), ato ruhen si deklarata SQL. Në disa raste (për shembull, në pyetjet vartëse), mund të përdoret vetëm gjuha SQL. Në MS Access, dialekti i kësaj gjuhe përdoret dhe përshkruhet më poshtë. Shembuj të shumtë të pyetjeve SQL mund të gjenden në bazën e të dhënave Northwind (skedari I: \ Access \ Sampapps \ Nwind.mdb).

SQL ndryshon dukshëm nga gjuhët e tjera të programimit të nivelit të lartë.

1. SQL është një gjuhë jo procedurale. Thjesht deklaron atë që duhet bërë, dhe ekzekutimi i caktohet DBMS (sistemi i menaxhimit të bazës së të dhënave).

2. SQL përdor logjikë me tre vlera. NULL (TK DHKNAT E PANJOHUR ose JO) përdoret së bashku me vlerat tradicionale Boleane TRUE dhe FALSE.

3. Operacionet kryhen në të gjitha grupet e të dhënave, dhe jo në elementë individualë, si në gjuhët e tjera të programimit.

Një pyetje SQL përbëhet nga pohime. Çdo udhëzim mund të përmbajë disa fjali.

Pothuajse asnjë pyetje nuk është e plotë pa një klauzolë FROM që përshkruan tabelat ose pyetjet e përdorura dhe që ka sintaksën

NGA tabelat

Tabelat - tabelat / pyetjet e përdorura dhe marrëdhëniet e tyre.

Nëse klauzola IN është e pranishme në klauzolën FROM (kllapat katrore tregojnë se kjo pjesë e klauzolës është fakultative), atëherë fjala e rezervuar IN duhet të pasohet nga emri i bazës së të dhënave në të cilën gjenden tabelat (supozohet se tabelat nuk janë nga baza e të dhënave aktuale).

NGA M TeacSUESIT

Nëse pyetja bazohet në dy tabela, atëherë është e nevojshme të tregoni mënyrën e kombinimit të tyre - një nga sa vijon (supozohet se lexuesi është i njohur me to):

Produkt kartezian; Bashkimi i brendshëm bashkimi i brendshëm; LINI JOIN bashkimi i jashtëm i majtë; BASHKIMI I DREJT është një bashkim i jashtëm i djathtë.

Menjëherë pas metodës së bashkimit, duhet të vendosni frazën ON Table1.Key = Table2.ExternalKey

Çelësi - emri i fushës kryesore nga ana 1. ExternalKey - emri i fushës lidhëse nga ana N.

Skema e të dhënave

Figura tregon tabelën që bashkon skemën (skema e të dhënave) që do të përdoret për shumicën e shembujve më poshtë. Për shembull, nga figura, mund të shihni që fusha "Subjekt" e tabelës "Provuesit" është fusha kryesore (me shkronja të zeza), dhe fusha "Mësues" është një çelës i huaj për tabelën "Mësuesit". Bashkimi midis tabelave të specifikuara është i brendshëm me integritet të të dhënave. Kjo dëshmohet nga shenjat 1 dhe at në skajet e linjës së lidhjes ("Mësuesit" është tabela kryesore, dhe "Provuesit" është tabela e varur). Me një bashkim të jashtëm, ju mund të shihni një shigjetë që tregon drejt tabelës së varur në vijën e bashkimit të tabelave. Kjo do të thotë që të gjitha regjistrimet do të shfaqen në tabelën kryesore, edhe nëse nuk kanë regjistrime përkatëse në vartësinë. Për shembull, mund të merrni një listë të mësuesve dhe emrat e lëndëve. Nëse

disa mësues nuk janë në tabelën "Provuesit", atëherë fusha e emrit të lëndës së këtij mësuesi do të jetë bosh nëse përdoret LIDHJA E LAR.

NGA EKZAMINUESIT PORBASHKIM TN PRGJITHSHM Provimet P ONR Provuesit. Subjekti = Provimet. Subjekti

Në klauzolën NGA, para fjalëve të rezervuara INNER JOIN, tregohet emri i tabelës nga ana 1 (në rastin tonë, tabela "Provues"). Nëse ka më shumë se dy tabela në klauzolën FROM, atëherë bashkimi i dy tabelave mund të futet në kllapa dhe të trajtohet si një tabelë kur bashkohet me tabela të tjera ose bashkohet. Në këtë mënyrë, ju mund të përshkruani bashkimin e çdo numri tabelash.

NGA MhersSUESIT BASHKOHUNI I BRENDSHM (Provues

Provimet e BASHKUESHME TN BRENDSHME

ON Lënda e Provuesve = Lënda e Provimeve)

P ONR MhersSUESIT Mësues = Provues Mësues E gjithë skema e të dhënave është e përshkruar (shih figurën).

Deklarata SELECT ju lejon të zgjidhni fushat e kërkuara nga tabelat ose pyetjet. Formati minimal i opsioneve:

NGA tabelat;

Fushat janë shumë shprehje dhe emra fushash, të ndara me presje. Shembull

SELECT Group, Student, Vlerësimi NGA Provimet;

Nëse emri përsëritet në disa tabela të listuara në klauzolën FROM, atëherë emri i tabelës dhe një pikë duhet të vendosen para emrit, për shembull: [Ekzaminuesit]. Mësuesi ose [Provimet]. [Artikulli]

Nëse tabela ose emri i fushës përmban një hapësirë ​​ose një karakter tjetër të veçantë, atëherë ky emër duhet të mbyllet në kllapa katrore. Në raste të tjera, kllapat janë opsionale.

V në shembullin e dhënë në modalitetin e tabelës, pyetja kthen një tabelë

me titujt e kolonave "Grupi", "Nxënësi", "Klasa" (në atë mënyrë). Ndonjëherë është e dëshirueshme që titulli të ndryshojë nga

Emri i fushes. Në këtë rast, pas emrit të fushës, vendosni fjalën e rezervuar AS dhe titullin (alias), për shembull:

SELECT Group, Student AS Emri i plotë, Nota

V Në këtë rast, në vend të titullit "Student", do të shfaqet "Emri i plotë". Nëse

v titulli ka më shumë se një fjalë, duhet të mbyllet në kllapa katrore.

Nëse është e nevojshme të ktheni të gjitha fushat e tabelës, atëherë argumenti i fushës duhet të specifikohet me një yll ose në formën "Tabela. *".

ZGJIDH Mësuesit. * NGA Mësuesit;

Shfaqen të 5 fushat nga tabela "Mësuesit".

Ndonjëherë ju duhet të ktheni jo vlerën e fushës, por rezultatin e llogaritjeve mbi vlerat e fushës. Në këtë rast, në vend të emrit të fushës, duhet të specifikoni një shprehje. Rregullat e shkrimit të shprehjes nuk ndryshojnë nga rregullat e përdorura në projektuesin e pyetjeve.

ZGJIDH mesatar ([Nota]) Si [Mesatare] NGA Provimet;

Kërkesa kthen një numër në kolonë me titullin "Rezultati mesatar"

- mesatarja aritmetike e të gjitha notave të nxënësve. Shembull

SELECT Numërimi ([Mësuesi]) Si [Numri i Mësuesve] NGA Mësuesit;

Nën titullin "Numri i mësuesve" numri i rreshtave të tabelës "Mësuesit" do të vendoset në të cilin fusha "Mësues" nuk është bosh (dhe nuk është gjithmonë bosh, pasi është një çelës). Ky është numri i mësuesve, meqenëse çdo procesverbal ka një numër mësuesi që është i ndryshëm nga numri i mësuesve të tjerë.

V SELECT deklarata menjëherë pas fjalës SELECT mund të jetë

kallëzuesi është shkruar - një nga fjalët ALL, DISTINCT, DISTINCTROW, TOP N.

Kallëzuesi ALL drejton të kthejë të gjitha regjistrimet, edhe nëse ato përmbajnë përsëritje.

DISTINCT ndalon shfaqjen e regjistrave që përmbajnë kopje në fushat e zgjedhura. Përdorimi i kallëzuesit DISTINCT është ekuivalent me vendosjen e vetisë Unique Values ​​në Po në fletën e pronës së Query Designer.

DISTINCTROW ndikon në rezultatin vetëm nëse jo të gjitha fushat nga tabelat e analizuara përfshihen në kërkesë. Kallëzuesi injorohet nëse pyetja përmban vetëm një tabelë. Kallëzuesi DISTINCTROW përjashton regjistrimet që përsëriten plotësisht. Përdorimi i kallëzuesit DISTINCTROW është ekuivalent me vendosjen e veçorisë Unique Records në Po në fletën e pronës së Query Designer.

Kallëzuesi Top N përdoret për të kthyer regjistrimet N në fillim ose në fund të një grupi, të renditur në rendin rritës ose zbritës të vlerave të kësaj fushe. Renditja përcaktohet duke përdorur klauzolën ORDER BY pas klauzolës FROM.

ZGJIDH udhëzimet.

Pas fjalëve ORDER BY, vendosni emrin e fushës dhe fjalën ASC (ngjitëse, opsionale) ose DESC (zbritëse). Tjetra Deklarata SQL ju lejon të merrni një listë të 5 studentëve më të mirë.

Performancë akademike

Tabela 1

Rezultati mesatar

Medvedev

Vorobiev

ZGJIDH TOP 5 Student, [Pika e Notës] NGA Performanca Akademike

POROSIA NGA [Mesatarja] PESRSHKRIMI;

SELECT DISTINCT [Student] NGA Provimet

POROSIA NGA [Studenti];

Pyetja kthen një listë të studentëve të renditur sipas rritjes së mbiemrave.

Pas klauzolës FROM të deklaratës SELECT, mund të shkruani

KU klauzola e formularit KU kusht

Gjendja është një shprehje boolean që vlerësohet për secilin rekord në tabelën burimore.

Nëse kushti është i vërtetë, atëherë rekordi (një grup fushash në listën e fushave të klauzolës SELECT) përfshihet në grupin e rezultateve; nëse është false, nuk përfshihet.

PLECTRZGJIDH Grupin DISTSHIRUES, Student

NGA Provimet

KU Vota = 2;

Krijohet një listë e studentëve me nota të dobëta. Shembull

KU [Pozicioni] = "Profesor i Asociuar" OSE [Diplomë] = "Ph.D." POROSIA NGA [emri i plotë];

Lëshohet një listë e mësuesve me titullin akademik të profesorit të asociuar ose gradën e kandidatit të shkencave teknike. Në këtë shembull, nuk ka nevojë të zbatohet kallëzuesi sepse regjistrimet janë në pronësi të instruktorëve të ndryshëm dhe asnjë përsëritje nuk është e mundur.

Kur filtroni shprehjet e vargut, mund të përdorni operatorin e modelit të shprehjes Like, i cili kontrollon nëse rezultati i llogaritjes përputhet shprehjet në shabllon. Ka disa simbole të veçanta që mund të përdoren në shabllon:

* çdo numër të ndonjë personazhi;

Çdo personazh.

V kllapat mund të përdoren për të specifikuar një diapazon ku një personazh është ose jo.

Një personazh në rangun A deri në F, përfshirës. Karakteri [! A-F] nuk është në rangun A-F.

ZGJIDH [Emri] NGA Mësuesit

KU [Emri i plotë] SI “B *” OSE [Emri i plotë] SIKUR “Щ *”;

V grupi që rezulton do të përfshijë emrat e mësuesve duke filluar me shkronjat D ose Щ.

X LIKE "P ###"

Kushti i shkruar plotësohet me rreshta prej 5 karakteresh duke filluar me shkronjën P. Duhet të pasohet nga një shkronjë nga diapazoni A-F. Vargu duhet të përfundojë me 3 shifra.

Nëse para çdo ekzekutimi të pyetjes është e nevojshme të ndryshoni kushtet e përzgjedhjes, është e përshtatshme të përdorni një fjali të formës:

Tekstet e PARAMETRAVE;

Tekstet - një listë tekstesh të ndara me presje.

Pas çdo teksti, lloji i të dhënave tregohet me një hapësirë. Kur drejtoni një pyetje me parametra, nuk keni nevojë të hapni dritaren e projektuesit të pyetjeve dhe të bëni ndryshime në kushtet e filtrit. Në vend të kësaj, përdoruesit i kërkohet të vendosë gjendjen e dëshiruar gjatë ekzekutimit të pyetjes. Për secilin tekst nga klauzola PARAMETERS, në ekran shfaqet një kuti dialogu, ku secili tekst nga përshkrimi luan rolin e një sugjerimi - çfarë saktësisht duhet të futet. Në kutinë e dialogut, futni të dhënat e llojit të specifikuar.

Nëse përdoret një klauzolë PARAMETERS, ajo duhet të shfaqet para të gjitha deklaratave të tjera, përfshirë deklaratën SELECT, dhe duhet të përfundojë me një pikëpresje.

PARAMETRAT [Specifiko datën e fillimit] DATETIME, [Specifiko datën e përfundimit] DATETIME;

Në kriteret për zgjedhjen e klauzola WHERE dhe HAVING, ju mund të përdorni tekst pa specifikuar llojet e të dhënave. Kur pyetja ekzekutohet, teksti zëvendësohet me vlerën e futur.

PARAMETRAT [Specifikoni një grup] TEXT; ZGJIDH Nxënësin, Klasa

NGA Provimet

KU [Grupi] = [Specifikoni një grup] Dhe [Subjekti] = 1;

Kërkesa jep notat e studentëve të grupit të specifikuar në lëndën me kodin 1.

Klauzola e fushës GROUP BY kombinon një grup regjistrimesh në një listë të specifikuar të fushave në një regjistrim të vetëm. Nëse deklarata SELECT përmban një funksion të grupit (për shembull, Mesatarja ose Shuma), atëherë vlera për rekordin në grupin e rezultateve do të llogaritet - totali për grupin e regjistrimeve. Kështu, për shembull, nëse i gruponi regjistrimet sipas lëndës në tabelën "Provimet", atëherë duke përdorur funksionin Avg mund të merrni rezultatin mesatar për lëndën. Grupimi sipas lëndës dhe grupit do t'ju lejojë të merrni rezultatet mesatare të grupeve të studentëve në lëndën e specifikuar.

GROUP BY është opsionale. Nëse është i pranishëm në klauzolën SELECT, ajo gjendet pas klauzolës FROM.

Kur përdorni klauzolën GROUP BY, të gjitha fushat në listën e fushave të klauzolës SELECT duhet ose të përfshihen në listën e fushave të klauzolës GROUP BY ose të përdoren si argumente për funksionin e grupit SQL.

Nëse jeni duke përdorur funksionet e grupit dhe nuk ka klauzolë GROUP BY, atëherë i gjithë koleksioni i regjistrimeve të pyetjeve origjinale luan rolin e grupit.

SELECT Group, Student, Mesatarja ([Nota]) AS [Pika e Notës] NGA Provimet

GRUPI NGA [Grupi], [Studenti];

Për secilin student, llogaritet mesatarja aritmetike e notave të tij.

Klauzola opsionale HAVING duhet të shfaqet pas GROUP BY. Ai përcakton se cili nga regjistrimet e grupuara do të përfshihet në grupin e rezultateve. Gjendja në HAVING është një shprehje e rregullt boolean, ashtu si në WHERE. KU dhe të kesh mund të jenë të pranishme në një deklaratë SELECT në të njëjtën kohë. Në këtë rast, WHERE filtron regjistrimet para grupimit, dhe HAVING filtron regjistrimet e grupuara (grupet).

PARAMETRAT [Shkruani emrin e artikullit] TEXT; SELECT Grupi, Lënda, Mesatarja ([Nota]) AS [Pika e Notës] NGA Provuesit PORBASHKIM Provimet e Brendshme

ON Lënda e Provuesve = Lënda e Provimeve

KU [Emri i Subjektit] = [Shkruani Emrin e Subjektit] GRUPI NGA Grupi, Student

KA PARA Mesatare ([Rezultati])> = 4.5 Dhe Min ([Rezultati])> 2;

Pyetja kthen një listë të studentëve me rezultatet e tyre mesatare. Lista përfshin studentë pa dysh dhe me një rezultat mesatar prej të paktën 4.5.

Deklarata TRANSFORM përdoret për të krijuar një pyetje kryq. Të dhënat e përfaqësuara nga një pyetje me referenca të kryqëzuara jepen më shumë në mënyrë kompakte sesa nga një pyetje e marrjes së mostrës. Sintaksë:

TRANSFORMA Funksioni SELECT…;

Funksioni - grup Funksioni SQL që përpunon të dhënat e qelizës së tabelës Field - një fushë ose shprehje, vlerat nga të cilat bëhen header

kolona kami.

Një pyetje e mënyrës së tabelës ka aq kolona sa fusha merr vlera të ndryshme. Për shembull, nëse fusha shfaq emrat e muajve, atëherë do të ketë deri në 12 kolona, ​​titujt e të cilave janë renditur sipas rritjes (gusht, prill ... janar). Pas argumentit të fushës, mund të vendosni një klauzolë IN (lista e_vlerave). Vlerat fikse në listën e vlerave ndahen me presje. Me një klauzolë IN, secila vlerë e fushës krahasohet me vlerat në listën e vlerave. Nëse ka një ndeshje, rezultati i llogaritjes së funksionit shfaqet në kolonën përkatëse. Titujt e fiksuar që nuk korrespondojnë me të dhënat reale mund të përdoren për të krijuar kolona shtesë.

Përdorimi i klauzolës PIVOT është ekuivalente me përcaktimin e vetisë Column Headers në fletën e pronës së projektuesit të pyetjes.

Puna laboratorike Nr.1

SQL: EXTRAKT T D DHATNAVE - komandëZGJIDH

Qëllimi i punës:

  • njiheni me deklaratat SQL;
  • mësoni se si të krijoni pyetjet më të thjeshta SQL në Access duke përdorur komandën SELECT;

· Përdorimi i operatorëve N,, NDRMJET, SIKU, ISSHT NULL.

Ushtrimi№1. Krijoni një pyetje për të zgjedhur në modalitetin SQL të gjitha vlerat e fushave EMRI I PARST dhe EMRI I FUNDIT nga tabela STUDENTT.

ZGJIDH EMRIN, M mbiemrin

NGA STUDENTT;

Ushtrimi№2 ... Krijoni një pyetje të zgjedhur në modalitetin SQL për të gjitha kolonat e tabelës STUDENTS.

SELECT *

NGA STUDENTT;


Detyra numër 3. Krijoni një pyetje për të zgjedhur në modalitetin SQL emrat e qyteteve ku jetojnë studentët, informacione për të cilat gjenden në tabelën e TAT DHNAVE PERSONALE.

ZGJIDH QYTETIN E DISKTUAR

NGA [T D DHNAT PERSONALE];

Detyra numër 4. Krijoni një pyetje të zgjedhjes së modalitetit SQL që zgjedh emrat e të gjithë studentëve me mbiemrin Ivanov që janë të shënuar në tabelën e STUDENTVE.

ZGJIDH M mbiemrin, EMRI

NGA STUDENTT

KU EMRI I FUNDIT = "Ivanov";

Detyra numër 5... Krijoni një pyetje për një përzgjedhje në modalitetin SQL për të marrë emrat dhe mbiemrat e studentëve të regjistruar në grupin UIT-22 mbi formën buxhetore të arsimit.

ZGJIDH M mbiemrin, EMRI

NGA STUDENTT

KU GRUPI = "WHIT-22" DHE BUXHETI = e vërtetë;

Detyra numër 6... Krijoni një pyetje në modalitetin SQL. në një mostër nga tabela SHEMBUJ për informacion në lidhje me studentët që kanë nota vetëm 4 dhe 5.

SELECT *

NGA [NDRYSHIMPROVIMET]

KUGRADËIN (4.5);

Detyra numër 7. Krijoni një mënyrë zanpoc dhe SQL për një përzgjedhje të informacionit në lidhje me studentët që kanë një notë provimi 3 në lëndën IOSU.

SELECT *

NGA [NDRYSHIMPROVIMET]

KUPJESA=" IOSU"DheGRADËJo në (4.5);

Detyra numër 8. Krijoni një pyetje në modalitetin SQL për të zgjedhur regjistrimet për artikujt me orë midis 100 dhe 130.

SELECT *

NGASENDET

KUSHIKOMidis 100 dhe 130;


Detyra numër 9. Krijoni një pyetje në modalitetin SQL për të zgjedhur nga tabela STUDENTS informacion për studentët mbiemrat e të cilëve fillojnë, për shembull, me shkronjën "C".

SELECT *

NGASTUDENTT

KUMBIEMRILIKE "ME*";

Prodhimi: Gjatë punës laboratorike, ne u njohëm me deklaratat SQL, mësuam se si të krijojmë pyetjet më të thjeshta SQL në Access duke përdorur komandën SELECT duke përdorur operatorët IN, BASHKU, LIKE.

Aplikacioni MS Access DBMS është një asistent i plotë për krijimin dhe mirëmbajtjen e bazave të të dhënave të mbyllura në tabela dhe vargje. Nëse baza e të dhënave është shumë e madhe, është e vështirë të gjesh shpejt vlerat e kërkuara.

Kjo është arsyeja pse Access ka një veçori të quajtur queries. Konsideroni se çfarë është, si funksionon, cilat veçori ka.

Ndërtimi i pyetjeve në Microsoft Access

Për të kuptuar se si të krijoni pyetje në Access, duhet të dini bazat e punës me një DBMS.

Ka dy mënyra për të përfunduar këtë procedurë:

  • Konstruktor pyetës.
  • Magjistari i pyetjes.

Metoda e parë bën të mundur krijimin e ndonjë prej të gjitha pyetjeve të disponueshme me dorë, por me një vërejtje të vogël që përdoruesi ka përvojë me aplikacionin Access. Gjithashtu, ai duhet të kuptojë të paktën detyrat e tij kryesore. Sa i përket metodës së dytë, ajo duhet të konsiderohet në mënyrë më të detajuar.

Një mënyrë e thjeshtë për fillestarët

Një person i ditur, me disa klikime të miut, zgjedh ato përbërës që do t'i nevojiten përdoruesit për të përfunduar kërkesën, dhe pastaj formon shpejt regjistrin në përputhje me vlerat kryesore të mbledhura. Nëse kjo është njohja e parë me DBMS, dhe përdoruesi nuk ka ide se si të krijojë pyetje në Access, atëherë zgjidhet programi Wizard.

V këtë mënyrë mund të njiheni me llojet e mëposhtme të kërkesave:

  • E thjeshte
  • Kryq.
  • Regjistron pa vartës.
  • Shënime të dyfishta.

Kjo zgjedhje është bërë tashmë në fazën e parë të punës me Magjistarin. Dhe në të ardhmen, duke ndjekur udhëzimet e qarta, edhe një përdorues fillestar mund të krijojë me lehtësi një kërkesë. Le të njihemi me varietetet e tij.

Pyetje e thjeshtë

Ky mjet spreadsheet mbledh të dhënat që dëshironi nga fushat e specifikuara nga përdoruesi. Siç sugjeron edhe emri, ky është lloji më i popullarizuar i pyetjeve për fillestarët. Lehtësia e tij qëndron në faktin se një procedurë e tillë hapet në një skedë të re. Prandaj, përgjigja në pyetjen se si të krijoni një pyetje në Access 2010 bëhet e qartë pasi hapni menunë e parë të magjistarit.

Pyetje e kryqëzuar

Ky lloj kampionimi është më kompleks. Për të kuptuar se si të krijoni një pyetje kryq në Access duke përdorur "Magjistarin" në këtë mënyrë, duhet të klikoni në këtë funksion në dritaren e parë.

Në ekran do të shfaqet një tabelë në të cilën mund të zgjidhni deri në tre kolona të vendosura në origjinal.

Një nga fushat e mbetura të pazgjedhura mund të përdoret si titujt e tabelës së pyetjeve. Në fazën e tretë të procedurës (kryqëzimi), një vlerë tjetër zgjidhet me ndryshueshmërinë e funksionit (vlera mesatare, shuma, e para, e fundit).

Fotografia tregon se është krijuar një referencë e kryqëzuar, dhe kjo nga parametrat e dhënë janë ndërmarrë veprimet e nevojshme.

Shënime të dyfishta

Siç nënkupton edhe emri, qëllimi kryesor të kësaj kërkese- përzgjedhja e të gjitha rreshtave identikë në tabelë sipas parametrave të specifikuar. Duket kështu:

Përveç kësaj, një përzgjedhje e fushave shtesë është në dispozicion për të përputhur rreshta të shumtë në të njëjtën kohë.

Për të zgjedhur shënimet e kopjuara, duhet të zgjeroni listën e kërkesave dhe të krijoni një dosje të re atje. Pastaj, në dritaren "Pyetje e re", zgjidhni rreshtin "Kërko regjistrime të kopjuara". Tjetra, duhet të ndiqni udhëzimet e Mjeshtrit.

Regjistron pa vartës

Ky është lloji i fundit i pyetjeve të disponueshme në modalitetin "Master - Hyrje pa skllevër".

Në këtë rast, zgjidhen vetëm ato vlera që nuk përdoren në asnjë fushë të tabelave dhe pyetjeve, por që tashmë janë krijuar.

Ky lloj është i rëndësishëm vetëm në rastet kur ka disa baza të të dhënave.

Të katër këto katër lloje pyetjesh janë pika bazë për të punuar me elementë kompleksë, por ato e bëjnë të lehtë të kuptosh se si të krijosh një pyetje në bazën e të dhënave. Qasja në të dhënat.

Funksionet e pyetjes në MS Access

Le të kuptojmë pse duhet të kryeni hapat e përshkruar më sipër. Detyra e të gjitha të thjeshta dhe pyetje komplekse në Access DBMS është si më poshtë:

  • Mbledhja e të dhënave të nevojshme në tabela, shikimi i tyre i mëvonshëm, redaktimi, shtimi i vlerave të reja.
  • Një material burimor i shkëlqyer për përgatitjen e të gjitha llojeve të formave të raportimit.
  • Kryerja e procedurave të numërimit matematikor dhe statistikor mbi të gjitha vargjet e të dhënave me shfaqjen e totalit në ekran (vlera mesatare, shuma, devijimi, totali).

Shembull kërkese

Ky lloj i punës së bazës së të dhënave është komplekse pasi kërkon përfshirjen e tabelave të shumta.

Të gjitha tabelat duhet të kenë fusha kryesore të përbashkëta. Përndryshe, operacioni do të dështojë.

Le të shqyrtojmë se si të krijojmë një pyetje të zgjedhur në Access. Së pari, duhet të krijoni një pyetje të thjeshtë me përzgjedhjen e fushave të kërkuara. Tashmë këtu ju mund të redaktoni të dhënat për t'i sjellë ato në formën e dëshiruar. Nga rruga, ndryshimet e bëra do të transferohen në tabelat origjinale, kështu që kjo pikë duhet të merret parasysh.

Në dritaren e projektuesit që hapet, dritarja "Shto tabela" është e mbushur. Këtu ju duhet të shtoni ato tabela ose pyetje nga të cilat duhet të nxirrni vlerat fillestare.

Pas shtimit, mund të filloni të plotësoni kushtet e kërkesës. Për këtë ne kemi nevojë për rreshtin "Fusha". Në të, ju duhet të zgjidhni ato vlera nga tabelat që do të shfaqen gjatë pyetjes.

Për të përfunduar operacionin, duhet të klikoni në butonin "Ekzekuto".

Kërkesë me parametra

Kjo është një lloj tjetër i procedurës komplekse që do të kërkojë aftësi të caktuara të bazës së të dhënave nga përdoruesi. Një nga fushat kryesore të një veprimi të tillë është përgatitja për krijimin e raporteve me të dhëna volumetrike, si dhe marrja e rezultateve përmbledhëse. Si të krijoni pyetje në Access 2007 duke përdorur projektuesin do të diskutohet më poshtë.

Për të filluar këtë procedurë për përzgjedhjen e të dhënave, duhet të krijoni një pyetje të thjeshtë për të zgjedhur fushat e kërkuara. Më tej, përmes modalitetit të Konstruktorit, është e nevojshme të plotësoni fushën "Gjendja e përzgjedhjes" dhe, bazuar në vlerën e futur, përzgjedhja do të kryhet.

Kështu, përgjigja në pyetjen se si të krijoni një pyetje me një parametër në Access është e thjeshtë - të futni parametrat fillestarë për përzgjedhjen. Për të punuar me Ndërtuesin, duhet të përdorni Magjistarin e Kërkimit. Atje, të dhënat parësore krijohen për filtrim, të cilat shërbejnë si bazë për punë të mëtejshme.

Pyetje e avancuar e referencës së tërthortë

Ne vazhdojmë t'i ndërlikojmë gjërat. Edhe më e vështirë për t'u kuptuar është informacioni se si të krijoni pyetje në Access kur janë të pranishme tabela të shumta të të dhënave. Pyetja për referenca të ndërsjella tashmë është konsideruar më lart, si një nga opsionet për të punuar me Magjistarin. Sidoqoftë, në modalitetin "Dizajn", mund të krijoni një pyetje të ngjashme.

Për ta bërë këtë, duhet të klikoni "Ndërtuesi i pyetjeve" - ​​"Kryqi".

Hapet menyja për shtimin e tabelave burimore, si dhe aftësia për të mbushur fushat e zgjedhura. Të vetmet gjëra që duhet kushtuar vëmendje janë artikujt "operacion në grup" dhe "kryqëzim". Ato duhet të plotësohen saktë, përndryshe procedura nuk do të kryhet si duhet.

Pyetjet me referenca të tërthorta janë mënyra më e lehtë për të gjetur dhe marrë informacion nga burime të shumta të të dhënave, plus aftësinë për të gjeneruar tabela dhe grafikë.

Për më tepër, kur përdorni këtë procedurë, kërkimi është më i shpejtë, madje edhe me disa mundësi zhvillimi.

Sigurisht, ka edhe "kurthe" që mund të ndërhyjnë në punë. Për shembull, kur krijoni një pyetje për të renditur një bazë të dhënash sipas vlerës së kolonës, sistemi hedh një gabim. Kjo do të thotë, vetëm klasifikimi sipas artikujve standardë është i disponueshëm - "në rritje dhe në rënie".

Si përmbledhje, duhet thënë se i takon përdoruesit të vendosë se si të krijojë pyetje në Access - duke përdorur Wizard ose Designer. Edhe pse, për shumicën e njerëzve që përdorin MS Access, opsioni i parë është më i përshtatshmi. Në fund të fundit, vetë Magjistari do të bëjë të gjithë punën, duke lënë vetëm disa klikime të miut për përdoruesin kur zgjedh kushtet e kërkesës.

Për të përdorur cilësimet e përparuara, kërkohet qartë përvoja e bazës së të dhënave në nivel profesional. Nëse bazat e të dhënave të mëdha përfshihen në punë, është mirë që të kontaktoni specialistë për të shmangur prishjen e DBMS dhe humbjen e mundshme të të dhënave.

Ekziston një pikë që është në dispozicion vetëm për programuesit. Meqenëse gjuha kryesore e DBMS është SQL, pyetja e kërkuar mund të shkruhet në formën e kodit të programit. Për të punuar në këtë mënyrë, thjesht klikoni në vijën e pyetjes së krijuar tashmë dhe zgjidhni "SQL Mode" në menunë e kontekstit që hapet.

Në rastin më të thjeshtë, pyetja zbaton përzgjedhjen nga një tabelë e fushave të kërkuara, regjistrimet që korrespondojnë me kushtet e dhëna përzgjedhjen dhe shikimin e rezultateve të pyetjes.

Hartimi i pyetjeve të përzgjedhjes me kushtet e përzgjedhjes

Le të shikojmë pyetjet për një përzgjedhje në Access duke përdorur shembullin e marrjes së informacionit nga tabela PRODUCT në bazën e të dhënave të dorëzimit të mallrave.

Problemi 1... Le të jetë e nevojshme të zgjidhni një numër karakteristikash të një produkti me emrin e tij.

  1. Për të krijuar një pyetje në dritaren e bazës së të dhënave, zgjidhni skedën e shiritit - Krijim(Krijo) dhe në grup Hetimet(Pyetjet) shtypni butonin Konstruktor pyetës(Hartimi i pyetjeve). Një dritare e zbrazët e pyetjes së përzgjedhur do të hapet në modalitetin e projektimit - KërkesaN(QueryN) dhe dialog Shtimi i një tabele(Trego tabelën) (Fig. 4.2).
  2. Në dritare Shtimi i një tabele(Shfaq Tabelën) zgjidhni tabelën PRODUCT dhe klikoni butonin Shto(Shto). Tabela e zgjedhur do të shfaqet në zonën e skemës së të dhënave të pyetjes. Mbyllni dritaren Shtimi i një tabele(Trego Tabelën) duke klikuar butonin Mbylle(Mbylle).

Si rezultat i veprimeve të kryera në dritaren e projektuesit të pyetjeve (Fig.4.1) në paneli i lartë shfaqet skema e të dhënave të pyetjes, e cila përfshin tabelat e zgjedhura për këtë pyetje. Në këtë rast, një tabelë PRODUKT. Tabela përfaqësohet nga një listë fushash. Rreshti i parë në listën e fushave të tabelës, i shënuar me një yll (*), tregon të gjithë grupin e fushave të tabelës. Paneli i poshtëm është një formular kërkese që duhet të plotësoni.

Për më tepër, një skedë e re (Query Tools | Design) shfaqet në shirit dhe aktivizohet automatikisht (në Fig. 4.3 është e përfaqësuar në një pjesë të kësaj skede), në të cilën lloji i pyetjes së krijuar theksohet me ngjyra - Mostër(Zgjidh). Kështu, si parazgjedhje, gjithmonë krijohet një kërkesë për marrje. Komandat në këtë skedë ofrojnë mjete për kryerjen e veprimeve të nevojshme kur krijoni një kërkesë. Kjo skedë hapet kur krijoni një pyetje të re në modalitetin e projektimit ose modifikoni një ekzistues.

  1. Për të hequr çdo tabelë nga skema e të dhënave të pyetjes, lëvizni kursorin e miut mbi të dhe shtypni butonin. Për të shtuar - klikoni butonin Trego tabelën(Trego tabelën) në grup Vendosja e një kërkese(Query Setup) skedë Puna me pyetjet | Konstruktor(Query Tools | Design) ose ekzekutoni komandën Shto tabelë(Trego tabelën) në menunë e kontekstit të thirrur në skemën e të dhënave të pyetjes.
  2. Në dritaren e projektimit (Fig. 4.4), tërhiqni rresht nga lista e fushave në tabelën PRODUCT fushat NAME_ITS, PRICE, AVAILABILITY_of_s_s në kolonat e formularit të kërkesës në rresht Fusha(Fusha).
  3. Për të përfshirë fushat e kërkuara nga tabela në kolonat përkatëse të pyetjes, mund të përdorni teknikat e mëposhtme:
    • në rreshtin e parë të formularit të kërkesës Fusha(Fusha) duke klikuar miun, shkaktoni shfaqjen e butonit të listës dhe zgjidhni fushën e kërkuar nga lista. Lista përmban fushat e tabelave të përfaqësuara në skemën e të dhënave të pyetjeve;
    • klikoni dy herë mbi emrin e fushës së tabelës në skemën e të dhënave të pyetjes;
    • mund të tërhiqni ose klikoni dy herë simbolin * (yll) në listën e fushave të tabelës në skemën e të dhënave të pyetjes për të përfshirë të gjitha fushat në një tabelë.
  4. Nëse keni rënë aksidentalisht një fushë të panevojshme në formularin e kërkesës, fshini atë. Për ta bërë këtë, lëvizni kursorin në zonën e shënimit të kolonës në krye, ku do të ndryshojë në një shigjetë të zezë që tregon poshtë dhe klikoni. Kolona është e theksuar. Shtypni butonin ose ekzekutoni komandën Fshi kolonat(Fshi Kolonat) në grup Vendosja e një kërkese(Konfigurimi i pyetjes).
  5. Ne rresht Dalja në ekran(Shfaq) shënoni fushat, përndryshe ato nuk do të përfshihen në tabelën e pyetjeve.
  6. Shkruani në rresht Kushtet e përzgjedhjes(Kriteret) emri i produktit, siç tregohet në formularin e kërkesës në Fig. 4.4 Meqenëse shprehja në klauzolën e përzgjedhjes nuk përmban një operator, përdoret operatori i paracaktuar =. Vlera e tekstit e përdorur në shprehje futet brenda thonjëzave të dyfishta, të cilat shtohen automatikisht.
  7. Drejtoni pyetjen duke klikuar butonin Run ose butonin View në grupin Rezultatet. Një dritare pyetëse do të shfaqet në ekran në modalitetin e tabelës me një hyrje nga tabela PRODUCT që plotëson kushtet e përcaktuara të përzgjedhjes.

KOMENT
Dritarja e pyetjes në modalitetin e tabelës është e ngjashme me dritaren e paraqitjes së tabelës së bazës së të dhënave. Disa nga tabelat e pyetjeve mund të përdoren për të modifikuar të dhënat e tabelës në themel të pyetjes. Një pyetje e parë në pamjen e tabelës nuk ka një kolonë ndryshe nga një tabelë e bazës së të dhënave Access 2010 Klikoni për të shtuar(Kliko për të shtuar), i krijuar për të ndryshuar strukturën e tabelës. Në këtë mënyrë, në skedën e shiritit shtepi(Shtëpi) të njëjtat butona janë në dispozicion si kur hapni një tabelë të bazës së të dhënave.

  1. Nëse bëni një pasaktësi kur futni një emër produkti kompleks, produkti nuk do të gjendet në tabelë. Përdorimi i operatorëve model - yll (*) dhe pikëpyetje(?) (standardi i parazgjedhur i pyetjes ANSI-89) ose shenja e përqindjes (%) dhe nënvizimi (_) (standardi standard i SQL Server ANSI-92) e bëjnë më të lehtë gjetjen e vargjeve që dëshironi dhe shmangien e shumë gabimeve. Shkruani Corpus * ose Corpus% në vend të emrit të plotë të produktit. Plotësoni kërkesën tuaj. Nëse në fushën e emrit të produktit një vlerë fillon me fjalën "Corpus", rezultati i pyetjes do të jetë i njëjtë si në rastin e mëparshëm. Pas ekzekutimit të pyetjes, shprehja e futur do të plotësohet me operatorin Like "Corpus *". Ky operator ju lejon të përdorni karaktere të egra kur kërkoni fushat e tekstit.
  2. Nëse keni nevojë të gjeni produkte të shumta, përdorni operatorin In. Kjo ju lejon të kontrolloni barazinë me çdo vlerë nga lista, e cila është specifikuar në kllapa. Shkruani në rreshtin e kushteve të përzgjedhjes In ("MiniTower case"; "HDD Maxtor 20GB"; "FDD 3,5"). Tre rreshta do të shfaqen në tabelën e pyetjeve. Karakteret e egra nuk lejohen në deklaratën In.
  3. Ruani pyetjen duke klikuar në skedën Skedar(File) dhe ekzekutimi i komandës Ruaj(Ruaj). Në dritare Ruajtja(Ruaj si) shkruani emrin e pyetjes Shembull1. Vini re se emri i pyetjes nuk duhet të përkojë jo vetëm me emrat e pyetjeve ekzistuese, por edhe me emrat e tabelave në bazën e të dhënave.
  4. Mbyllni pyetjen aktuale duke përdorur komandën e menysë së kontekstit Mbylle(Mbyll) ose duke klikuar butonin e dritares së pyetjes Mbylle(Mbylle).
  5. Drejtoni pyetjen e ruajtur duke zgjedhur pyetjen në panelin e navigimit dhe duke zgjedhur Hapur(E hapur).
  6. Për të redaktuar një pyetje, zgjidhni atë në panelin e navigimit dhe ekzekutoni komandën Konstruktor(Pamja e Dizajnit).

Objektivi 2 Le të jetë e nevojshme përzgjedhja e mallrave, çmimi i të cilave nuk është më shumë se 1000 rubla, dhe TVSH nuk është më shumë se 10%, dhe gjithashtu për të zgjedhur mallra, çmimi i të cilave është më shumë se 2500 rubla. Rezultati duhet të përmbajë emrin e produktit (NAIM_TOV), çmimin e tij (PRICE) dhe TVSH (TVSH_VAT).

  1. Krijoni një pyetje të re në modalitetin e projektimit, shtoni tabelën PRODUCT. Në dritaren e projektimit (Fig. 4.5), tërhiqni rresht nga lista e fushave në tabelën PRODUCT në formën e kërkesës, fushat NAIM_TOV, PRICE, RATE_VAT.
  2. Shkruani Kushtet e përzgjedhjes(Kriteret) siç tregohet në formularin e kërkesës në Fig. 4.5. Një operacion logjik AND kryhet midis kushteve të shkruara në një rresht. Një operacion logjik OSE kryhet midis kushteve të shkruara në rreshta të ndryshëm.
  3. Ekzekutoni kërkesën, klikoni në butonin Ekzekutoni(Vraponi) në grup rezultatet(Rezultatet). Një dritare pyetëse do të shfaqet në ekran në modalitetin e tabelës me regjistrime nga tabela PRODUCT që plotësojnë kushtet e përcaktuara të përzgjedhjes.
  4. Ruani kërkesën duke ekzekutuar komandën e duhur në menunë e kontekstit të kërkesës, e cila thirret kur kursori pozicionohet mbi kokën e kërkesës. Jepini një emër Shembull2.

Problemi 3... Supozoni se duhet të zgjidhni të gjitha faturat për një periudhë të caktuar. Rezultati duhet të përmbajë numrin e faturës (NOM_NAK), kodin e magazinës (CODE_SK), datën e dërgesës (DATE_SHIPPED) dhe vlerën totale të mallrave të dërguar (SUM_NUMBER).

  1. Krijoni një pyetje të re në modalitetin e projektimit, shtoni tabelën OVERLAY. Në dritaren e projektimit, tërhiqni dhe lëshoni në mënyrë të njëpasnjëshme të gjitha fushat e kërkuara nga lista e fushave të tabelës OVERLAY në formën e pyetjes.
  2. Për fushën DATE_DATE në rresht Kushtet e përzgjedhjes(Kriteret) shkruani midis # 01/11/2008 # Dhe # 03/31/2008 #. Operatori Between përcakton një interval datash (ANSI-92 përdor thonjëza të vetme 'në vend të #). Për më tepër, ky operator ju lejon të specifikoni një interval për një vlerë numerike.

Për tu konsoliduar, shikoni videon mësimore:

Në MS Access, ju mund të krijoni baza të të dhënave, tabela, forma dhe raporte të tjera. Ky artikull do të ndihmojë përdoruesin të ekzekutojë pyetje SQL në MS Access. Ju mund të ekzekutoni të njëjtat pyetje që SQL përdor për të marrë të dhëna nga një bazë të dhënash. Ky artikull ka për qëllim përdoruesit që sapo kanë filluar të mësojnë MS Access dhe duan të bëjnë Pyetjet SQL në MS Access. Kushti i vetëm që kërkohet para fillimit është që të keni qasje në bazën e të dhënave të përdorur në organizatë.

Hapa


Cfare te nevojitet

  • Përdoruesi duhet të ketë qasje në bazën e të dhënave të organizatës
  • Përdoruesi mund të kontaktojë mbështetjen e teknologjisë para fillimit të pyetjeve përmes MS Access

Neni Informacioni

Kjo faqe është shikuar 4,443 herë.

A të ndihmoj kjo?

Përshkrimi i projektit arsimor "Dyqan"

Skema e Marrëdhënieve me Tabelat

Përshkrimi i tabelave

m_kategori - kategori produktesh

m_të ardhurat - mbërritja e mallrave

m_ ardhura - konsumi i mallrave

m_product - referencë, përshkrim i mallrave

m_ furnizuesi - referencë; informacionin e furnizuesit

m_unit - referencë; njësitë

Për verifikimin praktik të shembujve të dhënë në këtë material mësimor, duhet të keni softuerin e mëposhtëm në dispozicion:

Microsoft Access 2003 ose më i ri.

Pyetja SQL në MS Access. Fillo

Për të parë përmbajtjen e tabelës, klikoni dy herë mbi emrin e tabelës në panelin në të majtë:

Për të kaluar në mënyrën e redaktimit të fushave të tabelës, në panelin e sipërm, zgjidhni mënyrën e konstruktorit:

Për të shfaqur rezultatin e një pyetjeje SQL, klikoni dy herë mbi emrin e pyetjes në panelin e majtë:

Për të kaluar në modalitetin e redaktimit të pyetjeve SQL, zgjidhni mënyrën SQL në panelin e sipërm:

Pyetje SQL. Shembuj në MS Access. ZGJIDH: 1-10

Në një pyetje SQL, deklarata SELECT përdoret për të zgjedhur nga tabelat e bazës së të dhënave.

Pyetja SQL Q001. Një shembull pyetjeje SQL për të marrë vetëm fushat e kërkuara në sekuencën e duhur:

SELECT dt, product_id, shuma


NGA m_të ardhurat;

Pyetja SQL Q002. Në këtë shembull pyetjeje SQL, ylli (*) përdoret për të shfaqur të gjitha kolonat e tabelës m_product, me fjalë të tjera, për të tërhequr të gjitha fushat e marrëdhënies m_product:

SELECT *
NGA produkti m_;

HetimiSQL Q003. Deklarata DISTINCT përdoret për të eleminuar regjistrimet e kopjuara dhe për të marrë shumë rekorde unike:

SELECT DISTINCT product_id


NGA m_të ardhurat;

Pyetja SQL Q004. Deklarata ORDER BY përdoret për të renditur (renditur) regjistrimet sipas vlerave të një fushe të caktuar. Emri i fushës ndjek deklaratën ORDER BY:

SELECT *
NGA m_të ardhurat


POROSIT ME ÇMIM;

Pyetja SQL Q005. Udhëzimi ASC përdoret përveç udhëzimit ORDER BY dhe shërben për të përcaktuar një rend në rritje. Deklarata DESC përdoret përveç deklaratës ORDER BY dhe përdoret për të përcaktuar renditjen zbritëse. Në rastin kur as ASC dhe as DESC nuk janë specifikuar, prania e ASC (e parazgjedhur) nënkuptohet:

SELECT *
NGA m_të ardhurat


POROSIA NGA dt DESC, çmimi;

Pyetja SQL Q006. Për të zgjedhur regjistrimet e nevojshme nga tabela, përdoren shprehje të ndryshme logjike që shprehin gjendjen e përzgjedhjes. Shprehja logjike shfaqet pas klauzolës WHERE. Një shembull i marrjes nga tabela m_income të gjitha regjistrimet për të cilat vlera e shumës është më e madhe se 200:

SELECT *
NGA m_të ardhurat


KU shuma> 200;

Pyetja SQL Q007. Për të shprehur kushte të vështira përdorni operacionet logjike DHE (lidhëzën), OSE (ndarjen) dhe JO (mohimin logjik). Një shembull i marrjes nga tabela m_outcome të gjitha shënimeve për të cilat vlera e shumës është 20 dhe vlera e çmimit është më e madhe se ose e barabartë me 10:

Çmimi


NGA m_ ardhja
KU shuma = 20 DHE çmimi> = 10;

Pyetja SQL Q008. Për t'u bashkuar me të dhënat nga dy ose më shumë tabela, përdorni udhëzimet e BASHKIMIT TN BRENDSHM, T L LEFN J T J LIDHUR, TO HUAJTIGH S DREJT. Shembulli i mëposhtëm merr fushat dt, product_id, shumën, çmimin nga tabela m_income dhe fushën e titullit nga tabela m_produkt. Regjistrimi i tabelës m_income është i lidhur me regjistrimin e tabelës m_produkt kur vlera e m_income.product_id është e barabartë me vlerën e m_product.id:



ON m_income.product_id = m_product.id;

Pyetja SQL Q009. Në këtë pyetje SQL, duhet t'i kushtoni vëmendje dy gjërave: 1) teksti i kërkimit është i mbyllur në thonjëza të vetme ("); 2) data është në formatin # Muaj / Ditë / Vit #, që është e vërtetë për MS Access Në sistemet e tjera, formati i datës mund të jetë i ndryshëm. Një shembull i shfaqjes së informacionit në lidhje me ardhjen e qumështit më 12 qershor 2011. Kushtojini vëmendje formatit të datës # 6/12/2011 #:

SELECT dt, product_id, titulli, shuma, çmimi


NGA m_të ardhura BASHKIMI i brendshëm m_produkt

KU titulli = "(! GJUH:: Qumësht" And dt=#6/12/2011#; !}

Pyetja SQL Q010. Udhëzimi METWEEN përdoret për të testuar për një sërë vlerash. Një shembull pyetjeje SQL që shfaq informacione për mallrat e marra midis 1 qershorit dhe 30 qershor 2011:

SELECT *
NGA m_të ardhura BASHKIMI i brendshëm m_produkt


ON m_income.product_id = m_product.id
KU DT Midis # 6/1/2011 # Dhe # 6/30/2011 #;

Pyetje SQL. Shembuj në MS Access. ZGJIDH: 11-20

Një pyetje SQL mund të futet brenda një tjetre. Një nënpyetje nuk është asgjë më shumë se një pyetje brenda një pyetjeje. Në mënyrë tipike, një nënpyetje përdoret në një klauzolë WHERE. Por ka mënyra të tjera për të përdorur nën -pyetje gjithashtu.

Kërkesa Q011. Informacioni në lidhje me produktet nga tabela m_product shfaqet, kodet e të cilave janë gjithashtu në tabelën m_income:

SELECT *
NGA produkti m_


KU ID IN (SELECT product_id FROM m_income);

Kërkesa Q012. Shfaqet lista e produkteve nga tabela m_product, kodet e të cilave nuk janë në tabelën m_outcome:

SELECT *
NGA produkti m_


KU ID JO N IN (SELECT product_id FROM m_outcome);

Kërkesa Q013. Kjo pyetje SQL shfaq një listë unike të kodeve të produkteve dhe emrave që kanë kode në tabelën m_income por jo në tabelën m_outcome:

SELECT DISTINCT product_id, titulli


NGA m_të ardhura BASHKIMI i brendshëm m_produkt
ON m_income.product_id = m_product.id
KU produkti_NUK INSHT IN (SELECT product_id FROM m_comecome);

Kërkesa Q014 Një listë unike e kategorive shfaqet nga tabela m_kategori, emrat e të cilave fillojnë me shkronjën M:

ZGJIDH titullin DISTINCT


NGA produkti m_
KU titulli LIKE "М *";

Kërkesa Q015. Një shembull i kryerjes së operacioneve aritmetike në fushat në një kërkesë dhe riemërtimi i fushave në një kërkesë (alias). Ky shembull llogarit shumën e shpenzimit = sasinë * çmimin dhe marzhin e fitimit për secilin regjistrim të shpenzimeve të artikujve, duke supozuar se fitimi është 7 përqind e shumës së shitjeve:


shuma * çmimi / 100 * 7 AS fitim
NGA m_ardhja;

Kërkesa Q016. Duke analizuar dhe thjeshtuar operacionet aritmetike, mund të rrisni shpejtësinë e ekzekutimit të pyetjes:

SELECT dt, product_id, shuma, çmimi, shuma * çmimi AS result_sum,


rezultati_sum * 0.07 AS fitim
NGA m_ardhja;

Kërkesa Q017. Duke përdorur deklaratën INNER JOIN, mund të bashkoni të dhëna nga tabela të shumta. Në shembullin e mëposhtëm, në varësi të vlerës së ctgry_id, çdo rekord i tabelës m_income përputhet me emrin e kategorisë nga tabela m_kategori të cilës i përket produkti:

SELECT c.title, b.title, dt, shuma, çmimi, shuma * çmimi SI të ardhurat_sum


NGA (m_ardhja SI P JRBASHKIM i brendshëm m_produkti AS b në a.product_id = b.id)
BASHKIMI I BRENDSHM m_kategori AS c ON ON b.ctgry_id = c.id
URDHR PYR c.titull, b.titull;

Kërkesa Q018. Funksionet si SUM - shuma, COUNT - shuma, AVG - mesatarja aritmetike, MAX - vlera maksimale, MIN - vlera minimale quhen funksione agregate. Ata marrin vlera të shumta dhe, pasi përpunohen, kthejnë një vlerë të vetme. Një shembull i llogaritjes së shumës së produktit të fushave të shumës dhe çmimit duke përdorur funksionin e përgjithshëm SUM:

SELECT SUM (shuma * çmimi) AS Total_Sum


NGA m_të ardhurat;

Kërkesa Q019. Një shembull i përdorimit të funksioneve të shumta agregate:

SELECT Shuma (shuma) AS Shuma_Sum, AVG (shuma) AS Shuma_AVG,


MAX (shuma) AS Shuma_Maks, Min (sasi) AS Shuma_Min,
Numëroni (*) AS Total_Numer
NGA m_të ardhurat;

Kërko Q020. Ky shembull llogarit shumën e të gjithë artikujve me kodin 1 të kapitalizuar në qershor 2011:

SELECT Shuma (shuma * çmimi) SI të ardhura_sumë


NGA m_të ardhurat
KU produkti_id = 1 DHE dt Midis # 6/1/2011 # DHE # 6/30/2011 #;.

Kërkesa Q021. Pyetja e mëposhtme SQL llogarit sasinë e shitur për artikujt me kodin 4 ose 6:

SELECT Shuma (shuma * çmimi) si rezultat_sum


NGA m_ ardhja
KU produkt_id = 4 OSE produkt_id = 6;

Kërkesa Q022. Isshtë llogaritur për atë sasi të shitur më 12 qershor 2011 të mallrave me kod 4 ose 6:

SELECT Shuma (shuma * çmimi) SI rezultati_sumë


NGA m_ ardhja
KU (produkt_id = 4 OSE produkt_id = 6) DHE dt = # 6/12/2011 #;

Kërkesa Q023. Detyra është si më poshtë. Llogaritni shumën totale të mallrave në kategorinë "Furrë buke" që u kapitalizuan.

Për të zgjidhur këtë problem, duhet të veproni me tre tabela: m_income, m_product dhe m_category, sepse:


- sasia dhe çmimi i mallrave të kapitalizuar ruhen në tabelën e të ardhurave m_;
- kodi i kategorisë së secilit produkt ruhet në tabelën m_produkt;
- emri i titullit të kategorisë ruhet në tabelën m_kategori.

Për të zgjidhur këtë problem, ne do të përdorim algoritmin e mëposhtëm:


- përcaktimi i kodit të kategorisë "Produkte furre" nga tabela m_kategori duke përdorur një nën -pyetje;
- bashkimi i tabelave m_income dhe m_produkt për të përcaktuar kategorinë e secilit produkt të kapitalizuar;
- llogaritja e shumës së faturës (= sasia * çmimi) për mallrat, kodi i kategorisë i të cilit është i barabartë me kodin e përcaktuar nga nënpyetja e mësipërme.
ZGJIDH
NGA m_produkti SI PORBASHKIM i brendshëm m_ardhje AS b në a.id = b.product_id
KU ctgry_id = (SELECT id FROM m_category WHERE title = "(! LANG: Bakery"); !}

Kërkesa Q024. Ne do të zgjidhim problemin e llogaritjes së sasisë totale të mallrave të kapitalizuar në kategorinë "Produkte furre" duke përdorur algoritmin e mëposhtëm:
- për çdo regjistrim të tabelës m_in ardhura, në varësi të vlerës së produktit_id, nga tabela e m_kategorisë, përputhet me emrin e kategorisë;
- zgjidhni të dhënat për të cilat kategoria është e barabartë me "Produktet e furrës";
- llogarit sasinë e faturës = sasia * çmimi.

NGA (m_produkti SI BASHKIM i brendshëm m_ardhje AS b në a.id = b.product_id)

KU c.title = "(! GJUH:: Furrë buke"; !}

Kërkesa Q025. Ky shembull llogarit sa artikuj janë konsumuar:

SELECT COUNT (product_id) AS product_cnt


NGA (SELECT DISTINCT product_id FROM m_comecome) AS t;

Kërkesa Q026. Klauzola GROUP BY përdoret për të grupuar regjistrimet. Në mënyrë tipike, regjistrimet grupohen sipas vlerës së një ose më shumë fushave, dhe një lloj operacioni i përgjithshëm zbatohet për secilin grup. Për shembull, pyetja e mëposhtme gjeneron një raport mbi shitjen e mallrave. Kjo do të thotë, krijohet një tabelë që përmban emrat e mallrave dhe shumën për të cilën ato janë shitur:

ZGJIDH titullin, SUM (shuma * çmimi) SI rezultati_sum


NGA m_produkti SI BASHKIMI I BRENDSHM m_ardhja AS b
ON a.id = b.product_id
GRUPI NGA titulli;

Kërkesa Q027. Raporti i shitjeve sipas kategorive. Kjo do të thotë, krijohet një tabelë që përmban emrat e kategorive të produkteve, shumën totale për të cilën janë shitur produktet e këtyre kategorive dhe shumën mesatare të shitjeve. Funksioni ROUND përdoret për të rrumbullakuar vlerën mesatare në një të qindtën (shifra e dytë pas ndarësit dhjetor):

SELECT c.title, SUM (shuma * çmimi) AS result_sum,


ROUND (AVG (shuma * çmimi), 2) AS result_sum_avg
NGA (m_produkti SI BASHKIM i brendshëm m_ardhja AS b ON a.id = b.product_id)
BASHKIMI I BRENDSHM m_kategori AS c ON a.ctgry_id = c.id
GRUPI NGA c.titulli;

Kërkesa Q028. Për secilin produkt, numri i përgjithshëm dhe mesatar i faturave të tij llogaritet dhe shfaq informacion në lidhje me mallrat, numri i përgjithshëm i faturave të të cilave nuk është më pak se 500:

SELECT product_id, SUM (shuma) AS Shuma_sum,


Rrumbullak (Mesatarja (shuma), 2) AS sasia_avg
NGA m_të ardhurat
GRUPI NGA product_id
KA Shuma (shuma)> = 500;

Kërkesa Q029. Ky pyetësor llogarit për secilin artikull shumën dhe mesataren e arkëtimeve të tij në tremujorin e dytë të 2011. Nëse sasia e përgjithshme e mallrave të marrë nuk është më pak se 1000, atëherë informacioni në lidhje me këtë produkt shfaqet:

ZGJIDH titullin, SUM (shuma * çmimi) SI të ardhura_sumë


NGA m_të ardhura nga një produkt i_BASHKMBRIN i brendshëm b ON a.product_id = b.id
KU DT NDWRMJET # 4/1/2011 # DHE # 6/30/2011 #
GRUPI NGA titulli
KA SHUMUM (shuma * çmimi)> = 1000;

Kërkesa Q030. Në disa raste, ju duhet të hartoni çdo regjistrim të një tabele të caktuar në secilin regjistrim të një tabele tjetër; ajo që quhet produkt Kartezian. Tabela që rezulton nga një lidhje e tillë quhet tabela e Dekartit. Për shembull, nëse një tabelë A ka 100 regjistrime dhe tabela B ka 15 regjistrime, atëherë tabela e tyre e Dekartit do të përbëhet nga 100 * 15 = 150 regjistrime. Pyetja e mëposhtme bashkon çdo rekord në tabelën m_income me çdo rekord në tabelën m_outcome:
NGA m_të ardhurat, m_ ardhurat;

Kërkesa Q031. Një shembull i grupimit të regjistrimeve sipas dy fushave. Pyetja e mëposhtme SQL llogarit për secilin furnizues sasinë dhe sasinë e mallrave të marra prej tij:


SUM (shuma * çmimi) SI të ardhura_sumë

Kërko Q032. Një shembull i grupimit të regjistrimeve sipas dy fushave. Pyetja e mëposhtme llogarit, për secilin furnizues, sasinë dhe sasinë e produkteve të tyre të shitura nga ne:

SELECT supplier_id, product_id, SUM (shuma) AS Shuma_sum,




GRUPI NGA furnizuesi_id, produkti_id;

Kërkesa Q033. Në këtë shembull, dy pyetjet e mësipërme (q031 dhe q032) përdoren si nënpyetje. Rezultatet e këtyre pyetjeve duke përdorur metodën LEFT JOIN kombinohen në një raport. Pyetjet e mëposhtme raportojnë për sasinë dhe sasinë e produkteve të marra dhe shitura për secilin furnizues. Ju lutemi vini re se nëse një produkt ka mbërritur tashmë, por ende nuk është shitur, atëherë qeliza result_sum për këtë rekord do të jetë bosh. se kjo pyetje është vetëm një shembull i përdorimit të pyetjeve relativisht komplekse si një nënpyetje. Performanca e kësaj pyetjeje SQL me një sasi të madhe të dhënash është e diskutueshme:

SELECT *
NGA



SUM (shuma * çmimi) SI të ardhura_sumë

ON a.product_id = b.id GRUPI NGA furnizuesi_id, product_id) AS a
LINI BASHKIM
(SELECT supplier_id, product_id, SUM (shuma) AS Shuma_sum,
SUM (shuma * çmimi) SI rezultati_sum
NGA m_ardhja SI PORBASHKIM i brendshëm m_produkti AS b
ON a.product_id = b.id GRUPI NGA furnizuesi_id, product_id) AS b
ON (a.product_id = b.product_id) AND (a.supplier_id = b.supplier_id);

Kërkesa Q034. Në këtë shembull, dy pyetjet e mësipërme (q031 dhe q032) përdoren si nën -pyetje. Rezultatet e këtyre pyetjeve duke përdorur metodën RIGTH JOIN kombinohen në një raport. Pyetja tjetër shfaq një raport mbi sasinë e pagesave nga secili klient për sistemet e pagesave që kanë përdorur dhe sasinë e investimeve që kanë bërë. Pyetjet e mëposhtme raportojnë për sasinë dhe sasinë e produkteve të marra dhe shitura për secilin furnizues. Duhet të theksohet se nëse një produkt tashmë është shitur, por ende nuk ka mbërritur, atëherë qeliza e të ardhurave_sum për këtë rekord do të jetë bosh. Prania e qelizave të tilla boshe është një tregues i një gabimi në llogaritjen e shitjeve, pasi para shitjes, së pari është e nevojshme që produkti përkatës të arrijë:

SELECT *
NGA


(SELECT supplier_id, product_id, SUM (shuma) AS Shuma_sum,
SUM (shuma * çmimi) SI të ardhura_sumë
NGA m_të ardhura SI BASHKIMI i brendshëm m_produkti AS b ON a.product_id = b.id
GRUPI NGA furnizuesi_id, produkti_id) SI a
BASHKIMI I DREJT
(SELECT supplier_id, product_id, SUM (shuma) AS Shuma_sum,
SUM (shuma * çmimi) SI rezultati_sum
NGA m_ ardhja SI BASHKIMI I brendshëm m_produkti AS b ON a.product_id = b.id
GRUPI NGA furnizuesi_id, produkti_id) AS b
ON (a.supplier_id = b.supplier_id) AND (a.product_id = b.product_id);

Kërkesa Q035. Shfaq një raport mbi sasinë e të ardhurave dhe shpenzimeve sipas produktit. Për ta bërë këtë, krijohet një listë e produkteve sipas tabelave m_income dhe m_outcome, pastaj për secilin produkt nga kjo listë, llogariten shuma e arkëtimeve të tij sipas tabelës m_in ardhura dhe shuma e shpenzimeve të tij sipas tabelës m_outcome:

SELECT product_id, SUM (in_amount) AS Sasia e të ardhurave,


SUM (jashtë_sasë) SI sasi rezultati
NGA
(SELECT produkti_id, shuma AS në_shumë, 0 AS jashtë_shumë
NGA m_të ardhurat
BASHKIM GJITH
SELECT product_id, 0 AS in_amount, shuma AS out_amount
NGA m_ ardhja) SI t
GRUPI NGA produkti_id;

Kërkesa Q036. EXISTS kthen TRUE nëse grupi i kaluar në të përmban elemente. Funksioni EXISTS kthen FALSE nëse grupi që i është kaluar është bosh, domethënë nuk përmban elemente. Pyetja e mëposhtme shfaq kodet e produktit që përmbahen në tabelat m_income dhe m_outcome:

SELECT DISTINCT product_id


NGA m_të ardhurat AS a
KU EKZISTON (ZGJIDH produktin_ID NGA m_ dalja AS b

Kërkesa Q037. Kodet e produktit shfaqen, të cilat përmbahen si në tabelën m_income ashtu edhe në tabelën m_outcome:

SELECT DISTINCT product_id


NGA m_të ardhurat AS a
KU produkti_idhe (SELECT product_id FROM m_comecome)

Kërkesa Q038. Kodet e produktit shfaqen, të cilat përmbahen si në tabelën m_income, por nuk përmbahen në tabelën m_outcome:

SELECT DISTINCT product_id


NGA m_të ardhurat AS a
KU NUK Ekziston (SELECT product_id FROM m_outcome AS b
KU b.product_id = a.product_id);

Kërkesa Q039. Shfaqet një listë e produkteve me shitjet maksimale. Algoritmi është si më poshtë. Për secilin produkt, llogaritet sasia e shitjeve të tij. Pastaj, përcaktohet maksimumi i këtyre shumave. Pastaj, për secilin produkt, totali i shitjeve të tij llogaritet përsëri, dhe shfaqet kodi dhe sasia e shitjeve të produkteve, totali i të cilave është i barabartë me maksimumin:

SELECT product_id, SUM (shuma * çmimi) AS Shuma_sum


NGA m_ ardhja
GRUPI NGA product_id
KA SHUMUM (shuma * çmimi) = (ZGJIDH MAX (s_shumë)
NGA (SELECT SUM (shuma * çmimi) SI sasia NGA m_outcome GROUP BY product_id));

Kërkesa Q040. Fjala e rezervuar IIF ( operatori me kusht) përdoret për të vlerësuar shprehje logjike dhe kryerjen e një ose një veprimi tjetër në varësi të rezultatit (E VUERTET or ose E FALSE). Në shembullin e mëposhtëm, furnizimi i një artikulli konsiderohet "i vogël" nëse sasia është më e vogël se 500. Përndryshe, domethënë, sasia e marrjes është më e madhe ose e barabartë me 500, furnizimi konsiderohet "i madh":

SELECT dt, product_id, shuma,


IIF (shuma NGA m_të ardhurat;

Pyetja SQL Q041. Në rastin kur operatori IIF përdoret disa herë, është më i përshtatshëm ta zëvendësoni atë me operatorin SWITCH. Operatori SWITCH (operatori me zgjedhje të shumëfishtë) përdoret për të vlerësuar një shprehje Boolean dhe për të kryer një veprim bazuar në rezultatin. Në shembullin e mëposhtëm, loja e dorëzuar konsiderohet "e vogël" nëse sasia e mallrave në lot është më pak se 500. Përndryshe, domethënë, nëse sasia e mallrave është më e madhe ose e barabartë me 500, loti konsiderohet "i madh ":

SELECT dt, product_id, shuma,


SWITCH (shuma = 500, "e madhe") Shenja AS
NGA m_të ardhurat;

Kërkesa Q042. Në kërkesën tjetër, nëse sasia e mallrave në serinë e marrë është më pak se 300, atëherë grupi konsiderohet "i vogël". Përndryshe, domethënë, nëse shuma kushton SELECT dt, product_id, shuma,
IIF (shuma IIF (shuma NGA m_të ardhurat;

Pyetja SQL Q043. Në kërkesën tjetër, nëse sasia e mallrave në serinë e marrë është më pak se 300, atëherë grupi konsiderohet "i vogël". Përndryshe, domethënë, nëse shuma kushton SELECT dt, product_id, shuma,
SWITCH (shuma shuma sasi> = 1000, "e madhe") AS shenjë
NGA m_të ardhurat;

Pyetja SQL Q044. Në pyetjen tjetër, shitjet ndahen në tre grupe: të vogla (deri në 150), të mesme (nga 150 në 300), të mëdha (300 ose më shumë). Për më tepër, për secilin grup, totali llogaritet:

SELECT Category, SUM (result_sum) AS Ctgry_Total


NGA (ZGJIDH shumën * çmimin si rezultat_sumë,
IIf (shuma * çmimi IIf (shuma * çmimi NGA m_ ardhja) AS t
GRUPI NGA Kategoria;

Pyetja SQL Q045. Funksioni DateAdd përdoret për të shtuar ditë, muaj ose vite në një datë të caktuar dhe për të marrë një datë të re. Pyetja tjetër:
1) shton 30 ditë në datën nga fusha dt dhe shfaq datën e re në fushën dt_plus_30d;
2) shton 1 muaj në datën nga fusha dt dhe shfaq datën e re në fushën dt_plus_1m:

SELECT dt, dateadd ("d", 30, dt) AS dt_plus_30d, dateadd ("m", 1, dt) AS dt_plus_1m


NGA m_të ardhurat;

Pyetja SQL Q046. Funksioni DateDiff është krijuar për të llogaritur ndryshimin midis dy datave në njësi të ndryshme (ditë, muaj ose vite). Pyetja e mëposhtme llogarit ndryshimin midis datës në fushën dt dhe datës aktuale në ditë, muaj dhe vite:

SELECT dt, DateDiff ("d", dt, Date ()) AS dita e fundit,


DateDiff ("m", dt, Data ()) AS_ muajt e fundit,
DataDiff ("yyyy", dt, Data ()) AS vitet e fundit_
NGA m_të ardhurat;

Pyetja SQL Q047. Numri i ditëve nga data e marrjes së mallrave (tabela m_in ardhura) deri në datën aktuale llogaritet duke përdorur funksionin DateDiff dhe data e skadimit krahasohet (tabela m_produkt):


DateDiff ("d", dt, Data ()) AS ditët e fundit
NGA m_ardhja SI PORBASHKIM i brendshëm m_produkti AS b
ON a.product_id = b.id;

Pyetja SQL Q048. Numri i ditëve nga data e marrjes së mallrave deri në datën aktuale llogaritet, atëherë kontrollohet nëse ky numër tejkalon datën e skadimit:

SELECT a.id, product_id, dt, lifedays,


DateDiff ("d", dt, Data ()) AS ditët e fundit, IIf (ditët e fundit> jetëgjatësi, "Po", "Jo") AS date_expire
NGA m_të ardhura nga produkti i_BASHKIMI I Brendshëm b
ON a.product_id = b.id;

Pyetja SQL Q049. Numri i muajve nga data e marrjes së mallrave deri në datën aktuale llogaritet. Kolona month_last1 llogarit numrin absolut të muajve, kolona month_last2 llogarit numrin e muajve të plotë:

SELECT dt, DateDiff ("m", dt, Date ()) AS month_last1,


DataDiff ("m", dt, Data ()) - iif (ditë (dt)> ditë (datë ()), 1,0) AS month_last2
NGA m_të ardhurat;

Pyetja SQL Q050. Paraqitet një raport tremujor mbi sasinë dhe sasinë e mallrave të kapitalizuar për vitin 2011:

SELECT kvartal, SUM (result_sum) AS Total


NGA (ZGJIDH shumën * çmimin AS rezultati_sum, muaji (dt) AS m,
KALO (m = 10.4) AS kvartal
NGA m_të ardhurat KU viti (dt) = 2011) AS t
GRUPI NGA kvartal;

Kërkesa Q051. Pyetja e mëposhtme ndihmon për të zbuluar nëse përdoruesit ishin në gjendje të fusnin informacion në sistem për konsumin e një artikulli në një sasi më të madhe se shuma e marrjes së artikullit:

SELECT product_id, SUM (in_sum) AS درآمد_sum, SUM (out_sum) AS result_sum


NGA (ZGJIDH ID_ të produktit, shuma * çmimi si në_sum, 0 si shuma jashtë_
nga m_të ardhurat
BASHKIM GJITH
SELECT product_id, 0 si in_sum, shuma * çmimi si out_sum
nga m_ ardhja) SI t
GRUPI NGA product_id
KA SHUMUM (në_përmbledhje)
Kërkesa Q052. Numërimi i rreshtave të kthyer nga një pyetje zbatohet në mënyra të ndryshme. Për shembull, ju mund të rinumëroni rreshtat e një raporti të përgatitur në MS Access me anë të vetë MS Access. Ju gjithashtu mund të rinovoni duke përdorur gjuhë programimi të tilla si VBA ose PHP. Sidoqoftë, ndonjëherë kjo duhet të bëhet në vetë pyetjen SQL. Pra, pyetja e mëposhtme do të numërojë rreshtat e tabelës m_income sipas rendit rritës të vlerave të fushës ID:

SELECT COUNT (*) si N, b.id, b.product_id, b.amount, b.çmimi


NGA m_të ardhura nga një hyrje e brendshme m_të ardhura b N a GRUPIN A.id NGA b.id, b.produkt_id, b.amount, b.çmimi;

Kërkesa Q053. Pesë të parët në mesin e produkteve shfaqen nga sasia e shitjeve. Pesë regjistrimet e para shfaqen duke përdorur deklaratën TOP:

SELECT TOP 5, product_id, shuma (shuma * çmimi) AS summa


NGA m_ ardhja
GRUPI NGA product_id
POROSIT NGA shuma (shuma * çmim) DESC;

Kërkesa Q054. Pesë udhëheqësit midis produkteve sipas sasisë së shitjeve shfaqen, dhe linjat numërohen si rezultat:

SELECT COUNT (*) AS N, b.product_id, b.summa


NGA


NGA m_outcome GRUPI NGA produkti_id) AS a
BASHKIMI I BRENDSHM
(SELECT product_id, shuma (shuma * çmimi) AS summa,
shuma * 10000000 + ID_ e produktit AS
NGA m_ dalja GRUPI NGA produkti_id) AS b
ON a.id> = b.id
GROUP NGA b.produkti, b.summa
KA PASURINUNT (*) POROSIT PUNTR NUMUNTRIM (*);

Kërkesa Q055. Pyetja e mëposhtme SQL tregon përdorimin e funksioneve matematikore COS, SIN, TAN, SQRT, ^ dhe ABS në MS Access SQL:

SELECT (zgjidhni numërimin (*) nga m_in ardhura) si N, 3.1415926 si pi, k,


2 * pi * (k-1) / N si x, COS (x) si COS_, SIN (x) si SIN_, TAN (x) si TAN_,
SQR (x) si SQRT_, x ^ 3 si "x ^ 3", ABS (x) si ABS_
NGA (ZGJIDH NUMRI (*) SI k
NGA m_të ardhura SI BASHKIMI I brendshëm m_ardhje AS b N a a.idGROUP NGA b.id) t;

Pyetje SQL. Shembuj në MS Access. PPRDITSIM: 1-10

Kërkoni U001. Pyetja e mëposhtme e ndryshimit të SQL rrit çmimet e artikujve me kodin 3 në tabelën e të ardhurave m_ me 10%:

PPRDITSIM m_të ardhura ÇMIMI SET = çmimi * 1.1


KU produkti_id = 3;

Kërkoni U002. Pyetja e mëposhtme për azhurnimin e SQL rrit numrin e të gjitha produkteve që fillojnë me fjalën "Vaj" në tabelën m_income me 22 njësi:

UPDATE m_in ardhura SET shuma = shuma + 22


KU produkti_idhe (SELECT id FROM m_product KU titulli LIKE "Oil *");

Kërkoni U003. Pyetja e mëposhtme SQL për ndryshimet në tabelën m_outcome ul çmimet për të gjitha mallrat e prodhuara nga OOO "Sladkoe" me 2 përqind:

UPDATE m_outcome ÇMIMI SET = çmimi * 0.98


KU produkti_HYR
(SELECT a.id FROM m_product a BASHKIMI I Brendshëm m_ furnizuesi b_
ON a.supplier_id = b.id KU b.title = "(! LANG: OOO"Сладкое"");. !}

Secili prej nesh takohet rregullisht dhe përdor baza të ndryshme të të dhënave. Kur zgjedhim një adresë E -mail, ne jemi duke punuar me një bazë të dhënash. Bazat e të dhënave përdorin motorët e kërkimit, bankat për të ruajtur të dhënat e klientëve, etj.

Por pavarësisht përdorimit të vazhdueshëm të bazave të të dhënave, madje edhe për shumë zhvillues sistemet softuerike shumë "pika bosh" mbeten për shkak të interpretimeve të ndryshme të termave të njëjtë. Ne do të japim një përkufizim të shkurtër të termave bazë të bazës së të dhënave para se të shikojmë gjuhën SQL. Kështu që.

Baza e të dhënave - një skedar ose grup skedarësh për ruajtjen e strukturave të të dhënave të porositura dhe marrëdhëniet e tyre. Shumë shpesh një sistem kontrolli quhet një bazë të dhënash - është vetëm një ruajtje e informacionit në një format të caktuar dhe mund të funksionojë me DBMS të ndryshme.

tavoline - Imagjinoni një dosje që ruan dokumentet e grupuar sipas një kriteri të caktuar, për shembull, një listë porosish për muajin e fundit. Kjo është tabela në kompjuter. Një tabelë e veçantë ka emrin e vet unik.

Lloji i të dhënave - lloji i informacionit që lejohet të ruhet në një kolonë ose rresht të veçantë. Këto mund të jenë numra ose tekst në një format të veçantë.

Kolona dhe rreshti- ne të gjithë kemi punuar me tabela, të cilat gjithashtu kanë rreshta dhe kolona. Çdo bazë e të dhënave relacionale punon me tabela në një mënyrë të ngjashme. Linjat ndonjëherë quhen regjistrime.

Çelesi primar- çdo rresht i një tabele mund të ketë një ose më shumë kolona për identifikimin e tij unik. Pa një çelës kryesor, është shumë e vështirë të azhurnoni, modifikoni dhe fshini rreshtat e kërkuar.

Çfarë është SQL?

SQL(Anglisht - gjuhë e strukturuar e pyetjeve) është zhvilluar vetëm për të punuar me bazat e të dhënave dhe aktualisht është standardi për të gjitha DBMS të njohura. Sintaksa e gjuhës përbëhet nga një numër i vogël operatorësh dhe është i lehtë për tu mësuar. Por, pavarësisht nga thjeshtësia e jashtme, ajo lejon krijim sql pyetje për operacione komplekse me bazat e të dhënave të çdo madhësie.

Që nga viti 1992, ekziston një standard i pranuar përgjithësisht i quajtur ANSI SQL. Ai përcakton sintaksën dhe funksionet themelore të operatorëve dhe mbështetet nga të gjithë drejtuesit e tregut DBMS, siç është ORACLE. Isshtë e pamundur të merren parasysh të gjitha tiparet e gjuhës në një artikull të vogël, kështu që ne do të shqyrtojmë shkurtimisht vetëm pyetjet themelore SQL Me Shembujt tregojnë qartë thjeshtësinë dhe aftësitë e gjuhës:

  • krijimin e bazave të të dhënave dhe tabelave;
  • marrja e të dhënave;
  • shtimi i shënimeve;
  • modifikimi dhe fshirja e informacionit.

Llojet e të dhënave SQL

Të gjitha kolonat në tabelën e bazës së të dhënave ruajnë të njëjtin lloj të dhënash. Llojet e të dhënave në SQL janë të njëjta si në gjuhët e tjera të programimit.

Krijoni tabela dhe baza të dhënash

Ekzistojnë dy mënyra për të krijuar baza të të dhënave të reja, tabela dhe pyetje të tjera në SQL:

  • përmes tastierës DBMS
  • Përdorimi i mjeteve të administrimit në internet të përfshira me serverin e bazës së të dhënave.

Një operator i ri krijon një bazë të dhënash të re KRIJO BAZ T DHATNAVE<наименование базы данных>; ... Siç mund ta shihni, sintaksa është e thjeshtë dhe koncize.

Ne krijojmë tabela brenda bazës së të dhënave me deklaratën CREATE TABLE me parametrat e mëposhtëm:

  • emri i tabelës
  • emrat e kolonave dhe llojet e të dhënave

Si shembull, le të krijojmë një tabelë të Mallrave me kolonat e mëposhtme:

Ne krijojmë një tabelë:

KRIJO TABEL Mall

(commidity_id CHAR (15) NOT NULL,

vendor_id CHAR (15) JO NULL,

emri i mallit CHAR (254) NULL,

çmimi i mallit DEKIMAL (8,2) NULL,

commodity_desc VARCHAR (1000) NULL);

Tabela ka pesë kolona. Emri pasohet nga lloji i të dhënave, kolonat ndahen me presje. Vlera e kolonës mund të jetë null (NULL) ose duhet të plotësohet (JO NULL), dhe kjo përcaktohet kur krijohet tabela.

Marrja e të dhënave nga një tabelë

Operatori i përzgjedhjes së të dhënave është pyetjet më të përdorura SQL. Për të marrë informacion, është e nevojshme të tregoni se çfarë duam të zgjedhim nga një tabelë e tillë. Le të fillojmë me një shembull të thjeshtë:

ZGJIDH emrin e mallit NGA Mall

Pas deklaratës SELECT, ne specifikojmë emrin e kolonës për të marrë informacionin, dhe FROM përcakton tabelën.

Rezultati i ekzekutimit të pyetjes do të jetë të gjitha rreshtat e tabelës me vlerat e Emrit të Mallrave sipas rendit në të cilin janë futur në bazën e të dhënave, d.m.th. pa asnjë lloj renditjeje. Për të porositur rezultatin përdoret një klauzolë shtesë ORDER BY.

Për një pyetje në disa fusha, ne i listojmë ato të ndara me presje, si në shembullin e mëposhtëm:

SELECT commidity_id, commodity_name, commodity_prome FROM Commodity

Isshtë e mundur të merret vlera e të gjitha kolonave të një rreshti si rezultat i një pyetjeje. Për ta bërë këtë, përdorni shenjën "*":

SELECT * NGA Malli

  • Për më tepër SELECT mbështet:
  • Renditja e të dhënave (ORDER NGA operatori)
  • Përzgjedhja sipas kushteve (KU)
  • Afati i grupimit (GRUPI NGA)

Shtoni rreshtin

Për të shtuar një rresht në tabelë, përdoren pyetjet SQL me deklaratën INSERT. Shtimi mund të bëhet në tre mënyra:

  • shtoni një linjë të re të tërë;
  • pjesë e një vargu;
  • rezultatet e pyetjes.

Për të shtuar një rresht të plotë, duhet të specifikoni emrin e tabelës dhe vlerat e kolonave (fushave) të rreshtit të ri. Le të japim një shembull:

INSERT N VLERAT E Mallrave ("106", "50", "Coca-Cola", "1.68", "Jo Alcogol,)

Shembulli shton një produkt të ri në tabelë. Vlerat specifikohen pas VLERAVE për secilën kolonë. Nëse nuk ka vlerë përkatëse për kolonën, atëherë NULL duhet të specifikohet. Kolonat mbushen me vlera sipas rendit të specifikuar kur është krijuar tabela.

Nëse shtoni vetëm një pjesë të një rreshti, duhet të specifikoni në mënyrë të qartë emrat e kolonave, si në shembullin:

INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

VLERAT ("106", '50 "," Coca-Cola ",)

Ne futëm vetëm identifikuesit e produktit, furnizuesit dhe emrin e tij, dhe lëmë pjesën tjetër të fushave bosh.

Shtimi i rezultateve të pyetjeve

INSERT përdoret kryesisht për të shtuar rreshta, por mund të përdoret gjithashtu për të shtuar rezultatet e një deklarate SELECT.

Ndryshimi i të dhënave

Për të ndryshuar informacionin në fushat e tabelës së bazës së të dhënave, duhet të përdorni deklaratën UPDATE. Operatori mund të përdoret në dy mënyra:

  • Të gjitha rreshtat në tabelë janë përditësuar.
  • Vetëm për një linjë të veçantë.

UPDATE ka tre elementë kryesorë:

  • tabela në të cilën duhet të bëni ndryshime;
  • emrat e fushave dhe vlerat e tyre të reja;
  • kushtet për zgjedhjen e rreshtave për tu ndryshuar.

Le të shikojmë një shembull. Le të themi se çmimi i artikullit me ID = 106 ka ndryshuar, kështu që kjo linjë duhet të përditësohet. Ne shkruajmë operatorin e mëposhtëm:

PPRDITSIMI I Mallrave SET commodity_price = "3.2" WHERE commodity_id = "106"

Ne treguam emrin e tabelës, në rastin tonë Mall, ku do të kryhet përditësimi, pastaj pas SET - vlera e re e kolonës dhe u gjet hyrja e dëshiruar duke specifikuar vlerën e kërkuar të ID në WHERE.

Për të modifikuar kolona të shumta, çifte të shumta kolone-vlerë përcaktohen pas deklaratës SET, të ndara me presje. Le të shikojmë një shembull që përditëson emrin dhe çmimin e një produkti:

PPRDITSIMI I Mallrave SET commodity_name = 'Fanta', commodity_price = "3.2" WHERE commodity_id = "106"

Për të hequr informacionin në një kolonë, mund ta vendosni në NULL nëse struktura e tabelës e lejon atë. Duhet mbajtur mend se NULL është saktësisht vlera "jo", jo zero në formën e tekstit ose numrave. Fshini përshkrimin e produktit:

P URDITSIMI I Mallrave SET commodity_desc = NULL WHERE commodity_id = "106"

Fshirja e linjave

Pyetjet SQL për të fshirë rreshtat në një tabelë ekzekutohen nga deklarata DELETE. Ekzistojnë dy raste përdorimi:

  • rreshta të caktuar fshihen në tabelë;
  • të gjitha rreshtat në tabelë fshihen.

Një shembull i fshirjes së një rreshti nga një tabelë:

FSHIJ NGA Mallrat KU commodity_id = "106"

Pas FSHIRJES NGA, specifikoni emrin e tabelës në të cilën rreshtat do të fshihen. Klauzola WHERE përmban një kusht me të cilin rreshtat do të zgjidhen për fshirje. Në shembullin, ne po fshijmë linjën për produktin me ID = 106. Veryshtë shumë e rëndësishme të specifikoni KU. heqja dorë nga kjo deklaratë do të fshijë të gjitha rreshtat në tabelë. Kjo vlen edhe për ndryshimin e vlerës së fushave.

Deklarata DELETE nuk përfshin emrat e kolonave ose metakarakterët. Ai fshin plotësisht rreshtat, por nuk mund të fshijë një kolonë të vetme.

Përdorimi i SQL në Microsoft Access

Zakonisht përdoret në mënyrë interaktive për të krijuar tabela, baza të të dhënave, për të menaxhuar, modifikuar, analizuar të dhënat në një bazë të dhënash dhe për të futur pyetjet e SQL Access përmes një Query Designer të përshtatshëm ndërveprues, duke përdorur të cilat mund të ndërtoni dhe ekzekutoni menjëherë deklarata SQL të çdo kompleksiteti ...

Gjithashtu mbështetet mënyra e hyrjes në server, në të cilën Access DBMS mund të përdoret si gjenerues i pyetjeve SQL për çdo burim të dhënash ODBC. Kjo aftësi lejon që aplikacionet Access të ndërveprojnë me çdo format.

Zgjatjet SQL

Meqenëse pyetjet SQL nuk kanë të gjitha aftësitë e gjuhëve programuese procedurale siç janë sythe, degë, etj., Shitësit e DBMS zhvillojnë versionin e tyre të SQL me aftësi të përparuara. Para së gjithash, kjo është mbështetje për procedurat e ruajtura dhe operatorët standardë të gjuhëve procedurale.

Dialektet më të zakonshme të gjuhës:

  • Baza e të dhënave Oracle - PL / SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact -SQL
  • PostgreSQL - PL / pgSQL.

SQL në internet

MySQL shpërndahet nën Licencën e Përgjithshme Publike GNU. Ekziston një licencë tregtare me aftësinë për të zhvilluar module të personalizuara. Si pjesë përbërëse, ajo përfshihet në asambletë më të njohura të serverëve të Internetit, si XAMPP, WAMP dhe LAMP, dhe është DBMS më e popullarizuar për zhvillimin e aplikacioneve në internet.

Ajo u zhvillua nga Sun Microsystems dhe aktualisht mbështetet nga Oracle Corporation. Mbështeten bazat e të dhënave deri në 64 terabajt, standardi sintaksor SQL: 2003, replikimi i bazës së të dhënave dhe shërbimet cloud.



Artikujt e lidhur: