Sunteți pe pagina 1din 7

Crearea bazei de date: Definire chei primare:

mysql> CREATE DATABASE anunturi_online; ALTER TABLE Cumparatori ADD PRIMARY


KEY (cump_id);
ALTER TABLE ComanziArticole ADD
PRIMARY KEY (comanda_nr,
comanda_articol);
ALTER TABLE Produse ADD PRIMARY
KEY (prod_id);
ALTER TABLE Vanzatori ADD PRIMARY
KEY (vanz_id);
Folosirea bazei de date: Modalitate de a defini cheia externa:
mysql> USE anunturi_online; ALTER TABLE Cumparatori
CONSTRAINT FOREIGN KEY (cump_id)
REFERENCES Cumparatori (cump_id)
Stergerea bazei de date: Regasirea coloanelor individuale:
mysql> DROP DATABASE SELECT prod_nume
nume_baza_de_date; FROM Produse;
Crearea unui tabel: Regasirea mai multor coloane:
mysql> CREATE TABLE anunturi ( SELECT prod_id, prod_nume, prod_pret
-> id INT NOT NULL AUTO_INCREMENT FROM Produse;
PRIMARY KEY,
-> text_anunt TEXT,
-> data_anunt DATE NOT NULL
-> );
Afisarea tabelelor: Regasirea tuturor coloanelor:
mysql> SHOW TABLES; SELECT *
FROM Produse;
Stergerea unui tabel: Sortarea datelor:
mysql> DROP TABLE nume_tabel; SELECT prod_nume
FROM Produse
ORDER BY prod_nume;
Introducerea de date intr-un tabel: Sortarea dupa mai multe coloane:
mysql> INSERT INTO anunturi SET SELECT prod_id,
-> text_anunt = "vand notebook HP Pavilion Prod_pret
zd8000. Tel. 0721-525161", FROM Produse
-> data_anunt = "2005-07-20"; ORDER BY prod_pret,
Prod_nume;
Vizualizarea datelor stocate: Sortarea dupa pozitia coloanei:
mysql> SELECT * FROM anunturi; ( * - SELECT prod_id,
TOATE) Prod_pret
FROM Produse
mysql> SELECT text_anunt FROM anunturi; ORDER BY 2, 3;

mysql> SELECT text_anunt, data_anunt FROM


anunturi;
Dar dacă vrem să aflăm câte anunţuri au fost Sortarea directiei de sortare:
publicate: SELECT prod_id,
mysql> SELECT COUNT(*) FROM anunturi Prod_pret
WHERE data_anunt="2005-03-04"; FROM Produse
ORDER BY prod_pret DESC;
Filtrarea datelor:
SELECT prod_nume, prod_pret
FROM produse
WHERE prod_pret = 199.49;
Dar dacă vrem să aflăm toate anunţurile
despre notebook-uri?
mysql> SELECT text_anunt, data_anunt FROM
anunturi WHERE text_anunt LIKE
'%notebook%';

Modificarea datelor stocate: Testarea cu o singura valoare:


mysql> UPDATE anunturi SET text_anunt = " SELECT prod_nume, prod_pret
vand notebook HP Pavilion zd8000. Pret 1000 FROM produse
RON. Tel.0721-525161" WHERE id = 1; WHERE prod_pret <200;
Adaugarea unui camp nou: Testarea pentru non-corespondente:
mysql> ALTER TABLE anunturi ADD SELECT vanz_id, prod_nume
COLUMN data_exp_anunt DATE NOT NULL; FROM Produse
WHERE vanz_id <> `TORBUL01`;
Verificarea campului nou: Testarea pentru domeniu de valori:
mysql> show columns from anunturi; SELECT prod_nume, prod_pret
FROM Produse
WHERE prod_pret BETWEEN 20 AND 300;
Stergerea datelor stocate: Testarea pentru nicio valoare:
mysql> DELETE FROM anunturi WHERE id = SELECT cump_nume
1; FROM Cumparatori
WHERE cump_email IS NULL;
Stergerea unui tabel: Pentru a filtra mai multe coloane: AND
mysql> DROP TABLE anunturi; SELECT prod_id, prod_pret, prod_nume
FROM Produse
WHERE vanz_id = `TORBUL01` AND
prod_pret<= 20;
Stergerea unei baze de date: Operatorul OR:
mysql> DROP DATABASE anunturi_online; SELECT prod_nume, prod_pret
FROM Produse
WHERE vanz_id = `TORBUL01` OR vanz_id =
`TORCRO01`;
Ordinea de evaluare:
SELECT prod_nume, prod_pret
FROM Produse
WHERE vanz_id = `TORBUL01` OR
vanz_id=`TORCRO01` AND prod_pret >= 100;
Operatorun IN:
SELECT prod_nume, prod_pret
FROM Produse
WHERE vanz_id IN
(`TORBUL01`,`TORCRO01`)
ORDER BY prod_nume;
Folosirea operatorului NOT:
SELECT prod_nume, prod_pret
FROM Produse
WHERE NOT (vanz_id = `TORBUL01`)
ORDER BY prod_nume
Operatorul LIKE:
SELECT prod_id, prod_nume
FROM Produse
WHERE prod_nume LIKE `Priza%`;
Caracterul de inlocuire liniuta de subliniere:
SELECT prod_id, prod_nume
FROM Produse
WHERE prod_nume LIKE `%_TP%`;
Conectarea campurilor calculate:
SELECT CONCAT(vanz_nume, vanz_adresa,
`(`,vanz_tara, `)`) AS info_vanz
FROM Vanzatori
ORDER BY vanz_nume;
Efectuarea de calcule aritmetice:
SELECT prod_id, cantitate, articol_pret
FROM ComenziArticole
WHERE comanda_nr = 20008;
Functii pentru manipularea textului:
SELECT vanz_nume, UPPER(vanz_nume)
AS vanz_nume_majuscule
FROM Vanzatori
ORDER BY vanz_nume;

