Šta je moguće koristeći sql jezik. SQL: univerzalni jezik za rad sa bazama podataka

Zdravo svima! Danas ću vam pokušati što jednostavnije, posebno za početnike, ispričati o tome šta je SQL, i za šta je to potrebno. Iz ovog materijala ćete takođe naučiti šta su baza podataka i sistem za upravljanje bazom podataka, kao i šta je dijalekt SQL jezika, jer će ceo članak biti izgrađen tako što će vas glatko dovesti do razumevanja šta je SQL.

Mislim da već zamišljate da je SQL vrsta jezika povezana sa nekom vrstom baza podataka, ali da biste bolje razumjeli šta je SQL, morate razumjeti čemu služi SQL, čemu služi ovaj jezik, tj. svoju svrhu.

Stoga ću vam prvo dati neke uvodne informacije iz kojih će biti jasna svrha SQL jezika i zašto je uopće potreban.

Šta je baza podataka

I počeću s činjenicom da se baza podataka obično podrazumijeva kao bilo koji skup informacija koji je pohranjen na određeni način i koji se može koristiti. Ali ako govorimo o nekim automatizovanim bazama podataka, onda, naravno, govorimo o takozvanim relacionim bazama podataka.

Relaciona baza podataka– to su naručene informacije međusobno povezane određenim odnosima. Predstavljen je u obliku tabela u kojima se nalaze svi ovi podaci. I ovo je vrlo važno, jer sada trebate zamisliti modernu bazu podataka jednostavno u obliku tabela ( govoreći u kontekstu SQL-a), tj. U opštem smislu, baza podataka je kolekcija tabela. Naravno, ovo je vrlo pojednostavljena definicija, ali daje određeno praktično razumijevanje baze podataka.

Šta je SQL

Zbog činjenice da su informacije u bazi organizirane, podijeljene na određene entitete i predstavljene u obliku tabela, lako je pristupiti i pronaći informacije koje su nam potrebne.

I tu se postavlja glavno pitanje: Kako je možemo kontaktirati i dobiti informacije koje su nam potrebne?

Za to mora postojati poseban alat, a tu nam u pomoć dolazi SQL, koji je alat kojim se manipulira podacima ( kreiranje, preuzimanje, brisanje itd.) u bazi podataka.

SQL (Strukturirani jezik upita) je strukturirani jezik upita koji se koristi za pisanje posebnih upita ( takozvani SQL izrazi) bazi podataka u svrhu dobijanja podataka iz baze podataka ili manipulacije tim podacima.

Također je vrijedno napomenuti da se baza podataka, a posebno relacijski model, temelji na teoriji skupova, što podrazumijeva kombinaciju različitih objekata u jednu cjelinu u bazi podataka, odnosno tablicu. Ovo je važno, pošto SQL jezik radi specifično sa skupom, sa skupom podataka, tj. sa stolovima.

Korisni materijali na temu:

  • Kreiranje baze podataka u Microsoft SQL Serveru - upute za početnike;
  • Dodavanje podataka u tabele u Microsoft SQL Server - INSERT INTO izraz.

Šta je DBMS

Možda imate pitanje, ako je baza podataka neka vrsta informacija koja se pohranjuje u tabelama, kako onda izgleda fizički? Kako na to gledati u cjelini?

Ukratko, ovo je samo fajl kreiran u posebnom formatu, upravo ovako izgleda baza podataka ( u većini slučajeva baza podataka uključuje nekoliko fajlova, ali sada na ovom nivou to nije toliko važno).

Idemo dalje, ako je baza podataka datoteka u posebnom formatu, kako je onda kreirati ili otvoriti? I tu nastaje poteškoća, jer baš tako, bez ikakvih alata, napravite takav fajl, tj. relaciona baza podataka nije moguća za ovo vam je potreban poseban alat koji bi mogao kreirati i upravljati bazom podataka, drugim riječima, raditi s tim datotekama.

Ovo je upravo instrument DBMS je sistem za upravljanje bazom podataka, skraćeno DBMS.

Kakve vrste DBMS postoje?

Zapravo, postoji dosta različitih DBMS-ova, neki od njih su plaćeni i koštaju puno novca ako govorimo o verzijama s punim funkcijama, ali čak i većina, da tako kažem, „cool“ imaju besplatna izdanja, koja , inače, odlični su za učenje.

