Osnovne sql naredbe. Mehanizam pristupa podacima. Structured Query Language SQL. Povijest i standardi SQL-a. Obrada SQL naredbi od strane Oracle poslužitelja. Zahtjevi za uklanjanje

Sve konceptualne informacije o relacijskim bazama podataka i tablicama korisne su samo ako znate kako komunicirati s podacima. SQL jezik sastoji se od strukturiranih naredbi za dodavanje, mijenjanje i brisanje podataka iz baze podataka. Ove naredbe čine osnovu za interakciju s PostgreSQL poslužiteljem.

Ovaj odjeljak govori o "anatomiji" SQL naredbi. Ispituje strukturne komponente naredbi, opisujući funkcije svake komponente i njihove međusobne odnose. Standardni PostgreSQL klijent naredbenog retka, psql, ispisuje rezultate naredbi u danim primjerima.

Većina primjera SQL naredbi specifični su za booktown bazu podataka. Sav psql izlaz ima prefiks u obliku booktown=#.

Neki primjeri koriste testdb bazu podataka. Prema zadanim postavkama, psql prompt prikazuje samo naziv baze podataka i =# ​​simbole, što pokazuje da je sustav spreman za izdavanje nove naredbe (iako ćete vidjeti da se simbol = dinamički mijenja dok se prati stanje SQL unosa). Knjiga nudi ovaj prompt zajedno s SQL ulazom i izlazom kako bi vam pomogao da se lakše snađete s izlazom psql klijenta.

Psql klijent je detaljno opisan u poglavlju 4. Ovdje se spominje samo da pojasni stil primjera SQL naredbi.

Bilješka
Shema baze podataka booktown (zajedno s primjerima zapisa) nalazi se u datoteci booktown.sql na CD-u. Da biste instalirali ovu bazu podataka, u naredbeni redak unesite naredbu psql - U postgres template! - f /mnt/cdrom/booktown.sql, gdje je /mnt/cdrom staza do montiranog CD-a, a postgres ime superkorisnika PostgreSQL-a
.

Anatomija SQL naredbi

SQL naredbe uvijek počinju radnjom (glagolom) - riječju ili skupinom riječi koja opisuje operaciju koja se izvodi. Osim toga, SQL naredba obično sadrži jedan ili više odjeljaka koji pojašnjavaju njezino značenje. U tablici 3.2 navodi glavne akcije SQL-a.

Tablica 3.2. Osnovne PostgreSQL radnje.

Opis akcije
STVARANJE BAZE PODATAKA Izrada nove baze podataka
KREIRAJ INDEKS Stvaranje novog indeksa na stupcu tablice
STVORI NIZ Stvaranje novog niza u postojećoj bazi podataka
STVARANJE TABLICE Stvaranje nove tablice u postojećoj bazi podataka
STVARANJE OKIDAČA Stvorite novu definiciju okidača
KREIRAJ PRIKAZ Stvorite novi prikaz za postojeću tablicu
IZABERI Odabir zapisa iz tablice
UMETNUTI Umetanje jednog ili više novih zapisa u tablicu
AŽURIRAJ Promjena podataka u postojećim zapisima
IZBRISATI Uklanjanje postojećih zapisa iz tablice
ISPUSTI BAZU PODATAKA Uništavanje postojeće baze podataka
PAD INDEKS Uklanjanje indeksa stupca iz postojeće tablice
DROP SEKVENCIJA Uništavanje postojećeg generatora sekvenci
DROP STOL Uništavanje postojeće tablice
ISPUŠTANJE OKIDAČA Uništavanje postojeće definicije okidača
POGLED NA KAP Uništavanje postojećeg prikaza
KREIRAJ KORISNIKA Kreiranje novog PostgreSQL korisničkog računa u sustavu
PROMIJENI KORISNIKA Izmjena postojećeg PostgreSQL korisničkog računa
ISPUSTI KORISNIKA Brisanje postojećeg PostgreSQL korisničkog računa
GRANT Dodjela prava pristupa objektu baze podataka
OPOZVATI Uklanjanje prava pristupa objektu baze podataka
STVORI FUNKCIJU Stvaranje nove SQL funkcije u bazi podataka
STVORI JEZIK Stvaranje nove definicije jezika u bazi podataka
CREATE OPERATOR Stvaranje nove SQL naredbe u bazi podataka
STVARANJE VRSTE Stvaranje novog SQL tipa podataka u bazi podataka

