Korekcija presbiopije z očali. Izbira pisarniških očal

In nad podatki tabele.

Pokliče se jezik SQL vgrajena, Ker vsebuje funkcije polnega razvojnega jezika in se osredotoča na dostop do podatkov, zaradi česar je vključen v orodja za razvoj aplikacij. Jezikovni standardi SQL podpirajo Pascal, Fortran, COBOL, C in druge programske jezike.

obstaja 2 načina za uporabo vdelanega SQL:

  • statična uporaba jezika ( statični SQL) - besedilo programa vsebuje klice funkcij SQL, ki so po prevajanju vključene v izvršljivi modul.
  • dinamično uporaba jezika ( dinamični SQL) – dinamična konstrukcija klicev funkcij SQL in njihova interpretacija. Na primer, lahko med izvajanjem programa dostopate do podatkov oddaljene baze podatkov.

Jezik SQL (tako kot drugi jeziki baz podatkov) je zasnovan za pripravo in izvajanje poizvedb. Kot rezultat izvajanja podatkovne poizvedbe iz ene ali več tabel dobimo niz zapisov, ki se imenuje izvedba.

Definicija 1

Izvedba je tabela, ki nastane kot rezultat izvedbe poizvedbe.

Osnovni operaterji poizvedovalnega jezika SQL

Stavki SQL so pogojno razdeljeni na 2 podjezika:

  1. Jezik definicije podatkov DDL;
  2. Jezik za manipulacijo podatkov DML.

V tabeli je označen simbol * posebne operaterje jezik.

Oglejmo si najpomembnejše stavke SQL.

    Izjava o ustvarjanju tabele:

    Ime tabele, ki se ustvarja, in ime vsaj enega stolpca (polja) sta obvezna operanda. Za ime stolpca morate določiti vrsto podatkov, ki bodo v njem shranjeni.

    Za posamezna polja lahko določite dodatna pravila za nadzor vrednosti, ki so vnesene v njih. na primer NI NULL označuje, da polje ne sme biti prazno in da je treba vanj vnesti vrednost.

    Primer 1

    Za ustvarjanje tabele knjige imenik knjig, ki vsebuje polja:

    vrsta- vrsta knjige

    ime- ime knjige,

    cena– cena knjige

    operater bi lahko izgledal takole:

    Operator spremembe strukture tabele:

    Ko spreminjate strukturo tabele, lahko dodate ( DODAJ), spremeni ( SPREMENI) ali izbriši ( DROP) enega ali več stolpcev tabele. Pravila za pisanje tega operatorja so enaka kot za operator USTVARI TABELO. Za brisanje stolpca vam ni treba podati.

    Primer 2

    Za dodajanje v tabelo knjige polja število, ki bo shranil število knjig, lahko napišete operator:

    Izjava o padcu tabele:

    Primer 3

    Na primer, če želite izpustiti obstoječo tabelo z imenom knjige samo uporabi operator:

    Izjava o ustvarjanju indeksa:

    Izjava ustvari indeks za enega ali več stolpcev dane tabele, kar pospeši poizvedbe in operacije iskanja. Na isti tabeli je mogoče ustvariti več indeksov.

    Izbirna možnost UNIKATNO je odgovoren za zagotavljanje edinstvenosti vrednosti v vseh stolpcih, ki so navedeni v izjavi.

    ASC nastavi samodejno razvrščanje vrednosti v stolpcih v naraščajočem vrstnem redu (privzeto) in OPIS- v padajočem vrstnem redu.

    Operater padca indeksa:

    Ogled ustvarjanja operaterja:

    Ko ustvarjate pogled, lahko izpustite imena stolpcev. Nato bodo uporabljena imena stolpcev iz poizvedbe, ki jih opisuje ustrezni operator IZBERI.

    Ogled operaterja brisanja:

    Operator izbire zapisa:

    Operater IZBERI izbira in izvaja izračune podatkov iz ene ali več tabel. Rezultat izvedbe stavka je tabela odzivov, ki vsebuje ( VSE) ali ne vsebuje ( IZRAZIT) vrstice, ki se ponavljajo.

    Operand OD vsebuje seznam tabel, iz katerih so vzeti zapisi za izbor podatkov.

    Operator za spreminjanje zapisa:

    Nove vrednosti polj v zapisih morda ne vsebujejo vrednosti ( NIČ) ali izračunano v skladu z aritmetičnim izrazom.

    Operater za vnos novih zapisov:

    V prvem zapisu operaterja VSTAVI novi zapisi se vnesejo z danimi vrednostmi v stolpcih.

    V drugem zapisu operaterja VSTAVI vnesene so nove vrstice, izbrane iz druge tabele skozi stavek IZBERI.

    Izbriši operater zapisa:

    Kot rezultat izvajanja operatorja se vrstice, ki izpolnjujejo pogoj, ki ga poda neobvezni operand, izbrišejo iz navedene tabele KJE. Če operand KJE ni podana, vsi zapisi v tabeli so izbrisani.

