Dostop do sintakse sql. Implementacija SQL v primerjavi ACCESS Microsoft Access

Ministrstvo za izobraževanje Ruske federacije

Državna tehnična univerza Kuzbass

Oddelek za računalništvo

in informacijsko tehnologijo

Poizvedbe SQL

Metodološka navodila za laboratorijsko delo za študente specialnosti "Ekonomija in management v podjetjih" pri predmetu "Avtomatizacija ekonomskih izračunov"

Sestavil E.A. Bessonov

Potrjeno na seji oddelka Zapisnik št. 11 z dne 23.06.2000

Elektronska kopija se hrani v knjižnici glavne stavbe KuzGTU

Kemerovo 2001

SQL (Structured Query Language) je jezik strukturiranih poizvedb.

sove) od leta 1986. je standardni jezik za relacijske baze podatkov. Zlasti se uporablja v aplikacijah Access in Excel. Jezikovni standard SQL je opisan v.

Poizvedbe v MS Access se shranijo in izvajajo z uporabo jezika SQL. Čeprav je večino poizvedb mogoče ustvariti grafično (Model Queries), so shranjene kot stavki SQL. V nekaterih primerih (na primer v podrejenih poizvedbah) je mogoče uporabiti samo jezik SQL. V MS Access se uporablja narečje tega jezika, ki je opisano spodaj. Številne primere poizvedb SQL lahko najdete v bazi podatkov Northwind (datoteka I: \ Access \ Sampapps \ Nwind.mdb).

SQL se izrazito razlikuje od drugih programskih jezikov na visoki ravni.

1. SQL je neproceduralni jezik. Preprosto razglasi, kaj je treba narediti, izvedba pa je dodeljena DBMS (sistemu za upravljanje baz podatkov).

2. SQL uporablja logiko treh vrednosti. NULL (NEZNANO ali BREZ PODATKOV) se uporablja skupaj s tradicionalnimi logičnimi vrednostmi TRUE in FALSE.

3. Operacije se izvajajo na celotnih nizih podatkov in ne na posameznih elementih, kot v drugih programskih jezikih.

Poizvedba SQL je sestavljena iz stavkov. Vsako navodilo lahko vsebuje več stavkov.

Skoraj nobena poizvedba ni popolna brez stavka FROM, ki opisuje uporabljene tabele ali poizvedbe in ima sintakso

IZ miz

Tabele - uporabljene tabele/poizvedbe in njihova razmerja.

Če je v stavku FROM prisoten stavek IN (oglati oklepaji označujejo, da je ta del stavka neobvezen), mora rezervirani besedi IN slediti ime baze podatkov, v kateri se nahajajo tabele (predpostavlja se, da so tabele niso iz trenutne baze podatkov).

OD Učiteljev

Če poizvedba temelji na dveh tabelah, je treba navesti način njihove združevanja - enega od naslednjih (predvideva se, da je bralec z njimi seznanjen):

kartezijanski produkt; INNER JOIN notranji spoj; LEFT JOIN levi zunanji spoj; RIGHT JOIN je desni zunanji spoj.

Takoj po metodi spajanja morate besedno zvezo ON Table1.Key = Table2.ExternalKey

Ključ - ime ključnega polja s strani 1. ExternalKey - ime povezovalnega polja s strani N.

Podatkovna shema

Na sliki je prikazana shema združevanja tabele (podatkovna shema), ki bo uporabljena za večino spodnjih primerov. Na sliki, na primer, lahko vidite, da je polje »Subject« v tabeli »Examiners« ključ (krepko), polje »Učitelj« pa je tuji ključ za tabelo »Učitelji«. Povezava med navedenimi tabelami je notranja z integriteto podatkov. To dokazujeta znaka 1 in ∞ na koncih povezovalne črte ("Učitelji" je glavna miza, "Izpraševalci" pa je podrejena tabela). Pri zunanjem združevanju lahko vidite puščico na spojni črti tabel, ki kaže proti podrejeni tabeli. To pomeni, da bodo vsi zapisi prikazani v glavni tabeli, tudi če v podrejeni nimajo ustreznih zapisov. Dobite lahko na primer seznam učiteljev in imen predmetov. Če

nekega učitelja ni v tabeli "Izpraševalci", potem bo polje z imenom predmeta tega učitelja prazno, če bo uporabljen LEFT JOIN.

FROM Examiners INNER JOIN Izpiti ON Izpraševalci Predmet = Izpiti Predmet

V členu FROM je pred rezerviranimi besedami INNER JOIN navedeno ime tabele s strani 1 (v našem primeru tabela Examiners). Če sta v členu FROM več kot dve tabeli, lahko združitev obeh tabel zaprete v oklepaje in jo pri združevanju z drugimi tabelami ali spoji obravnavate kot eno tabelo. Na ta način lahko opišete združitev poljubnega števila tabel.

OD Učiteljev INNER JOIN (Izpraševalci

INNER JOIN izpiti

ON Izpraševalci Predmet = Izpiti Predmet)

ON Učitelji Učitelj = Izpraševalci Učitelj Opisana je celotna podatkovna shema (glej sliko).

Stavek SELECT vam omogoča, da izberete zahtevana polja iz tabel ali poizvedb. Najmanjša oblika možnosti:

IZ miz;

Polja so številni izrazi in imena polj, ločena z vejicami. Primer

IZBERI Skupino, Študent, Evalvacija IZ Izpitov;

Če se ime ponavlja v več tabelah, navedenih v členu FROM, je treba pred imenom postaviti ime tabele in piko, na primer: [Izpraševalci].Učitelj ali [Izpiti]. [stvar]

Če ime tabele ali polja vsebuje presledek ali drug poseben znak, mora biti to ime zaprto v oglatih oklepajih. V drugih primerih so oklepaji neobvezni.

V v danem primeru v načinu tabele poizvedba vrne tabelo

Z naslovi stolpcev "Skupina", "Študent", "Razred" (v tem vrstnem redu). Včasih je zaželeno, da je naslov drugačen od

ime polja. V tem primeru je treba rezervirano besedo AS in glavo (vzdevek) postaviti za imenom polja, na primer:

IZBERI Skupino, Študent AS Polno ime, Razred

V V tem primeru se namesto naslova »Študent« prikaže »Polno ime«. Če

v naslov ima več kot eno besedo, mora biti v oglatih oklepajih.

Če je treba vrniti vsa polja tabele, je treba argument polja podati z zvezdico ali v obliki "Tabela. *".

IZBERITE učitelje * IZ Učiteljev;

Prikaže se vseh 5 polj iz tabele "Učitelji".

Včasih morate vrniti ne vrednosti polja, ampak rezultat izračunov nad vrednostmi polja. V tem primeru morate namesto imena polja podati izraz. Pravila za pisanje izrazov so enaka tistim, ki se uporabljajo v oblikovalcu poizvedb.

IZBERITE povprečje ([ocena]) kot [povprečje] IZ izpitov;

Zahteva vrne eno številko v stolpcu z naslovom "Povprečna ocena"

- aritmetična sredina ocen vseh učencev. Primer

SELECT Count ([Učitelj]) Kot [Število učiteljev] IZ Učiteljev;

Pod rubriko "Število učiteljev" bo postavljeno število vrstic tabele "Učitelji", v katerih polje "Učitelj" ni prazno (in ni vedno prazno, saj je ključno). To je število učiteljev, saj ima vsak zapis številko učitelja, ki se razlikuje od številk drugih učiteljev.

V Stavki SELECT takoj za besedo SELECT so lahko

piše se predikat - ena od besed VSE, RAZLIČNO, RAZLIČNO, NA VRH N.

Predikat ALL usmerja vrnitev vseh zapisov, tudi če vsebujejo ponovitve.

DISTINCT prepoveduje prikazovanje zapisov, ki vsebujejo dvojnike v izbranih poljih. Uporaba predikata DISTINCT je enakovredna nastavitvi lastnosti Unique Values ​​na Da v listu lastnosti Oblikovalnik poizvedb.

DISTINCTROW vpliva na rezultat samo, če v poizvedbo niso vključena vsa polja iz analiziranih tabel. Predikat je prezrt, če poizvedba vsebuje samo eno tabelo. Predikat DISTINCTROW izključuje zapise, ki se v celoti ponavljajo. Uporaba predikata DISTINCTROW je enakovredna nastavitvi lastnosti Unique Records na Da v listu lastnosti Oblikovalnik poizvedb.

Predikat Top N se uporablja za vrnitev N zapisov na začetku ali koncu niza, razvrščenih v naraščajočem ali padajočem vrstnem redu vrednosti tega polja. Razvrščanje je definirano z uporabo člena ORDER BY za členom FROM.

IZBERI navodila.

Za besedami ORDER BY postavite ime polja in besedo ASC (naraščajoče, neobvezno) ali DESC (padajoče). Naslednji stavek SQL navaja 5 najboljših študentov.

Akademski uspeh

Tabela 1

Povprečna ocena

Medvedev

Vorobjev

IZBERITE NAJBOLJŠIH 5 študentov, [ocena] IZ dosežka

VRSTI PO [Povprečju] DESC;

IZBERITE ODLIČNO [študenta] IZ izpitov

NAROČI [Študent];

Zahteva vrne seznam študentov, razvrščenih v naraščajočem vrstnem redu po priimku.

Po stavku FROM stavka SELECT lahko pišete

WHERE pogoj obrazca WHERE

Pogoj je logični izraz, ki se ovrednoti za vsak zapis v izvorni tabeli.

Če je pogoj resničen, je zapis (nabor polj na seznamu polj stavka SELECT) vključen v niz rezultatov; če je napačen, ni vključen.

IZBERI DISTINCT Skupina, študent

IZ izpitov

WHERE Ocena = 2;

Sestavlja se seznam učencev s slabimi ocenami. Primer

WHERE [Position] = "Izredni profesor" OR [Degree] = "Ph.D." NAROČI PO [polno ime];