Structured Query Language razvio je IBM ranih 1970-ih. Godine 1986. ANSI organizacije su prvi standardizirale SQL.

SQL je moćan, au isto vrijeme jednostavan jezik za upravljanje bazom podataka. Podržavaju ga gotovo sve moderne baze podataka. SQL je podijeljen u dva podskupa naredbi: DDL (Data Definition Language) i DML (Data Manipulation Language). DDL naredbe se koriste za stvaranje novih baza podataka, tablica i stupaca, a DML naredbe se koriste za čitanje, pisanje, sortiranje, filtriranje, brisanje podataka.

Ovaj članak će pobliže pogledati DML naredbe, budući da se one mnogo češće koriste.

DDL naredbe

CREATE - koristi se za stvaranje novih tablica, stupaca i indeksa.

DROP - koristi se za uklanjanje stupaca i indeksa.

ALTER - koristi se za dodavanje novih stupaca u tablice i promjenu određenih stupaca.

DML naredbe

SELECT je najčešće korištena naredba i koristi se za dohvaćanje skupa podataka iz tablice baze podataka. Naredba SELECT ima sljedeću sintaksu:

IZABERI lista_polja1 IZ naziv_tablice ]

Operatori unutar uglatih zagrada nisu obavezni, a okomita traka znači da jedna od navedenih fraza mora biti prisutna, ali ne obje.

Na primjer, stvorimo jednostavan upit za dobivanje podataka iz polja "ime" i "telefon" u tablici "prijatelji":

IZABERI ime, telefon IZ prijatelji

Ako trebate dobiti sva polja tablice, nije ih potrebno navoditi, samo stavite zvjezdicu (*):

IZABERI * IZ prijatelji

Da biste isključili duple unose s prikazanog popisa, koristite ključnu riječ DISTINCT:

ODABIR DISTINCT Ime IZ prijatelji

Ako trebate dobiti zaseban zapis, tada se koristi klauzula WHERE. Na primjer, moramo dobiti telefonski broj "Vasya Pupkin" iz tablice "prijatelji":

IZABERI * IZ prijatelji GDJE Ime = "Vasja Pupkin"

ili obrnuto, moramo saznati tko je vlasnik telefona 44-65-01:

IZABERI * IZ prijatelji GDJE telefon = "44-65-01"

Osim toga, možete koristiti zamjenske znakove, stvarajući tako uzorke pretraživanja. Za to se koristi LIKE operator. Operator LIKE ima sljedeće operatore zamjene:

* - odgovara nizu koji se sastoji od jednog ili više znakova;

Odgovara bilo kojem znaku;

Odgovara jednom znaku iz određenog skupa;

Na primjer, za dohvaćanje zapisa iz polja "ime" koje sadrži riječ "Vasya", zahtjev bi izgledao ovako:

ODABIR * IZ prijatelji GDJE Ime KAO "*Vasja*"

Klauzula ORDER BY koristi se za određivanje redoslijeda vraćanja podataka. Bez ovog operatora ne može se predvidjeti redoslijed vraćenih podataka. Ključne riječi ASC i DESC omogućuju određivanje smjera sortiranja. ASC sortira uzlaznim redoslijedom, a DESC redoslijed silaznim.

Na primjer, zahtjev za dobivanje popisa zapisa iz polja "ime" abecednim redom izgledao bi ovako:

ODABIR * IZ prijatelji NARUČI PO Ime

Imajte na umu da ključna riječ ASC nije potrebna jer je zadana.

INSERT - ova naredba služi za dodavanje novog zapisa u tablicu. Napisano je na sljedeći način:

UMETNUTI U naziv_tablice VRIJEDNOSTI ( popis_vrijednosti)

Imajte na umu da vrste vrijednosti na popisu vrijednosti moraju odgovarati vrstama vrijednosti polja tablice, na primjer:

UMETNUTI U prijatelji VRIJEDNOSTI ( "Anka mitraljezac", "32-09-81" )

Ovaj primjer dodaje novi unos u tablicu prijatelja s navedenim vrijednostima.

UPDATE - Ova naredba se koristi za ažuriranje podataka u tablici i najčešće se koristi u kombinaciji s WHERE klauzulom. Naredba UPDATE ima sljedeću sintaksu:

AŽURIRAJ naziv_tablice SET naziv polja = značenje

Ako izostavite klauzulu WHERE, ažurirat će se podaci u svim definiranim poljima u tablici. Na primjer, promijenimo telefonski broj Vasye Pupkuna:

AŽURIRAJ prijatelji SET telefon = "55-55-55" GDJE Ime = "Vasja Pupkin"

DELETE - kao što ste vjerojatno već shvatili, ova naredba služi za brisanje zapisa iz tablice. Kao i UPDATE, naredba DELETE se obično koristi s klauzulom WHERE; ako je ova klauzula izostavljena, svi podaci iz navedene tablice bit će izbrisani. Sintaksa naredbe DELETE je sljedeća:

IZBRIŠI IZ naziv_tablice

Na primjer, maknimo ovog dosadnog Vasju Pupkina sa stola :) :

IZBRIŠI IZ prijatelji GDJE Ime = "Vasja Pupkin"

Kraj

U ovom sam članku govorio o glavnim SQL operatorima, oni su sasvim dovoljni za rad s bazama podataka, o ostalim operatorima govorit ću detaljnije drugi put.

SQL ili Structured Query Language jezik je koji se koristi za upravljanje podacima u sustavu relacijske baze podataka (RDBMS). Ovaj će članak pokriti najčešće korištene SQL naredbe s kojima bi svaki programer trebao biti upoznat. Ovaj je materijal idealan za one koji žele obnoviti svoje znanje SQL-a prije razgovora za posao. Da biste to učinili, pogledajte primjere dane u članku i zapamtite da ste učili baze podataka u paru.

Imajte na umu da neki sustavi baza podataka zahtijevaju točku i zarez na kraju svake izjave. Točka i zarez je standardni pokazivač na kraj svake izjave u SQL-u. Primjeri koriste MySQL, pa je točka-zarez obavezan.

Postavljanje baze podataka za primjere

Napravite bazu podataka da biste pokazali kako timovi rade. Za rad ćete morati preuzeti dvije datoteke: DLL.sql i InsertStatements.sql. Nakon toga otvorite terminal i prijavite se na MySQL konzolu pomoću sljedeće naredbe (članak pretpostavlja da je MySQL već instaliran na sustavu):

Mysql -u root -p

Zatim unesite svoju lozinku.

Pokrenite sljedeću naredbu. Nazovimo bazu podataka "sveučilište":

STVARANJE BAZE PODATAKA sveučilište; USE sveučilište; IZVOR; SOURCE Naredbe za rad s bazama1. Pregled dostupnih baza podataka PRIKAŽI BAZE PODATAKA; 2. Izrada nove baze podataka CREATE DATABASE; 3. Odabir baze podataka za korištenje USE; 4. Uvezite SQL naredbe iz .sql datoteke SOURCE ; 5. Uklanjanje baze podataka DROP DATABASE ; Rad s tablicama6. Pregledajte tablice dostupne u bazi podataka SHOW TABLES;

7. Izrada nove tablice CREATE TABLE ( , , PRIMARY KEY (), FOREIGN KEY () REFERENCES ()); Ograničenja integriteta pri korištenju CREATE TABLE

Možda ćete morati stvoriti ograničenja za određene stupce u tablici. Prilikom izrade tablice možete postaviti sljedeća ograničenja:

  • ćelija tablice ne može imati NULL vrijednost;
  • primarni ključ - PRIMARY KEY (col_name1, col_name2, ...) ;
  • strani ključ - FOREIGN KEY (col_namex1, …, col_namexn) REFERENCE table_name(col_namex1, …, col_namexn) .

Možete navesti više od jednog primarnog ključa. U ovom slučaju dobit ćete kompozitni primarni ključ.

Primjer

