Računalniki Windows internet

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 ; VIR

Ukazi 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 ( , , PRIMARNI KLJUČ ( ), TUJI KLJUČ ( ) REFERENCE ());

Omejitve celovitosti pri uporabi CREATE TABLE

Morda boste morali ustvariti omejitve za določene stolpce v tabeli. Pri ustvarjanju tabele lahko nastavite naslednje omejitve:

  • celica tabele ne more biti NULL;
  • primarni ključ - PRIMARY KEY (ime_stolpca1, ime_stolpca2, ...) ;
  • tuji ključ - TUJI KLJUČ (ime_stolpca1, …, ime_stolpca_n) REFERENCE ime_tabele(ime_stolpca1, …, ime_stolpcaxn) .

Določite lahko več kot en primarni ključ. V tem primeru dobite sestavljeni primarni ključ.

Primer

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));

8. Informacije o tabeli

Ogledate si lahko različne informacije (vrsta vrednosti, ključ ali ne) o stolpcih tabele z naslednjim ukazom:

OPIŠI ;

9. Dodajanje podatkov v tabelo

VSTAVI V (, , , …) VREDNOTE ( , , , …);

Ko dodate podatke v vsak stolpec tabele, vam ni treba podati imen stolpcev.

VSTAVI V VREDNOTE ( , , , …);

10. Posodobite podatke tabele

NADGRADNJA SET = , = , ... KJE ;

11. Brisanje vseh podatkov iz tabele

IZBRIŠI IZ ;

12. Brisanje tabele

DOP TABELA ;

Ukazi za ustvarjanje poizvedb

13. IZBERI

SELECT se uporablja za pridobivanje podatkov iz določene tabele:

IZBERI , , … OD ;

Naslednji ukaz lahko prikaže vse podatke iz tabele:

IZBERI * IZ ;

14. IZBERITE DISTINCT

Stolpci tabele lahko vsebujejo podvojene podatke. Uporabite SELECT DISTINCT, da dobite samo nepodvojene podatke.

IZBERI DISTINCT , , … OD ;

15. KJE

Je lahko uporabljen ključno besedo WHERE v SELECT, da določite pogoje v poizvedbi:

IZBERI , , … OD KJE ;

V zahtevku lahko določite naslednje pogoje:

  • primerjava besedila;
  • primerjava številčnih vrednosti;
  • logične operacije IN (in), ALI (ali) in NE (negacija).

Primer

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;

16. SKUPINA PO

Operater GROUP BY se pogosto uporablja s funkcijami združevanja, kot so COUNT, MAX, MIN, SUM in AVG, za združevanje izhodnih vrednosti.

IZBERI , , … OD GROUP BY ;

Primer

Prikažemo število predmetov za vsako fakulteto:

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name;

17. IMATI

Ključna beseda HAVING je bila dodana v SQL, ker je WHERE ni mogoče uporabiti z agregatnimi funkcijami.

IZBERI , , ... OD GROUP BY IMATI

Primer

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;

18. NAROČI PO

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 , , … OD NAROČI PO , , …ASC|DESC;

Primer

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;

19. MED

BETWEEN se uporablja za izbiro vrednosti podatkov iz določenega obsega. Uporabite lahko številčne in besedilne vrednosti ter datume.

IZBERI , , … OD KJE MED IN ;

Primer

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;

20.VŠEČKAJ

Operater LIKE se uporablja v WHERE za določitev vzorca za iskanje podobne vrednosti.

Obstajata dva brezplačna operaterja, ki se uporabljata v LIKE:

  • % (nobeden, en ali več znakov);
  • _ (en znak).
IZBERI , , … OD KJE LIKE ;

Primer

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-___";

21. IN

Z IN lahko podate več vrednosti za člen WHERE:

IZBERI , , … OD KJE IN ( , , …);

Primer

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.');

22. PRIDRUŽITE SE

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 , , … OD PRIDRUŽITE SE VKLOPLJENO = ;

Primer 1

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;

Primer 2

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;

Primer 3

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;

23 Pogled

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.

Ustvarjanje

USTVARI POGLED KOT IZBIRA , , … OD KJE ;

Odstranitev

SPUSTI POGLED ;

Primer

Ustvarimo pogled, sestavljen iz tečajev s 3 krediti:

24. Agregatne funkcije

Te funkcije se uporabljajo za pridobitev skupnega rezultata, povezanega z zadevnimi podatki. Naslednje so pogosto uporabljene agregatne funkcije:

  • COUNT (ime_stolpca) - vrne število vrstic;
  • SUM (ime_stolpca) - vrne vsoto vrednosti v danem stolpcu;
  • AVG (ime_stolpca) - vrne povprečno vrednost danega stolpca;
  • MIN (ime_stolpca) - vrne najmanjšo vrednost danega stolpca;
  • MAX(ime_stolpca) - vrne najvišja vrednost ta stolpec.

25. Ugnezdene podpoizvedbe

Ugnezdene podpoizvedbe so poizvedbe SQL, ki vključujejo stavke SELECT, FROM in WHERE, ugnezdene znotraj druge poizvedbe.

Primer

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"

Vrste funkcij

Obstajati različne poti funkcijske klasifikacije. Naslednji pododdelki opisujejo pomembne razlike, da boste lažje razumeli, kako funkcije delujejo.

Deterministične in nedeterministične funkcije

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.

Agregatne in skalarne funkcije

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.

Funkcije oken

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

IZBERI ime || " " || priimek KAO FIO IZ tabele

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).

Funkcija INITCAP

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.

ZGORNJA funkcija

Podobna funkcija, ki vrne le vse velike znake, je ZGORNJA.

IZBERI GOR (ime) KOT FIO IZ tabele

  • ime – ime stolpca;
  • 20 - število znakov ( dolžina polja);
  • "-" je znak, ki ga je treba dopolniti z zahtevanim številom znakov.

Funkcija RPAD

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

Ivan——————
Sergej -----

Funkcija LTRIM

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.

Funkcija RTRIM

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.

Funkcija REPLACE

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.

Funkcija TRANSLATE

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.

Funkcija SUBSTR

SUBSTRdano 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:

Funkcija LENGTH - dolžina niza

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.

IZBERI DOLŽINO (ime) IZ tabele

po tej zahtevi boste to dobili.

4
6
7

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

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

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

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) .

Funkcija SQL AVG

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

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.

Agregatne funkcije s SQL GROUP BY

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.

Kategorijadelenotedenar
Prevozmotorna vozila110 17600
NepremičninaApartmaji89 18690
NepremičninaDachas57 11970
Prevozmotorna kolesa131 20960
gradbeni materialideske68 7140
elektrotehnikatelevizorji127 8255
elektrotehnikaHladilniki137 8905
gradbeni materialiRegips112 11760
Prosti časknjige96 6240
NepremičninaHiše47 9870
Prosti časGlasba117 7605
Prosti časIgre41 2665

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 SQL