Sunteți pe pagina 1din 11

SQL este acronimul de la Structural Query Language.

Este limbajul standard pentru accesarea sistemelor de gestiune a bazelor de date relaionale (SGBDR).SQL este folosit pentru a stoca i regsi datele n i dintr-o baz de date.Este utilizat n sisteme de baze de date cum sunt MySQL , Oracle, Microsoft SQL Server i altele. SQL conine att faciliti de descriere a datelor (DDL) ct i faciliti de manipulare a datelor (DML) .

Inserarea datelor n baza de date Instruciunea INSERT se poate folosi pentru a introduce linii n baza de date. Operatorul SQL pentru inserare este INSERT INTO i prezint dou variante : - inserare simpl : pentru inserarea unei tuple individuale - inserare multipl : pentru inserarea mai multor tuple Comanda pentru inserare simpl are sintaxa : INSERT INTO nume_relaie (nume_atribut.) VALUES (valoare.) ntre valori i numele de atribute trebuie a existe o coresponden unu la unu.Pentru atributele care accept valoarea NULL specificarea unei valori n comanda de inserare este opional.Acestea vor fi omise din lista de atribute i vor lua implicit valoarea NULL, eventual, urmnd a fi modificate ulterior cnd valorile lor vor fi cunoscute.Valorile din lista de valori pot fi ori literale , ori expresii aritmetice. Comanda pentru inserare multipl are sintaxa : INSERT INTO nume_relaie(nume_atribut.) construcie_SELECT i permite adugarea la relaia specificat a unei mulimi de tuple (relaie) care se obine ca rezultat al unei construcii SELECT. Actualizarea nregistrrilor din baza de date Update este instruciunea care permite actualizarea nregistrrilor unei baze de date . Forma obinuit a unei instruciuni UPDATE este : UPDATE nume_tabela SET colona1 = expresie1 , coloana2 = expresie2, . [WHERE condiie] [LIMIT numr] Operatorul SQL de actualizare ndeplinete dou funcii : selecteaz prin condiia de cutare din clauza WHERE tuplele care urmeaz a fi actualizate (n lipsa clauzei WHERE se actualizeaz implicit toate tuplele relaiei specificate).

n tuplele selectate modific valorile atributelor specificate.Expresiile de actualizare pot conine : constante , nume de atribute , valoarea NULL sau expresii aritmetice construite cu acestea. tergerea de nregistrri din baza de date Operatorul SQL pentru efectuarea operaiilor de tergere este DELETE FROM a crui sintax complet este : DELETE FROM nume_relaie [WHERE calificator ] Formularea interogrilor n limbajul SQL Instrumentul de baz al SQL este instruciunea SELECT.Este folosit pentru a regsi datele dintr-o baz de date prin selectarea acelor linii din tabel care corespund criteriului specificat.Forma de baz a instruciunii SELECT este : SELECT [DISTINCT] nume_atribut1 nume_atribut2 . FROM nume_relaie .. [WHERE calificator1] .. [GROUP BY nume_atribut2... [HAVING calificator2]] [ORDER BY nume_atribut3 [ASC|DESC].] Se pot specifica oricte coloane din tabel prin trecerea lor dup cuvntul cheie SELECT.De asemenea se pot specifica i alte elemente.Un element foarte util este operatorul de nlocuire * , care specific toate coloanele din tabela sau tabelele specificate. -valoarea ( valorile) corespunztoare parametrului ( parametrilor) nume_atribut1 . precizeaz n mod explicit atributele dup care se face selecia.Dac exist ambiguiti referitor la relaiile din care fac parte atributele specificate , atunci acestea vor fi precedate de numele relaiei corespunztoare. Dac exist ambiguiti referitor la relaiile din care fac parte atributele specificate , atunci acestea vor fi precedate de numele relaiei corespunztoare. - n lipsa operatorului opional DISTINCT selecia se face fr eliminarea duplicatelor , iar dac acesta apare , atunci se elimin eventualele duplicate rezultate n urma operaiei de selecie - n cazul cel mai general, parametrul nume_atribut1 poate fi o expresie aritmetic combinnd atribute i/sau funcii de agregare avnd ca operanzi unul sau mai multe atribute - parametrul calificator1 precizeaz criteriul de selecie al tuplelor unei relaii - clauza GROUP BY are ca efect gruparea tuplelor unei relaii pe baza valorilor unui atribut sau grup de atribute.Parametrul nume_atribut2 furnizeaz criteriul de grupare al tuplelor unei relaii n submulimi de tuple , toate avnd aceeai valoare pentru atributul (atributele) nume_atribut2.Criteriul de grupare este format din unul sau mai multe atribute. - clauza HAVING , opiune a clauzei GROUP BY, este o form special a clauzei WHERE