Disciplina: Baze podatkov

Jezikovni operaterjiSQL

Jezik SQL vključuje operatorje različnih kategorij. Vsak stavek SQL je sestavljen iz rezerviranih besed in besed, ki jih določi uporabnik v skladu z uveljavljenimi sintaktičnimi pravili. Tako kot pri mnogih programskih jezikih večina komponent jezika ne razlikuje med velikimi in malimi črkami. Izjema od tega pravila so, kot običajno, znakovni podatki, ki morajo upoštevati velike in male črke in uporabiti tisto, ki je potrebna za predstavitev podatkov.

Za pisanje stavkov v jeziku je sprejet prosti format, ki omogoča boljšo berljivost programa SQL z zamikom in poravnavo.

    vsak stavek v izjavi se mora začeti v novi vrstici;

    začetek vsake fraze mora biti poravnan z začetkom ostalih fraz izjave;

    vsak del fraze naj se začne v novi vrstici z nekaj zamika glede na začetek celotne fraze, kar vam bo omogočilo, da poudarite podrejene dele;

    Nekatere konvencije veljajo za pisanje operatorjev:

    z velikimi začetnicami pišemo rezervirane besede;

    male črke se uporabljajo za pisanje uporabniško določenih besed;

    navpična vrstica "|"" označuje potrebo po izbiri ene od več vrednosti;

    zavit oklepaj določa zahtevani element;

    oglati oklepaji določajo neobvezen element;

    elipsa "..." se uporablja za označevanje neobvezne možnosti ponovitve konstrukta, od nič do večkrat.

Operatorji za definicijo podatkov (tabela 1) se uporabljajo za opis uporabljenih podatkovnih struktur. Ta kategorija vključuje naslednje izjave: ustvari tabelo, spusti tabelo, spremeni tabelo, ustvari pogled, SPREMENI POGLED, ODpusti POGLED.

Tabela 1 . Operatorji za definicijo podatkov

Operater Razlaga

ustvari tabelo

DROP tabela

spremeni tabelo

USTVARI POGLED Ustvari pogled

spremeni pogled

padec pogled

Operaterji za obdelavo podatkov, ki tvorijo naslednjo kategorijo operaterjev, so namenjeni polnjenju tabel s podatki in posodabljanju informacij, ki so vanje naložene. Ta kategorija vključuje naslednje operatorje: izbriši, vstavi, posodobi (Tabela 2).

tabela 2 . Operaterji za manipulacijo podatkov

OperaterRazlaga

Izbriši Izbriše eno ali več vrstic, ki ustrezajo pogojem

filtriranje iz osnovne tabele

INSERT Vstavi eno vrstico v osnovno tabelo

posodobitev Posodobi vrednosti enega ali več stolpcev v enem ali več

več vrstic, ki ustrezajo pogojem filtra

Za izbiranje informacij iz podatkovne baze je namenjen poizvedovalni jezik, ki je v jeziku SQL predstavljen z enim samim select stavkom (tabela 3).

Tabela 3 Poizvedbeni jezik

Operater Razlaga