Između svih, u smislu njihovih mogućnosti i popularnosti, mogu se razlikovati sljedeći sistemi:

  • Microsoft SQL Server je Microsoftov sistem za upravljanje bazom podataka. Veoma je popularan u korporativnom sektoru, posebno u velikim kompanijama. I ovo nije samo DBMS – to je čitav skup aplikacija koje vam omogućavaju da pohranjujete i modificirate podatke, analizirate ih, osiguravate sigurnost ovih podataka i još mnogo toga;
  • Oracle Database je sistem za upravljanje bazom podataka kompanije Oracle. Takođe je veoma popularan DBMS, takođe među velikim kompanijama. U pogledu svojih mogućnosti i funkcionalnosti, Oracle Database i Microsoft SQL Server su uporedivi, stoga su jedni drugima ozbiljni konkurenti, a cijena njihovih verzija sa punim funkcijama je vrlo visoka;
  • MySQL je sistem za upravljanje bazom podataka takođe iz Oracle-a, ali samo on se distribuira besplatno. MySQL je stekao veoma široku popularnost u Internet segmentu, tj. Skoro sve lokacije na Internetu rade na MySQL-u, drugim rečima, većina sajtova na Internetu koristi ovaj DBMS kao sredstvo za skladištenje podataka;
  • PostgreSQL– Ovaj sistem za upravljanje bazom podataka je takođe besplatan i veoma je popularan i funkcionalan.

Korisni materijali na temu:

  • Instalacija Microsoft SQL Server 2016 Express - primjer instaliranja besplatnog izdanja Microsoft SQL Servera na Windows;
  • Instalacija Microsoft SQL Server 2017 Express na Ubuntu Server - primjer instaliranja besplatnog izdanja Microsoft SQL Servera na Linux;
  • Instaliranje PostgreSQL 11 na Windows - primjer instaliranja PostgreSQL-a na Windows;
  • Instaliranje MySQL-a na Windows - primjer instaliranja MySQL-a na Windows;
  • Instalacija i konfiguracija MySQL-a na Linux Mint-u - primjer instaliranja MySQL-a na Linux-u;
  • Instaliranje Oracle Database Express Edition 11g - primjer instaliranja besplatnog izdanja Oraclea na Windows ( Članak je napisan davno, ali će i dalje biti od koristi).

SQL dijalekti (SQL ekstenzije)

SQL jezik je standard, implementiran je u sve relacijske baze podataka, ali svaki DBMS ima proširenje ovog standarda, ima svoj jezik za rad sa podacima, obično se naziva SQL dijalekt, koji se, naravno, temelji na SQL, ali pruža više mogućnosti za potpuno programiranje, osim toga, takav interni jezik omogućava dobijanje sistemskih informacija i pojednostavljuje SQL upite.

Evo nekih SQL dijalekata:

  • Transact-SQL(skraćeno T-SQL) – koristi se u Microsoft SQL Serveru;
  • PL/SQL(Proceduralni jezik / Jezik strukturiranih upita) – koristi se u Oracle Database;
  • PL/pgSQL(Proceduralni jezik/PostGres strukturirani jezik upita) – koristi se u PostgreSQL-u.

Dakle, ovisi o DBMS-u koju ekstenziju ćete koristiti za pisanje SQL izraza. Ako govorimo o jednostavnim SQL upitima, npr.

SELECT ProductId, ProductName IZ Robe

onda će, naravno, takvi upiti raditi u svim DBMS-ovima, jer je SQL standard.

Bilješka! Ovo je jednostavan SQL upit za dohvaćanje podataka iz jedne tablice, izlazeći iz dvije kolone.

Međutim, ako ćete programirati, koristite sve interne mogućnosti DBMS-a ( razviti procedure, koristiti ugrađene funkcije, dobiti informacije o sistemu, itd.), tada morate naučiti određeni dijalekt SQL-a i u skladu s tim vježbati u DBMS-u koji koristi ovaj dijalekt. Ovo je važno jer se sintaksa mnogih konstrukcija razlikuje, kao i mogućnosti i još mnogo toga. A ako, na primjer, pokrenete SQL naredbu, koja koristi mogućnosti određene SQL ekstenzije, na drugom DBMS-u, onda takva instrukcija, naravno, neće biti izvršena.

Na primjer, lično sam se specijalizirao za T-SQL jezik, pa shodno tome radim sa Microsoft SQL Serverom više od 8 godina!