Izda se seznam učiteljev z akademskim nazivom izredni profesor ali diplomo kandidata tehničnih znanosti. V tem primeru predikata ni treba uporabiti, saj so zapisi v lasti različnih inštruktorjev in ponovitve niso možne.

Pri filtriranju nizovnih izrazov lahko uporabite operator vzorca izraza Like, ki preveri, ali se rezultat izračuna ujema izrazov za predlogo. V predlogi lahko uporabite nekaj posebnih simbolov:

* poljubno število poljubnih znakov;

Vsak lik.

V z oklepaji lahko določite obseg, v katerem je znak ali ne.

Znak v obsegu od A do vključno F. Znak [! A-F] ni v območju A-F.

IZBERITE [Ime] IZ Učiteljev

KJE [Polno ime] LIKE “B *” ALI [Polno ime] LIKE “Щ *”;

V dobljeni niz bo vseboval imena učiteljev, ki se začnejo s črko Д ali Щ.

X LIKE "P ###"

Napisani pogoj izpolnjujejo vrstice s 5 znaki, ki se začnejo s črko P. Slediti ji mora črka iz obsega A-F. Niz mora biti končan s 3 številkami.

Če je treba pred vsako izvedbo poizvedbe spremeniti izbirne pogoje, je priročno uporabiti stavek v obliki:

PARAMETERS besedila;

Besedila - seznam besedil, ločenih z vejicami.

Za vsakim besedilom je vrsta podatkov označena s presledkom. Ko zaženete poizvedbo s parametri, vam ni treba odpreti okna oblikovalca poizvedbe in spremeniti pogoje filtra. Namesto tega mora uporabnik med izvajanjem poizvedbe vnesti želeni pogoj. Za vsako besedilo iz klavzule PARAMETERS se na zaslonu prikaže pogovorno okno, kjer ima vsako besedilo iz opisa vlogo namiga – kaj točno je treba vnesti. V pogovorno okno vnesite podatke določene vrste.

Če je uporabljen člen PARAMETERS, se mora pojaviti pred vsemi drugimi stavki, vključno s stavkom SELECT, in se mora končati s podpičjem.

PARAMETRI [Določite začetni datum] DATETIME, [Določite končni datum] DATETIME;

V izbirnih pogojih stavkov WHERE in HAVING lahko uporabite besedilo brez podajanja podatkovnih tipov. Ko se poizvedba izvede, se besedilo nadomesti z vneseno vrednostjo.

PARAMETRI [Določite skupino] BESEDILO; IZBERI Študent, ocena

IZ izpitov

WHERE [Skupina] = [Določite skupino] In [Zadeva] = 1;

Zahteva vrne ocene učencev navedene skupine pri predmetu s šifro 1.

Klavzula polja GROUP BY združuje skupino zapisov na določenem seznamu(-ih) polj v en sam zapis. Če stavek SELECT vsebuje funkcijo skupine (na primer Avg ali Sum), se izračuna vrednost za zapis v nizu rezultatov - vsota za skupino zapisov. Torej, če na primer združite zapise po predmetih v tabeli »Izpiti«, lahko s funkcijo Avg dobite povprečno oceno predmeta. Razvrščanje po predmetih in skupinah vam bo omogočilo, da dobite povprečne ocene študentskih skupin pri določenem predmetu.

GROUP BY ni obvezna. Če je prisoten v stavku SELECT, se nahaja za stavkom FROM.

Če uporabljate člen GROUP BY, morajo biti vsa polja na seznamu polj stavka SELECT vključena v seznam polj stavka GROUP BY ali pa jih je treba uporabiti kot argumente funkciji skupine SQL.

Če uporabljate funkcije skupine in ni klavzule GROUP BY, potem ima celotna zbirka izvirnih zapisov poizvedbe vlogo skupine.

IZBERITE skupino, študent, povprečje ([ocena]) AS [ocena] IZ izpitov

GROUP BY [Skupina], [Študent];

Za vsakega študenta se izračuna aritmetična sredina njegovih ocen.

Izbirni člen HAVING se mora pojaviti za GROUP BY. Določa, kateri od združenih zapisov bo vključen v niz rezultatov. Pogoj v HAVING je regularni logični izraz, tako kot v WHERE. WHERE in HAVING sta lahko hkrati prisotna v stavku SELECT. V tem primeru WHERE filtrira zapise pred združevanjem, HAVING pa filtrira združene zapise (skupine).

PARAMETRI [Vnesite ime artikla] BESEDILO; IZBERITE skupino, predmet, povprečje ([ocena]) KOT [ocena] IZ izpitov INNER JOIN izpraševalcev

ON Izpraševalci Predmet = Izpiti Predmet

WHERE [Ime predmeta] = [Vnesite ime predmeta] GROUP BY Group, Student

OB AVG ([Score])> = 4,5 IN Min ([Score])> 2;

Poizvedba vrne seznam študentov z njihovimi povprečnimi rezultati. Na seznamu so dijaki brez dvojk in s povprečno oceno najmanj 4,5.

Stavek TRANSFORM se uporablja za ustvarjanje navzkrižne poizvedbe. Podatki, predstavljeni z navzkrižno poizvedbo, so upodobljeni bolj kompaktno kot z vzorčno poizvedbo. sintaksa:

TRANSFORM Funkcija IZBIRA…;

Funkcija - skupina funkcija SQL ki obdeluje podatke celice tabele Polje - polje ali izraz, vrednosti iz katerega postanejo glava

kami stolpci.

Poizvedba v načinu tabele ima toliko stolpcev, kolikor polje prevzame različne vrednosti. Na primer, če so v polju prikazana imena mesecev, bo do 12 stolpcev, katerih naslovi so razvrščeni v naraščajočem vrstnem redu (avgust, april ... januar). Po argumentu polja lahko postavite člen IN (seznam_vrednosti). Fiksne vrednosti na seznamu vrednosti so ločene z vejicami. S klavzulo IN se vsaka vrednost polja primerja z vrednostmi na seznamu vrednosti. Če obstaja ujemanje, se rezultat izračuna funkcije prikaže v ustreznem stolpcu. Za ustvarjanje dodatnih stolpcev je mogoče uporabiti fiksne glave, ki ne ustrezajo resničnim podatkom.

Uporaba klavzule PIVOT je enakovredna definiranju lastnosti Column Headers v listu lastnosti oblikovalca poizvedb.

Laboratorijsko delo št. 1

SQL: IZVLEČEK PODATKOV - ukazIZBERI

Cilj:

  • seznaniti se z stavki SQL;
  • naučite se ustvariti najpreprostejše poizvedbe SQL v Accessu z ukazom SELECT;

· Uporaba operatorjev IN, BETWEEN, LIKE, JE NULL.

Vaja№1. Ustvarite poizvedbo, da v načinu SQL izberete vse vrednosti polj IME in PRIIMEK iz tabele STUDENTS.

IZBERI IME, PRIIMEK

OD ŠTUDENTOV;

Vaja№2 ... Ustvarite izbirno poizvedbo v načinu SQL za vse stolpce tabele STUDENTS.

IZBERI *

OD ŠTUDENTOV;


Naloga številka 3. Ustvarite poizvedbo, da v načinu SQL izberete imena mest, kjer študenti živijo, informacije o katerih so v tabeli OSEBNI PODATKI.

IZBERITE DISINCT CITY

IZ [OSEBNIH PODATKOV];

Naloga številka 4. Ustvarite poizvedbo za izbiro načina SQL, ki izbere imena vseh študentov s priimkom Ivanov, navedenimi v tabeli STUDENTS.

IZBERI PRIIMEK, IME

OD ŠTUDENTOV

KJE PRIIMEK = "Ivanov";

Naloga številka 5... Ustvarite poizvedbo za izbor v načinu SQL za pridobitev imen in priimkov študentov, vpisanih v skupino UIT-22 na proračunski obliki izobraževanja.

IZBERI PRIIMEK, IME

OD ŠTUDENTOV

KJE SKUPINA = "WHIT-22" IN PRORAČUN = res;

Naloga številka 6... Ustvarite poizvedbo v načinu SQL. na vzorcu iz tabele IZPITI IZPIT podatek o študentih s samo 4. in 5. oceno.

IZBERI *

IZ [SPREMEMBAIZPITI]

KJEOCENAIN (4,5);

Naloga številka 7. Ustvarite način zanpoc in SQL za izbor informacij o študentih, ki imajo izpitno oceno 3 pri predmetu IOSU.

IZBERI *

IZ [SPREMEMBAIZPITI]

KJESTVAR=" IOSU"InOCENANe v (4,5);

Naloga številka 8. Ustvarite poizvedbo v načinu SQL, da izberete zapise za subjekte, katerih ure so med 100 in 130.

IZBERI *

IZPREDMETI

KJEURAMED 100 IN 130;


Naloga številka 9. Ustvarite poizvedbo v načinu SQL, da iz tabele STUDENTS izberete informacije o študentih, katerih priimki se začnejo na primer s črko "C".

IZBERI *

IZŠTUDENTI

KJEPRIIMEKLIKE "Z*";

zaključek: Med laboratorijskim delom smo se seznanili s stavki SQL, se naučili izdelati najpreprostejše SQL poizvedbe v Accessu z ukazom SELECT z uporabo operatorjev IN, BETWEEN, LIKE.

Aplikacija MS Access DBMS je popoln pomočnik za ustvarjanje in vzdrževanje baz podatkov, zaprtih v tabele in matrike. Če je baza podatkov prevelika, je težko hitro najti zahtevane vrednosti.

Zato ima Access funkcijo, imenovano poizvedbe. Razmislimo, kaj je, kako deluje, kakšne lastnosti ima.

Izdelava poizvedb v Microsoft Accessu

Če želite razumeti, kako ustvariti poizvedbe v Accessu, morate poznati osnove dela s DBMS.

Ta postopek lahko dokončate na dva načina:

  • Konstruktor poizvedb.
  • Čarovnik za poizvedbe.