Napravite tablicu "instruktor":

CREATE TABLE instruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, naziv_odjela VARCHAR(20), plaća NUMERIC(8,2), PRIMARNI KLJUČ (ID), FOREIGN KEY (ime_odjela) REFERENCE odjel (ime_odjela));

8. Podaci u tablici

Možete pregledati razne informacije (vrstu vrijednosti, ključ ili ne) o stupcima tablice pomoću sljedeće naredbe:

OPISATI ;

9. Dodavanje podataka u tablicu INSERT INTO (, , , …) VALUES (, , , …);

Kada dodajete podatke u svaki stupac u tablici, ne morate navesti nazive stupaca.

INSERT INTO VALUES (, , , ...);

10. Ažuriranje tabličnih podataka UPDATE SET = , = , ... WHERE ; 11. Brisanje svih podataka iz tablice DELETE FROM ; 12. Uklanjanje tablice DROP TABLE ; Naredbe za kreiranje upita13. IZABERI

SELECT se koristi za dohvaćanje podataka iz određene tablice:

SELECT , , ... FROM ;

Sljedeća naredba može prikazati sve podatke iz tablice:

SELECT * FROM ;

14. SELECT DISTINCT

Stupci tablice mogu sadržavati duple podatke. Upotrijebite SELECT DISTINCT za dohvaćanje samo podataka koji nisu duplicirani.

SELECT DISTINCT , , … FROM ;

15. GDJE

Možete koristiti ključnu riječ WHERE u SELECT za navođenje uvjeta u upitu:

SELECT , , ... ODAKLE ;

U zahtjevu se mogu navesti sljedeći uvjeti:

  • usporedba teksta;
  • usporedba numeričkih vrijednosti;
  • logički operatori AND (i), OR (ili) i NOT (negacija).
Primjer

Isprobajte sljedeće naredbe. Obratite pozornost na uvjete navedene u WHERE:

SELECT * FROM kolegij WHERE dept_name=’Comp. Sci.'; SELECT * FROM tečaj WHERE bodovi>3; SELECT * FROM kolegij WHERE dept_name="Comp. Sci." I krediti>3;

16. GRUPIRAJ PO

Operator GROUP BY često se koristi s agregatnim funkcijama kao što su COUNT, MAX, MIN, SUM i AVG za grupiranje izlaznih vrijednosti.

SELECT , , … FROM GROUP BY ;

Primjer

Prikažimo broj predmeta za svaki fakultet:

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

17. IMATI

Ključna riječ HAVING dodana je u SQL jer se WHERE ne može koristiti s agregatnim funkcijama.

ODABERITE , , ... IZ GRUPE IMAJUĆI

Primjer

Prikažimo popis fakulteta koji imaju više od jednog kolegija:

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

18. NARUČI PO

ORDER BY se koristi za sortiranje rezultata upita u silaznom ili uzlaznom redoslijedu. ORDER BY će sortirati uzlaznim redoslijedom osim ako nije navedeno ASC ili DESC.

ODABERITE , , … IZ REDOSLIJEDA PO , , … ASC|DESC;

Primjer

Prikažimo popis tečajeva uzlaznim i silaznim redoslijedom bodova:

SELECT * FROM kolegij ORDER BY bodovi; SELECT * FROM kolegij ORDER BY bodovi DESC;

19. IZMEĐU

BETWEEN se koristi za odabir vrijednosti podataka iz određenog raspona. Mogu se koristiti numeričke i tekstualne vrijednosti, kao i datumi.

SELECT , , … OD GDJE IZMEĐU I ;

Primjer

Prikažimo popis instruktora čija je plaća veća od 50.000, ali manja od 100.000:

SELECT * FROM instruktor WHERE plaća IZMEĐU 50000 I 100000;

20. LIKE

Operator LIKE koristi se u WHERE za određivanje uzorka pretraživanja za sličnu vrijednost.

Postoje dva besplatna operatora koji se koriste u LIKE:

  • % (ništa, jedan ili više znakova);
  • _ (jedan znak).
SELECT , , ... ODAKLE LIKE ; Primjer

Prikažimo popis tečajeva čija imena sadrže "do" i popis tečajeva čija imena počinju sa "CS-":