izberite Izbere vrstice; operator, ki vam omogoča oblikovanje nastalega

tabela, ki ustreza poizvedbi

Poleg navedenih kategorij operaterjev, katerih namen si po branju razlag v tabelah ni težko predstavljati, je treba izpostaviti še dve: operaterje za upravljanje transakcij (tabela 4) in orodja za upravljanje podatkov (tabela 5). .

Tabela 4. Upravljanje transakcij

Razlaga operaterja

commit Dokončaj transakcijo - dokončaj obdelavo informacij,

združeni v transakcijo

rollback Povrnitev transakcije - razveljavi spremembe, narejene med izvajanjem

stanje podatkovne baze, jo označite, da se boste vanjo lahko vrnili pozneje

Tabela 5 . Upravljanje podatkov

Razlaga operaterja

ALTER DATABASE Spremenite nabor osnovnih objektov v bazi podatkov, omejitve glede

celotno bazo podatkov

ALTER DBAREA Spremenite predhodno ustvarjeno območje shranjevanja

ALTER PASSWORD Spremenite geslo za celotno bazo podatkov

CREATE DATABASE Ustvarite novo bazo podatkov

CREATE DBAREA Ustvarite novo območje za shranjevanje in ga dajte na voljo za gostovanje

DROP DATABASE Izbrišite obstoječo bazo podatkov

DROP DBAREA Izbrišite obstoječe območje shranjevanja (če trenutno ne vsebuje

aktivni podatki se nahajajo)

GRANT Dodelitev pravic dostopa do številnih dejanj na nekem objektu baze podatkov

REVOKE Preklic pravic dostopa do nekega predmeta ali nekaterih dejanj na

predmet

V komercialnih DBMS je nabor osnovnih operatorjev razširjen. Večina DBMS-jev vključuje stavke za definiranje in brisanje indeksa izvajanja shranjenih procedur in stavke za definiranje sprožilcev.

Običajno je, da se seznanitev s tem jezikom začne z upoštevanjem zmožnosti poizvedovalnega jezika, ki ga v jeziku SQL predstavlja en sam izbrani stavek, saj je ta močan stavek seveda tudi najbolj zapleten. Poleg tega je zanimivo videti, kako ga bo mogoče v prihodnosti uporabljati v povezavi z operaterji manipulacije podatkov.

    Izberite izjavoIZBERI . Oblikovanje poizvedb v bazo podatkov

Namen stavka select je izbrati in prikazati podatke iz ene ali več tabel baze podatkov. Ta izjemno zmogljiv, najpogosteje uporabljen operator izvaja vse operacije relacijske algebre. Enako zahtevo lahko izvedemo na več načinov, ki se lahko bistveno razlikujejo v času izvedbe.

Izberite obliko izjave:

IZBERI *|<список полей>OD<список таблиц>

Podanega vrstnega reda besednih zvez v stavku select ni mogoče spremeniti, vendar niso potrebni vsi njegovi deli. Zahtevane klavzule vključujejo samo klavzuli select in from. Vsi drugi deli operaterja se lahko uporabljajo po presoji programerja. Pojasnilo:

□ Fraza izberite:

Prisotnost ključne besede vse(privzeto) pomeni, da končna tabela vključuje vse vrstice, ki izpolnjujejo pogoje poizvedbe, kar lahko privede do pojava podvojenih vrstic v končni tabeli;

Ključna beseda izrazit zasnovan tako, da tabelo uskladi z načeli relacijske teorije, ki predpostavlja odsotnost podvojenih vrstic;

Simbol " * " definira zelo pogosto situacijo, ko nabor rezultatov vključuje vse stolpce iz prvotne tabele poizvedbe.

□ V frazi od podan je seznam izvornih tabel poizvedbe.

□ V frazi kje definirani so pogoji za izbiro vrstic z rezultati ali pogoji za združevanje vrstic izvornih tabel, podobno kot operacija pogojnega združevanja v relacijski algebri. Naslednji predikati se lahko uporabijo kot izbirni pogoji:

Primerjave "= ,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

medAMPAKinAT- predikat je resničen, ko je ovrednotena vrednost izraza znotraj navedenega obsega (predikat nemedainAT res, če vrednost, ki se primerja, ne spada v podani interval);

v- predikat je resničen, ko je primerjana vrednost vključena v množico danih vrednosti; v tem primeru je nabor vrednosti mogoče določiti s preprostim naštevanjem ali vgrajeno podpoizvedbo (predikat not in je resničen, če primerjana vrednost ni vključena v podani niz);

kot in nekot- predikati, katerih pomen je nasproten, zahtevajo specifikacijo predloge, s katero se podana vrednost primerja; podoben predikat je resničen, ko se primerjana vrednost ujema z vzorcem, drugače pa false;

JEnič- predikat, ki se uporablja za ugotavljanje enakosti vrednosti nekega atributa z nedefinirano vrednostjo:

    <имя атрибута> JEnič- sprejme vrednost true, če ima podani atribut v tem nizu nedefinirano vrednost in false, sicer;

    <имя атрибута> JENEnič- vse se zgodi obratno.

obstajajo in neobstajajo Uporablja se v podpoizvedbah v vrstici.

□ V frazi skupinaavtor nastavljen je seznam polj za združevanje.

□ V frazi imeti postavljeni so predikati-pogoji, naloženi vsaki skupini.

□ V frazi naročiloavtor podan je seznam polj za razvrščanje rezultatov, to je seznam polj, ki določa vrstni red razvrščanja v nastali tabeli.

Standard SQL definira koncept vrednosti NULL, zaradi česar je bila potrebna uporaba trivrednostne logike, kjer se vse logične operacije izvajajo v skladu s spodnjo tabelo resnic (tabela 6).

Tabela 6 . tabela resnice

A IN B

TRUE

1.1. Enostavne poizvedbe

Zahteva 1

Prikaz informacij o oddelkih univerze.

Ta naloga je zmanjšana na izbiro in prikaz informacij iz ene tabele, vse njene vrstice in vsi njeni stolpci pa so predmet izhoda:

IZBERI * IZ oddelka

Rezultat takšne poizvedbe bo tabela z informacijami o vseh oddelkih univerze:

koda kaf

Ime kaf

Nom_telef

Nom_Auditoria

Col_sotr

Ivanov T.M.

Splošna matematika

Makhov K L.

Ross L.T.

Firsov S.S.

Uporabna matematika

Lyakhova I.T.

Zahteva 2

Prikaz telefonskih številk univerzitetnih oddelkov.

Rezultat takšne poizvedbe mora vsebovati samo dva stolpca: Ime_ kaf in Nom_ telef, zato bi morala sama poizvedba izgledati takole:

IZBERITE Ime_kaf, Nom_telef IZ kafedra

Tabela rezultatov:

Imekaf Nomjelef

Fizika 23-34-24

Splošna matematika 23-65-43

Zgodbe 23-78-72

Grafi 23-99-77

Uporabna matematika 23-66-62

V zgoraj oblikovanih poizvedbah je bilo treba prikazati vse vrstice tabele, navedene v klavzuli from. Če mora izbor omejiti število izhodnih vrstic v skladu z nekim pogojem, lahko to dosežete z uporabo klavzule where v poizvedbi. V klavzulo where lahko vključite enega ali več pogojev za izbiro vrstic.

Zahteva 3

Prikaz podatkov o oddelku za grafiko.

SELECT * FROM kafedra WHERE Name_kaf = "Charts"

Odgovor na takšno zahtevo bo vseboval samo eno vrstico:

Kod.kaf Name_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf

004 Grafi 23-99-77 385 18 Firsov C.C.

Zahteva 4

Prikažite podatke o univerzitetnih oddelkih, ki se nahajajo v pritličju, pri čemer upoštevajte, da so sobe v pritličju v razponu od 1 do 99.

Zahteva bo videti takole:

IZBERI * IZ kafedra WHERE Nom_Auditoria MED 1 IN 99