Prva metoda omogoča ustvarjanje katere koli od vseh razpoložljivih poizvedb v ročnem načinu, vendar z majhno opozorilo, da ima uporabnik izkušnje z aplikacijo Access. Prav tako mora razumeti vsaj svoje glavne naloge. Kar zadeva drugo metodo, jo je treba podrobneje obravnavati.

Enostaven način za začetnike

Obveščena oseba v nekaj klikih z miško izbere tiste komponente, ki jih bo uporabnik potreboval za izpolnitev zahteve, nato pa hitro oblikuje register v skladu z zbranimi vrednostmi ključev. Če je to prvo spoznavanje DBMS in uporabnik nima pojma, kako ustvariti poizvedbe v Accessu, je izbran program Čarovnik.

V ta način lahko se seznanite in razumete naslednje vrste zahtev:

  • Preprosto.
  • križ.
  • Zapisi brez podrejenih.
  • Podvojeni vnosi.

Ta izbira je narejena že na prvi stopnji dela s čarovnikom. In v prihodnosti lahko po jasnih navodilih tudi začetni uporabnik preprosto ustvari zahtevo. Spoznajmo se z njegovimi sortami.

Preprosta poizvedba

To orodje za preglednice zbira želene podatke iz uporabniško določenih polj. Kot že ime pove, je to najbolj priljubljena vrsta poizvedbe za novince. Njegova priročnost je v tem, da se tak postopek odpre v novem zavihku. Zato postane odgovor na vprašanje, kako ustvariti poizvedbo v Accessu 2010, očiten po odpiranju prvega menija čarovnika.

Navzkrižna poizvedba

Ta vrsta vzorčenja je bolj zapletena. Če želite ugotoviti, kako ustvariti navzkrižno poizvedbo v Accessu s pomočjo "čarovnika" v tem načinu, morate v prvem oknu klikniti to funkcijo.

Na zaslonu se prikaže tabela, v kateri lahko izberete do tri stolpce, ki se nahajajo v izvirniku.

Eno od preostalih neizbranih polj se lahko uporabi kot glave poizvedbene tabele. Na tretji stopnji postopka (presečišče) se izbere druga vrednost s variabilnostjo funkcije (srednja vrednost, vsota, prva, zadnja).

Na fotografiji je razvidno, da je bila ustvarjena navzkrižna referenca in to avtor danih parametrov potrebni ukrepi so bili sprejeti.

Podvojeni vnosi

Kot pove že ime, glavni namen te zahteve- izbor vseh enakih vrstic v tabeli glede na podane parametre. Izgleda takole:

Poleg tega je na voljo izbor dodatnih polj za ujemanje z več vrsticami hkrati.

Če želite izbrati podvojene vnose, morate razširiti seznam zahtev in tam ustvariti novo mapo. Nato v oknu »Nova poizvedba« izberite vrstico »Iskanje podvojenih zapisov«. Nato morate slediti navodilom mojstra.

Zapisi brez podrejenih

To je zadnja vrsta zahteve, ki je na voljo v načinu "Master - Vnosi brez podrejenih".

V tem primeru so izbrane samo tiste vrednosti, ki niso uporabljene v nobenem polju tabel in poizvedb, vendar so bile že ustvarjene.

Ta vrsta je pomembna le v primerih, ko obstaja več baz podatkov.

Vse te štiri vrste poizvedb so osnovna točka za delo s kompleksnimi elementi, vendar olajšajo ugotovitev, kako ustvariti poizvedbo v bazi podatkov. Dostop do podatkov.

Funkcije poizvedbe v MS Access

Ugotovimo, zakaj morate izvesti zgoraj opisane korake. Naloga vseh preprostih in zapletene poizvedbe v Access DBMS je takole:

  • Zbiranje potrebnih podatkov v tabelah, njihov kasnejši ogled, urejanje, dodajanje novih vrednosti.
  • Odličen izvorni material za pripravo vseh vrst poročil.
  • Izvajanje matematičnih in statističnih postopkov štetja po celotnih podatkovnih nizih s prikazom seštevkov na zaslonu (povprečna vrednost, vsota, odstopanje, vsote).

Zahteva za vzorec

Ta vrsta dela z bazo podatkov je zapletena, saj zahteva sodelovanje več tabel.

Vse tabele morajo imeti skupna ključna polja. V nasprotnem primeru operacija ne bo uspela.

Oglejmo si, kako ustvariti izbirno poizvedbo v Accessu. Najprej morate ustvariti preprosto poizvedbo z izbiro zahtevanih polj. Že tukaj lahko urejate podatke, da jih spravite v želeno obliko. Mimogrede, izvedene spremembe bodo prenesene v prvotne tabele, zato je treba to točko upoštevati.

V oknu oblikovalca, ki se odpre, se zapolni okno »Dodaj tabele«. Tukaj morate dodati tiste tabele ali poizvedbe, iz katerih morate izvleči začetne vrednosti.

Po dodajanju lahko začnete izpolnjevati pogoje zahteve. Za to potrebujemo vrstico "Polje". V njem morate izbrati tiste vrednosti iz tabel, ki bodo prikazane med poizvedbo.

Za dokončanje operacije morate klikniti gumb "Izvedi".

Zahteva s parametri

To je še ena vrsta zapletenega postopka, ki bo od uporabnika zahteval določene veščine baze podatkov. Eno glavnih področij takšnega delovanja je priprava na izdelavo poročil z volumetričnimi podatki in pridobivanje zbirnih rezultatov. Spodaj bomo razpravljali o tem, kako ustvariti poizvedbe v Accessu 2007 s pomočjo oblikovalca.

Če želite začeti ta postopek za izbiro podatkov, morate ustvariti preprosto poizvedbo za izbiro zahtevanih polj. Nadalje je potrebno v načinu konstruktorja izpolniti polje "Pogoj izbire" in na podlagi vnesene vrednosti bo izveden izbor.

Tako je odgovor na vprašanje, kako ustvariti poizvedbo s parametrom v Accessu, preprost - vnesti začetne parametre za izbor. Za delo s konstruktorjem morate uporabiti čarovnika za poizvedbe. Tam se ustvarijo primarni podatki za filtriranje, ki služijo kot osnova za nadaljnje delo.

Napredna poizvedba s sklicevanjem

Še naprej kompliciramo. Še težje je razumeti informacije o tem, kako ustvariti poizvedbe v Accessu, ko je prisotnih več tabel s podatki. Poizvedba z navzkrižnimi referencami je bila že obravnavana zgoraj, kot ena od možnosti za delo s čarovnikom. Vendar pa lahko v načinu "Design" ustvarite podobno poizvedbo.

Če želite to narediti, morate klikniti "Ustvarjalnik poizvedb" - "Križ".

Odpre se meni za dodajanje izvornih tabel in možnost izpolnjevanja izbranih polj. Edina stvar, na katero je treba biti pozoren, so predmeti Bulk Operation in Cross Table. Izpolniti jih je treba pravilno, sicer postopek ne bo izveden pravilno.

Navzkrižne poizvedbe so najlažji način za iskanje in pridobivanje informacij iz več virov podatkov ter možnost ustvarjanja grafikonov in grafov.

Poleg tega je pri uporabi tega postopka iskanje hitrejše, tudi z več razvojnimi možnostmi.

Seveda pa obstajajo tudi »pasti«, ki lahko motijo ​​delo. Na primer, ko ustvarite poizvedbo za razvrščanje baze podatkov po vrednosti stolpca, sistem vrže napako. To pomeni, da je na voljo samo razvrščanje po standardnih postavkah - "naraščajoče in padajoče".

Če povzamemo, je treba povedati, da se uporabnik sam odloči, kako ustvariti poizvedbe v Accessu - s pomočjo čarovnika ali oblikovalca. Čeprav je za večino ljudi, ki uporabljajo MS Access, bolj primerna prva možnost. Navsezadnje bo čarovnik sam opravil vse delo, pri čemer bo uporabniku pri izbiri pogojev zahteve pustil le nekaj klikov.

Za uporabo naprednih nastavitev so očitno potrebne izkušnje z bazo podatkov na profesionalni ravni. Če so pri delu vključene velike baze podatkov, je najbolje, da se obrnete na strokovnjake, da se izognete motnjam v DBMS in morebitni izgubi podatkov.

Obstaja ena točka, ki je na voljo samo programerjem. Ker je glavni jezik DBMS SQL, lahko zahtevano poizvedbo zapišemo v obliki programske kode. Za delo v tem načinu je dovolj, da kliknete vrstico že ustvarjene poizvedbe in v odprtem kontekstnem meniju izberete "Način SQL".

V najpreprostejšem primeru poizvedba izvaja izbor iz ene tabele zahtevanih polj, ustreznih zapisov danih pogojev izbiro in ogled rezultatov poizvedbe.

Oblikovanje izbirnih zahtev z izbirnimi pogoji

Oglejmo si poizvedbe za izbor v Accessu na primeru pridobivanja informacij iz tabele IZDELKI v bazi podatkov o dostavi blaga.

Problem 1... Naj je treba po imenu izbrati številne značilnosti izdelka.

  1. Če želite ustvariti poizvedbo v oknu baze podatkov, izberite zavihek traku - Ustvarjanje(Ustvari) in v skupini Poizvedbe(Poizvedbe) pritisnite gumb Konstruktor poizvedb(Oblikovanje poizvedbe). Odprlo se bo prazno okno izberite poizvedbo v načinu oblikovanja - ZahtevaN(QueryN) in pogovorno okno Dodajanje tabele(Prikaži tabelo) (slika 4.2).
  2. V oknu Dodajanje tabele(Prikaži tabelo) izberite tabelo IZDELKI in kliknite gumb Dodaj(Dodaj). Izbrana tabela bo prikazana v območju podatkovne sheme poizvedbe. Zapri okno Dodajanje tabele(Prikaži tabelo) s klikom na gumb Zapri(Zapri).