SELECT * FROM tečaj WHERE naslov LIKE ‘%to%’; SELECT * FROM tečaj WHERE course_id LIKE "CS-___";

21. IN

Koristeći IN možete navesti više vrijednosti za WHERE klauzulu:

SELECT , , … FROM WHERE IN (, , …);

Primjer

Prikažimo popis studenata komp. smjerova. znanosti, fizike i elektr. engleski:

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. PRIDRUŽI SE

JOIN se koristi za povezivanje dvije ili više tablica koristeći zajedničke atribute unutar njih. Slika ispod prikazuje različite načine pridruživanja u SQL-u. Obratite pozornost na razliku između lijevog vanjskog spoja i desnog vanjskog spoja:

SELECT , , … FROM JOIN ON = ;

Primjer 1

Prikazat ćemo popis svih kolegija i relevantne informacije o fakultetima:

SELECT * FROM kolegij JOIN department ON course.dept_name=department.dept_name;

Primjer 2

Prikazat ćemo popis svih potrebnih tečajeva i detalje o njima:

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN tečaj ON prereq.course_id=course.course_id;

Primjer 3

Prikazat ćemo popis svih tečajeva, bez obzira jesu li obavezni ili ne:

SELECT 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 virtualna SQL tablica stvorena kao rezultat izvršavanja izraza. Sadrži retke i stupce i vrlo je sličan običnoj SQL tablici. Pogled uvijek prikazuje najnovije podatke iz baze podataka.

Stvaranje CREATE VIEW AS SELECT , , ... FROM WHERE ; Uklanjanje DROP VIEW ; Primjer

Kreirajmo prikaz koji se sastoji od tečajeva s 3 kredita:

24. Funkcije agregata

Ove se funkcije koriste za dobivanje zbirnog rezultata koji se odnosi na dotične podatke. Sljedeće su najčešće korištene agregatne funkcije:

  • COUNT (col_name) - vraća broj redaka;
  • SUM (col_name) - vraća zbroj vrijednosti u ovom stupcu;
  • AVG (col_name) - vraća prosječnu vrijednost zadanog stupca;
  • MIN (col_name) - vraća najmanju vrijednost danog stupca;
  • MAX (col_name) - Vraća najveću vrijednost danog stupca.
25. Ugniježđeni podupiti

Ugniježđeni podupiti su SQL upiti koji uključuju klauzule SELECT, FROM i WHERE ugniježđene unutar drugog upita.

Primjer

Pronađimo tečajeve koji su se održavali u jesen 2009. i proljeće 2010.:

SELECT DISTINCT course_id FROM odjeljak WHERE semestar = 'Jesen' AND godina= 2009 AND course_id IN (SELECT course_id FROM odjeljak WHERE semestar = 'Proljeće' AND year= 2010);

Kirill Pozdeev, prevoditelj

Kako Yandex koristi vaše podatke i strojno učenje za personalizaciju usluga -.

SQL (ˈɛsˈkjuˈɛl; engleski strukturirani upitni jezik - “structured query language”) je deklarativni programski jezik koji se koristi za stvaranje, modificiranje i upravljanje podacima u relacijskoj bazi podataka.

Usklađenost sa SQL standardima za različite baze podataka:

SQL (Structured Query Language – strukturirani upitni jezik). SQL je prvenstveno informacijski logički jezik dizajniran za opisivanje pohranjenih podataka, dohvaćanje pohranjenih podataka i modificiranje podataka.

SQL nije programski jezik. Kako je SQL postajao sve složeniji, postao je sve više aplikacijski programski jezik, a korisnici sada mogu koristiti alate za izradu vizualnih upita.

SQL je jezik koji ne razlikuje velika i mala slova. Stringovi u SQL-u su zatvoreni u jednostruke navodnike.

