SQL (StructuredQueryLanguage) je univerzalni računalni jezik koji se koristi za stvaranje, modificiranje i manipulaciju podacima u relacijskim bazama podataka. SQL jezik temelji se na relacijskoj algebri i zbirka je operatora.
Postoje 4 grupe operatera. Razmotrimo grupu jezika za manipulaciju podacima (DML, SQL DML)
Odabir podataka
Odabir podataka najčešća je SQL operacija. Naredba SELECT jedan je od najvažnijih izraza u ovom jeziku za odabir podataka. Sintaksa za ovaj operator je sljedeća:
SELECT stupac IZ tablice
SELECT izrazi moraju sadržavati riječi SELECT i FROM; ostale ključne riječi nisu obavezne.
Nakon ključne riječi SELECT slijede informacije o tome koja polja treba uključiti u rezultirajući skup podataka. Zvjezdica (*) označava sva polja u tablici, na primjer:
Za odabir jednog stupca koristi se sljedeća sintaksa:
IZABERI Društvo
Primjer odabira više stupaca izgleda ovako:
IZABERI Društvo, telefon,Mail
Ključna riječ FROM koristi se za određivanje naziva tablica iz kojih se dohvaćaju zapisi, na primjer:
IZABERI * IZ Kupci
Ovaj će upit vratiti sva polja iz tablice Kupci.
Možete koristiti klauzulu WHERE za filtriranje rezultata koje vraća naredba SELECT (opcionalno)
ODABIR * IZ proizvoda GDJE Kategorija = 4
U klauzuli WHERE mogu se koristiti različiti izrazi,
GDJE izraz1 [(I | ILI) izraz2 ...]
Na primjer:
ODABERITE * IZ proizvoda GDJE Kategorija = 2 I Postavshik> 10
ODABERITE Naziv, Cijena IZ proizvoda GDJE Kategorija = 3 ILI Cijena< 50
Možete koristiti sljedeće operatore:
< Меньше
<= Меньше или равно
<>Nejednak
> Više
> = Veće ili jednako
Klauzula ORDER BY (izborno) koristi se za sortiranje rezultirajućeg skupa podataka po jednom ili više stupaca. Ključne riječi ASC (uzlazno) ili DESC (silazno) koriste se za određivanje redoslijeda sortiranja. Podaci se prema zadanim postavkama sortiraju uzlaznim redoslijedom.
Promjena podataka
Osim dohvaćanja podataka, SQL se može koristiti za ažuriranje i brisanje podataka, kopiranje zapisa u druge tablice i izvođenje drugih operacija. U nastavku ćemo pogledati naredbe UPDATE, DELETE i INSERT koje se koriste za postizanje nekih od ovih zadataka.
UPDATE izjava
Naredba UPDATE koristi se za promjenu vrijednosti u jednom ili više stupaca tablice. Sintaksa za ovaj operator je:
UPDATE tablica SET stupac1 = izraz1 WHERE kriterija
Izraz u klauzuli SET može biti konstanta ili rezultat evaluacije. Na primjer, da biste podigli cijene svih proizvoda koji koštaju manje od 10 USD, možete pokrenuti sljedeći upit:
UPDATE Proizvodi SET Cijena = Cijena * 1.1 GDJE Cijena< 10
Izjava DELETE
Za brisanje redaka iz tablica koristite izraz DELETE čija je sintaksa:
IZBRIŠI IZ tablice WHERE kriterija
Uklonite sve proizvode čija je vrijednost manja od 100:
IZBRIŠI IZ proizvoda GDJE Cijena< 100
OperaterUMETNUTI
Za dodavanje zapisa u tablice, koristite izraz INSERT čija je sintaksa:
INSERT INTO tablicu (VRIJEDNOSTI (izraz [, ...])
Na primjer, da biste dodali novog kupca u tablicu Kupci, možete koristiti sljedeći upit:
UMETNI U Kupce (CustomerID, CompanyName) VRIJEDNOSTI ('XYZ', 'XYZ Deli')
Govornik je rezervirana riječ ili znak koji se prvenstveno koristi u WHERE i daje SQL naredbu za izvođenje operacija kao što su usporedbe i aritmetičke operacije.Operatori se koriste za definiranje uvjeta u SQL-u i služe kao spojevi za više uvjeta u izjavi.
- Aritmetički operatori
- Operatori za usporedbu
- Logički operatori
- Operatori su koristili za negiranje uvjeta
Aritmetički operatori u SQL-u:
Pretpostavimo da je varijabla a jednaka je 10, a varijabla b je jednako 20, tada:
Operatori usporedbe u SQL-u:
Pretpostavimo da je varijabla a 10, a varijabla b 20, tada:
operater | Opis | primjer |
---|---|---|
= | Provjerava jesu li vrijednosti dvaju operanda jednake ili ne, ako da, tada uvjet postaje istinit. | (a = b) nije istina. |
!= | (a! = b) je istina. | |
<> | Provjerava jesu li vrijednosti dvaju operanda jednake ili ne, ako vrijednosti nisu jednake, tada uvjet postaje istinit. | (a<>b) je istina. |
> | Provjerava je li vrijednost lijevog operanda veća od vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a> b) nije istina. |
< | Provjerava je li vrijednost lijevog operanda manja od vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a< b) истинно. |
> = | Provjerava je li vrijednost lijevog operanda veća ili jednaka vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a> = b) nije točno. |
<= | Provjerava je li vrijednost lijevog operanda manja ili jednaka vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a<= b) истинно. |
Provjerava nije li vrijednost lijevog operanda manja od vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a!< b) неверно. | |
!> | Provjerava nije li vrijednost lijevog operanda veća od vrijednosti desnog operanda, ako da, tada uvjet postaje istinit. | (a!> b) je istina. |
Logički operatori u SQL-u:
Ovdje je popis svih logičkih operatora dostupnih u SQL-u.
operater | Opis |
---|---|
SVI | Operator ALL koristi se za usporedbu vrijednosti za sve vrijednosti u drugom skupu vrijednosti. |
I | Operator AND dopušta postojanje više uvjeta u klauzuli SQL WHERE. |
BILO KOJI | Operator ANY koristi se za usporedbu bilo koje primjenjive vrijednosti na popisu prema uvjetima. |
IZMEĐU | Operator BETWEEN se koristi za pronalaženje vrijednosti koje su unutar skupa vrijednosti, s obzirom na minimalnu i maksimalnu vrijednost. |
POSTOJI | Operator EXISTS koristi se za pronalaženje prisutnosti retka u navedenoj tablici koji odgovara određenim kriterijima. |
U | IN operator se koristi za usporedbu vrijednosti na popisu literalnih vrijednosti koje su definirane. |
KAO | Operator LIKE koristi se za usporedbu sličnih vrijednosti pomoću zamjenskih znakova. |
NE | Operator NOT mijenja značenje logičkog operatora s kojim se koristi. Na primjer: NE POSTOJI, NE IZMEĐU, NIJE IN, itd. Operaterka to poriče. |
ILI | Operator OR koristi se za kombiniranje više uvjeta u klauzuli SQL WHERE. |
JE NULL | Operator NULL koristi se za usporedbu vrijednosti s NULL vrijednošću. |
JEDINSTVENO | Jedna izjava pretražuje svaki redak iz navedene tablice za jedinstvenost (bez duplikata). |
Structure Query Language (SQL) nastao je kao rezultat razvoja relacijskog modela podataka i sada je de facto standard za sustave upravljanja relacijskim bazama podataka. SQL jezik danas podržava ogroman broj različitih tipova DBMS-a.
Naziv SQL jezika obično se izgovara slovima "es-q-el". Ponekad se koristi mnemonički naziv "See-Quel".
SQL jezik pruža korisniku (uz minimalan napor s njegove strane) sljedeće mogućnosti:
Kreirajte baze podataka i tablice s potpunim opisom njihove strukture
Obavljanje osnovnih operacija manipulacije podacima: umetanje, modificiranje, brisanje podataka
Izvršite jednostavne i složene upite.
SQL je relacijski potpun.
Struktura i sintaksa njegovih naredbi su prilično jednostavne, a sam jezik je univerzalan, odnosno sintaksa i struktura njegovih naredbi se ne mijenja pri prelasku s jednog DBMS-a na drugi.
SQL jezik ima dvije glavne komponente:
Jezik definicije podataka (DDL) za definiranje struktura baze podataka i kontrolu pristupa podacima
DML (Jezik za upravljanje podacima), dizajniran za dohvaćanje i ažuriranje podataka.
SQL jezik je neproceduralan, odnosno pri njegovoj upotrebi potrebno je naznačiti koje informacije treba dobiti, a ne kako se one mogu dobiti. SQL naredbe su obične engleske riječi (SELECT, INSERT, itd.). Pogledajmo prvo SQL DML izraze:
SELECT - dohvaćanje podataka iz baze podataka
INSERT - umetanje podataka u tablicu
AŽURIRANJE - ažuriranje podataka u tablici
DELETE - brisanje podataka iz tablice
SELECT izjava
Naredba SELECT izvodi operacije ekvivalentne sljedećim operacijama relacijske algebre: odabir, projekcija i spajanje.
Najjednostavniji SQL upit koji ga koristi izgleda ovako:
SELECT col_name FROM tbl
Nakon ključne riječi za odabir slijedi popis stupaca odvojenih zarezima koji će biti vraćeni iz upita. Ključna riječ from određuje iz koje tablice (ili pogleda) dohvaćati podatke.
Rezultat upita za odabir uvijek je tablica, koja se naziva tablica rezultata. Štoviše, rezultati upita koji se izvršavaju naredbom select mogu se koristiti za kreiranje nove tablice. Ako rezultati dvaju upita prema različitim tablicama imaju isti format, mogu se kombinirati u jednu tablicu. Također, tablica dobivena kao rezultat upita može postati predmet daljnjih upita.
Da biste odabrali sve stupce i sve retke tablice, samo napravite SELECT * FROM tbl;
Razmotrite tablicu proizvoda koja sadrži informacije o cijenama za različite vrste proizvoda:
Rezultat upita
ODABIR * IZ proizvoda;
bit će cijela tablica proizvoda.
Možete odabrati određene stupce tablice pomoću upita
SELECT col1, col2, ..., coln FROM tbl;
Dakle, rezultat upita
ODABERITE vrstu, cijenu od proizvoda;
bit će stol
Popis stupaca u naredbi za odabir također se koristi kada je potrebno promijeniti redoslijed stupaca u rezultirajućoj tablici:
Kako bi se odabrali samo oni redovi tablice koji zadovoljavaju određena ograničenja, koristi se posebna ključna riječ gdje, a zatim logički uvjet. Ako zapis zadovoljava ovaj uvjet, uključuje se u rezultat. U protivnom se takav unos odbacuje.
Na primjer, odabir one robe iz tablice proizvoda čija cijena zadovoljava uvjet Cijena<3200, можно осуществить, используя запрос
ODABERITE * IZ proizvoda gdje je cijena<3200;
Njegov rezultat:
Uvjet se može složiti i kombinirati pomoću logičkih operatora NOT, AND, OR, XOR, na primjer: gdje je id_ Cijena> 500 I Cijena<3500. Допускается также использование выражений в условии: where Price>(1 + 1) i konstante niza: gdje je naziv = "autobalans".
Korištenje konstrukcije IZMEĐU var1 I var2 omogućuje vam da provjerite jesu li vrijednosti bilo kojeg izraza unutar raspona var1 do var2 (uključujući ove vrijednosti):
ODABIR * IZ proizvoda gdje je cijena IZMEĐU 3000 I 3500;
Po analogiji s operatorom NOT BETWEEN, postoji operator NOT IN.
Nazivi stupaca navedeni u klauzuli SELECT mogu se preimenovati. Za to se koristi ključna riječ AS, koja se, međutim, može izostaviti jer se implicitno podrazumijeva. Na primjer, zahtjev
SELECT Tip AS model, Type_id AS broj FROM proizvoda gdje je Type_id = 3
vratit će se (nazivi pseudonima trebaju biti napisani bez navodnika):
Operator LIKE služi za usporedbu niza s uzorkom:
SELECT * FROM tbl gdje col_name KAO "abc"
Ovaj upit vraća samo one zapise koji sadrže vrijednost niza abc u stupcu col_name.
U obrascu su dopuštena dva zamjenska znaka: "_" i "%". Prvi zamjenjuje jedan proizvoljni znak u predlošku, a drugi niz proizvoljnih znakova. Dakle, "abc%" odgovara bilo kojem nizu koji počinje s abc, "abc_" - nizu od 4 znaka koji počinje s abc, "% z" - proizvoljnom nizu koji završava sa z, i na kraju "% z%" - nizovima znakova koji sadrže z.
Možete pronaći sve zapise tablice proizvoda u kojima vrijednost vrste počinje slovom "a" kako slijedi:
SELECT * FROM Product gdje upišite LIKE "a%";
auto vaga |
Ako niz za pretraživanje sadrži zamjenski znak, tada morate navesti kontrolni znak u klauzuli ESCAPE. Ovaj kontrolni znak treba koristiti u obrascu prije zamjenskog znaka, što ukazuje da se potonji treba tretirati kao običan znak. Na primjer, ako se u određenom polju nalaze sve vrijednosti koje sadrže znak "_", tada će uzorak "% _%" rezultirati vraćanjem svih zapisa iz tablice. U tom slučaju, predložak bi trebao biti napisan na sljedeći način:
"% | _%" BJEŽI "|"
Da biste provjerili usklađenost vrijednosti sa nizom "20%", možete koristiti sljedeći operator:
KAO "20 #%" BJEŽITE "#"
Operator IS NULL omogućuje vam da provjerite odsutnost (prisutnost) NULL vrijednosti u poljima tablice. Korištenje normalnih operatora usporedbe u tim slučajevima može dovesti do netočnih rezultata, jer usporedba s NULL vrijednošću rezultira UNKNOWN (nepoznato). Dakle, uvjet odabira bi trebao izgledati ovako:
gdje je col_name IS NULL, umjesto gdje je col_name = NULL.
Zadani rezultat odabira vraća zapise istim redoslijedom u kojem su pohranjeni u bazi podataka. Ako trebate sortirati zapise prema jednom od stupaca, morate koristiti klauzulu ORDER BY, nakon koje slijedi naziv ovog stupca:
SELECT * FROM tbl ORDER BY col_name;
Kao rezultat ovog upita, zapisi će biti vraćeni uzlaznim redoslijedom vrijednosti atributa col_name.
Zapisi se mogu razvrstati po nekoliko stupaca. Da biste to učinili, njihova imena moraju biti navedena nakon ORDER BY, odvojena zarezima:
SELECT * FROM tbl ORDER BY col_name1, col_name2.
Zapisi će biti razvrstani prema polju col_name1; ako postoji nekoliko zapisa s istom vrijednošću u stupcu col_name1, oni će biti razvrstani prema polju col_name2.
Ako želite sortirati zapise obrnutim redoslijedom (na primjer, silazno po datumu), morate navesti ORDER BY col_name DESC.
Za izravno sortiranje postoji ključna riječ ASC, koja je zadana.
Ako rezultat odabira sadrži stotine ili tisuće zapisa, njihov izlaz i obrada zahtijevaju značajno vrijeme.
Stoga se informacije često paginiraju i prikazuju korisniku u komadima. Navigacija po stranici koristi se s ključnom riječi limit nakon koje slijedi broj zapisa za prikaz. Sljedeći upit dohvaća prvih 10 zapisa, dok istovremeno izvodi obrnuto sortiranje u polju col_name1:
SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10
Za dohvaćanje sljedećih 10 zapisa koristi se ključna riječ limit s dvije vrijednosti: prva označava poziciju s koje se prikazuje rezultat, a druga označava broj zapisa za dohvat:
SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10,10
Da biste dohvatili sljedećih 10 zapisa, morate koristiti konstrukciju LIMIT 20, 10.
I preko podataka tablica.
SQL jezik se zove ugrađeni od sadrži funkcije punopravnog razvojnog jezika i usmjeren je na pristup podacima, zbog čega je uključen u alate za razvoj aplikacija. Standardi SQL jezika podržavaju programske jezike Pascal, Fortran, COBOL, S, itd.
Postoji 2 metode korištenja ugrađenog SQL-a:
- statički upotreba jezika ( statički SQL) - tekst programa sadrži pozive SQL funkcijama koje su nakon kompilacije uključene u izvršni modul.
- dinamičan upotreba jezika ( dinamički SQL) - dinamička konstrukcija poziva SQL funkcija i njihova interpretacija. na primjer, možete se pozivati na podatke udaljene baze podataka tijekom izvođenja programa.
SQL jezik (kao i drugi jezici za rad s bazama podataka) namijenjen je za pripremu i izvršavanje upita. Kao rezultat izvršavanja upita podataka iz jedne ili više tablica, dobiva se skup zapisa koji se naziva podnošenje.
Definicija 1
Zastupanje Je li tablica koja se formira kao rezultat upita.
Osnovni operatori SQL upitnog jezika
SQL izrazi se konvencionalno dijele na 2 podjezika:
- Jezik definicije podataka DDL;
- Jezik za manipulaciju podacima DML.
U tablici su * označene sa specifični operateri Jezik.
Pogledajmo najvažnije SQL naredbe.
Izjava o kreiranju tablice:
Naziv tablice koja se kreira i naziv barem jednog stupca (polja) su obavezni operandi. Za naziv stupca morate odrediti vrstu podataka koji će biti pohranjeni u njemu.
Za pojedinačna polja možete odrediti dodatna pravila za kontrolu vrijednosti koje se unose u njih. Na primjer, NIJE NULL označava da polje ne može biti prazno i da se u njega mora unijeti vrijednost.
Primjer 1
Za izradu tablice knjige katalog knjiga koji sadrži polja:
tip- vrsta knjige,
Ime- naziv knjige,
cijena- cijena knjige
operator bi mogao izgledati ovako:
Operator za promjenu strukture tablice:
Prilikom promjene strukture tablice možete dodati ( DODATI), promijeniti ( IZMIJENI) ili izbrisati ( PAD) jedan ili više stupaca tablice. Pravila snimanja za ovog operatera ista su kao i za operatera. STVORI TABLU... Ne morate specificirati za brisanje stupca.
Primjer 2
Za dodavanje u tablicu knjige polja broj, koji će pohraniti broj knjiga, možete napisati operator:
Operator za ispuštanje tablice:
Primjer 3
Na primjer, za ispuštanje postojeće tablice pod nazivom knjige samo koristite operator:
Operator za kreiranje indeksa:
Operator stvara indeks na jednom ili više stupaca dane tablice kako bi ubrzao operacije upita i pretraživanja. Za jednu tablicu može se kreirati više indeksa.
Izborna opcija JEDINSTVENO odgovoran je za osiguranje jedinstvenosti vrijednosti u svim stupcima koji su navedeni u izjavi.
ASC postavlja automatsko sortiranje vrijednosti u stupcima uzlaznim redoslijedom (zadano), i DESC- u silaznom redoslijedu.
Operator ispuštanja indeksa:
Prikaži operator kreiranja:
Možete izostaviti nazive stupaca prilikom izrade pogleda. Tada će se koristiti nazivi stupaca iz upita, što opisuje odgovarajući operator IZABERI.
Prikaži operator brisanja:
Operator odabira zapisa:
Operater IZABERI vrši odabire i izračune na podacima iz jedne ili više tablica. Rezultat izvršavanja operatora je tablica odgovora koja sadrži ( SVI) ili ne sadrži ( RAZLIČIT) retke koje se ponavljaju.
Operand IZ sadrži popis tablica iz kojih se uzimaju zapisi za odabir podataka.
Operator promjene zapisa:
Nove vrijednosti polja u zapisima ne smiju sadržavati vrijednosti ( NULL) ili izračunati prema aritmetičkom izrazu.
Novi operator umetanja zapisa:
U prvom zapisu operatera UMETNUTI novi zapisi se unose s navedenim vrijednostima u stupcima.
U drugoj izjavi operatera UMETNUTI uvode se novi redovi, birani iz druge tablice kroz rečenicu IZABERI.
Operator za brisanje zapisa:
Kao rezultat izvršavanja operatora, redovi se brišu iz navedene tablice koji zadovoljavaju uvjet koji je definiran opcijskim operandom GDJE... Ako je operand GDJE nije navedeno, tada se brišu svi zapisi tablice.
Disciplina: Baze podataka
Jezični operateriSQL
SQL jezik uključuje operatore različitih kategorija. Svaki SQL izraz sastoji se od rezerviranih riječi i korisnički definiranih riječi prema utvrđenim pravilima sintakse. Kao i kod mnogih programskih jezika, većina komponenti operatora jezika ne razlikuje velika i mala slova. Iznimka od ovog pravila, kao i obično, su znakovni podaci, pri određivanju kojih je potrebno zapamtiti slučaj i koristiti onaj koji je neophodan za predstavljanje podataka.
Za pisanje operatora na jeziku usvojen je slobodan format koji omogućuje da se SQL program učini čitljivijim pomoću uvlaka i poravnanja.
svaka fraza u izjavi mora početi u novom retku;
početak svake fraze mora biti usklađen s početkom ostalih izraza operatora;
svaki dio fraze trebao bi početi u novom retku s nekim uvlačenjem u odnosu na početak cijele fraze, što će vam omogućiti da istaknete podređene dijelove;
neke se konvencije primjenjuju za pisanje operatora:
velika slova se koriste za pisanje rezerviranih riječi;
mala slova se koriste za pisanje korisnički definiranih riječi;
okomita traka "|" "označava potrebu za odabirom jedne od nekoliko vrijednosti;
vitičaste zagrade definiraju traženi element;
uglaste zagrade definiraju neobavezni element;
elipsa "..." se koristi za označavanje izborne mogućnosti ponavljanja konstrukcije, od nule do nekoliko puta.
Operatori definicije podataka (Tablica 1) koriste se za opisivanje strukture korištenih podataka. Ova kategorija uključuje sljedeće izjave: kreiraj tablicu, ispusti tablicu, mijenjaj tablicu, kreiraj pogled, ALTER VIEW, DROP VIEW.
stol 1 ... Operatori definicije podataka
Operater Obrazloženje
kreiraj tablicu Kreiraj tablicu
DROP table Ispušta tablicu
alter table Promjena tablice
CREATE VIEW Napravite pogled
promijeni prikaz Promjena pogleda
drop view Obriši prikaz
Operatori manipulacije podacima, koji čine sljedeću kategoriju operatora, dizajnirani su za popunjavanje tablica podacima i ažuriranje informacija učitanih u njih. Sljedeći operatori pripadaju ovoj kategoriji: delete, insert, update (tablica 2).
tablica 2 ... Operateri manipulacije podacima
OperaterObrazloženje
Izbriši Briše jedan ili više redaka koji odgovaraju uvjetima
filtriranje, iz osnovne tablice
INSERT Umeće jedan redak u temeljnu tablicu
ažuriranje Ažurira vrijednosti jednog ili više stupaca u jednom ili više
više redaka koji odgovaraju uvjetima filtriranja
Za dohvaćanje informacija iz baze podataka koristi se jezik upita, koji je u SQL jeziku predstavljen jednom select naredbom (tablica 3).
Tablica 3. Jezik upita
Operater Obrazloženje
odaberite Odabire retke; operator koji vam omogućuje formiranje rezultirajućeg
tablicu koja odgovara upitu
Uz navedene kategorije operatora, čiju namjenu nije teško zamisliti, nakon čitanja objašnjenja u tablicama potrebno je istaknuti još dvije: operatore kontrole transakcija (tablica 4) i alate za administraciju podataka (tablica 5) .
Tablica 4. Upravljanje transakcijama
Objašnjenje operatera
commit Potpuna transakcija - potpuna obrada informacija,
spojeno u transakciju
rollback Vratiti transakciju - poništiti promjene napravljene tijekom izvršenja
stanje baze podataka, označite je kako biste joj se mogli vratiti u budućnosti
Tablica 5 ... Administracija podataka
Objašnjenje operatera
ALTER DATABASE Modificiranje skupa temeljnih objekata u bazi podataka, ograničenja uključena
cijelu bazu podataka
ALTER DBAREA Izmijenite prethodno kreirano područje za pohranu
PROMIJENI LOZINKU Promijenite lozinku za cijelu bazu podataka
CREATE DATABASE Napravite novu bazu podataka
CREATE DBAREA Stvorite novo područje za pohranu i učinite ga dostupnim za postavljanje
DROP DATABASE Ispušta postojeću bazu podataka
DROP DBAREA Ispušta postojeće područje za pohranu (ako trenutno ne sadrži
nalaze se aktivni podaci)
GRANT Dodijelite prava pristupa brojnim radnjama na nekom objektu baze podataka
REVOKE Opoziv prava pristupa nekom objektu ili nekim radnjama na
objekt
U komercijalnim DBMS-ovima proširen je skup osnovnih operatora. Većina DBMS-ova uključuje izraze za definiranje i brisanje indeksa pokretanja pohranjene procedure i izraze za definiranje okidača.
Uobičajeno je upoznavanje s ovim jezikom započeti razmatranjem mogućnosti jezika upita, koji se u SQL jeziku predstavlja jednom naredbom select, jer je ovaj moćni operator, naravno, i najsloženiji. Osim toga, u budućnosti će biti zanimljivo vidjeti kako se može koristiti u sprezi s operaterima za manipulaciju podacima.
Operater odabiraIZABERI . Formiranje upita bazi podataka
Svrha operatora odabira je odabir i prikaz podataka iz jedne ili više tablica baze podataka. Ovaj iznimno moćan, često korišteni operator implementira sve operacije relacijske algebre. Jedan te isti zahtjev može se implementirati na više načina, koji se mogu značajno razlikovati u pogledu vremena izvršenja.
Odaberite format izjave:
ODABIR * |<список полей>IZ<список таблиц>
Navedeni redoslijed fraza u naredbi za odabir ne može se promijeniti, ali nisu svi dijelovi potrebni. Samo klauzule select i from su obavezne klauzule. Svi ostali dijelovi operatora mogu se koristiti prema nahođenju programera. Obrazloženje:
□ Fraza Izaberi:
Prisutnost ključne riječi svi(zadano) znači da rezultirajuća tablica uključuje sve retke koji ispunjavaju uvjete upita, što može dovesti do pojave istih redaka u rezultirajućoj tablici;
Ključna riječ različita namjerava uskladiti tablicu s načelima teorije odnosa, gdje se pretpostavlja da nema duplih redaka;
simbol " * "definira vrlo uobičajenu situaciju u kojoj su svi stupci iz izvorne tablice upita uključeni u skup rezultata.
□ U frazi iz postavlja se popis izvornih tablica upita.
□ U frazi gdje definira uvjete odabira za retke rezultata ili uvjete za spajanje redaka izvornih tablica, slično operaciji uvjetnog spajanja u relacijskoj algebri. Sljedeći predikati mogu se koristiti kao uvjeti odabira:
Usporedbe "=,<>, >, <, >=, <=" - для сравнения результатов вычисления двух выражений; более сложные выражения строятся с помощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом используемых операторов и наличием скобок в выражении;
izmeđuAiV- predikat je istinit kada izračunata vrijednost izraza padne unutar navedenog raspona (predikat neizmeđuaiV true kada uspoređena vrijednost ne spada unutar navedenog intervala);
u- predikat je istinit kada je uspoređena vrijednost uključena u skup specificiranih vrijednosti; u ovom slučaju, skup vrijednosti može se specificirati jednostavnim nabrajanjem ili umetnutim podupitom (predikat nije u istinit je kada vrijednost koja se uspoređuje nije uključena u dati skup);
Kao i neKao- predikati, čije je značenje suprotno, zahtijevaju navođenje predloška s kojim se uspoređuje dana vrijednost; predikat like je istinit kada se uspoređena vrijednost podudara s uzorkom i false u suprotnom;
JEnull- predikat koji se koristi za određivanje jednakosti vrijednosti nekog atributa nedefiniranoj vrijednosti:
<имя атрибута> JEnull- poprima vrijednost true ako navedeni atribut u danom nizu ima nedefiniranu vrijednost, a vrijednost je lažna, u suprotnom;
<имя атрибута> JENEnull- sve se događa obrnuto.
postojati i nepostojati koristi se u inline potupitima.
□ U frazi skupinapo postavlja se popis polja za grupiranje.
□ U frazi imajući postavljaju se predikati-uvjeti nametnuti svakoj skupini.
□ U frazi narudžbapo postavlja se popis polja za redoslijed rezultata, odnosno popis polja koji određuje redoslijed sortiranja u rezultirajućoj tablici.
SQL standard definira koncept NULL vrijednosti, zbog čega je bila potrebna logika s tri vrijednosti, gdje se sve logičke operacije izvode u skladu s donjom tablicom istinitosti (tablica 6).
stol 6 . Tablica istine
A I B | ||||
TRUE | ||||
1.1. Jednostavni upiti
Zahtjev 1
Prikaz informacija o odjelima sveučilišta.
Ovaj zadatak se svodi na dohvaćanje i prikaz informacija iz jedne tablice, a svi njeni reci i svi stupci podliježu prikazu:
ODABIR * IZ kafedra
Rezultat izvršavanja takvog upita bit će tablica koja sadrži informacije o svim odjelima sveučilišta:
Kod kaf |
Ime kaf |
Nom_telef |
Nom_Auditoria |
Col_sotr | |
Ivanov T.M. |
|||||
Opća matematika |
Makhov K L. |
||||
Ross L.T. |
|||||
Firsov S.S. |
|||||
Primijenjena matematika |
Lyakhova I.T. |
Zahtjev 2
Prikažite telefonske brojeve odjela sveučilišta.
Rezultat takvog upita trebao bi sadržavati samo dva stupca: Ime_ kaf i Ne m_ telef, pa bi sam zahtjev trebao izgledati ovako:
ODABERITE Ime_kaf, Nom_telef IZ kafedra
Rezultirajuća tablica:
Imekaf Nomjelef
Fizičari 23-34-24
Opća matematika 23-65-43
Priče 23-78-72
Grafikoni 23-99-77
Primijenjena matematika 23-66-62
U gore generiranim upitima bilo je potrebno prikazati sve retke tablice navedene u klauzuli from. Ako je tijekom odabira potrebno ograničiti broj prikazanih redaka u skladu s nekim uvjetom, onda se to može postići korištenjem klauzule gdje u upitu. Jedan ili više uvjeta odabira reda mogu biti uključeni u klauzulu gdje.
Zahtjev 3
Prikaz informacija o grafičkom odjelu.
SELECT * FROM kafedra WHERE Name_kaf = "Grafikoni"
Odgovor na takav zahtjev sadržavat će samo jedan redak:
Kod.kaf Ime_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf
004 Grafikoni 23-99-77 385 18 Firsov C.C.
Zahtjev 4
Prikažite podatke o odjelima sveučilišta koji se nalaze na prvom katu, uzimajući u obzir činjenicu da se sobe učionica na prvom katu kreću od 1 do 99.
Zahtjev će izgledati ovako:
ODABIR * IZ kafedre GDJE Nom_Auditoria IZMEĐU 1 I 99
Rezultat upita:
KodjcafIme_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf
002 General Mat- 23-65-43 003 22 Makhov K.L.
matematika
Općenito, redovi u rezultirajućoj tablici prikazuju se u nekom neuređenom stanju. Nije uvijek prikladno pregledavati i analizirati takav materijal. Klauzula poredak prema koristi se za sortiranje redaka po bilo kojem stupcu. Sadrži popis naziva stupaca odvojenih zarezima prema kojima želite poredati prikazane informacije. Ovaj izraz bi se uvijek trebao pojaviti zadnji u naredbi za odabir i, ako je prisutan, postaje moguće sortirati retke po uzlaznim (asc) ili silaznim (desc) vrijednostima navedenog stupca ili kombinacije navedenih stupaca, bez obzira na to jesu li ti stupci prisutan u rezultirajućoj tablici ili ne.
Zahtjev 5
Prikažite podatke o odjelima sveučilišta u obrascu poredanom po stupcuIme_ kafuzlaznim redoslijedom.
Zahtjev će izgledati ovako:
ODABIR * IZ kafedra NARUDŽI PO Naziv_caf ASC
Rezultat ovog upita:
Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf
004 Rasporedi 23-E9-77 385 18 Firsov S.S.
003 Priče 23-78-72 465 16 Ross L.T.
002 Opći ma- 23-65-43 003 22 Makhov K.L.
tema
005 Primijenjeno 23-66-62 028 24 Lyakhova I.T.
matematika
001 Fizičari 23-34-24 132 25 Ivanov T.M.
Često je korisno sortirati prikazane informacije po nekoliko stupaca radi poboljšanja jasnoće. Da biste to učinili, nazivi stupaca za sortiranje moraju biti navedeni odvojeni zarezima u redoslijedu po klauzuli. U ovom slučaju, izlazna tablica će sadržavati retke poredane po prvom stupcu navedenom u klauzuli reda po redu, a redovi s jednakim vrijednostima u ovom stupcu bit će poredani prema vrijednostima drugog stupca, i tako dalje slijeva Na desno.