Kot rezultat dejanj, izvedenih v oknu oblikovalca poizvedbe (slika 4.1) v zgornja plošča prikaže se shema podatkov poizvedbe, ki vključuje tabele, izbrane za to poizvedbo. V tem primeru ena tabela IZDELEK. Tabela je predstavljena s seznamom polj. Prva vrstica na seznamu polj tabele, označena z zvezdico (*), označuje celoten niz polj tabele. Spodnja plošča je obrazec za zahtevo, ki ga morate izpolniti.

Poleg tega se na traku prikaže nov zavihek (Orodja za poizvedbe | Dizajn) in se samodejno aktivira (na sliki 4.3 je predstavljen na delu tega zavihka), na katerem je z barvo označena vrsta ustvarjene poizvedbe - Vzorec(Izberi). Tako se privzeto vedno ustvari zahteva za pridobivanje. Ukazi na tem zavihku nudijo zbirko orodij za izvajanje potrebnih dejanj pri ustvarjanju zahteve. Ta zavihek se odpre, ko ustvarite novo poizvedbo v načinu oblikovanja ali uredite obstoječo.

  1. Če želite odstraniti katero koli tabelo iz sheme podatkov poizvedbe, premaknite kazalec miške nadnjo in pritisnite tipko. Če želite dodati - kliknite gumb Pokaži mizo(Pokaži tabelo) v skupini Postavitev zahteve zavihek (Nastavitev poizvedbe). Delo s poizvedbami | Konstruktor(Orodja za poizvedbe | Načrtovanje) ali zaženite ukaz Dodaj tabelo(Prikaži tabelo) v kontekstnem meniju, ki se prikliče v shemi podatkov poizvedbe.
  2. V oknu za načrtovanje (slika 4.4) zaporedoma povlecite s seznama polj v tabeli IZDELEK polja NAME_ITS, CENA, AVAILABILITY_of_of_s v stolpce obrazca zahteve v vrstico Polje(Polje).
  3. Če želite vključiti zahtevana polja iz tabele v ustrezne stolpce poizvedbe, lahko uporabite naslednje tehnike:
    • v prvi vrstici obrazca zahteve Polje(Polje) s klikom miške povzroči pojav gumba seznama in s seznama izberemo zahtevano polje. Seznam vsebuje polja tabel, predstavljenih v shemi podatkov poizvedbe;
    • dvokliknite ime polja tabele v shemi podatkov poizvedbe;
    • lahko povlečete ali dvokliknete simbol * (zvezdica) na seznamu polj tabele v shemi podatkov poizvedbe, da vključite vsa polja tabele.
  4. Če ste pomotoma izpustili nepotrebno polje v obrazcu zahteve, ga izbrišite. Če želite to narediti, premaknite kazalec na območje za označevanje stolpcev na vrhu, kjer bo v obliki črne puščice, ki kaže navzdol, in kliknite. Stolpec je poudarjen. Pritisnite tipko ali zaženite ukaz Izbriši stolpce(Izbriši stolpce) v skupini Postavitev zahteve(Nastavitev poizvedbe).
  5. V vrsti Izhod na zaslonu(Prikaži) označite polja, sicer ne bodo vključena v poizvedbeno tabelo.
  6. Napiši v vrstico Pogoji izbire(Kriteriji) ime izdelka, kot je prikazano v obrazcu zahteve na sl. 4.4. Ker izraz v izbirni klavzuli ne vsebuje operatorja, se uporablja privzeti operator =. Besedilna vrednost, uporabljena v izrazu, se vnese v dvojne narekovaje, ki se dodajo samodejno.
  7. Zaženite poizvedbo tako, da kliknete gumb Zaženi ali Pogled v skupini Rezultati. Na zaslonu se v načinu tabele prikaže okno za poizvedbo z vnosom iz tabele PRODUCT, ki izpolnjuje določene pogoje izbire.

KOMENTAR
Okno poizvedbe v načinu tabele je podobno oknu pogleda tabele baze podatkov. Nekatere tabele poizvedb je mogoče uporabiti za spreminjanje podatkov osnovne tabele, na kateri temelji poizvedba. Poizvedba, ki si jo ogledate v pogledu tabele, nima stolpca za razliko od tabele baze podatkov Access 2010 Kliknite za dodajanje(Kliknite za Dodaj), namenjen spreminjanju strukture tabele. V tem načinu na zavihku traku doma(Domov) so na voljo isti gumbi kot pri odpiranju tabele baze podatkov.

  1. Če pri vnosu zapletenega imena izdelka naredite netočnost, izdelek ne bo najden v tabeli. Uporaba vzorčnih operatorjev - zvezdica (*) in vprašaj(?) (privzeti standard ANSI-89 za poizvedbe) ali znak odstotka (%) in podčrtaj (_) (ANSI-92, priporočen standard SQL Server) olajšata iskanje želenih nizov in se izognete številnim napakam. Namesto polnega imena izdelka vnesite Corpus * ali Corpus %. Izpolnite svojo zahtevo. Če se v polju za ime izdelka ena vrednost začne z besedo "Corpus", bo rezultat poizvedbe enak kot v prejšnjem primeru. Po izvedbi poizvedbe bo vneseni izraz dopolnjen z operatorjem Like "Corpus *". Ta operater vam omogoča uporabo nadomestnih znakov pri iskanju besedilnih polj.
  2. Če želite najti več izdelkov, uporabite operaterja In. Omogoča vam, da preverite enakost katere koli vrednosti s seznama, ki je navedena v oklepajih. Napišite v vrstico izbirnih pogojev In ("ohišje MiniTower"; "HDD Maxtor 20GB"; "FDD 3,5"). V tabeli poizvedb bodo prikazane tri vrstice. Nadomestni znaki v stavku In niso dovoljeni.
  3. Shranite poizvedbo s klikom na zavihek mapa(Datoteka) in zaženite ukaz Shrani(Shrani). V oknu Ohranjanje(Shrani kot) vnesite ime poizvedbe Primer1. Upoštevajte, da ime poizvedbe ne sme sovpadati ne le z imeni obstoječih poizvedb, temveč tudi z imeni tabel v bazi podatkov.
  4. Zaprite trenutno poizvedbo z ukazom kontekstnega menija Zapri(Zapri) ali s klikom na gumb okna za poizvedbo Zapri(Zapri).
  5. Zaženite shranjeno poizvedbo tako, da izberete poizvedbo v podoknu za krmarjenje in izberete Odprto(Odprto).
  6. Če želite urediti poizvedbo, jo izberite v podoknu za krmarjenje in izvedite ukaz v kontekstnem meniju Konstruktor(Design View).

Cilj 2. Naj bo treba izbrati blago, katerega cena ni večja od 1000 rubljev, DDV pa ne več kot 10%, pa tudi izbrati blago, katerega cena je več kot 2500 rubljev. Rezultat naj vsebuje ime izdelka (NAME_TOV), njegovo ceno (PRICE) in DDV (DDV_DDV).

  1. Ustvarite novo poizvedbo v načinu oblikovanja, dodajte tabelo PRODUCT. V oknu za načrtovanje (slika 4.5) zaporedoma povlecite s seznama polj v tabeli PRODUCT v obrazec zahteve, polja NAIM_TOV, PRICE, RATE_DDV.
  2. Zapisati Pogoji izbire(Merila), kot je prikazano v obrazcu zahteve na sl. 4.5. Med pogoji, zapisanimi v eni vrstici, se izvede logična operacija IN. Logična operacija ALI se izvede med pogoji, napisanimi v različnih vrsticah.
  3. Izvedite svojo zahtevo, kliknite na gumb Izvedite(Teči) v skupini rezultate(Rezultati). Na zaslonu se v načinu tabele prikaže okno za poizvedbo z zapisi iz tabele PRODUCT, ki izpolnjujejo določene pogoje izbire.
  4. Zahtevo shranite tako, da zaženete ustrezen ukaz v kontekstnem meniju zahteve, ki se pokliče, ko je kazalec postavljen nad glavo zahteve. Daj mu ime Primer 2.

Problem 3... Recimo, da morate izbrati vse račune za dano obdobje. Rezultat naj vsebuje številko računa (NOM_NAK), šifro skladišča (CODE_SK), datum odpreme (DATE_SHIPPED) in skupno vrednost poslanega blaga (SUM_NUMBER).

  1. Ustvarite novo poizvedbo v načinu oblikovanja, dodajte tabelo OVERLAY. V oknu načrtovanja zaporedno povlecite in spustite vsa zahtevana polja s seznama polj tabele PREKRIVANJE v obrazec za poizvedbo.
  2. Za polje DATE_DATE v vrstici Pogoji izbire(Merila) zapišite med # 11. 1. 2008 # In # 31. 3. 2008 #. Operator Between določa časovno obdobje (ANSI-92 namesto # uporablja enojne narekovaje). Poleg tega vam ta operater omogoča, da določite interval za številsko vrednost.

Za konsolidacijo si oglejte video vadnico:

V MS Accessu lahko ustvarite baze podatkov, tabele, obrazce in druga poročila. Ta članek bo uporabniku pomagal zagnati poizvedbe SQL v MS Access. Zaženete lahko enake poizvedbe, ki jih SQL uporablja za pridobivanje podatkov iz baze podatkov. Ta članek je namenjen uporabnikom, ki so se šele začeli učiti MS Access in želijo izvajati poizvedbe SQL v MS Access. Edini pogoj, ki je potreben pred začetkom, je, da imate dostop do baze podatkov, ki se uporablja v organizaciji.

Koraki


kaj potrebuješ

  • Uporabnik mora imeti dostop do baze podatkov organizacije
  • Uporabnik se lahko pred začetkom poizvedb prek MS Accessa obrne na tehnološko podporo

Informacije o članku

Ta stran je bila ogledana 4.443 krat.

Ali vam je bilo to v pomoč?

Opis izobraževalnega projekta "Trgovina"

Shema odnosov tabele

Opis tabel

m_category - kategorije izdelkov

m_income - prihod blaga

m_outcome - poraba blaga

m_product - referenca, opis blaga