SQL jezik je skup iskaza. SQL izjave se dijele na:

    Data Definition Language (DDL) - jezik opisa shema u ANSI-ju, sastoji se od naredbi koje kreiraju objekte (tablice, indekse, poglede itd.) u bazi podataka (CREATE, DROP, ALTER itd.).

    Operatori za manipulaciju podacima (Data Manipulation Language, DML) su skup naredbi koje određuju koje su vrijednosti prikazane u tablicama u bilo kojem trenutku (INSERT, DELETE, SELECT, UPDATE itd.).

    izjave o definiciji pristupa podacima (Data Control Language, DCL) – sastoji se od alata koji određuju hoće li korisniku dopustiti izvršavanje određenih radnji ili ne (GRANT/REVOKE, LOCK/UNLOCK).

    Transaction Control Language (TCL) operatori

Nažalost, ovi pojmovi se ne koriste univerzalno u svim implementacijama. ANSI ih naglašava i korisne su na konceptualnoj razini, ali većina SQL programa ih malo tretira odvojeno, tako da one u biti postaju funkcionalne kategorije SQL naredbi.

ODABERITE odjeljak PRIDRUŽI SE

    Jednostavan JOIN (=intersection JOIN =INNER JOIN) - znači prikazati samo zajedničke zapise obje tablice. Način na koji se zapisi smatraju dijeljenima određuju polja u izrazu spajanja. Na primjer, sljedeći unos: FROM t1 JOIN t2 ON t1. id = t2. iskaznica

    znači da će se prikazati zapisi s istim ID-om koji postoje u obje tablice.

    LEFT JOIN (ili LEFT OUTER JOIN) znači prikazati sve zapise iz lijeve tablice (onog koji je prvi u izrazu spajanja) bez obzira na to postoje li odgovarajući zapisi u desnoj tablici. Ako u desnoj tablici nema zapisa, postavlja se prazna vrijednost NULL.

    RIGHT JOIN (ili RIGHT OUTER JOIN) djeluje suprotno od LEFT JOIN-a - prikazuje sve zapise iz desne (druge) tablice i samo one koji odgovaraju iz lijeve (prve) tablice.

    Ostale vrste JOIN spajanja: MINUS - oduzimanje; FULL JOIN - potpuno spajanje; CROSS JOIN - “Svatko sa svakim” ili operacija kartezijanskog produkta.

SELECT JOIN SUBSTRING INSERT INTO users_auth VALUES (zadano, "root" , MD5("root"));

    INSERT IGNORE Ako navedete ključnu riječ IGNORE u naredbi INSERT s redovima koji imaju višestruke vrijednosti, tada će svi redovi koji imaju duplikate PRIMARY ili UNIQUE ključeva u toj tablici biti zanemareni i neće biti umetnuti. Ako ne navedete IGNORE, ova operacija umetanja prekida se kada naiđe na redak koji ima dvostruku vrijednost za postojeći ključ

INSERT ignore Into cijene VRIJEDNOSTI (DEFAULT, 1, 1111, "Fr", 50, 50, 1, 1)

Naredba REPLACE razlikuje se od INSERT samo po tome što ako postoji zapis u tablici s istom vrijednošću u indeksiranom polju (jedinstveni indeks) kao novi zapis, tada se stari zapis briše prije dodavanja novog.

AŽURIRAJ< tablename>SET ( | ) .,. .< COLUMN name> = < VALUE expresslon>[GDJE< predlcate>| GDJE STRUJA OD< cursor name>(*samo za prilog*) ] ; UPDATE peers SET zone= "voip" ; # ažuriraj sve retke u stupcu zone tablice ravnopravnih korisnika UPDATE stat SET whp= "13x13x13" WHERE id = 1 ; AŽURIRAJ zemlje SET nm_ukr= ( SELECT del_countries. ukrajinski FROM del_countries WHERE zemlje. nm_en= del_countries. engleski ) ;

Upotreba WordPressa, postavka: u tablici wp_posts izbrišite sva pojavljivanja retka

AŽURIRAJ wp_posts SET post_content = REPLACE (post_content, "" , "" ) ;

IZBRIŠI IZ

[ GDJE | WHERE CURRENT OF (*samo privitak*) ];

DELETE FROM Peers; // će izbrisati sav sadržaj tablice Peers. DELETE FROM FinR where day Like "20120415%"; // DELETE FROM cijene WHERE ratesheet_id NOT IN (SELECT id FROM ratesheets);

PROMIJENI

    Promjena zadane vrijednosti za stupac. Za postavljanje nove zadane vrijednosti za stupac, upotrijebite naredbu poput: ALTER TABLE proizvodi ALTER COLUMN cijena SET DEFAULT 7.77 ; OR ALTER TABLE nases ALTER COLUMN zone SET DEFAULT "voip" ;

    Imajte na umu da izvođenje ove naredbe ne utječe na postojeće retke u tablici; naredba će samo promijeniti zadanu vrijednost za buduće naredbe INSERT. Za uklanjanje bilo koje zadane vrijednosti, koristite

    ALTER TABLE proizvodi ALTER COLUMN cijena DROP DEFAULT ;

    Naredba radi isto kao postavljanje zadane vrijednosti na null. Budući da brisanje zadane vrijednosti implicitno postavlja vrijednost na null, neće biti prijavljene pogreške ako se obriše postojeća zadana vrijednost.

    Funkcija kao zadana vrijednost za stupac. U ovom slučaju, stupac vremenskog praćenja ima vrstu podataka vremenske oznake, što znači da se njegova zadana vrijednost može postaviti na ugrađenu funkciju now(), tj. prilikom dodavanja novog reda u stupac, trenutni datum i vrijeme bit će zabilježeni ALTER TABLE praćenje vremena ALTER COLUMN date_wd SET DEFAULT now();

    Dodavanje ograničenja. Za dodavanje ograničenja koristi se sintaksa tablice za definiranje tog ograničenja. Na primjer: ALTER TABLE proizvodi ADD CHECK (naziv ""); ALTER TABLE proizvodi ADD CONSTRAINT some_name UNIQUE (product_no); ALTER TABLE proizvodi ADD FOREIGN KEY (product_group_id) REFERENCE product_groups;

    Da biste dodali ograničenje koje nije nula i koje se ne može napisati kao ograničenje tablice, koristite sintaksu:

    ALTER TABLE proizvodi ALTER COLUMN proizvod_no SET NOT NULL;

    Navedeno ograničenje će se odmah primijeniti, tako da ga podaci u tablici moraju zadovoljiti prije dodavanja ograničenja.

Funkcije agregacije

U standardnom SQL-u postoji 5 agregatnih funkcija:

    COUNT - funkcija vraća broj redaka koji zadovoljavaju određene kriterije.,

    SUM - vraća zbroj (ukupno) vrijednosti u određenom stupcu. Funkcija SUM zanemaruje redove stupaca s NULL vrijednostima.

    AVG - prosječna vrijednost u stupcu,

Funkcije agregacije koriste se kao nazivi polja u klauzuli upita SELECT, s jednom iznimkom: nazivi polja koriste se kao argumenti. Funkcije SUM i AVG mogu raditi samo s numeričkim poljima. Funkcije COUNT, MAX, MIN rade s numeričkim i znakovnim poljima. Kada se primjenjuju na znakovna polja, funkcije MAX i MIN mogu raditi s ASCII ekvivalentima znakova.

SELECT Count(Books.ID) AS [Broj knjiga] FROM Books;

Korištenje CROUP BY omogućuje vam primjenu agregatnih funkcija na grupe zapisa.

SELECT Count(Books.ID) AS [Broj knjiga] FROM Books GROUP BY [Pisac];

Prikazi (VIEW)

POGLED je podatkovni objekt koji ne sadrži podatke o svom vlasniku. To je vrsta tablice čiji se sadržaj dohvaća iz drugih tablica pokretanjem upita.