caracterizat prin faptul c se aplic nu unor tuple individuale , ci unor submulimi (grupuri) de tuple , rezultate ca urmare a seleciei fcute prin clauza GROUP BY. - clauza ORDER BY specific ordonarea tuplelor unei relaii rezultat dup valorile parametrului nume_atribut3, iar cuvintele ASC i DESC indic modul n care se face ordonarea . Definirea datelor n SQL Teoretic , comenzile pentru definirea datelor fac parte din modulul corespunztor componentei DDL al SGBD-ului.Totui , n majoritatea implementrilor SQL comenzile de definire a datelor sunt prelucrate de acelai interpretor care rezolv interogrile i celelalte operaii de manipulare a datelor prezentate mai sus.Aadar , componentele DML i DDL ale SGBD-ului sunt implementate prin acelai modul software. Crearea / tergerea tabelelor (relaiilor) Definirea unei relaii se poate face prin comanda CREATE TABLE.Relaiile definite prin aceast comand sunt numite relaii de baz.Definiia acestor relaii este automat memorat ntrun dicionar de date numit i catalogul sistem. Sintaxa comenzii pentru definirea relaiilor este : CREATE TABLE nume_relaie ( nume_atribut1 tip_dat [NOT NULL] [, nume_atribut2 tip_dat [NOT NULL]].) Comanda specific numele relaiei care se creeaz precum i una sau mai multe descrieri de atribute.Descrierea fiecru atribut specific numele atributului i tipu de dat corespunztor (CHAR, INTEGER etc.) mpreun cu dimensiunea asociat. Comanda simetric celei de creare a unei relaii este DROP TABLE care are ca efect eliminarea din catalogul sistem a relaiei specificate.Dup executarea acestei comenzi nu se mai pot face nici un fel de referiri la relaia n cauz , descrierea acesteia mpreun cu informaiile coninute fiind terse.Sintaxa comenzii este : DROP TABLE nume_relaie Funcii de agregare Funciile de agregare efectueaz un anumit calcul asupra unui set de valori i returneaz ca rezultat o singur valoare.Funciile de agregare sunt adesea folosite mpreun cu clauza GROUP BY pentru a calcula valori agregate la nivelul grupurilor de tuple.Principalele funcii de agregare disponibile n SQL Server sunt : Sintaxa Semnificaie AVG([ALL | DISTINCT] expresie numeric) media valorilor unui grup COUNT({[ALL | DISTINCT] expresie }|*)) numrul de elemente ale unui grup MAX([ALL | DISTINCT ] expresie maximul dintr-un grup de valori MIN([ALL | DISTINCT ] expresie minimul dintr-un grup de valori SUM([ALL | DISTINCT] expresie_numeric) suma valorilor unui grup

STDEV(expresie_numeric) returneaz deviaia standard pentru valorile expresiei dat ca argument STDEVP(expresie_numeric) returneaz deviaia standard pentru populaia tuturor valorilor expresiei dat ca argument VAR(expresie_numeric) returneaz variaia statistic pentru valorile expresiei dat ca argument VARP(expresie_numeric) returneaz variaia statistic pentru populaia tuturor valorilor expresiei dat ca argument

Tehnologia Informatiei Specializarea Calculatoare

Baze de Date
- proiect -

Buyme.com
Coordonator proiect Proiectanti

Tema proiectului
n cadrul acestui proiect am realizat un magazin virtual de componente IT, sub forma unei pagini web complexe. Proiectul a fost realizat cu ajutorul limbajului de programare PHP utiliznd baza de date MySQL. Utilizatorii acestui magazin pot fi grupati n trei categorii: Utilizatori neautorizati - au dreptul sa vizioneze oferta paginii; Utilizatori autorizati - au dreptul sa depuna comenzi de produse; Administratori - au dreptul sa stearga / insereze noi categorii de produse, respectiv sa gestioneze comenzile.

Produsele sunt reprezentate prin descriere, poza, respectiv pret.

Schema entitate-relatie

Aceasta schema reprezinta tabelele folosite, respectiv legaturile ntre ele.

Descrierea functionalitatii
Pagina este alcatuita din trei zone distincte: meniul principal (si al utilizatorului), meniul de categorii de produse, respectiv zona de continut.

Din meniul principal este posibila logarea utilizatorului, dupa care acesta poate accesa continutul cosului de cumparaturi. Deasemena, dupa logare, utilizatorul si poate modifica profilul creat. Din meniul de categorii, putem alege ce fel de categorii dorim sa vizualizam n zona de continut, respectiv aici vom gasi si posibilitatea de a ne nregistra daca suntem utilizatori neautorizati. Daca selectam o categorie, produsele care apartin categoriei sunt afisate n zona de continut. Daca utilizatorul este logat, la fiecare produs are posibilitatea de a-l adauga n cosul de cumparaturi sau sa citeasca / adauga commentarii despre produs. Administratorii au posibilitatea de a modifica continutul oricarei categorii de produse respectiv au privilegiul de a crea categorii noi. Din punctul de vedere ai comenzilor, administratorul poate vizualiza comenzile si poate modifica statusul fiecarei comenzi (anulat, confirmat, etc). Totodata administratorul are posibilitatea de a consulta profilul oricarui utilizator care a facut o comanda.

Anexa
Selectarea produselor pentru un anumit utilizator:
SELECT order_id, orders.date, products.product_name, price, status FROM products INNER JOIN orders ON products.product_id=orders.product_id INNER JOIN users ON orders.user_id=users.user_id WHERE users.username="$username" products.product_id,

Selectarea produselor si gruparea lor:


SELECT * FROM orders INNER JOIN users ON orders.user_id=users.user_id INNER JOIN products ON orders.product_id=products.product_id INNER JOIN counties ON users.county_id=counties.county_id LIMIT $start,10

nregistrarea unui utilizator nou:


INSERT INTO users (username, password, email, nr_tel, address, regdate) real_name, city, county_id,

VALUES ("$username", "$password", "$email", "$real_name", "$city", "$county_id", "$nr_tel", "$address", ,".date("Ymd")."')

Actualizarea profilului utilizatorului:


UPDATE users

SET email="$email", real_name="$real_name", city="$city", county_id="$county_id", nr_tel="$nr_tel", address="$address" WHERE username="$username"

Cautarea unui produs cu anumite caracteristici:


SELECT * FROM products WHERE product_name LIKE "%$s%" OR description LIKE "%$s%"

ncep seria de tutoriale video cu o prezentare despre Proiectarea Bazelor de Date Relaionale i anume proiectarea Tabelelor i a Relaiilor. Aceast prezentare este pentru nceptori i are ca scop definirea elementelor i a termenilor fundamentali folosii n proiectarea bazelor de date relaionale. n prima parte a prezentrii definesc noiunile teoretice, iar n a doua parte prezint cteva exemple practice, astfel nct pornind de la cazuri reale, s putem nelege mai bine elementele teoretice prezentate. Prezentarea conine urmtoarele pri: 1. Entitile fundamentale n Proiectarea Bazelor de Date Relaionale: o Tabele; o Relaii. Coninutul Tabelelor (referitoare la un Subiect): o Coloane (Cmpuri); o Rnduri (nregistrri). Exemplu practic privind proiectarea unei tabele;

Relaiile dintre Tabele:


o o o

Unu-la-Mai-Muli (One-to-Many) 1 infinit; Mai-Muli-la-Mai-Muli (Many-to-Many) infinit infinit; Unu-la-Unu (One-to-One) 1 1. Cheia Primar Primary Key; Cheia Extern (Strin) Foreign Key;

Exemple practice pentru exemplificarea fiecrui tip de Relaie; Prezentarea unui studiu de caz pentru justificarea folosirii n practic a relaiei Unu-la-Unu. Toate tutorialele video prezentate n cadrul proiectului BizApps.ro se vor concentra pe partea practic, resurse teoretice despre proiectarea bazelor de date relaionale ct i despre dezvoltarea aplicaiilor de business gsindu-se din abunden pe internet. Noiunile de baza prezentate n aceste tutoriale video pentru nceptori au ca scop definirea elementelor i a entitilor de baz ce vor fi folosite n dezvoltarea aplicaiilor pentru afaceri prezentate mai trziu.

n acest tutorial video v prezint principalele tipuri de legturi (SQL JOINS) dintre tabelele relaionate din cadrul unei baze de date, folosite n cadrul interogrilor SQL complexe. O interogare complex reprezint interogarea care selecteaz date din cel puin dou tabele ale unei baze de date relaionale. Pentru o mai bun nelegere, voi explica aceste tipuri de legturi fcnd analogie cu operaiile cu mulimi precum i cu ajutorul diagramelor Venn.

Putem clasifica principalele tipuri de legturi (SQL JOINS) folosite n practic, astfel:
1. INNER JOIN; 2. OUTER JOINS:
o o o

a. FULL [OUTER] JOIN; b. LEFT [OUTER] JOIN; c. RIGHT [OUTER] JOIN; CROSS JOIN. 1. legtura de tip INNER JOIN reprezint intersecia (A B) nregistrrilor din tabelele interogate, selectate dup cheia comun; 2. a. legtura de tip FULL JOIN (sau FULL OUTER JOIN) reprezintuniunea (A B) nregistrrilor din tabelele interogate; n cazul n care se exclud nregistrrile care nu au coresponden n cealalt tabel (din punct de vedere reciproc), rezultatul este (A B) (B A) = A B, adicdiferena simetric; 2. b. legtura de tip LEFT JOIN (sau LEFT OUTER JOIN) reprezint uniunea dintre nregistrrile din prima tabel (din stnga JOIN-ului A LEFT JOIN B) i intersecia nregistrrilor din tabelele interogate, selectate dup cheia comun, astfel: A (A B); legtura A LEFT JOIN B este identiccu B RIGHT JOIN A, astfel: A (A B) = (B A) A; n cazul n care se exclud nregistrrile care nu au coresponden n cea de-a doua tabel (din dreapta JOIN-ului A LEFT JOIN B), rezultatul este A (A B) = A B, adic complementul relativ a lui B n A; 2. c. legtura de tip RIGHT JOIN (sau RIGHT OUTER JOIN) reprezint uniunea dintre nregistrrile din cea de-a doua tabel (din dreapta JOIN-uluiA RIGHT JOIN B) i intersecia nregistrrilor din tabelele interogate, selectate dup cheia comun, astfel: B (B A); legtura A RIGHT JOIN

B este identic cu B LEFT JOIN A, astfel: B (B A) = (A B) B; n cazul n care se exclud nregistrrile care nu au coresponden n prima tabel (din stnga JOIN-ului A RIGHT JOIN B), rezultatul este B (B A) =B A, adic complementul relativ a lui A n B; 3. legtura de tip CROSS JOIN reprezint produsul cartezian (A x B) al nregistrrilor din tabelele interogate.

S-ar putea să vă placă și