m_dobavitelj - referenca; informacije o dobavitelju

m_enota - referenca; enote

Za praktično preverjanje primerov, navedenih v tem učno gradivo, morate imeti naslednjo programsko opremo:

Microsoft Access 2003 ali novejši.

SQL poizvedba v MS Access. Začni

Če si želite ogledati vsebino tabele, dvokliknite ime tabele na plošči na levi:

Če želite preklopiti v način urejanja polj tabele, na zgornji plošči izberite način konstruktorja:

Če želite prikazati rezultat poizvedbe SQL, dvokliknite ime poizvedbe v levem podoknu:

Če želite preklopiti na način urejanja poizvedbe SQL, na zgornji plošči izberite način SQL:

SQL poizvedba. Primeri v MS Access. IZBERI: 1-10

V poizvedbi SQL se stavek SELECT uporablja za izbiro iz tabel baze podatkov.

Poizvedba SQL Q001. Primer poizvedbe SQL za pridobitev samo zahtevanih polj v zahtevanem zaporedju:

IZBERI dt, product_id, znesek


IZ m_dohodka;

Poizvedba SQL Q002. V tem primeru poizvedbe SQL se zvezdica (*) uporablja za prikaz vseh stolpcev tabele m_product, z drugimi besedami, za pridobivanje vseh polj relacije m_product:

IZBERI *
IZ m_product;

PovpraševanjeSQL Q003. Stavek DISTINCT se uporablja za odpravo podvojenih zapisov in pridobitev številnih edinstvenih zapisov:

IZBERI DISTINCT ID izdelka


IZ m_dohodka;

Poizvedba SQL Q004. Stavek ORDER BY se uporablja za razvrščanje (razvrščanje) zapisov po vrednostih določenega polja. Ime polja sledi stavku ORDER BY:

IZBERI *
IZ m_dohodka


NAROČI PO ceni;

Poizvedba SQL Q005. Ukaz ASC se uporablja poleg ukaza ORDER BY in služi za definiranje naraščajočega razvrščanja. Stavek DESC se uporablja poleg stavka ORDER BY in se uporablja za definiranje padajočega razvrščanja. V primeru, ko nista določena niti ASC niti DESC, se nakazuje prisotnost ASC (privzeto):

IZBERI *
IZ m_dohodka


NAROČI PO dt DESC, cena;

Poizvedba SQL Q006. Za izbiro potrebnih zapisov iz tabele se uporabljajo različni logični izrazi, ki izražajo izbirni pogoj. Logični izraz se pojavi za členom WHERE. Primer pridobivanja iz tabele m_income vseh zapisov, za katere je vrednost zneska večja od 200:

IZBERI *
IZ m_dohodka


KJE znesek> 200;

Poizvedba SQL Q007. Izraziti težki pogoji uporabite logične operacije IN (konjunkcija), ALI (disjunkcija) in NE (logična negacija). Primer pridobivanja iz tabele m_outcome vseh zapisov, za katere je vrednost zneska 20 in je vrednost cene večja ali enaka 10:

Cena


IZ m_outcome
KJE znesek = 20 IN cena> = 10;

Poizvedba SQL Q008.Če želite združiti podatke iz dveh ali več tabel, uporabite navodila INNER JOIN, LEFT JOIN, RIGHT JOIN. Naslednji primer pridobi polja dt, product_id, znesek, cena iz tabele m_income in polje naslov iz tabele m_product. Zapis tabele m_income je povezan z zapisom tabele m_product, ko je vrednost m_income.product_id enaka vrednosti m_product.id:



ON m_income.product_id = m_product.id;

Poizvedba SQL Q009. Pri tej poizvedbi SQL morate biti pozorni na dve stvari: 1) besedilo iskanja je zaprto v enojnih narekovajih ("); 2) datum je v obliki # Mesec / Dan / Leto #, kar velja za MS Access . V drugih sistemih je format zapisa datuma lahko drugačen Primer prikaza informacij o prihodu mleka 12. junija 2011. Bodite pozorni na format datuma # 12. 6. 2011 #:

IZBERITE dt, product_id, naslov, znesek, ceno


IZ m_income INNER JOIN m_product

WHERE title = "(! LANG: Mleko" And dt=#6/12/2011#; !}

Poizvedba SQL Q010. Navodilo BETWEEN se uporablja za testiranje obsega vrednosti. Primer poizvedbe SQL, ki prikazuje informacije o blagu, prejetem med 1. in 30. junijem 2011:

IZBERI *
IZ m_income INNER JOIN m_product


ON m_income.product_id = m_product.id
KJE dt MED # 1. 6. 2011 # IN # 30. 6. 2011 #;

SQL poizvedba. Primeri v MS Access. IZBIRA: 11-20

Eno poizvedbo SQL je mogoče ugnezditi v drugo. Podpoizvedba ni nič drugega kot poizvedba znotraj poizvedbe. Običajno se podpoizvedba uporablja v stavku WHERE. Obstajajo pa tudi drugi načini uporabe podpoizvedb.

Zahteva Q011. Prikazane so informacije o izdelkih iz tabele m_product, katerih kode so tudi v tabeli m_income:

IZBERI *
IZ m_product


WHERE id IN (IZberite ID izdelka IZ m_income);

Zahteva Q012. Prikaže se seznam izdelkov iz tabele m_product, katerih kod ni v tabeli m_outcome:

IZBERI *
IZ m_product


WHERE id NOT IN (IZBERITE product_id FROM m_outcome);

Zahteva Q013. Ta poizvedba SQL prikaže edinstven seznam kod in imen izdelkov, ki imajo kode v tabeli m_income, ne pa v tabeli m_outcome:

IZBERI DISTINCT ID_izdelka, naslov


IZ m_income INNER JOIN m_product
ON m_income.product_id = m_product.id
WHERE product_id NOT IN (IZBERITE product_id FROM m_outcome);

Zahteva Q014. Iz tabele m_category se prikaže edinstven seznam kategorij, katerih imena se začnejo s črko M:

IZBERI DISTINCT naslov


IZ m_product
KJE naslov LIKE "М *";

Zahteva Q015. Primer izvajanja aritmetičnih operacij nad polji v zahtevi in ​​preimenovanja polj v zahtevi (vzdevek). Ta primer izračuna znesek odhodka = količina * cena in stopnja dobička za vsak zapis o stroških artikla, ob predpostavki, da je dobiček 7 odstotkov zneska prodaje:


znesek * cena / 100 * 7 AS dobiček
IZ m_outcome;

Zahteva Q016. Z analizo in poenostavitvijo aritmetičnih operacij lahko povečate hitrost izvajanja poizvedbe:

IZBERI dt, product_id, znesek, cena, znesek * cena AS outcome_sum,


outcome_sum * 0,07 AS dobiček
IZ m_outcome;

Zahteva Q017. Z uporabo stavka INNER JOIN lahko združite podatke iz več tabel. V naslednjem primeru se, odvisno od vrednosti ctgry_id, vsak zapis tabele m_income ujema z imenom kategorije iz tabele m_category, ki ji izdelek pripada:

IZBERI c.naslov, b.naslov, dt, znesek, cena, znesek * cena KOT dohodek_vsota


FROM (m_income AS A INNER JOIN m_product AS b ON a.product_id = b.id)
INNER JOIN m_category AS c ON b.ctgry_id = c.id
VRSTI PO c.naslovu, b.naslovu;

Zahteva Q018. Funkcije, kot so SUM – vsota, COUNT – količina, AVG – aritmetična sredina, MAX – največja vrednost, MIN – najmanjša vrednost, se imenujejo agregatne funkcije. Prevzamejo več vrednosti in po obdelavi vrnejo eno samo vrednost. Primer izračuna vsote zmnožka uporabljenih polj zneska in cene agregatna funkcija VSEM:

SELECT SUM (znesek * cena) AS Total_Sum


IZ m_dohodka;

Zahteva Q019. Primer uporabe več agregatnih funkcij:

IZBERI vsota (znesek) AS Znesek_Sum, AVG (znesek) AS Znesek_AVG,


MAX (količina) AS Znesek_Max, Min (količina) AS Znesek_Min,
Število (*) AS Skupno_številko
IZ m_dohodka;

Zahtevaj Q020. Ta primer izračuna vsoto vseh postavk s kodo 1, napisano z velikimi črkami junija 2011:

IZBERI Vsota (znesek * cena) AS dohodek_vsota


IZ m_dohodka
KJE product_id = 1 IN dt MED # 6/1/2011 # IN # 6/30/2011 # ;.

Zahteva Q021. Naslednja poizvedba SQL izračuna količino prodanih izdelkov s kodo 4 ali 6:

IZBERITE Vsoto (znesek * cena) kot vsota_izid


IZ m_outcome
WHERE product_id = 4 OR product_id = 6;

Zahteva Q022. Izračuna se za kolikšen znesek je bilo prodano 12. junija 2011 blaga s kodo 4 ali 6:

IZBERI Vsota (znesek * cena) AS outcome_sum


IZ m_outcome
KJE (id_izdelka = 4 ALI ID_izdelka = 6) IN dt = # 6/12/2011 #;

Zahteva Q023. Naloga je naslednja. Izračunajte skupno količino blaga v kategoriji »Pekarna«, ki je bilo kapitalizirano.

Če želite rešiti to težavo, morate delovati s tremi tabelami: m_income, m_product in m_category, ker:


- količina in cena kapitaliziranega blaga sta shranjeni v tabeli m_dohodkov;
- koda kategorije vsakega izdelka je shranjena v tabeli m_product;
- ime naslova kategorije je shranjeno v tabeli m_category.

Za rešitev tega problema bomo uporabili naslednji algoritem:


- določitev kode kategorije "Pekovski izdelki" iz tabele m_category s podpoizvedbo;
- združitev tabel m_income in m_product za določitev kategorije vsakega kapitaliziranega produkta;
- izračun zneska prevzema (= količina * cena) za blago, katerega oznaka kategorije je enaka kodi, določeni z zgornjo podpoizvedbo.
IZBERI
IZ m_product AS A INNER JOIN m_income AS b ON a.id = b.product_id
KJE ctgry_id = (IZBERITE ID IZ m_category WHERE title = "(! LANG: Pekarna"); !}