Bazne tablice su tablice koje sadrže podatke. Međutim, postoji još jedna vrsta tablice: - pogledi (VIEW). Pogledi su tablice čiji je sadržaj odabran ili dobiven iz drugih tablica. Oni rade u upitima i DML izjavama baš kao i glavne tablice, ali ne sadrže vlastite podatke. Pogledi su poput prozora kroz koje gledate informacije koje su zapravo pohranjene u temeljnoj tablici.

    Naredba CREATE VIEW. Pogled se kreira naredbom CREATE VIEW. Sastoji se od riječi CREATE VIEW, naziva pogleda koji je potrebno kreirati, riječi AS (KAKO), a potom i upita. Kreirajmo pogled Londonstaff: CREATE VIEW Londonstaff AS SELECT * FROM Salespeople WHERE city = "London";

    Ovaj prikaz se koristi kao i svaka druga tablica. Može se postavljati upit, mijenjati, umetati, brisati i pridružiti drugim tablicama i pogledima. Zahtjev za podnošenje.

    Ovaj dodatak sadrži skraćene opise različitih SQL naredbi. Cilj je dati vam brzu i točnu referencu i definiciju SQL-a.

    Prvi odjeljak ove aplikacije definira elemente koji se koriste za stvaranje SQL naredbi; drugi su detalji sintakse i rečenice s kratkim opisom samih naredbi.

    Ovo su standardne konvencije (zvane BNF uvjeti):

  • Ključne riječi se pišu velikim slovima.
  • SQL i drugi posebni uvjeti su u uglastim zagradama i upisani u kurzivu.()
  • Neobavezni dijelovi naredbi nalaze se u uglatim zagradama ([ i ]).
  • Trotočka (....) označava da se prethodni dio naredbe može ponoviti neograničeni broj puta.
  • Okomita crta (|) znači da se ono što joj prethodi može zamijeniti onim što slijedi.
  • Vitičaste zagrade (( i )) pokazuju da se sve unutar njih mora tretirati kao cjelina kako bi se ocijenili drugi znakovi (kao što su okomite crte ili elipse).
  • Dvotočka i znak jednakosti (:: =) znače da je ono što slijedi definicija onoga što mu prethodi.

    Osim toga, koristit ćemo sljedeći niz (.,..) kako bismo naznačili da se ono što mu prethodi može ponoviti neograničeni broj puta, s pojedinačnim događajima odvojenim zarezima. Atributi koji nisu dio službenog standarda bit će označeni u opisu kao (*nestandardni*).

    NAPOMENA: Terminologija koju ovdje koristimo nije službena ANSI terminologija. Službena terminologija može biti vrlo zbunjujuća, stoga smo je donekle pojednostavili. Iz tog razloga ponekad koristimo uvjete koji se razlikuju od ANSI-ja ili koristimo iste uvjete, ali na nešto drugačiji način. Na primjer, naša definicija C-a razlikuje se od ANSI kombinacije standardne definicije C-a. SQL ELEMENTI

    Ovaj odjeljak definira elemente SQL naredbi.

    Dijele se u dvije kategorije: Osnovni elementi jezika i Funkcionalni elementi jezika.

    Osnovni elementi su stvoreni blokovi jezika; Kada SQL ispituje naredbu, prvo procjenjuje svaki znak u tekstu naredbe u smislu tih elemenata. Razdjelnik odvaja jedan dio naredbe od drugog; sve između graničnika tretira se kao modul. Na temelju ove podjele SQL interpretira naredbu.

    Funkcionalni elementi su različiti elementi osim ključnih riječi koji se mogu tumačiti kao moduli. To su dijelovi naredbe, odvojeni graničnicima, koji imaju posebno značenje u SQL-u. Neki od njih su posebni za određene naredbe i bit će opisani zajedno s tim naredbama kasnije u ovom dodatku.

    Ovdje navedene stavke zajedničke su svim opisanim naredbama.

    Funkcionalni elementi mogu se definirati međusobno ili čak u vlastitim terminima. Na primjer, predikat Naš posljednji i najsloženiji slučaj sadrži predikat unutar vlastite definicije. To je zato što predikat koji koristi AND ili OR može sadržavati bilo koji broj predikata koji mogu raditi neovisno. Predikat B predstavili smo vam u zasebnom odjeljku u ovom dodatku zbog raznolikosti i složenosti ovog funkcionalnog elementa jezika. Bit će stalno prisutan kada se razgovara o drugim funkcionalnim dijelovima momčadi.

    OSNOVNI ELEMENTI JEZIKA

    DEFINICIJA ELEMENTA | | -- kraj znakovnog niza definiran implementacijom prostora [( | = B AND


    Svijet besplatnih programa i korisnih savjeta
    2024 whatsappss.ru