Functii pentru manipularea datei si orei:


SELECT comanda_nr
FROM Comenzi
WHERE YEAR(comanda_data) = 2005;
Functia AVG(): Inserarea datelor:
SELECT AVG(prod_pret) AS pret_mediu INSERT INTO Cumparaturi
FROM Produse; VALUES(`10000006`,
`Flamingo Computers Holland`,
`TRAWLERWEG 22 3133 KS`,
`VLAARDINGEN`,
`1111`,
`olanda`,
NULL,
NULL);
Functia COUNT(): Inserarea de linii complete
SELECTIA COUNT(*) AS nr_cumparatori INSERT INTO Cumparatori
FROM Cumparatori; VALUES(`1000006`,
`Flamingo Computers Holland`,
`TRAWLERWEG 22 3133 KS`,
`VLAARDINGEN`,
`1111`,
`Olanda`,
NULL,
NULL);
Functia MAX(): Inserarea datelor regasite:
SELECT MAX(prod_pret) AS pret_max INSERT INTRO Cumparatori(cump_id,
FROM Produse; Cump_contact,
Cump_email,
Cump_nume)
SELECT cump_id,
Cump_contact
Cump_email,
Cump_nume)
FROM CumpNoi;
Functia MIN(): Copierea dintr-un tabel in altul:
SELECT MIN(prod_pret) AS pret_min CREATE TABLE CumpCopie AS
FROM Produse; SELECT *
FROM Cumparatori;
Funtia SUM(); Actualizarea datelor:
SELECT SUM(cantitate) AS UPDATE Cumparatori
articole_comandate SET cump_email=`office@flamingo.md`
FROM ComnenziArticole WHERE cump_id=`10000005`;
WHERE comanda_nr = 2005;
Functii agregat pe valori distincte: Folosirea subselectiilor intr-o instructiune:
SELECT COUNT(DISTINCT prod_pret) AS UPDATE Cumparatori
prod_pret_diferit SET cump_email = NULL
FROM Produse WHERE cump_id = `100000005`;
WHERE vanz_id = `TORBUL01`;
Combinarea functiilor agregat: Stergerea datelor:
SELECT COUNT(*) AS nr_articole DELET FROM Cumparatori
MIN(prod_pret) AS pret_min. WHERE cump_id = `10000006`;
MAX(prod_pret) AS pret_max.
AVG(prod_pret) AS pret_mediu
FROM Produse;
Crearea grupurilor: Actualizarea tabelelor:
SELECT vanz_id. COUNT(*) AS nr_produse ALTER TABLE Vanzatori ADD
FROM Produse Vanz_telefon CHAR(20);
GROUP BY vanz_id;
Filtrarea grupurilor: Stergerea tabelelor:
SELECT cump_id. COUNT(*) AS comenzi DROP TABLE CumpCopiel
FROM Comenzi
GROUP BY cump_id
HAVING COUNT (*) >=2;
Grupare si sortare: Folosirea Vederilor:
SELECT comanda_nr, COUNT(*) AS articole SELECT cump_nume, cump_contact
FROM ComenziArticole FROM Cumparatori, Comenzi, ComenziArticole
GROUP BY comanda_nr WHERE Cumparatori.cump_id =
HAVING COUNT(*) >=3; Comenzi.cump_id
AND ComenziArticole.comanda_nr =
Comenzi.comanda_nr
AND prod_id = `QPTRLSADG`;
Filtrarea prin folosirea subselectiilor: Folosirea vederilor pentru simplificarea unirilor
SELECT comanda_nr complexe:
FROM ComenziArticole CREATE VIEW ProdusCump AS SELECT
WHERE prod_id=`QPTCLS8P8P`; cump_nume,cump_contact
AND ComenziArticole.comanda_nr =
Comenzi.comanda_nr
Crearea lui Join: Folosirea vederilor pentru reformatarea datelor
SELECT vanz_nume, prod_nume, prod_pret regasite:
FROM Vanzatori, Produse SELECT cump_nume,
THERE Vanzatori.vanz_id=Produse.vanz_id; Cump_adresa,
Cump_oras,
Cump_cod,
Cump_tara
FROM Cumparatori;
Jonctiuni interioare Folosirea vederilor pentru filtrarea datelor
SELECT vanz_nume, prod_nume, prod_pret nedorite:
FROM Vanzatori INNER JOIN Produse CREATE VIEW CumpEtichetaPosta AS
ON Vanzari.vanz_id = Produse.vanz_id; SELECT cump_nume, cump_adresa AS
cump_adresa1,
CONTACT((cump_oras), (cump_cod)) AS
cump_adresa2, cump_tara AS cump_adresa3
FROM Cumparatori WHERE NOT Cump_adresa
IS NULL
AND NOT cump_oras IS NULL
AND NOT cump_cod IS NULL
AND NOT cump_tara IS NULL;
Jonctiunea mai multor tabele: Folosirea vederilor cu campuri calculate:
SELECT SELECT prod_id,
prod_nume,vanz_nume,prod_pret,cantitate Cantitate,
FROM ComenziArticole, Produse, Vanzatori Articol_pret,
WHERE Produse.vanz_id=Vanzatori.vanz_id Cantitate*articol_pret AS pret_global
AND FROM ComenziArticole
ComenziArticole.prod_id=Produse.prod_id WHERE comanda_nr = 200008;
AND comanda_nr = 20007;
Lucru cu subselectii: Crearea procedurilor stocate:
SELECT cump_nume. Cump_contact CALL produspret((@pret_max,
FROM Cumparatori @pret_mediu,
WHERE cump_id IN (SELECT cump_id @pret_min);
FROM Comenzi
Where comanda_nr IN (SELECT comanda_nr
FROM ComenziArticole
WHERE prod_id = `QTPDSADJ`));
Crearea jonctiunilor avansate: Apelarea procedurilor stocate:
SELECT CALL produspret();
RTRIM(vanz_oras)+`.`_RTRIM(vanz_tara)+`
RTRIM(vanz_cod) AS Adresa2
FROM vanzatori
ORDER BY vanz_nume;
Tipuri de autojonctiuni: Stergerea procedurilor stocate
SELECT cump_id,cump_nume, cump_contact DROP PROCEDURE produspretl;
FROM Cumparatori
WHERE cump_nume=(select cump
_nume
FROM Cumparatori
WHERE cump_contact = `Marco Pancev`);
Jonctiuni naturale: Lucru cu parametrii in procedurile stocate:
Select C.*, C0.comanda_nr, DELIMITER //
C0.comanda_data,Caprod_id, CA.cantitate CREATE PROCEDURE prodspret(
WHERE C.cump_id=C0.comanda_nr OUT pmax DECILAM(8,2),
AND CA.comanda_nr=CO.comanda_nr OUT pmed DECIMAL(8,2),
AND prod_id=`QPTRLSADO`; OUT pmin DECIMAL(8,2)
)
BEGIN
SELECT Max(prod_pret)
INTO pmax
FROM Produsel
SELECT Avg(prod_pret)
INTO pmed
FROM Produse;
SELECT Min(prod_pret)
INTO pmin
FROM Produsel
END //
DELIMITER;
Jonctiuni exterioare:
SELECT Cumparatori.cump_id.
Comenzi.comanda_nr
FROAM Cumparatori INNER JOIN Comenzi
WHERE
Cumparatori.cump_id=Comenzi.cump_id;
Folosirea jonctiunilor cu funtii de agent:
SELECT Cumparatori.cump_id.
COUNT(Comenzi.comanda_nr) AS
nr_comenzi
FROM Cumparatori INNER JOIN Comenzi
ON Cumparatori.cump_id = Comenzi.cump_id
GROUP BY Cumparatori.cump_id;
Folosirea operatorului UNION:
SELECT cump_nume, cump_contact,
cump_email
FROM Cumparatori
WHERE cum_tara IN
(`Romania`,`Croatia`,`Moldova`);
Includerea sau eliminarea liniilor duplicate:
SELECT cump_nume, cump_contact,
cump_email FROM Cumparatori
WHERE cump_tara IN
(`Romania`,`Croatia`,`Moldova`)
UNION ALL
SELECT cump_nume, cump_contact,
cump_email FROM Cumparatori
WHERE cump_nume = `Flamingo Digitalini
Ducan d.o.o`;
Sortarea rezultatelor interogarii compuse:
SELECT cump_nume, cump_contact,
cump_email
FROM Cumparatori
WHERE cump_tara IN
(`Romania`,`Croatia`,`Moldova`)
UNION
SELECT cump_nume, cump_contact,
cump_email
FROM Cumparatori
WHERE cump_nume= `Flamingo Digitalini`
ORDER BY cump_nume, cump_contact;

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