Zahteva Q024. Problem izračuna skupne količine kapitaliziranega blaga v kategoriji "Pekovski izdelki" bomo rešili z naslednjim algoritmom:
- za vsak zapis tabele m_income, odvisno od vrednosti njegovega product_id, iz tabele m_category, se ujemajo z imenom kategorije;
- izberite zapise, za katere je kategorija enaka »Pekovski izdelki«;
- izračunajte znesek računa = količina * cena.

FROM (m_product AS A INNER JOIN m_income AS b ON a.id = b.product_id)

KJE c.title = "(! LANG: Pekarna"; !}

Zahteva Q025. Ta primer izračuna, koliko predmetov je bilo porabljenih:

SELECT COUNT (product_id) AS product_cnt


FROM (IZBERITE DISTINCT product_id FROM m_outcome) AS t;

Zahteva Q026. Klavzula GROUP BY se uporablja za združevanje zapisov. Običajno so zapisi združeni po vrednosti enega ali več polj, za vsako skupino pa se uporabi neka združena operacija. Na primer, naslednja poizvedba ustvari poročilo o prodaji blaga. To pomeni, da se ustvari tabela, ki vsebuje imena blaga in znesek, za katerega je bilo prodano:

IZBERI naslov, SUM (znesek * cena) AS outcome_sum


IZ m_izdelka KOT NOTRANJE PRIKLJUČEK m_outcome AS b
ON a.id = b.product_id
GROUP BY naslov;

Zahteva Q027. Poročilo o prodaji po kategorijah. To pomeni, da se ustvari tabela, ki vsebuje imena kategorij izdelkov, skupni znesek, za katerega so bili izdelki teh kategorij prodani, in povprečni znesek prodaje. Funkcija ROUND se uporablja za zaokrožitev povprečne vrednosti na stotino (druga številka za decimalnim ločilom):

SELECT c.title, SUM (znesek * cena) AS outcome_sum,


ROUND (AVG (znesek * cena), 2) AS outcome_sum_avg
FROM (m_product AS A INNER JOIN m_outcome AS b ON a.id = b.product_id)
INNER JOIN m_category AS c ON a.ctgry_id = c.id
GROUP BY c.naslov;

Zahteva Q028. Za vsak izdelek se izračuna skupno in povprečno število njegovih prejemov in prikaže informacije o blagu, katerega skupno število prejemov ni manjše od 500:

SELECT product_id, SUM (količina) AS znesek_sum,


Okrogla (Povpr. (količina), 2) AS znesek_avg
IZ m_dohodka
GROUP BY product_id
IMITE Vsota (znesek)> = 500;

Zahteva Q029. Ta poizvedba izračuna za vsako postavko vsoto in povprečje njenih prejemkov v drugem četrtletju 2011. Če skupna količina prejetega blaga ni manjša od 1000, se prikažejo informacije o tem izdelku:

IZBERI naslov, SUM (znesek * cena) KOT vsota_dohodka


IZ m_income a INNER JOIN m_product b ON a.product_id = b.id
KJE dt MED # 1. 4. 2011 # IN # 30. 6. 2011 #
GROUP BY naslov
OB VSOTO (znesek * cena)> = 1000;

Zahtevaj Q030. V nekaterih primerih morate preslikati vsak zapis določene tabele v vsak zapis druge tabele; kar se imenuje kartezijanski produkt. Tabela, ki izhaja iz takšne povezave, se imenuje Descartesova tabela. Na primer, če ima neka tabela A 100 zapisov in tabela B 15 zapisov, bo njihova Descartesova tabela sestavljena iz 100 * 15 = 150 zapisov. Naslednja poizvedba združuje vsak zapis v tabeli m_income z vsakim zapisom v tabeli m_outcome:
IZ m_dohodka, m_izid;

Zahteva Q031. Primer razvrščanja zapisov po dveh poljih. Naslednja poizvedba SQL izračuna količino in količino blaga, prejetega od vsakega dobavitelja za vsakega dobavitelja:


SUM (znesek * cena) AS dohodek_vsota

Zahteva Q032. Primer razvrščanja zapisov po dveh poljih. Naslednja poizvedba izračuna za vsakega dobavitelja količino in količino njegovih izdelkov, ki jih prodamo:

SELECT Supplier_id, product_id, SUM (količina) AS znesek_sum,




GROUP BY Supplier_id, product_id;

Zahteva Q033. V tem primeru sta dve zgornji poizvedbi (q031 in q032) uporabljeni kot podpoizvedbe. Rezultati teh poizvedb z metodo LEFT JOIN so združeni v eno poročilo. Naslednja poizvedba poroča o količini in količini prejetih in prodanih izdelkov za vsakega dobavitelja. Upoštevajte, da če je nek izdelek že prispel, vendar še ni prodan, bo celica outcome_sum za ta zapis prazna. da je ta poizvedba le primer uporabe relativno zapletenih poizvedb kot podpoizvedbe. Učinkovitost te poizvedbe SQL z veliko količino podatkov je vprašljiva:

IZBERI *
IZ



SUM (znesek * cena) AS dohodek_vsota

ON a.product_id = b.id GROUP BY supplier_id, product_id) AS a
LEVO PRIDRUŽI
(IZBERITE Supplier_id, product_id, SUM (količina) AS znesek_sum,
SUM (znesek * cena) AS outcome_sum
IZ m_outcome KOT NOTRANJI SPOJ m_product AS b
ON a.product_id = b.id GROUP BY supplier_id, product_id) AS b
ON (a.product_id = b.product_id) IN (a.supplier_id = b.supplier_id);

Zahteva Q034. V tem primeru sta dve zgornji poizvedbi (q031 in q032) uporabljeni kot podpoizvedbe. Rezultati teh poizvedb z metodo RIGTH JOIN so združeni v eno poročilo. Naslednja poizvedba prikaže poročilo o znesku plačil posamezne stranke za plačilne sisteme, ki jih je uporabljal, in znesku njihovih naložb. Naslednja poizvedba poroča o količini in količini prejetih in prodanih izdelkov za vsakega dobavitelja. Upoštevati je treba, da če je bil nek izdelek že prodan, vendar še ni prispel, bo celica vsota prihodkov za ta zapis prazna. Prisotnost takšnih praznih celic je pokazatelj napake v obračunu prodaje, saj je pred prodajo najprej treba prispeti ustrezen izdelek:

IZBERI *
IZ


(IZBERITE Supplier_id, product_id, SUM (količina) AS znesek_sum,
SUM (znesek * cena) AS dohodek_vsota
FROM m_income AS A INNER JOIN m_product AS b ON a.product_id = b.id
GROUP BY Supplier_id, product_id) AS a
PRAVI SE PRIKLJUČITE
(IZBERITE Supplier_id, product_id, SUM (količina) AS znesek_sum,
SUM (znesek * cena) AS outcome_sum
IZ m_outcome KOT NOTRANJE PRIKLJUČEK m_product AS b NA a.product_id = b.id
GROUP BY Supplier_id, product_id) AS b
ON (a.supplier_id = b.supplier_id) IN (a.product_id = b.product_id);

Zahteva Q035. Prikaže poročilo o višini prihodkov in odhodkov po izdelkih. Za to se ustvari seznam izdelkov v skladu s tabelama m_income in m_outcome, nato pa se za vsak izdelek s tega seznama izračuna vsota njegovih prejemkov po tabeli m_income in vsota njegovih stroškov po tabeli m_outcome:

SELECT product_id, SUM (in_amount) AS dohodek_amount,


SUM (out_amount) AS znesek_izid
IZ
(IZBERITE ID_izdelka, znesek AS in_količina, 0 AS out_amount
IZ m_dohodka
UNION VSE
SELECT product_id, 0 AS in_amount, znesek AS out_amount
IZ m_izid) AS t
GROUP BY product_id;

Zahteva Q036. EXISTS vrne TRUE, če nabor, ki mu je posredovan, vsebuje elemente. Funkcija EXISTS vrne FALSE, če je niz, ki ji je bil posredovan, prazen, torej ne vsebuje elementov. Naslednja poizvedba prikaže kode izdelkov, ki so vsebovane v tabelah m_income in m_outcome:

IZBERI DISTINCT ID izdelka