Rezultat poizvedbe:

KodjcafName_kafNorn lelef Norn Auditoria Coi_sotr Zavkaf

002 Splošna matematika 23-65-43 003 22 Makhov K.L.

matematika

Na splošno so vrstice v nastali tabeli na nek način prikazane v neurejenem stanju. Ogledovanje in analiziranje takega gradiva ni vedno priročno. Klavzula Order by se uporablja za razvrščanje vrstic po katerem koli stolpcu. Vključuje z vejicami ločen seznam imen stolpcev, po katerih želite razvrstiti prikazane informacije. Ta fraza mora biti vedno postavljena zadnja v stavku za izbiro in, če je prisotna, je možno razvrstiti vrstice v naraščajočih (asc) ali padajočih (desc) vrednosti podanega stolpca ali kombinacije navedenih stolpcev, ne glede na to, ali so ti so stolpci prisotni v nastali tabeli ali ne.

Zahteva 5

Prikažite podatke o oddelkih univerze v obliki, razvrščeni po stolpcuIme_ kafv naraščajočem vrstnem redu.

Zahteva bo videti takole:

IZBERI * IZ kafedra ORDER BY Name_caf ASC

Rezultat te zahteve:

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf

004 Grafi 23-E9-77 385 18 FirsovS.S.

003 Zgodbe 23-78-72 465 16 Ross L.T.

002 Splošni ma- 23-65-43 003 22 Makhov K.L.

teme

005 Uporabljeno 23-66-62 028 24 Lyakhova I.T.

matematika

001 Fiziki 23-34-24 132 25 Ivanov T.M.

Pogosto je koristno razvrstiti prikazane informacije v več stolpcev, da izboljšate vidnost. Če želite to narediti, morajo biti imena stolpcev za razvrščanje navedena ločena z vejicami v vrstnem redu po členu. V tem primeru bo izhodna tabela vsebovala vrstice, razvrščene po prvem stolpcu, določenem v klavzuli o vrstnem redu, in vrstice, ki imajo enake vrednosti v tem stolpcu, bodo razvrščene po vrednostih drugega stolpca in tako naprej od od leve proti desni.

Kot že omenjeno, je Edgar Codd v sedemdesetih letih predlagal uporabo relacijskega modela. Poleg samega modela je predlagal tudi jezik za delo s podatki znotraj tega modela, imenovan DSL / Alpha. Kasneje se je na podlagi DSL / Alpha pojavil jezik SQUARE in na njegovi podlagi jezik SEQUEL, ki se je (zaradi nekaj zmede v blagovnih znamkah) kasneje preimenoval v SQL.

Tukaj ima lahko omejitev_* naslednje vrednosti (ali njihove kombinacije):

  • NOT NULL - ne more biti "prazno"
  • UNIQUE - vrednost je edinstvena
  • PRIMARNI KLJUČ - kombinacija prvih dveh
  • FOREIGN KEY - določanje tujega ključa
  • PREVERI - vrednost mora izpolnjevati pogoj
  • DEFAULT - privzeta vrednost

Pri različnih izvedbah so nekatera odstopanja.

Če je primarni ključ sestavljen iz več stolpcev, ga je treba odstraniti po deklaraciji stolpcev v obrazcu

OMEJITEV pk_table PRIMARNI KLJUČ (col1, col2, .. .)

kjer je pk_table unikatno ime omejitve.

V mnogih izvedbah lahko del CONSTRAINT v pk_table izpustite. V tem primeru bo ime samodejno ustvarjeno.

Tuji ključ je v vsakem primeru deklariran po deklaraciji stolpcev.

Sintaksa:

OMEJITEV fk_table TUJI KLJUČ (col1, .. .) REFERENCE tbl_name (ref_col1, .. .) ON UPDATE upd_action ON DELETE del_action;

kjer je fk_table unikatno ime omejitve, col1, ... so imena stolpcev te tabele, vključenih v tuji ključ, tbl_name je tabela, za katero je navedeni tuji ključ primarni, ref_col1, ... so imena ustreznih stolpcev v tbl_name. upd_action in del_action določata, kako se zbirka podatkov odziva na spremembe in izbrise zapisov iz tbl_name, in lahko sprejmeta eno od naslednjih vrednosti:

  • SET NULL - sklicevanje na stolpce col1, ... je nastavljeno na NULL
  • OMEJITEV - če obstajajo zapisi, ki se nanašajo na vrednost, ki se posodablja/briše, posodobitev/brisanje ne uspe
  • CASCADE - posodobi/odstrani vse referenčne vnose
  • NI AKCIJE - storiti ničesar

V mnogih izvedbah lahko del CONSTRAINT v fk_table izpustite. V tem primeru bo ime samodejno ustvarjeno.

Sintaksa stavka SELECT je naslednja:

IZBERI<список атрибутов>/* OD<список таблиц>

Elementi, ki morda manjkajo v poizvedbi, so navedeni v oglatih oklepajih.

Naštej vse študente.

IZBERI * OD študenta

IZBERI id_st, priimek FROM študent

Upoštevajte, da če tej poizvedbi dodamo klavzulo ORDER BY priimek, bo seznam urejen po priimku. Privzeto je razvrščanje v naraščajočem vrstnem redu. Če je zahtevan padajoči vrstni red, se za imenom atributa doda beseda DESC.

Vrne seznam ocen, ki jih je prejel študent s šifro "1"..

Izdati šifrant študentov, ki so na izpitih prejeli vsaj eno dvojko ali trojko.

V stavku WHERE lahko napišete izraz z uporabo aritmetični operatorji primerjave (<, >itd.) in logičnih operatorjev (AND, ALI, NE) kot v običajnih programskih jezikih.

Poleg primerjalnih operatorjev in logičnih operatorjev za sestavljanje pogojev v SQL (zaradi posebnosti področja uporabe) obstaja vrsta posebnih operatorjev, ki praviloma nimajo analogij v drugih jezikih. To so operaterji:

  • IN - vstop v določeno množico vrednosti;
  • MED - vstop v določeno območje vrednosti;
  • LIKE - preveri ujemanje z vzorcem;
  • IS NULL - preverite nedefinirano vrednost.

Operator IN se uporablja za testiranje nabora vrednosti. Da, zahteva

daje enak rezultat kot zgornja poizvedba (prikaže identifikatorje vseh prijavljenih, ki so na izpitih prejeli vsaj eno dvojko ali trojko).

Enak rezultat je mogoče doseči z uporabo operatorja BETWEEN:

Naštej vse učence, katerih priimki se začnejo na črko A.

V tem primeru je priročno uporabiti operator LIKE.

Operator LIKE velja izključno za znakovna polja in vam omogoča, da ugotovite, ali se vrednost polja ujema z vzorcem. Vzorec lahko vsebuje posebne znake:

_ (podčrtaj) - nadomesti kateri koli posamezen znak;

% (znak za odstotek) - Zamenja zaporedje poljubnega števila znakov.

Zelo pogosto je treba izračunati najmanjše, največje ali povprečne vrednosti v stolpcih. Tako bi na primer morda želeli izračunati povprečno oceno. Za izvedbo takšnih izračunov SQL ponuja posebne agregatne funkcije:

  • MIN je najmanjša vrednost v stolpcu;
  • MAX - največja vrednost v stolpcu;
  • SUM je vsota vrednosti v stolpcu;
  • AVG je povprečna vrednost v stolpcu;
  • COUNT - število ne-NULL vrednosti v stolpcu.

Naslednja poizvedba izračuna povprečje vseh rezultatov študentov na izpitih.

SELECT AVG(mark) FROM mark_st

Seveda lahko uporabite agregatne funkcije skupaj s klavzulo WHERE:

Ta poizvedba bo izračunala GPA študenta s kodo 100 iz vseh izpitov, ki jih je opravil.

Ta poizvedba bo izračunala povprečno oceno študentov glede na rezultate opravljenega izpita s kodo 10. Poleg obravnavanih mehanizmov