Iako sam, naravno, radio i sa drugim DBMS-ovima, jedno vreme sam podržavao dve aplikacije, od kojih je jedna radila sa PostgreSQL, a druga, verovatno već jasna, sa Microsoft SQL Serverom;

Radio sam sa MySQL-om, kao verovatno i sa mnogim drugima, kao deo održavanja veb lokacija i servisa. Pa, morao sam da radim sa Oracle Database kao deo drugih projekata.

Svo svoje akumulirano iskustvo u T-SQL jeziku grupisao sam na jedno mjesto i stavio ga u obliku knjiga, tako da ako imate želju da naučite Transact-SQL (T-SQL) jezik, preporučujem da pročitate moje knjige:

  • Putanja T-SQL programera - vodič o Transact-SQL jeziku za početnike. U njemu detaljno govorim o svim konstrukcijama jezika i dosljedno prelazim od jednostavnog ka složenom. Pogodno za sveobuhvatno učenje T-SQL jezika;
  • T-SQL stil programiranja - osnove ispravnog kodiranja. Knjiga koja ima za cilj poboljšanje kvaliteta T-SQL koda ( za one koji su već upoznati sa T-SQL jezikom, tj. zna barem osnove).

Nadam se da ste sada shvatili šta je SQL i za šta je potreban U sledećim materijalima ću vam reći kako da kreirate SQL upite, reći ću vam koje alate trebate koristiti za to i za koje DBMS, pošto svaki DBMS ima svoj. alate, pa pratite za objavljivanje novih članaka u mojim grupama na društvenim mrežama.

Osnovne SQL naredbe koje bi svaki programer trebao znati

SQL ili jezik strukturiranih upita je jezik koji se koristi za upravljanje podacima u sistemu relacionih baza podataka (RDBMS). Ovaj članak će pokriti najčešće korištene SQL naredbe s kojima bi svaki programer trebao biti upoznat. Ovaj materijal je idealan za one koji žele nadopuniti svoje znanje SQL-a prije razgovora za posao. Da biste to učinili, pogledajte primjere navedene u članku i zapamtite da ste proučavali baze podataka u parovima.

Imajte na umu da neki sistemi baza podataka zahtijevaju tačku i zarez na kraju svake izjave. Tačka-zarez je standardni pokazivač na kraj svakog izraza u SQL-u. Primjeri koriste MySQL, tako da je potrebna tačka i zarez.

Postavljanje baze podataka za primjere

Kreirajte bazu podataka kako biste demonstrirali kako timovi rade. Da biste radili, morat ćete preuzeti dvije datoteke: DLL.sql i InsertStatements.sql. Nakon toga otvorite terminal i prijavite se na MySQL konzolu koristeći sljedeću naredbu (članak pretpostavlja da je MySQL već instaliran na sistemu):

Mysql -u korijen -p

Zatim unesite svoju lozinku.

Pokrenite sljedeću naredbu. Nazovimo bazu podataka "univerzitet":

CREATE DATABASE univerzitet; USE univerzitet; IZVOR ; IZVOR

Komande za rad sa bazama podataka

1. Pregledajte dostupne baze podataka

PRIKAŽI BAZE PODATAKA;

2. Kreirajte novu bazu podataka

CREATE DATABASE;

3. Odabir baze podataka za korištenje

KORISTI ;

4. Uvezite SQL naredbe iz .sql datoteke

IZVOR ;

5. Izbrišite bazu podataka

DROP DATABASE ;

Rad sa tabelama

6. Pregledajte tabele dostupne u bazi podataka

SHOW TABLES;

7. Kreirajte novu tablicu

CREATE TABLE ( , , PRIMARNI KLJUČ ( ), STRANI KLJUČ ( ) REFERENCE ());

Ograničenja integriteta kada se koristi CREATE TABLE

Možda ćete morati kreirati ograničenja za određene stupce u tabeli. Prilikom kreiranja tabele možete postaviti sljedeća ograničenja:

  • ćelija tabele ne može imati vrednost NULL;
  • primarni ključ - PRIMARNI KLJUČ (naziv_stupca1, naziv_stupca2, ...) ;
  • strani ključ - STRANI KLJUČ (naziv_stupca1, …, ime_stupcan) REFERENCE ime_tablice(naziv_stupca1, …, ime_stupca_n) .

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

Primjer

Kreirajte tabelu "instruktor":

CREATE TABLE instruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, dept_name VARCHAR(20), plata NUMERIC(8,2), PRIMARNI KLJUČ (ID), STRANI KLJUČ (dept_name) REFERENCE odjel(dept_name));

8. Tablični podaci

Možete vidjeti različite informacije (tip vrijednosti, ključ ili ne) o stupcima tablice pomoću sljedeće naredbe:

DESCRIBE ;

9. Dodavanje podataka u tabelu

INSERT INTO (, , , ...) VRIJEDNOSTI ( , , , …);

Kada dodajete podatke u svaku kolonu u tabeli, ne morate specificirati nazive stupaca.

INSERT INTO VRIJEDNOSTI ( , , , …);

10. Ažuriranje podataka tablice

UPDATE SET = , = , ... GDJE ;

11. Uklanjanje svih podataka iz tabele

IZBRIŠI IZ ;

12. Izbrišite tabelu

DROP TABLE ;

Naredbe za kreiranje upita

13. SELECT

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

SELECT , , … OD ;

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

SELECT * FROM ;

14. ODABIR DISTINCT

Kolone tabele mogu sadržavati duple podatke. Koristite SELECT DISTINCT za dohvaćanje samo nedupliciranih podataka.

SELECT DISTINCT , , … OD ;

15. GDJE

Možete koristiti ključnu riječ WHERE u SELECT za specificiranje uslova u upitu:

SELECT , , … OD GDJE ;

U zahtjevu se mogu navesti sljedeći uslovi:

  • poređenje teksta;
  • poređenje brojčanih vrijednosti;
  • logički operatori AND (i), OR (ili) i NOT (negacija).

Primjer

Isprobajte sljedeće naredbe. Obratite pažnju na uslove navedene u GDJE:

SELECT * FROM course WHERE dept_name=’Comp. Sci.'; SELECT * FROM course WHERE kredita>3; SELECT * FROM course WHERE dept_name="Comp. Sci." I krediti>3;

16. GROUP BY

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

SELECT , , … OD GROUP BY ;

Primjer

Hajde da prikažemo broj kurseva 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 sa agregatnim funkcijama.

SELECT , , ... OD GROUP BY HAVING

Primjer

Hajde da prikažemo listu fakulteta koji imaju više od jednog kursa:

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

18. ORDER BY

ORDER BY se koristi za sortiranje rezultata upita u silaznom ili rastućem redoslijedu. ORDER BY će sortirati uzlaznim redoslijedom osim ako nisu specificirani ASC ili DESC.

SELECT , , … OD POREDAK PO , , ...ASC|DESC;

Primjer

Prikažimo listu kurseva u rastućem i padajućem redoslijedu bodova:

ODABERITE * IZ kursa ORDER PO kreditima; ODABERITE * IZ kursa REDITE PO kreditima 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

Hajde da prikažemo listu instruktora čija je plata veća od 50.000, ali manja od 100.000:

ODABIR * OD instruktora GDJE plata IZMEĐU 50000 I 100000;

20. LIKE

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

Postoje dva besplatna operatora koji se koriste u LIKE-u:

  • % (nijedan, jedan ili više znakova);
  • _ (jedan znak).
SELECT , , … OD GDJE LIKE ;

Primjer

Hajde da prikažemo listu kurseva čiji nazivi sadrže "do" i listu kurseva čiji nazivi počinju sa "CS-":

SELECT * FROM kursa WHERE naslov LIKE ‘%to%’; SELECT * FROM course WHERE course_id LIKE "CS-___";

21. IN

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

SELECT , , … OD GDJE IN ( , , …);

Primjer

Hajde da prikažemo listu studenata sa Comp smerova. nauka, fizika i elek. inž.:

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

22. PRIDRUŽITE SE

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

SELECT , , … OD PRIDRUŽITE SE ON = ;

Primjer 1

Prikazaćemo listu svih kurseva i relevantnih informacija o fakultetima:

SELECT * IZ kursa PRIDRUŽITE odsjeku NA course.dept_name=department.dept_name;

Primjer 2

Prikazat ćemo listu svih potrebnih kurseva i detalje o njima:

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

Primjer 3

Prikazaćemo listu svih kurseva, bez obzira da li su obavezni ili ne:

SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq DESNO VANJSKO PRIDRUŽENJE kursu NA prereq.course_id=course.course_id;

23. Pogled

Pogled je virtualna SQL tabela kreirana kao rezultat izvršavanja izraza. Sadrži redove i stupce i vrlo je sličan običnoj SQL tablici. Prikaz uvijek prikazuje najnovije informacije iz baze podataka.