IZ m_income AS a
KJE OBSTAJA (IZBERITE ID izdelka IZ m_outcome AS b

Zahteva Q037. Prikazane so kode izdelkov, ki so vsebovane tako v tabeli m_income kot v tabeli m_outcome:

IZBERI DISTINCT ID izdelka


IZ m_income AS a
WHERE product_id IN (IZBERITE product_id FROM m_outcome)

Zahteva Q038. Prikazane so kode izdelkov, ki so vsebovane kot v tabeli m_income, vendar niso v tabeli m_outcome:

IZBERI DISTINCT ID izdelka


IZ m_income AS a
KJE NE OBSTAJA (IZBERITE ID izdelka IZ m_outcome AS b
KJE b.product_id = a.product_id);

Zahteva Q039. Prikaže se seznam izdelkov z največjo prodajo. Algoritem je naslednji. Za vsak izdelek se izračuna znesek njegove prodaje. Nato se določi najvišji od teh zneskov. Nato se za vsak izdelek ponovno izračuna skupna prodaja ter se prikažeta koda in skupna prodaja izdelkov, katerih seštevek je enak največjemu:

SELECT product_id, SUM (količina * cena) AS znesek_sum


IZ m_outcome
GROUP BY product_id
HAVING SUM (znesek * cena) = (IZBERITE MAX (s_amount)
FROM (IZBERITE VSOTE (znesek * cena) AS s_amount FROM m_outcome GROUP BY product_id));

Zahtevaj Q040. Rezervirana beseda IIF ( pogojni operater) se uporablja za oceno boolov izraz in izvajanje enega ali drugega dejanja, odvisno od rezultata (TRU ali NE). V naslednjem primeru se dostava artikla šteje za "majhno", če je količina manjša od 500. V nasprotnem primeru, to je, da je količina na prejemu večja ali enaka 500, se dostava šteje za "veliko":

IZBERI dt, product_id, znesek,


IIF (znesek IZ m_prihodka;

Poizvedba SQL Q041. V primeru, ko se operater IIF uporablja večkrat, ga je bolj priročno zamenjati z operaterjem SWITCH. Operator SWITCH (operater več izbir) se uporablja za vrednotenje logičnega izraza in izvedbo dejanja na podlagi rezultata. V naslednjem primeru se dostavljena serija šteje za "majhno", če je količina blaga v seriji manjša od 500. V nasprotnem primeru, če je količina blaga večja ali enaka 500, se serija šteje za "veliko ":

IZBERI dt, product_id, znesek,


SWITCH (količina = 500, "veliko") AS oznaka
IZ m_dohodka;

Zahteva Q042. V naslednjem zahtevku, če je količina blaga v prejeti seriji manjša od 300, se serija šteje za "majhno". V nasprotnem primeru, če je pogoj količine SELECT dt, product_id, amount,
IIF (znesek IIF (znesek FROM m_income;

Poizvedba SQL Q043. V naslednjem zahtevku, če je količina blaga v prejeti seriji manjša od 300, se serija šteje za "majhno". V nasprotnem primeru, če je pogoj količine SELECT dt, product_id, amount,
SWITCH (količina zneska > = 1000, "veliko") AS oznaka
IZ m_dohodka;

Poizvedba SQL Q044. V naslednji poizvedbi je prodaja razdeljena v tri skupine: majhna (do 150), srednja (od 150 do 300), velika (300 ali več). Nato se za vsako skupino izračuna vsota:

IZBERITE kategorijo, SUM (outcome_sum) AS Ctgry_Total


FROM (IZBERITE znesek * cena AS outcome_sum,
IIf (znesek * cena IIf (znesek * cena IZ m_izid) AS t
GROUP BY Kategorija;

Poizvedba SQL Q045. Funkcija DateAdd se uporablja za dodajanje dni, mesecev ali let določenemu datumu in pridobivanje novega datuma. Naslednja poizvedba:
1) datumu iz polja dt doda 30 dni in prikaže nov datum v polju dt_plus_30d;
2) doda 1 mesec datumu iz polja dt in prikaže nov datum v polju dt_plus_1m:

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


IZ m_dohodka;

Poizvedba SQL Q046. Funkcija DateDiff izračuna razliko med dvema datumoma v različnih enotah (dnevi, meseci ali leta). Naslednja poizvedba izračuna razliko med datumom v polju dt in trenutnim datumom v dnevih, mesecih in letih:

IZBERI dt, DateDiff ("d", dt, Datum ()) AS zadnji_dan,


DateDiff ("m", dt, Datum ()) AS zadnji_meseci,
DateDiff ("llll", dt, Datum ()) AS zadnja_leta
IZ m_dohodka;

Poizvedba SQL Q047.Število dni od datuma prejema blaga (tabela m_income) do tekočega datuma se izračuna s funkcijo DateDiff in se primerja datum poteka (tabela m_product):


DateDiff ("d", dt, Datum ()) AS zadnji_dnevi
IZ m_income KOT NOTRANJE PRIKLJUČEK m_product AS b
ON a.product_id = b.id;

Poizvedba SQL Q048. Izračuna se število dni od datuma prejema blaga do tekočega datuma, nato se preveri, ali to število presega rok uporabnosti:

IZBERITE a.id, product_id, dt, lifedays,


DateDiff ("d", dt, Datum ()) AS zadnji_dnevi, IIf (zadnji_dnevi> življenjski dnevi, "Da", "Ne") AS date_expire
IZ m_income a NOTRANJE PRIDRUŽITEV m_product b
ON a.product_id = b.id;

Poizvedba SQL Q049. Izračuna se število mesecev od dneva prejema blaga do tekočega datuma. Stolpec month_last1 izračuna absolutno število mesecev, stolpec month_last2 izračuna število polnih mesecev:

IZBERI dt, DateDiff ("m", dt, Datum ()) AS mesec_zadnji1,


DateDiff ("m", dt, datum ()) - iif (dan (dt)> dan (datum ()), 1,0) AS mesec_zadnji2
IZ m_dohodka;

Poizvedba SQL Q050. Prikaže se četrtletno poročilo o količini in količini usredstvenega blaga za leto 2011:

SELECT kvartal, SUM (outcome_sum) AS Skupaj


OD (IZBERITE znesek * cena AS outcome_sum, mesec (dt) AS m,
STIKALO (m = 10,4) AS kvartal
IZ m_dohodka KJE leto (dt) = 2011) AS t
SKUPINA PO kvartalih;

Zahteva Q051. Naslednja poizvedba pomaga ugotoviti, ali so uporabniki lahko v sistem vnesli podatke o porabi artikla v količini, ki je večja od zneska prejema artikla:

SELECT product_id, SUM (in_sum) AS dohodek_sum, SUM (out_sum) AS outcome_sum


FROM (IZBERITE ID_izdelka, znesek * cena kot vsota_v, 0 kot vsota_izhoda
od m_dohodka
UNION VSE
IZBERI ID_izdelka, 0 kot vsota, znesek * cena kot vsota
iz m_outcome) AS t
GROUP BY product_id
OB VSOTE (v_vsoti)
Zahteva Q052. Oštevilčenje vrstic, ki jih vrne poizvedba, se izvaja na različne načine. Z uporabo samega MS Accessa lahko na primer preštevilčite vrstice poročila, pripravljenega v MS Access. Prav tako lahko preštevilčite z uporabo programskih jezikov, kot sta VBA ali PHP. Vendar je včasih to treba storiti v sami poizvedbi SQL. Torej bo naslednja poizvedba oštevilčila vrstice tabele m_income v naraščajočem vrstnem redu vrednosti polj ID:

IZBERITE ŠTEVILO (*) kot N, b.id, b.product_id, b.amount, b.price


FROM m_income a INNER JOIN m_income b ON a.id GROUP BY b.id, b.product_id, b.amount, b.price;

Zahteva Q053. Prvih pet med izdelki je prikazanih po količini prodaje. Prvih pet zapisov je prikazanih s stavkom TOP:

SELECT TOP 5, product_id, sum (količina * cena) AS vsota


IZ m_outcome
GROUP BY product_id
NAROČI PO vsoti (znesek * cena) DESC;

Zahteva Q054. Prikazanih je pet vodilnih med izdelki po količini prodaje, vrstice pa so oštevilčene:

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


IZ


IZ m_outcome GROUP BY product_id) AS a
NOTRANJI SPOJ
(IZBERITE ID_izdelka, vsota (znesek * cena) AS vsota,
summa * 10000000 + product_id AS id
IZ m_outcome GROUP BY product_id) AS b
ON a.id> = b.id
GROUP BY b.product_id, b.summa
OB ŠTEVILCU (*) VRSTITEV PO ŠTEVI (*);

Zahteva Q055. Naslednja poizvedba SQL prikazuje uporabo matematičnih funkcij COS, SIN, TAN, SQRT, ^ in ABS v MS Access SQL:

IZBERI (izberi število (*) iz m_income) kot N, 3,1415926 kot pi, k,


2 * pi * (k-1) / N kot x, COS (x) kot COS_, SIN (x) kot SIN_, TAN (x) kot TAN_,
SQR (x) kot SQRT_, x ^ 3 kot "x ^ 3", ABS (x) kot ABS_
OD (IZBERITE ŠTEVILO (*) AS k
FROM m_income AS A INNER JOIN m_income AS b NA a.idGROUP BY b.id) t;

SQL poizvedba. Primeri v MS Access. POSODOBITEV: 1-10

Zahteva U001. Naslednja poizvedba za spremembo SQL zviša cene artiklov s kodo 3 v tabeli m_income za 10 %:

POSODOBITE m_income NASTAVI ceno = cena * 1.1


WHERE product_id = 3;

Zahteva U002. Naslednja poizvedba za posodobitev SQL poveča število vseh izdelkov, ki se začnejo z besedo "Oil" v tabeli m_income, za 22 enot:

POSODOBITE m_income NASTAVI znesek = znesek + 22


WHERE product_id IN (IZBERITE ID IZ m_product WHERE title LIKE "Oil *");

Zahteva U003. Naslednja poizvedba SQL za spremembe v tabeli m_outcome zniža cene za vse blago, ki ga proizvaja OOO "Sladkoe" za 2 odstotka:

POSODOBITE m_outcome SET cena = cena * 0,98


WHERE product_id IN
(IZBERITE a.id IZ m_product a NOTRANJE PRIDRUŽITEV m_supplier b
ON a.supplier_id = b.id WHERE b.title = "(! LANG: OOO"Сладкое"");. !}

Vsak od nas se redno srečuje in uporablja različne baze podatkov. Ko izberemo naslov E-naslov, delamo z bazo podatkov. Baze podatkov uporabljajo iskalnike, banke za shranjevanje podatkov o strankah itd.

A kljub nenehni uporabi baz podatkov tudi za številne razvijalce programski sistemi veliko "praznih mest" ostane zaradi različnih interpretacij istih izrazov. Preden pogledamo jezik SQL, bomo podali kratko definicijo osnovnih izrazov baze podatkov. Torej.

Zbirka podatkov - datoteka ali niz datotek za shranjevanje urejenih podatkovnih struktur in njihovih odnosov. Zelo pogosto se nadzorni sistem imenuje baza podatkov - je le shranjevanje informacij v določenem formatu in lahko deluje z različnimi DBMS.

mizo - Predstavljajte si mapo, v kateri so shranjeni dokumenti, razvrščeni po določenem kriteriju, na primer seznam naročil za zadnji mesec. To je tabela v računalniku, ločena tabela ima svoje edinstveno ime.

Vrsta podatkov - vrsta informacij, ki jih je dovoljeno shraniti v ločen stolpec ali vrstico. To so lahko številke ali besedilo v določeni obliki.

Stolpec in vrstica- vsi smo delali s preglednicami, ki imajo tudi vrstice in stolpce. Vsaka relacijska baza podatkov deluje s tabelami na podoben način. Vrstice se včasih imenujejo zapisi.

Primarni ključ- vsaka vrstica tabele ima lahko enega ali več stolpcev za svojo edinstveno identifikacijo. Brez primarnega ključa je zelo težko posodobiti, spremeniti in izbrisati zahtevane vrstice.

Kaj je SQL?

SQL(angleščina - strukturirani poizvedovalni jezik) je bil razvit samo za delo z bazami podatkov in je trenutno standard za vse priljubljene DBMS. Sintaksa jezika je sestavljena iz majhnega števila operaterjev in je enostavna za učenje. Toda kljub zunanji preprostosti omogoča ustvarjanje sql poizvedbe za zapletene operacije z bazami podatkov katere koli velikosti.

Od leta 1992 obstaja splošno sprejet standard, imenovan ANSI SQL. Opredeljuje osnovno sintakso in funkcije operaterjev in ga podpirajo vsi vodilni na trgu DBMS, kot je ORACLE. Vseh značilnosti jezika je nemogoče obravnavati v enem majhnem članku, zato bomo na kratko obravnavali le osnovne SQL poizvedbe. . Primeri jasno kažejo preprostost in zmogljivosti jezika:

  • izdelava baz podatkov in tabel;
  • pridobivanje podatkov;
  • dodajanje zapisov;
  • spreminjanje in brisanje informacij.

Vrste podatkov SQL

Vsi stolpci v tabeli baze podatkov hranijo isti tip podatkov. Podatkovni tipi v SQL so enaki kot v drugih programskih jezikih.

Ustvarite tabele in baze podatkov

Obstajata dva načina za ustvarjanje novih baz podatkov, tabel in drugih poizvedb v SQL:

  • prek konzole DBMS
  • Uporaba spletnih skrbniških orodij, ki so priložena strežniku baz podatkov.

Operater ustvari novo bazo podatkov USTVARI BAZA PODATKOV<наименование базы данных>; ... Kot lahko vidite, je sintaksa preprosta in jedrnata.

Znotraj baze podatkov izdelamo tabele s stavkom CREATE TABLE z naslednjimi parametri:

  • ime tabele
  • imena stolpcev in vrste podatkov

Kot primer ustvarimo tabelo Blago z naslednjimi stolpci:

Izdelamo tabelo:

USTVARI TABILNO Blago

(commodity_id CHAR (15) NI NULL,

vendor_id CHAR (15) NI NULL,

commodity_name CHAR (254) NULL,

commodity_price DECIMAL (8,2) NULL,

commodity_desc VARCHAR (1000) NULL);

Tabela ima pet stolpcev. Ime sledi tip podatkov, stolpci so ločeni z vejicami. Vrednost stolpca je lahko nič (NULL) ali pa mora biti izpolnjena (NOT NULL), in to se določi, ko je tabela ustvarjena.

Pridobivanje podatkov iz tabele

Operator izbire podatkov je najpogosteje uporabljena poizvedba SQL. Za pridobitev informacij je treba navesti, kaj želimo izbrati iz takšne tabele. Začnimo s preprostim primerom:

SELECT commodity_name FROM Commodity

Po stavku SELECT podamo ime stolpca za pridobitev informacij, FROM pa definira tabelo.

Rezultat izvedbe poizvedbe bodo vse vrstice tabele z vrednostmi Commodity_name v vrstnem redu, v katerem so bile vnesene v bazo podatkov, t.j. brez razvrščanja. Za razporeditev rezultata se uporablja dodatna klavzula ORDER BY.

Za poizvedbo za več polj jih navedemo, ločene z vejicami, kot v naslednjem primeru:

IZBIRITE commodity_id, commodity_name, commodity_price IZ Commodity

Kot rezultat poizvedbe je mogoče dobiti vrednost vseh stolpcev vrstice. Če želite to narediti, uporabite znak "*":

IZBERITE * IZ Blago

  • Poleg tega SELECT podpira:
  • Razvrščanje podatkov (operator ORDER BY)
  • Izbira glede na pogoje (KJE)
  • Izraz združevanja (GROUP BY)

Dodajte vrstico

Za dodajanje vrstice v tabelo se uporabljajo poizvedbe SQL s stavkom INSERT. Dodatek se lahko izvede na tri načine:

  • dodajte novo celotno vrstico;
  • del vrvice;
  • rezultate poizvedbe.

Če želite dodati celotno vrstico, morate določiti ime tabele in vrednosti stolpcev (polj) nove vrstice. Dajmo primer:

VSTAVI V VREDNOSTI blaga ("106", "50", "Coca-Cola", "1,68", "Brez alkohola,)"

Primer doda nov izdelek v tabelo. Vrednosti so določene za VALUES za vsak stolpec. Če za stolpec ni ustrezne vrednosti, je treba podati NULL. Stolpci so napolnjeni z vrednostmi v vrstnem redu, določenem ob izdelavi tabele.

Če dodate samo del vrstice, morate izrecno podati imena stolpcev, kot v primeru:

INSERT INTO Commodity (id_blaga, vendor_id, commodity_name)

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

Vnesli smo samo identifikatorje izdelka, dobavitelja in njegovo ime, ostala polja pa pustili prazna.

Dodajanje rezultatov poizvedbe

INSERT se večinoma uporablja za dodajanje vrstic, lahko pa se uporablja tudi za dodajanje rezultatov stavka SELECT.

Sprememba podatkov

Če želite spremeniti informacije v poljih tabele baze podatkov, morate uporabiti stavek UPDATE. Operater se lahko uporablja na dva načina:

  • Vse vrstice v tabeli so posodobljene.
  • Samo za določeno vrstico.

UPDATE ima tri glavne elemente:

  • tabela, v kateri morate narediti spremembe;
  • imena polj in njihove nove vrednosti;
  • pogoje za izbiro vrstic za spremembo.

Poglejmo primer. Recimo, da se je spremenila cena artikla z ID = 106, zato je treba to vrstico posodobiti. Napišemo naslednji operater:

POSODOBITE NASTAVITEV blaga commodity_price = "3,2" WHERE commodity_id = "106"

Navedli smo ime tabele, v našem primeru Blago, kjer bo izvedena posodobitev, nato za SET - novo vrednost stolpca in našli želeni vnos tako, da navedete želeno vrednost ID-ja v WHERE.

Za spreminjanje več stolpcev je za stavkom SET podanih več parov stolpec-vrednost, ločenih z vejicami. Oglejmo si primer, ki posodablja ime in ceno izdelka:

POSODOBITE NASTAVITEV blaga commodity_name = 'Fanta', commodity_price = "3,2" WHERE commodity_id = "106"

Če želite odstraniti informacije v stolpcu, ga lahko nastavite na NULL, če to omogoča struktura tabele. Ne smemo pozabiti, da je NULL natančno vrednost "ne" in ne nič v obliki besedila ali številk. Izbrišemo opis izdelka:

POSODOBITE NASTAVITEV blaga commodity_desc = NULL WHERE commodity_id = "106"

Brisanje vrstic

Poizvedbe SQL za brisanje vrstic v tabeli se izvajajo s stavkom DELETE. Obstajata dva primera uporabe:

  • nekatere vrstice so v tabeli izbrisane;
  • vse vrstice v tabeli so izbrisane.

Primer brisanja ene vrstice iz tabele:

DELETE FROM Commodity WHERE commodity_id = "106"

Po DELETE FROM podamo ime tabele, v kateri bodo vrstice izbrisane. Stavka WHERE vsebuje pogoj, po katerem bodo izbrane vrstice za brisanje. V primeru izbrišemo vrstico za izdelek z ID = 106. Zelo pomembno je navesti KJE. če izpustite ta stavek, boste izbrisali vse vrstice v tabeli. To velja tudi za spreminjanje vrednosti polj.

Stavek DELETE ne vključuje imen stolpcev ali metaznakov. V celoti izbriše vrstice, ne more pa izbrisati niti enega stolpca.

Uporaba SQL v Microsoft Accessu

Običajno se uporablja interaktivno za ustvarjanje tabel, baz podatkov, manipuliranje, spreminjanje, analiziranje podatkov v bazi podatkov in injiciranje poizvedb SQL dostop prek priročnega interaktivnega oblikovalnika poizvedb, s katerim lahko zgradite in takoj izvedete stavke SQL katere koli zapletenosti.

Podprt je tudi način dostopa do strežnika, pri katerem se lahko Access DBMS uporablja kot generator poizvedb SQL do katerega koli vira podatkov ODBC. Ta zmožnost omogoča aplikacijam Access interakcijo s katerim koli formatom.

SQL razširitve

Ker poizvedbe SQL nimajo vseh zmogljivosti proceduralnih programskih jezikov, kot so zanke, veje itd., Prodajalci baz podatkov razvijejo svojo različico SQL z naprednimi zmožnostmi. Najprej je to podpora za shranjene procedure in standardne operaterje proceduralnih jezikov.

Najpogostejša narečja jezika:

  • Oracle Database - PL / SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL / pgSQL.

SQL na internetu

MySQL se distribuira pod splošno javno licenco GNU. Obstaja komercialna licenca z možnostjo razvoja modulov po meri. Kot sestavni del je vključen v najbolj priljubljene sklope internetnih strežnikov, kot so XAMPP, WAMP in LAMP, in je najbolj priljubljena DBMS za razvoj aplikacij na internetu.

Razvil ga je Sun Microsystems, trenutno pa ga podpira Oracle Corporation. Podprte so baze podatkov do 64 terabajtov, SQL: standard sintakse 2003, replikacija baze podatkov in storitve v oblaku.



Povezani članki: