4 katere funkcije se uporabljajo v jeziku sql. Funkcije nizov SQL - Primeri uporabe. SELECT sintakso stavka in vrstni red obdelave
V tem članku si lahko ogledate vrste funkcij v jeziku SQL. Funkcije so lahko agregatne ali skalarne. Začnimo...
COUNT()
COUNT()- funkcija, ki vrne število zapisov (vrstic) tabele. Pisanje funkcije, ki določa stolpec, bo vrnilo število zapisov v tem določenem stolpcu, razen zapisov NULL. Sintaksa funkcije:
COUNT(ime_stolpca);
Zapis funkcije z masko "*" bo vrnil število vseh zapisov v tabeli. sintaksa:
ŠTEVILO(*);
Razmislite o primerih. Imamo naslednjo tabelo univerz:
ID | Ime univerze | Študentje | fakultete | profesorji | lokacija | spletno mesto |
1 | Državna nacionalna raziskovalna univerza Perm | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Državna univerza Sankt Peterburg | 21300 | 24 | 13126 | Saint Petersburg | spbu.ru |
3 | Novosibirska državna univerza | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moskovska državna univerza | 35100 | 39 | 14358 | Moskva | msu.ru |
5 | Višja ekonomsko šola | 20335 | 12 | 1615 | Moskva | hse.ru |
6 | Uralska zvezna univerza | 57000 | 19 | 5640 | Jekaterinburg | urfu.ru |
7 | Nacionalna raziskovalna jedrska univerza | 8600 | 10 | 936 | Moskva | mephi.ru |
Primer 1. Prikažite število zapisov v tabeli s funkcijo COUNT:
IZBERI ŠTEVILO(*)
Z univerz; // izhodi 7
Primer 2. Poiščite število univerz v Moskvi s funkcijo COUNT:
SELECT COUNT(*) FROM Universities WHERE Lokacija = "Moskva"; // izhodi 3
AVG()
AVG()- funkcija, ki vrne povprečno vrednost stolpca. Ta funkcija je uporabna samo za številske stolpce. sintaksa:
AVG(ime_stolpca);
Razmislite o primeru. Vzemimo našo mizo univerz. Primer. Uporaba funkcije AVG za iskanje povprečnega števila študentov (študentov) vseh univerz:
IZBERITE AVG (študente) Z univerz; // izhodi 23133
MIN()
MIN()- funkcija, ki vrne najmanjšo vrednost stolpca. Funkcija ima naslednjo sintakso:
MIN(ime_stolpca);
Razmislite o primeru. Vzemimo našo mizo univerz. Primer. S funkcijo MIN poiščite najmanjšo vrednost stolpca Professores:
IZBERITE MIN (profesorje) Z univerz; // izhod 936
MAX()
MAX()- funkcija, ki vrne največjo vrednost stolpca tabele. Funkcija ima naslednjo sintakso:
MAX(ime_stolpca);
Razmislite o primeru. Vzemimo našo mizo univerz. Primer. S funkcijo MAX poiščite največjo vrednost stolpca študentov:
IZBERITE MAX (študentov) Z univerz; // natisne 57000
SUM()
SUM()- funkcija, ki vrne vsoto vrednosti stolpca tabele. Uporablja se samo za številske stolpce. Sintaksa funkcije:
SUM(izraz);
Parameter VSE- je privzeta nastavitev. Upošteva se vsota vseh vrstic. Pri določanju parametra IZRAZIT- Štejejo se samo edinstvene vrednosti.
Razmislite o primerih. Vzemimo našo mizo univerz. Primer 1. S funkcijo SUM poiščite število študentov (študentov) vseh univerz v tabeli:
IZBERITE SUM(študente) Z univerz; // izhodi 161935
Primer 2. S funkcijo SUM preštejte edinstvene vrednosti stolpca Fakultete:
IZBERITE VSOTE (različne fakultete) IZ Univerze; // prikaže 117 (v stolpcu Fakultete sta 2 enaka vnosa, pod ID 1 in 5. Vrednost stolpca pod ID 5 se ne sešteje.)
ROUND()
ROUND()- funkcija za zaokroževanje decimalnih števil. Deluje samo s številskimi stolpci ali poljubnimi realnimi števili. Sintaksa funkcije:
ROUND(izraz, dolžina);
izražanje- ime stolpca ali stolpcev, pa tudi pravo število. dolžina- Določa natančnost zaokroževanja števila.
Razmislite o primeru. Vzemimo tabelo Planetov:
ID | Ime planeta | polmer | Sončna sezona | Leto odprtja | Imeti prstane | odpirač |
1 | Mars | 3396 | 687.58 | 1659 | št | Christiaan Huygens |
2 | Saturn | 60268 | 10759.22 | - | da | - |
3 | Neptun | 24764 | 60190.91 | 1846 | da | John Couch Adams |
4 | Merkur | 2439 | 115.88 | 1631 | št | Nikolaj Kopernik |
5 | Venera | 6051 | 243.56 | 1610 | št | Galileo Galilei |
Primer. S funkcijo ROUND zaokrožite stolpec SunSeason na eno decimalno mesto:
IZBERITE KROGO (Sončna sezona, 1) IZ Planetov;
UCASE()
UCASE()- funkcija, ki vrne vrednosti stolpca ali stolpcev z velikimi črkami. V MS DBMS SQL Server analog UCASE() je funkcija UPPER z isto sintakso:
UCASE(ime_stolpca)
Razmislite o primeru. Vzemimo našo mizo Planeti. Primer. Natisnite imena planetov z velikimi črkami, ki nimajo obročev s funkcijo UCASE:
SELECT UCASE(PlanetName) FROM Planets WHERE HavingRings = "Ne";
LCASE()
LCASE() je funkcija, ki vrne vrednosti stolpca ali stolpcev z malimi črkami. V MS SQL Server DBMS je analog operatorju SQL LCASE() funkcija LOWER z isto sintakso:
LCASE(ime_stolpca);
Razmislite o primeru. Vzemimo našo mizo Planeti. Primer. S funkcijo LCASE natisnite imena planetov, ki imajo obroče z malimi črkami:
SELECT LCASE(PlanetName) FROM Planets WHERE HavingRings = "Da";
LEN()
LEN()- funkcija, ki vrne dolžino vrednosti v polju zapisa. Funkcija izključi končne presledke iz štetja. sintaksa:
LEN(ime_stolpca);
Razmislite o primeru. Vzemimo našo mizo Planeti. Primer. Natisnite odkrivatelja planeta (Opener) in dolžino imena planeta, ki ga je odkril, s funkcijo LEN:
IZBERITE Odpirač, LEN(PlanetName) IZ Planetov;
MID()
MID()- funkcija, ki prikaže določeno število znakov v besedilnem polju tabele. Sintaksa funkcije:
MID(ime_stolpca,začetek[,dolžina]);
Parameter začnite določa položaj začetnega znaka. Parameter dolžina nastavi število znakov, ki se izpišejo od položaja, določenega v začetnem parametru.
Razmislite o primeru. Vzemimo našo staro univerzitetno mizo. Primer. Natisnite prve 3 znake imena mesta (Lokacija) s funkcijo MID:
IZBERITE MID (Lokacija, 1, 3) IZ Univerze;
ZDAJ()
ZDAJ()- funkcija, ki vrne sistemski čas in datum. Sintaksa funkcije:
Razmislite o primeru. Vzemimo našo staro univerzitetno mizo. Primer. Izpišite, koliko študentov trenutno študira na vsaki univerzi. z uporabo funkcije ZDAJ:
IZBERI Ime univerze, Študentje, ZDAJ() AS CurDate FROM Univers;
Za utrjevanje gradiva izvedite primer vsake funkcije neodvisno. Če imate kakršna koli vprašanja, pišite v komentarje in zagotovo vam bom odgovoril.
Osnovni ukazi SQL, ki bi jih moral poznati vsak programer
SQL ali Structured Query Language (strukturirani jezik poizvedb) je zasnovan za upravljanje podatkov v sistemu relacijskih baz podatkov (RDBMS). Ta članek bo obravnaval pogosto uporabljene ukaze SQL, ki bi jih moral poznati vsak programer. To gradivo je idealno za tiste, ki želijo okrepiti svoje znanje SQL pred razgovorom za službo. Če želite to narediti, analizirajte primere, navedene v članku, in ne pozabite, da ste v parih pregledali baze podatkov.
Upoštevajte, da nekateri sistemi baz podatkov zahtevajo podpičje na koncu vsakega stavka. Podpičje je standardni kazalec na konec vsakega stavka v SQL. Primeri uporabljajo MySQL, zato je podpičje obvezno.
Primer nastavitve baze podatkov
Ustvarite bazo podatkov, da pokažete, kako delujejo ukazi. Za delo boste morali prenesti dve datoteki: DLL.sql in InsertStatements.sql. Po tem odprite terminal in se prijavite v konzolo MySQL z naslednjim ukazom (članek predvideva, da je MySQL že nameščen v sistemu):
MySQL -u koren -p
Nato vnesite geslo.
Zaženite naslednji ukaz. Poimenujmo bazo podatkov "univerza":
USTVARJANJE BAZE PODATKOV univerza; ameriška univerza; VIR Morda boste morali ustvariti omejitve za določene stolpce v tabeli. Pri ustvarjanju tabele lahko nastavite naslednje omejitve: Določite lahko več kot en primarni ključ. V tem primeru dobite sestavljeni primarni ključ. Ustvarite tabelo "inštruktorja": CREATE TABLE inštruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, dept_name VARCHAR(20), plača NUMERIC(8,2), PRIMARY KEY (ID), TUJI KLJUČ (dept_name) REFERENCES department(dept_name)); Ogledate si lahko različne informacije (vrsta vrednosti, ključ ali ne) o stolpcih tabele z naslednjim ukazom: OPIŠI Ko dodate podatke v vsak stolpec tabele, vam ni treba podati imen stolpcev. VSTAVI V SELECT se uporablja za pridobivanje podatkov iz določene tabele: IZBERI Naslednji ukaz lahko prikaže vse podatke iz tabele: IZBERI * IZ Stolpci tabele lahko vsebujejo podvojene podatke. Uporabite SELECT DISTINCT, da dobite samo nepodvojene podatke. IZBERI DISTINCT Je lahko uporabljen ključno besedo WHERE v SELECT, da določite pogoje v poizvedbi: IZBERI V zahtevku lahko določite naslednje pogoje: Poskusite naslednje ukaze. Bodite pozorni na pogoje, navedene v KJE: SELECT * FROM course WHERE dept_name='Comp. Sci.'; IZBERI * IZ predmeta KJE krediti>3; SELECT * FROM course WHERE dept_name="Comp. Sci." IN krediti>3; Operater GROUP BY se pogosto uporablja s funkcijami združevanja, kot so COUNT, MAX, MIN, SUM in AVG, za združevanje izhodnih vrednosti. IZBERI Prikažemo število predmetov za vsako fakulteto: SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name; Ključna beseda HAVING je bila dodana v SQL, ker je WHERE ni mogoče uporabiti z agregatnimi funkcijami. IZBERI Prikažemo seznam fakultet, ki imajo več kot en predmet: SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1; ORDER BY se uporablja za razvrščanje rezultatov poizvedbe v naraščajočem ali padajočem vrstnem redu. ORDER BY razvrsti v naraščajočem vrstnem redu, razen če sta določena ASC ali DESC. IZBERI Prikažemo seznam predmetov v naraščajočem in padajočem vrstnem redu glede na število kreditov: IZBERI * IZ tečaja VRSTI PO kreditnih točk; IZBERI * IZ tečaja VRSTI PO kreditih DESC; BETWEEN se uporablja za izbiro vrednosti podatkov iz določenega obsega. Uporabite lahko številčne in besedilne vrednosti ter datume. IZBERI Prikažemo seznam inštruktorjev, katerih plača je večja od 50.000, vendar manjša od 100.000: IZBERI * IZ inštruktorja KJE plača MED 50000 IN 100000; Operater LIKE se uporablja v WHERE za določitev vzorca za iskanje podobne vrednosti. Obstajata dva brezplačna operaterja, ki se uporabljata v LIKE: Prikažemo seznam tečajev, katerih imena vsebujejo "do" , in seznam tečajev, katerih imena se začnejo s "CS-": IZBERI * IZ predmeta KJE naslov LIKE '%to%'; SELECT * FROM course WHERE course_id LIKE "CS-___"; Z IN lahko podate več vrednosti za člen WHERE: IZBERI Prikažemo seznam študentov iz smeri Comp. znanosti, fizike in elek. Angleščina: SELECT * FROM student WHERE dept_name IN('Comp. Sci.', 'Physics', 'Elec. Eng.'); JOIN se uporablja za povezovanje dveh ali več tabel z uporabo skupnih atributov znotraj njih. Spodnja slika prikazuje različne načine združuje v SQL. Upoštevajte razliko med levim zunanjim spojem in desnim zunanjim spojem: IZBERI Tukaj je seznam vseh tečajev in ustreznih informacij o oddelku: IZBERI * IZ predmeta PRIDRUŽITE SE oddelku NA course.dept_name=department.dept_name; Tukaj je seznam vseh obveznih tečajev in podrobnosti o njih: IZBERI prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN course ON prereq.course_id=course.course_id; Prikažemo seznam vseh tečajev, ne glede na to, ali so obvezni ali ne: IZBERI course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id; Pogled je navidezna tabela SQL, ustvarjena kot rezultat izvajanja izraza. Vsebuje vrstice in stolpce in je zelo podobna običajni tabeli SQL. Pogled vedno prikazuje najnovejše informacije iz baze podatkov. Ustvarimo pogled, sestavljen iz tečajev s 3 krediti: Te funkcije se uporabljajo za pridobitev skupnega rezultata, povezanega z zadevnimi podatki. Naslednje so pogosto uporabljene agregatne funkcije: Ugnezdene podpoizvedbe so poizvedbe SQL, ki vključujejo stavke SELECT, FROM in WHERE, ugnezdene znotraj druge poizvedbe. Poiščimo tečaje, ki so se izvajali jeseni 2009 in spomladi 2010: IZBERITE DISTINCT course_id FROM section WHERE semester = 'Jesen' IN letnik= 2009 IN course_id IN (IZBERITE Id_currenta FROM section WHERE semester = 'Pomlad' IN letnik= 2010); Funkcije so posebna vrsta ukaza v naboru ukazov SQL in vsako narečje ima svojo izvedbo nabora ukazov. Posledično lahko rečemo, da so funkcije ukazi, sestavljeni iz ene besede in vrnejo eno samo vrednost. Vrednost funkcije je lahko odvisna od vhodnih parametrov, na primer v primeru funkcije, ki izračuna povprečje seznama vrednosti v bazi podatkov. Vendar pa številne funkcije ne sprejmejo nobenih vhodnih parametrov, na primer funkcija, ki vrne trenutni sistemski čas, je CURRENTJ1ME. Standard ANSI podpira več uporabnih funkcij. To poglavje vsebuje opis teh funkcij, kot tudi natančen opis in primeri za vsako platformo. Poleg tega ima vsaka platforma dolg seznam svojih notranjih funkcij, ki presegajo standard SQL. To poglavje vsebuje parametre in opise vseh notranjih funkcij vsake od platform. Poleg tega ima večina platform možnost ustvarjanja funkcij po meri. Zadaj Dodatne informacije za uporabniško definirane funkcije glejte "Ustvarjanje/spremenitev FUNKCIJ/POSTOPKA Stavke" Obstajati različne poti funkcijske klasifikacije. Naslednji pododdelki opisujejo pomembne razlike, da boste lažje razumeli, kako funkcije delujejo. Funkcije so lahko deterministične ali nedeterministične. Deterministična funkcija vedno vrne enak rezultat za isti niz vhodnih vrednosti. Nedeterministične funkcije lahko vrnejo različne rezultate pri različnih klicih, tudi če imajo enake vhodne vrednosti. Zakaj je tako pomembno, da z enakim vhodni parametri dobili enake rezultate? To je pomembno, ker opredeljuje način uporabe funkcij v pogledih, uporabniško definiranih funkcijah in shranjenih procedurah. Omejitve se med platformami razlikujejo, včasih pa se v teh objektih lahko uporabljajo samo deterministične funkcije. Na primer, SQL Server lahko ustvari indeks za izraz v stolpcu, če izraz ne vsebuje nedeterminističnih funkcij. Pravila in omejitve se razlikujejo od platforme do platforme, zato pri uporabi funkcij glejte dokumentacijo proizvajalca. Drug način za kategorizacijo funkcij je njihova zmožnost dela samo z enim nizom, z zbirko vrednosti ali z nizi nizov. Agregatne funkcije delujejo na zbirki vrednosti in vrnejo eno skupno vrednost. Skalarne funkcije vrnejo eno samo vrednost, odvisno od skalarnih vhodnih argumentov. Nekatere skalarne funkcije, kot je CURRENTJTIME, ne potrebujejo argumentov. Okenske funkcije lahko štejemo za podobne agregatnim funkcijam, saj lahko delujejo v več vrsticah hkrati. Razlika je v tem, kako so te vrstice določene. Agregatne funkcije delujejo na nizih vrstic, določenih v členu GROUP BY. V primeru okenskih funkcij je nabor vrstic podan vsakič, ko se funkcija kliče, in različne izzive funkcije znotraj iste poizvedbe lahko delujejo z različnimi nizi vrstic. Nadaljujemo s preučevanjem jezika poizvedb SQL in danes bomo govorili o tem Funkcije nizov SQL. Pogledali bomo osnovne in pogosto uporabljene funkcije nizov, kot so: SPODNJI, LTRIM, ZAMENJAJ in drugi, vse bomo seveda upoštevali s primeri. IZBERI ime || priimek KAO FIO IZ tabele Ali pa ločite s presledkom enter tiste. dve navpični vrstici združita dva stolpca v enega in da ju ločim s presledkom, sem med njimi dal presledek ( lahko uporabite kateri koli znak, na primer pomišljaj ali dvopičje) v apostrofih in v kombinaciji tudi z dvema navpičnima črtama ( Transact-SQL uporablja + namesto dveh navpičnih vrstic). Sledi zelo uporabna funkcija, INITCAP- ki vrne vrednost v nizu, v katerem se vsaka beseda začne z veliko črko in nadaljuje z malimi črkami. To je potrebno, če ne upoštevate pravil za izpolnjevanje enega ali drugega stolpca in za prikaz celotne stvari lep pogled lahko uporabite to funkcijo, na primer v vaši tabeli so vnosi v stolpcu z imenom naslednjega obrazca: IVAN Ivanov ali Peter Petrov, uporabljate to funkcijo. IZBERI INITCAP (ime) KOT FIO IZ tabele In dobiš takole. Podobna funkcija, ki vrne le vse velike znake, je ZGORNJA. IZBERI GOR (ime) KOT FIO IZ tabele Oglejmo si inverzno funkcijo. RPAD- dejanje in sintaksa sta enaka kot pri LPAD, le znaki na desni so dopolnjeni ( v LPAD na levi). IZBERI RPAD (ime, 20, "-") AS ime IZ tabele Sledi v nekaterih primerih tudi uporabna funkcija, LTRIM- ta funkcija odstrani skrajne leve znake, ki jih določite. Na primer, v svoji bazi podatkov imate stolpec »mesto«, v katerem je mesto označeno kot »Moskva«, obstajajo pa tudi mesta, ki so navedena preprosto kot »Moskva«. Toda poročilo morate prikazati samo v obliki "Moskva" brez "mesta", toda kako to storiti, če obstajajo takšni in drugačni? Določite samo nekakšen vzorec "g." in če se skrajni levi znaki začnejo z "r", potem ti znaki preprosto ne bodo izpisani. IZBERITE LTRIM (mesto) KOT gorod IZ tabele Ta funkcija pogleda znake na levi, če ni znakov po vzorcu na začetku vrstice, potem vrne prvotno vrednost celice in če obstajajo, jih izbriše. Prav tako si takoj poglejmo inverzno funkcijo. RTRIM– enako kot LTRIM se na desni iščejo samo znaki. Opomba! V Transact-SQL funkciji RTRIM in LTRIM odstranita presledke z desne in leve strani. Zdaj razmislite o tako zanimivi funkciji, kot je ZAMENJATI- vrne niz, v katerem so vsa ujemanja znakov zamenjana z vašimi znaki, ki jih določite. Za kaj se lahko uporablja, na primer imate v bazi podatkov stolpce, v katerih je nekaj ločilnih znakov, recimo "/". Na primer, Ivan / Ivanov, in želite prikazati Ivan-Ivanov, nato napišite IZBERI ZAMENJAVO (ime, "/", "-") IZ tabele in imeli boste zamenjavo znakov. Ta funkcija nadomesti samo polno ujemanje znakov, če na primer določite "-" t.j. tri pomišljaje, bo iskal samo tri pomišljaje in ne bo nadomestil vsakega posameznega pomišljaja, za razliko od naslednje funkcije. PREVESTI je funkcija niza, ki zamenja vse znake v nizu z znaki, ki jih podate. Glede na ime funkcije lahko uganete, da je to celotna vrstica. Razlika med to funkcijo in REPLACE je v tem, da nadomesti vsak znak, ki ga določite, t.j. imate tri znake, recimo abc in c z uporabo TRANSLATE Lahko ga zamenjate z abc, tako da imate a=a, b=b, c=c in po tem principu bodo zamenjana vsa ujemanja znakov. In če ste zamenjali z REPLACE, potem ste iskali samo popolno ujemanje znakov abc, ki se nahajajo v vrsti. SUBSTR – dano funkcijo, vrne samo obseg znakov, ki jih podate. Z drugimi besedami, recimo niz 10 znakov, vendar ne potrebujete vseh desetih, ampak recimo, da potrebujete samo 3-8 ( tretjega do osmega). S to funkcijo lahko to enostavno storite. Na primer, v bazi podatkov imate določen identifikator s fiksno dolžino (kot: AA-BB-55-66-CC) in vsaka kombinacija znakov nekaj pomeni. In v nekem lepem trenutku so vam rekli, da prikažete samo 2 in 3 kombinacije znakov, za to napišete poizvedbo v naslednjem obrazcu. IZ tabele IZBERI SUBSTR (ident, "4", "8"). tiste. izpišemo vse znake od 4 do 8 in po tej poizvedbi boste dobili tole: Naslednja funkcija vam lahko prav tako pride prav, to je DOLŽINA- ki preprosto šteje število znakov v nizu. Na primer, morate ugotoviti, koliko znakov v vsaki celici stolpca "ime" je dovoljeno, tabela je naslednja. po tej zahtevi boste to dobili. Tukaj smo z vami in preučili glavne funkcije nizov SQL. V naslednjih člankih bomo nadaljevali s študijem SQL. Naučimo se povzeti. Ne, to niso rezultati učenja SQL, ampak rezultati vrednosti stolpcev tabel baze podatkov. Zbirne funkcije SQL delujejo na vrednosti stolpca, da ustvarijo eno samo vrednost rezultata. Najpogosteje uporabljene agregatne funkcije SQL so SUM, MIN, MAX, AVG in COUNT. Obstajata dva primera, v katerih je treba uporabiti agregatne funkcije. Prvič, agregatne funkcije se uporabljajo same in vrnejo eno samo vrednost rezultata. Drugič, agregatne funkcije se uporabljajo s klavzulo SQL GROUP BY, to je z združevanjem po poljih (stolpcih), da dobimo dobljene vrednosti v vsaki skupini. Najprej razmislite o primerih uporabe agregatnih funkcij brez združevanja. Funkcija SQL SUM vrne vsoto vrednosti stolpca v tabeli baze podatkov. Uporablja se lahko samo za stolpce, katerih vrednosti so številke. SQL poizvedbe da dobite dobljeno vsoto, začnite tako: IZBERI VSOTO (IME STOLPCA) ... Temu izrazu sledi FROM (TABLE_NAME), nato pa lahko s členom WHERE podate pogoj. Poleg tega se lahko imenu stolpca doda predpona DISTINCT, ki označuje, da bodo upoštevane samo edinstvene vrednosti. Privzeto se upoštevajo vse vrednosti (za to lahko posebej določite ne DISTINCT, ampak VSE, vendar je beseda VSE neobvezna). Primer 1 Obstaja baza podatkov podjetja s podatki o njegovih oddelkih in zaposlenih. Tabela Osebje ima tudi stolpec s podatki o plačah zaposlenih. Izbor iz tabele ima naslednjo obliko (za povečavo slike kliknite nanjo z levim gumbom miške): Če želite dobiti vsoto vseh plač, uporabite naslednjo poizvedbo: IZBERITE VSOTO (Plača) IZ osebja Ta poizvedba bo vrnila vrednost 287664,63. In zdaj . Pri vajah že začenjamo komplicirati naloge in jih približati tistim, s katerimi se srečujemo v praksi. Funkcija SQL MIN deluje tudi na stolpce, katerih vrednosti so številke, in vrne najmanjšo vrednost vseh vrednosti v stolpcu. Ta funkcija ima podobno sintakso kot funkcija SUM. Primer 3 Baza podatkov in tabela sta enaki kot v primeru 1. Potrebno je ugotoviti minimalno plačo za zaposlene v oddelku številka 42. Če želite to narediti, napišite naslednjo poizvedbo: Poizvedba bo vrnila vrednost 10505,90. In spet vaja za samoodločbo. Pri tej in nekaterih drugih vajah boste potrebovali ne samo tabelo Osebje, temveč tudi tabelo Org, ki vsebuje podatke o oddelkih podjetja: Primer 4 Tabela Org je dodana tabeli Osebje, ki vsebuje podatke o oddelkih podjetja. Izpišite najmanjše število let, ki jih je en zaposleni delal v oddelku v Bostonu. Funkcija SQL MAX deluje podobno in ima podobno sintakso, ki se uporablja, ko želite določiti največjo vrednost med vsemi vrednostmi stolpca. Primer 5 Potrebno je ugotoviti najvišjo plačo zaposlenih v oddelku številka 42. Če želite to narediti, napišite naslednjo poizvedbo: Poizvedba bo vrnila vrednost 18352,80 Zdaj je čas vaje za samoodločanje. Primer 6 Spet delamo z dvema mizama - Staff in Org. Prikažite ime oddelka in najvišji znesek provizij, ki jih prejme en zaposleni v oddelku, ki spada v skupino oddelkov (Oddelek) Eastern. Uporaba JOIN (združevanje tabel) . Kar je bilo rečeno o sintaksi za prejšnje opisane funkcije, velja tudi za funkcijo SQL AVG. Ta funkcija vrne povprečje vseh vrednosti v stolpcu. Primer 7 Baza podatkov in tabela sta enaki kot v prejšnjih primerih. Naj bo potrebno ugotoviti povprečno delovno dobo zaposlenih v oddelku številka 42. Za to napišemo naslednjo poizvedbo: Rezultat bo 6,33 Primer 8 Delamo z eno mizo - Osebje. Prikažite povprečno plačo zaposlenih z izkušnjami od 4 do 6 let. Funkcija SQL COUNT vrne število zapisov v tabeli baze podatkov. Če v poizvedbi podate SELECT COUNT(COLUMNAME) ..., bo rezultat število zapisov brez upoštevanja tistih zapisov, v katerih je vrednost stolpca NULL (nedefinirana). Če uporabite zvezdico kot argument in začnete poizvedbo SELECT COUNT(*) ..., bo rezultat število vseh zapisov (vrstic) v tabeli. Primer 9 Baza podatkov in tabela sta enaki kot v prejšnjih primerih. Želite vedeti število vseh zaposlenih, ki prejemajo provizije. Število zaposlenih, katerih vrednosti stolpca Comm niso NULL, bo vrnilo naslednjo poizvedbo: IZBERITE ŠTEVILO (Comm) IZ osebja Rezultat bo vrednost 11. Primer 10 Baza podatkov in tabela sta enaki kot v prejšnjih primerih. Če želite izvedeti skupno število zapisov v tabeli, uporabite poizvedbo z zvezdico kot argument funkciji COUNT: IZBERITE ŠTEVILO (*) IZ osebja Rezultat bo vrednost 17. Naslednji vaja za samoodločbo morate uporabiti podpoizvedbo. Primer 11. Delamo z eno mizo - Osebje. Prikažite število zaposlenih v oddelku Plains. Zdaj pa si poglejmo uporabo agregatnih funkcij skupaj s klavzulo SQL GROUP BY. Klavzula SQL GROUP BY se uporablja za združevanje dobljenih vrednosti po stolpcih v tabeli baze podatkov. Spletno mesto ima lekcija, namenjena temu operaterju posebej . Primer 12. Obstaja baza podatkov portal oglasov. Ima tabelo Oglasi, ki vsebuje podatke o oglasih, ki so bili poslani za ta teden. Stolpec Kategorija vsebuje podatke o velikih kategorijah oglasov (na primer Nepremičnine), stolpec Deli pa podatke o manjših delih, ki so vključeni v kategorijo (na primer deli Apartmaji in Vile so deli kategorije Nepremičnine). Stolpec Enote vsebuje podatke o številu oddanih oglasov, stolpec Denar pa znesek zasluženega denarja za oddajo oglasov. S klavzulo SQL GROUP BY poiščite znesek denarja, ustvarjen z oddajo oglasov v vsaki kategoriji. Napišemo naslednjo poizvedbo: IZBERITE kategorijo, VSOTA (denar) KOT denar IZ oglasov SKUPINA PO kategoriji Primer 13 Baza podatkov in tabela sta enaki kot v prejšnjem primeru. S klavzulo SQL GROUP BY ugotovite, kateri del posamezne kategorije je imel največ oglasov. Napišemo naslednjo poizvedbo: IZBERITE kategorijo, del, MAX (enote) KAO največjo vrednost IZ oglasov SKUPINA PO kategorijo Rezultat bo naslednja tabela: Skupne in posamezne vrednosti lahko dobite v eni tabeli združevanje rezultatov poizvedbe z uporabo operaterja UNION . Relacijske baze podatkov in jezik SQLUkazi baze podatkov
1. Oglejte si razpoložljive baze podatkov
POKAŽI BAZE PODATKOV; 2. Ustvarite novo bazo podatkov
USTVARJAJTE BAZA PODATKOV; 3. Izbira baze podatkov za uporabo
UPORABA 4. Uvozite ukaze SQL iz datoteke .sql
VIR 5. Brisanje baze podatkov
IZPUSTI BAZA PODATKOV Delo s tabelami
6. Oglejte si tabele, ki so na voljo v bazi podatkov
POKAŽI TABELE; 7. Ustvarite novo tabelo
USTVARJTE TABELE Omejitve celovitosti pri uporabi CREATE TABLE
Primer
8. Informacije o tabeli
9. Dodajanje podatkov v tabelo
VSTAVI V 10. Posodobite podatke tabele
NADGRADNJA 11. Brisanje vseh podatkov iz tabele
IZBRIŠI IZ 12. Brisanje tabele
DOP TABELA Ukazi za ustvarjanje poizvedb
13. IZBERI
14. IZBERITE DISTINCT
15. KJE
Primer
16. SKUPINA PO
Primer
17. IMATI
Primer
18. NAROČI PO
Primer
19. MED
Primer
20.VŠEČKAJ
IZBERI Primer
21. IN
Primer
22. PRIDRUŽITE SE
Primer 1
Primer 2
Primer 3
23 Pogled
Ustvarjanje
USTVARI POGLED Odstranitev
SPUSTI POGLED Primer
24. Agregatne funkcije
25. Ugnezdene podpoizvedbe
Primer
Vrste funkcij
Deterministične in nedeterministične funkcije
Agregatne in skalarne funkcije
Funkcije oken
Funkcija INITCAP
ZGORNJA funkcija
Funkcija RPAD
Ivan——————
Sergej -----
Funkcija LTRIM
Funkcija RTRIM
Funkcija REPLACE
Funkcija TRANSLATE
Funkcija SUBSTR
Funkcija LENGTH - dolžina niza
4
6
7
Funkcija SQL SUM
Funkcija SQL MIN
Funkcija SQL MAX
Funkcija SQL AVG
Funkcija SQL COUNT
Agregatne funkcije s SQL GROUP BY
Kategorija del enote denar
Prevoz motorna vozila 110
17600
Nepremičnina Apartmaji 89
18690
Nepremičnina Dachas 57
11970
Prevoz motorna kolesa 131
20960
gradbeni materiali deske 68
7140
elektrotehnika televizorji 127
8255
elektrotehnika Hladilniki 137
8905
gradbeni materiali Regips 112
11760
Prosti čas knjige 96
6240
Nepremičnina Hiše 47
9870
Prosti čas Glasba 117
7605
Prosti čas Igre 41
2665