Kreacija

CREATE VIEW KAO SELECT , , … OD GDJE ;

Odstranjivanje

DROP VIEW ;

Primjer

Kreirajmo pogled koji se sastoji od kurseva sa 3 kredita:

24. Agregatne funkcije

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

  • COUNT (naziv_kolca) - vraća broj redova;
  • SUM (col_name) - vraća zbir vrijednosti u ovoj koloni;
  • AVG (col_name) - vraća prosječnu vrijednost date kolone;
  • MIN (col_name) - vraća najmanju vrijednost date kolone;
  • MAX (naziv_stupca) - Vraća najveću vrijednost date kolone.

25. Ugniježđeni potupiti

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

Primjer

Hajde da pronađemo kurseve koji su predavani u jesen 2009. i proleće 2010. godine:

ODABERITE DISTINCT course_id IZ sekcije WHERE semester = 'Jesen' I godina= 2009. I course_id IN (IZABERITE Id_kursa IZ sekcije WHERE semester = 'Proljeće' I godina= 2010);

Da počnem da učim SQL prvo moramo razumjeti šta je baza podataka.

1. Šta je baza podataka

Baza podataka (DB)- uređeni skup logički povezanih podataka, koji se koriste zajedno i pohranjeni na jednom mjestu. Ukratko, najjednostavniji DB ovo je obična tabela sa redovima i kolonama u kojima se pohranjuju različite vrste informacija (primer bi bila tabela u Excel). Dakle, često, sa DB neraskidivo vezuju Sistemi za upravljanje bazama podataka (DBMS), koji pružaju funkcionalnost za rad sa DB. Jezik SQL je samo deo DBMS, koji upravlja informacijama u DB. Mi ćemo računati DB skup regularnih tabela koje su pohranjene u odvojenim datotekama.

2. Šta je SQL

Dakle, idemo dalje SQL.

SQL je jednostavan programski jezik koji ima nekoliko naredbi i svako ga može naučiti. Stoji za Strukturirani jezik upita je strukturirani jezik upita koji je dizajniran za rad DB, naime, za primanje/dodavanje/promjenu podataka, za obradu velikih količina informacija i brzo dobijanje strukturiranih i grupisanih informacija. Postoji mnogo jezičkih opcija SQL, ali svi imaju iste osnovne komande. Ima ih i mnogo DBMS, ali glavne su: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL i Sybase Adaptive Server SQL. Za rad sa SQL kod, trebat će nam jedan od gore navedenih DBMS. Za obuku ćemo koristiti Microsoft Access DBMS.

SQL kao i drugi programski jezici, ima svoje komande (operatore), uz pomoć kojih se daju instrukcije za dohvat podataka. Da vidite kako operateri rade SQL, koristićemo imaginarno DB sa informacijama o prodatim proizvodima.

Dobrodošli u razvoj baze podataka koristeći standardni SQL jezik upita. Sistemi za upravljanje bazama podataka (DBMS) imaju mnogo alata koji rade na širokom spektru hardverskih platformi.

  • Osnove relacione baze podataka

    U ovom poglavlju... | Organiziranje informacija | Šta je baza podataka | Šta je DBMS | Poređenje modela baza podataka | Šta je relaciona baza podataka

  • Osnove SQL-a

    U ovom poglavlju... | Šta je SQL | SQL Misconceptions | Pogled na različite SQL standarde | Uvod u standardne SQL naredbe i rezervirane riječi | Predstavljanje brojeva, simbola, datuma, vremena i drugih vrsta podataka | Nedefinirane vrijednosti i ograničenja

  • SQL komponente

    U ovom poglavlju... | Kreiranje baza podataka | Obrada podataka | Zaštita baze podataka | SQL je jezik posebno dizajniran za kreiranje i održavanje podataka u relacionim bazama podataka. I iako kompanije koje isporučuju sisteme za upravljanje takvim bazama podataka nude sopstvene implementacije SQL-a, razvoj samog jezika je određen i kontrolisan ISO/ANSI standardom.

  • Kreiranje i održavanje jednostavne baze podataka

    U ovom poglavlju... | Kreirajte, modificirajte i izbrišite tablicu iz baze podataka koristeći RAD alat. | Kreirajte, modificirajte i izbrišite tablicu iz baze podataka koristeći SQL. | Prijenos baze podataka na drugi DBMS.

  • Kreiranje višetabelarne relacijske baze podataka

    U ovom poglavlju... | Šta treba da bude u bazi podataka | Definiranje odnosa između elemenata baze podataka | Povezivanje tablica pomoću tipki | Dizajn integriteta podataka | Normalizacija baze podataka | Ovo poglavlje će predstaviti primjer kreiranja baze podataka sa više tablica.

  • Manipulisanje podacima iz baze podataka

    U ovom poglavlju... | Rad sa podacima | Dobivanje potrebnih podataka iz tabele | Prikaz informacija odabranih iz jedne ili više tabela | Ažuriranje informacija u tabelama i pogledima | Dodavanje novog reda u tabelu

  • Definiranje vrijednosti

    U ovom poglavlju... | Korištenje varijabli za smanjenje suvišnog kodiranja | Dohvaćanje često traženih informacija koje se nalaze u polju tablice baze podataka | Kombiniranje jednostavnih vrijednosti za stvaranje složenih izraza | Ova knjiga neprestano naglašava koliko je struktura baze podataka važna za održavanje integriteta baze podataka.

  • Složeni izrazi sa značenjem

    U ovom poglavlju... | Korištenje uvjetnih iskaza slučaja | Pretvaranje stavke podataka iz jedne vrste podataka u drugu | Uštedite vrijeme unosa podataka pomoću izraza sa vrijednostima zapisa | U poglavlju 2, SQL je nazvan podjezikom podataka.

  • "Ciljanje" na tražene podatke

    U ovom poglavlju... | Određivanje potrebnih tabela | Odvajanje potrebnih linija od svih ostalih | Stvaranje efektivnih klauzula gdje | Kako raditi sa null vrijednostima | Stvaranje složenih izraza sa logičkim veznicima | Grupiranje rezultata upita po koloni

  • Relacioni operatori

    U ovom poglavlju... | Tablice za spajanje koje imaju sličnu strukturu | Spajanje tablica koje imaju različite strukture | Dobivanje potrebnih podataka iz više tabela | SQL je jezik upita koji se koristi u relacionim bazama podataka.

  • Korištenje ugniježđenih upita

    U ovom poglavlju... | Dohvaćanje podataka iz više tablica s jednim SQL izrazom | Pronalaženje stavki podataka poređenjem vrijednosti iz jedne tablice sa skupom vrijednosti iz druge | Pronalaženje stavki podataka upoređivanjem vrijednosti iz jedne tablice s jednom vrijednošću odabranom pomoću naredbe za odabir iz druge

  • Rekurzivni upiti

  • Osiguravanje baze podataka

    U ovom poglavlju... | Kontrola pristupa tabelama baze podataka | Odlučivanje o odobravanju pristupa | Davanje dozvola pristupa | Opoziv ovlaštenja pristupa | Sprečavanje pokušaja neovlaštenog pristupa

  • Zaštita podataka

    U ovom poglavlju... | Kako izbjeći korupciju baze podataka | Problemi uzrokovani istovremenim operacijama | Rješavanje ovih problema pomoću SQL motora | Postavljanje potrebnog nivoa sigurnosti pomoću naredbe set transakcije

  • Korištenje SQL-a u aplikacijama

    U ovom poglavlju... | SQL u aplikaciji | Dijeljenje SQL-a s proceduralnim jezicima | Kako izbjeći nekompatibilnosti | SQL kod ugrađen u proceduralni kod | Pozivanje SQL modula iz proceduralnog koda | Pozivanje SQL-a iz RAD alata | U prethodnim poglavljima smo uglavnom posmatrali SQL komande pojedinačno, tj. Formuliran je zadatak obrade podataka i kreiran je SQL upit za njega.

  • ODBC i JDBC

    U ovom poglavlju... | ODBC Definicija | Opis ODBC dijelova | Korištenje ODBC-a u klijent/server okruženju | Korištenje ODBC-a na Internetu | Korištenje ODBC-a u lokalnim mrežama | Korištenje JDBC | Svake godine računari jedne organizacije ili više različitih organizacija sve su više međusobno povezani. Stoga postoji potreba da se uspostavi zajednički pristup bazama podataka preko mreže.

  • SQL:2003 i XML

    U ovom poglavlju... | Korištenje SQL-a s XML-om | XML, baze podataka i Internet | Jedna od najznačajnijih novih karakteristika SQL:2003 je njegova podrška za proširive datoteke jezika za označavanje (XML), koje sve više postaju univerzalni standard za razmjenu podataka između različitih platformi.

  • Kursori

    U ovom poglavlju... | Definiranje opsega kursora u izjavi deklariranja | Kursor za otvaranje | Uzorkovanje podataka red po red | Zatvaranje kursora | SQL se razlikuje od većine najpopularnijih programskih jezika po tome što istovremeno izvršava operacije nad podacima svih redova tabele, dok proceduralni jezici obrađuju podatke red po red.

  • U prethodna dva članka iz ove serije, objavljena u broju 6 i 7 našeg časopisa, osvrnuli smo se na različite mehanizme pristupa podacima, uključujući ADO, BDE i njihove alternative. Sada znamo kako odabrati tehnologiju pristupa podacima za određeni par "DBMS - razvojni alat".

    Uz uspostavljenu tehnologiju za pristup podacima, konačno možemo razmišljati o tome kako treba manipulirati samim podacima i metapodacima. Metode manipulacije mogu biti specifične za dati DBMS (na primjer, korištenje objekata u klijentskom dijelu ovog DBMS-a za pristup objektima baze podataka) ili za dati mehanizam pristupa podacima. Ipak, postoji manje-više univerzalan način manipulacije podacima, podržan od skoro svih serverskih relacionih DBMS-ova i većine univerzalnih mehanizama za pristup podacima (uključujući kada se koriste zajedno sa desktop DBMS-ovima). Ova metoda je korištenje SQL jezika (Structured Query Language). U nastavku ćemo pogledati svrhu i karakteristike ovog jezika, te naučiti kako ga koristiti za izdvajanje i sumiranje podataka, dodavanje, brisanje i modificiranje zapisa, zaštitu podataka od neovlaštenog pristupa i kreiranje baza podataka. Za detaljnije proučavanje SQL-a možemo preporučiti knjige Martina Grabera “Uvod u SQL” (M., Laurie, 1996) i “SQL. Referentni vodič" (M., Lori, 1997).

    Uvod

    Jezik strukturiranih upita je neproceduralni jezik koji se koristi za upravljanje podacima u relacionim DBMS-ovima. Termin "neproceduralno" znači da dati jezik može formulisati šta treba da se uradi sa podacima, ali ne može da uputi kako to tačno treba da se uradi. Drugim riječima, ovaj jezik nema algoritamske konstrukcije kao što su oznake, operatori petlje, uvjetni skokovi, itd.

    SQL jezik je nastao ranih 70-ih kao rezultat IBM istraživačkog projekta čiji je cilj bio stvaranje jezika za manipulaciju relacijskim podacima. Prvobitno se zvao SEQUEL (Structured English Query Language), zatim SEQUEL/2, a onda jednostavno SQL. Zvanični SQL standard objavio je ANSI (Američki nacionalni institut za standarde, SAD) 1986. godine (ovo je danas najčešće korištena implementacija SQL-a). Ovaj standard je proširen 1989. i 1992. godine, tako da se najnoviji SQL standard zove SQL92. Trenutno se radi na SQL3 standardu, koji sadrži neke objektno orijentirane ekstenzije.

    Postoje tri nivoa ANSI usklađenosti - početni, srednji i potpuni. Mnogi dobavljači DBMS servera, kao što su IBM, Informix, Microsoft, Oracle i Sybase, koriste vlastite SQL implementacije zasnovane na ANSI standardu (ispunjavajući barem početni nivo usklađenosti sa standardom) i koje sadrže neke ekstenzije specifične za DBMS.

    Detaljnije informacije o usklađenosti verzije SQL-a koja se koristi u određenom DBMS-u mogu se naći u dokumentaciji isporučenoj uz taj DBMS.

    Kako SQL radi

    Pogledajmo kako SQL radi. Pretpostavimo da postoji baza podataka kojom se upravlja pomoću neke vrste DBMS-a. Za izdvajanje podataka iz njega koristi se upit formuliran u SQL-u. DBMS obrađuje ovaj zahtjev, dohvaća tražene podatke i vraća ih. Ovaj proces je šematski prikazan na Sl. 1 .

    Kao što ćemo kasnije vidjeti, SQL vam omogućava ne samo dohvaćanje podataka, već i definiranje strukture podataka, dodavanje i brisanje podataka, ograničavanje ili odobravanje pristupa podacima i održavanje referentnog integriteta.

    Imajte na umu da sam SQL nije ni DBMS ni poseban proizvod. Ovo je jezik koji se koristi za interakciju sa DBMS-om i, u određenom smislu, predstavlja njegov sastavni deo.

    Jezik definicije podataka (DDL)

    Jezik definicije podataka sadrži operatore koji vam omogućavaju da kreirate, modifikujete i uništite baze podataka i objekte unutar njih (tabele, poglede, itd.). Ovi operatori su navedeni u tabeli. 1.

    Tabela 1

    Operater

    Opis

    Koristi se za dodavanje nove tabele u bazu podataka

    Koristi se za uklanjanje tabele iz baze podataka

    Koristi se za promjenu strukture postojeće tablice

    Koristi se za dodavanje novog pogleda u bazu podataka

    Koristi se za uklanjanje pogleda iz baze podataka

    Koristi se za kreiranje indeksa za dato polje

    Koristi se za brisanje postojećeg indeksa

    Koristi se za kreiranje nove šeme u bazi podataka

    Koristi se za uklanjanje šeme iz baze podataka

    Koristi se za kreiranje nove domene

    Koristi se za redefiniranje domene

    Koristi se za uklanjanje domene iz baze podataka

    Jezik za manipulaciju podacima (DML)

    Jezik za manipulaciju podacima sadrži operatore koji vam omogućavaju da odaberete, dodate, izbrišete i modificirate podatke. Imajte na umu da ovi izrazi nisu potrebni za završetak transakcije u okviru koje su pozvani. DML iskazi su prikazani u tabeli. 2.

    tabela 2

    SELECT izraz se ponekad klasifikuje u posebnu kategoriju koja se zove Data Query Language (DQL).

    Jezik kontrole kursora (CCL)

    Izrazi jezika kontrole kursora se koriste za definiranje kursora, pripremu SQL izraza za izvršenje i nekoliko drugih izraza. CCL izjave su prikazane u tabeli. 5.

    Tabela 5

    Operater

    Opis

    Koristi se za određivanje kursora za zahtjev

    Koristi se za opisivanje plana upita. Ova izjava je SQL ekstenzija za Microsoft SQL Server 7.0. Nije potrebno raditi u drugim DBMS-ovima. Na primjer, u slučaju Oraclea, treba koristiti izraz EXPLAIN PLAN

    Koristi se za otvaranje kursora prilikom primanja rezultata upita

    Koristi se za dobivanje niza iz rezultata upita

    Koristi se za zatvaranje kursora

    Koristi se za pripremu SQL naredbe za izvršenje

    Koristi se za izvršavanje SQL naredbe

    Koristi se za opisivanje pripremljenog zahtjeva

    Svi SQL izrazi imaju oblik prikazan na sl. 2.

    Svaki SQL izraz počinje glagolom, koji je ključna riječ koja specificira šta izraz radi (SELECT, INSERT, DELETE...). Izjava također sadrži rečenice koje sadrže informacije o tome na kojim podacima se operacije izvode. Svaka klauzula počinje ključnom riječi kao što je FROM, WHERE, itd. Struktura klauzule ovisi o njenom tipu - neke klauzule sadrže nazive tablica ili polja, neke mogu sadržavati dodatne ključne riječi, konstante ili izraze.

    Kako možete izvršiti SQL naredbe?

    Svi moderni serverski DBMS-ovi (kao i mnogi popularni desktop DBMS-ovi) sadrže uslužne programe koji vam omogućavaju da izvršite SQL naredbu i vidite njen rezultat. Konkretno, Oracle klijentski dio sadrži uslužni program SQL Plus, a Microsoft SQL Server sadrži uslužni program SQL Query Analyzer. Upravo ovaj uslužni program koristićemo da demonstriramo mogućnosti SQL-a, a kao bazu podataka na kojoj ćemo „eksperimentisati” uzet ćemo bazu podataka NorthWind koja je uključena u Microsoft SQL Server 7.0 paket. U principu, možete koristiti drugu bazu podataka i bilo koji drugi uslužni program koji može izvršiti SQL naredbe u ovoj bazi podataka i prikazati rezultate (ili čak napisati svoje koristeći bilo koji razvojni alat - Visual Basic, Delphi, C++Builder, itd.). Međutim, preporučljivo je napraviti sigurnosnu kopiju ove baze podataka za svaki slučaj.

  • Dijeli