Sunteți pe pagina 1din 19

Centrul de Excelență în Informatică și Tehnologii Informaționale

Catedra Informatică I

Lucrare de studiu individual Nr.1

Disciplina:Implementarea limbajului SQL

Grupa:P-2222

Tema: Scenariul de crearea a BD.Prezentarea proiectului.

Realizat : Grițcu Bogdan-Ștefan

(Numele, prenumele elevului, grupa)

Verificat: Nebunelea Diana

(Numele, prenumele proesorului)

Nota_______________

Chişinău 2024

1
Cuprins
Despre unitate....................................................................................................................................................................................3
Introducere:....................................................................................................................................................................................... 4
Diagrama E-R....................................................................................................................................................................................5
Scenariul de creare a bazei de date..................................................................................................................................................6
Crearea bazei de date ”MorphoDesserts”:.........................................................................................................................................6
Crearea tabelului ”Magazine”:............................................................................................................................................................6
Crearea tabelului ”Produse”:.............................................................................................................................................................. 7
Crearea tabelului ”Clienti”: .................................................................................................................................................................8
Crearea tabelului ”Furnizori”:............................................................................................................................................................. 9
Crearea tabelului ”Angajati”:............................................................................................................................................................ 10
Modificarea structurii tabelului ”Magazine”:....................................................................................................................................11
Scenariul cu interogări....................................................................................................................................................................12
Selectarea numelui produsului și a prețului:.....................................................................................................................................12
...........................................................................................................................................................................................................12
Stocul total al produselor:.................................................................................................................................................................12
...........................................................................................................................................................................................................12
Afișarea clienților și a magazinelor de unde cumpără:.....................................................................................................................12
Lista angajaților și funcția lor din fiecare magazin:...........................................................................................................................13
Lista furnizorilor și a produselor:.......................................................................................................................................................13
...........................................................................................................................................................................................................13
Angajatul cu cel mai mare salariu:.................................................................................................................................................... 13
Concluzie........................................................................................................................................................................................... 15
Bibliografie....................................................................................................................................................................................... 16
W3SCHOOL SQL:................................................................................................................................................................................16
Oracle SQL:........................................................................................................................................................................................ 16
Anexe................................................................................................................................................................................................ 17
Listing-ul programului:...................................................................................................................................................................... 17

2
Despre unitate

SQL (Structured Query Language) este un limbaj de programare standardizat folosit pentru
gestionarea și manipularea bazelor de date relaționale. A fost dezvoltat pentru a oferi un mod
standardizat de interacțiune cu sistemele de gestiune a bazelor de date (SGBD).

Tipuri de Comenzi SQL:


DDL (Data Definition Language): Utilizat pentru definirea, modificarea și ștergerea structurii
obiectelor din baza de date. Exemple includ CREATE, ALTER, DROP.
DML (Data Manipulation Language): Folosit pentru manipularea datelor în interiorul bazelor de date.
Exemple includ SELECT, INSERT, UPDATE, DELETE.
DCL (Data Control Language): Se ocupă de drepturile și accesul la date. Exemple includ GRANT și
REVOKE.

Clauze SQL:
SELECT: Folosită pentru extragerea datelor dintr-o bază de date.
FROM: Specifică tabela sau tabelele din care se fac selecții.
WHERE: Stabilește condiții pentru filtrarea datelor.
GROUP BY: Gruparea datelor în funcție de anumite coloane.
ORDER BY: Sortarea rezultatelor într-o anumită ordine.

Operații pe Tabele:
CREATE TABLE: Creează o nouă tabelă în baza de date.
ALTER TABLE: Modifică o tabelă existentă (adaugă sau șterge coloane etc.).
DROP TABLE: Șterge o tabelă existentă.

Funcții SQL:
COUNT(): Numără numărul de rânduri dintr-o interogare.
SUM(): Calculează suma valorilor dintr-o coloană.
AVG(): Calculează media valorilor dintr-o coloană.
MAX() și MIN(): Returnează valoarea maximă sau minimă dintr-o coloană.

3
Introducere:
Bine ați venit la Morpho Desserts, o cafenea fermecătoare pentru cei cu o poftă de dulce și o
apreciere pentru experiențe gastronomice delicioase. Amplasată în inima Chișinăului, ”Morpho Desserts”
este mai mult decât o cafenea; este o călătorie în lumea confecțiilor și a aromelor excepționale.Aici veți fi
întâmpinați de o ambianță care îmbină eleganța modernă cu căldura confortabilă.Patiserii pricepuți
creează fiecare desert cu precizie și creativitate. De la un latte la flat white, fiecare băutură este preparată
cu atenție, scoțând în evidență contrastul cafelei.Fiecare cană are o notă de expertiză, astfel încât fiecare
înghițitură să fie o călătorie senzorială în lumea cafelei premium.Descoperiți creațiile ”semnătură” care
plasează Morpho Desserts într-o categorie aparte.

4
Diagrama E-R

Am creat Diagrama E-R pentru a reprezenta relațiile dintre entități cu ajutorul cheilor primare și
secundare.Diagrama conține
5 tabele : ”Magazine”,”Produse”,”Clienti”,”Angajati”,”Furnizori”.

5
Scenariul de creare a bazei de date

Crearea bazei de date ”MorphoDesserts”:

Crearea tabelului ”Magazine”:

Inserarea intrărilor:

Afișarea tabelului ”Magazine”:

6
Crearea tabelului ”Produse”:

Am folosit atributul MagazinID drept cheie străină în acest tabel, ce se referă la MagazinID din tabelul
”Magazine”.

Inserarea intrărilor:

Afișarea tabelului ”Produse”:

7
Crearea tabelului ”Clienti”:

Am folosit atributul MagazinID drept cheie străină în acest tabel, ce se referă la MagazinID din tabelul
”Magazine”.

Inserarea intrărilor:

Afișarea tabelului ”Clienti”:

8
Crearea tabelului ”Furnizori”:

Am folosit atributul MagazinID drept cheie străină în acest tabel, ce se referă la MagazinID din tabelul
”Magazine”.

Inserarea intrărilor:

Afișarea tabelului ”Furnizori”:

9
Crearea tabelului ”Angajati”:

Am folosit atributul MagazinID drept cheie străină în acest tabel, ce se referă la MagazinID din tabelul
”Magazine”.

Inserarea intrărilor:

Afișarea tabelului ”Angajati”:

10
Modificarea structurii tabelului ”Magazine”:

Actualizarea tabelului ”Magazine”:

Afișarea tabelului ”Magazine” după modificare:

11
Scenariul cu interogări
Selectarea numelui produsului și a prețului:

Stocul total al produselor:

Afișarea clienților și a magazinelor de unde cumpără:

12
Lista angajaților și funcția lor din fiecare magazin:

Lista furnizorilor și a produselor:

Angajatul cu cel mai mare salariu:

13
Salariul mediu al angajaților:

Numărul total de angajați:

Lista furnizorilor cu ID-ul mai mic de 5:

Lista clienților în ordine descrescătoare:

14
Concluzie

Concluzie: Cercetarea despre SQL evidențiază rolul esențial al limbajului în administrarea bazelor de
date, subliniind complexitatea și variabilitatea funcționalităților sale. Totuși, recunoaștem că progresul
continuu al tehnologiei aduce noi provocări și oportunități pentru optimizarea utilizării SQL. Cercetările
viitoare pot explora mai profund eficiența și adaptabilitatea limbajului în fața schimbărilor din industrie
și a tehnologiilor emergente.

15
Bibliografie

W3SCHOOL SQL:
https://www.w3schools.com/sql/

Oracle SQL:
https://www.oracle.com/database/sqldeveloper/

16
Anexe
Listing-ul programului:
-- Crearea bazei de date "MorphoDesserts"
CREATE DATABASE MorphoDesserts;
USE MorphoDesserts;

-- Tabelul "Produse"
CREATE TABLE Produse (
ProdusID INT PRIMARY KEY,
NumeProdus VARCHAR(50),
Pret DECIMAL(10, 2),
Stoc INT,
MagazinID INT,
FOREIGN KEY (MagazinID) REFERENCES Magazine(MagazinID)
);

-- Adaugarea a 10 intrări în tabelul "Produse"


INSERT INTO Produse (ProdusID, NumeProdus, Pret, Stoc, MagazinID)
VALUES
(1, 'Tiramisu', 15.99, 50, 1),
(2, 'Cheesecake', 18.50, 40, 2),
(3, 'Eclairs', 12.75, 60, 3),
(4, 'Muffins', 8.99, 75, 4),
(5, 'Cupcakes', 10.25, 80, 5),
(6, 'Brownies', 14.50, 45, 6),
(7, 'Macarons', 20.00, 30, 7),
(8, 'Fruit Tart', 22.99, 25, 8),
(9, 'Chocolate Fondue', 25.50, 20, 9),
(10, 'Panna Cotta', 17.75, 55, 10);

-- Tabelul "Magazine"
CREATE TABLE Magazine (
MagazinID INT PRIMARY KEY,
NumeMagazin VARCHAR(50),
Adresa VARCHAR(100)
);

-- Adaugarea a 10 intrări în tabelul "Magazine"


INSERT INTO Magazine (MagazinID, NumeMagazin, Adresa)
VALUES
(1, 'Morpho Desserts1', 'Strada Mihai Viteazu, Nr. 10'),
(2, 'Morpho Desserts2', 'Bulevardul Unirii, Nr. 25'),
(3, 'Morpho Desserts3', 'Strada Florilor, Nr. 5'),
(4, 'Morpho Desserts4', 'Piața Libertății, Nr. 15'),
(5, 'Morpho Desserts5', 'Aleea Râului, Nr. 8'),
(6, 'Morpho Desserts6', 'Strada Călin, Nr. 12'),
(7, 'Morpho Desserts7', 'Bulevardul Parcului, Nr. 30'),
(8, 'Morpho Desserts8', 'Strada Aurora, Nr. 17'),
(9, 'Morpho Desserts9', 'Aleea Zâmbetului, Nr. 22'),
(10, 'Morpho Desserts10', 'Bulevardul Liniștii, Nr. 7');

-- Tabelul "Clienti"
CREATE TABLE Clienti (
ClientID INT PRIMARY KEY,
NumeClient VARCHAR(50),
Email VARCHAR(50),
Telefon VARCHAR(15),
MagazinID INT,
17
FOREIGN KEY (MagazinID) REFERENCES Magazine(MagazinID)
);

-- Adaugarea a 10 intrări în tabelul "Clienti"


INSERT INTO Clienti (ClientID, NumeClient, Email, Telefon, MagazinID)
VALUES
(1, 'Ana Maria Popescu', 'ana.popescu@email.com', '0723456789', 1),
(2, 'Radu Ionescu', 'radu.ionescu@email.com', '0712345678', 2),
(3, 'Elena Stanescu', 'elena.stanescu@email.com', '0734567890', 3),
(4, 'Mihai Popa', 'mihai.popa@email.com', '0745678901', 4),
(5, 'Andreea Dumitru', 'andreea.dumitru@email.com', '0723456123', 5),
(6, 'Adrian Georgescu', 'adrian.georgescu@email.com', '0712345612', 6),
(7, 'Laura Marinescu', 'laura.marinescu@email.com', '0734567123', 7),
(8, 'Alexandru Vasilescu', 'alexandru.vasilescu@email.com', '0745678234', 8),
(9, 'Ioana Radu', 'ioana.radu@email.com', '0723456345', 9),
(10, 'Cristian Iacob', 'cristian.iacob@email.com', '0712345456', 10);
-- Tabelul "Furnizori"

CREATE TABLE Furnizori (


FurnizorID INT PRIMARY KEY,
NumeFurnizor VARCHAR(50),
Adresa VARCHAR(100),
Telefon VARCHAR(15),
MagazinID INT,
FOREIGN KEY (MagazinID) REFERENCES Magazine(MagazinID)
);

-- Adaugarea a 10 intrări în tabelul "Furnizori"


INSERT INTO Furnizori (FurnizorID, NumeFurnizor, Adresa, Telefon, MagazinID)
VALUES
(1, 'Bakery Supplies Co.', 'Strada Panificatiei, Nr. 15', '0712345678', 1),
(2, 'Fresh Ingredients Ltd.', 'Aleea Fructelor, Nr. 25', '0723456789', 2),
(3, 'Chocolate World', 'Bulevardul Ciocolatei, Nr. 10', '0734567890', 3),
(4, 'Dairy Delights', 'Strada Laptelui, Nr. 5', '0745678901', 4),
(5, 'Fruit Paradise Farms', 'Aleea Fructelor, Nr. 18', '0756789012', 5),
(6, 'Coffee Beans Importer', 'Bulevardul Cafelei, Nr. 12', '0767890123', 6),
(7, 'Sugar Sweet Co.', 'Strada Zaharului, Nr. 30', '0778901234', 7),
(8, 'Vanilla Essence Supplier', 'Aleea Vaniliei, Nr. 17', '0789012345', 8),
(9, 'Spices Emporium', 'Strada Condimentelor, Nr. 22', '0790123456', 9),
(10, 'Kitchen Utensils Ltd.', 'Bulevardul Ustensilelor, Nr. 7', '0701234567',
10);

-- Tabelul "Angajati"
CREATE TABLE Angajati (
AngajatID INT PRIMARY KEY,
NumeAngajat VARCHAR(50),
Pozitie VARCHAR(50),
Salariu DECIMAL(10, 2),
MagazinID INT,
FOREIGN KEY (MagazinID) REFERENCES Magazine(MagazinID)
);

-- Adaugarea a 10 intrări în tabelul "Angajati"


INSERT INTO Angajati (AngajatID, NumeAngajat, Pozitie, Salariu, MagazinID)
VALUES
(1, 'Ion Popescu', 'Bucatar', 2500.00, 1),
(2, 'Maria Ionescu', 'Chelner', 1800.00, 2),
(3, 'Andrei Georgescu', 'Patissier', 2800.00, 3),
(4, 'Elena Vasilescu', 'Manager Magazin', 3000.00, 4),
(5, 'Mihai Radu', 'Patisser', 2800.00, 10),
(6, 'Ana Dumitru', 'Barista', 2000.00, 5),
(7, 'Vlad Marin', 'Casier', 1900.00, 6),
(8, 'Cristina Stanescu', 'Patissier', 2700.00, 7),

18
(9, 'George Iacob', 'Chelner', 1800.00, 8),
(10, 'Laura Popa', 'Bucatar', 2400.00, 9);

-- Adaugarea a 10 intrări în tabelul "Angajati

select * from Angajati;


select * from Magazine;
select * from Produse;
select * from Furnizori;
select * from Clienti;

-- Adaugarea coloanei IDAngajat


ALTER TABLE Magazine ADD IDAngajat INT;
-- Adaugarea unei chei străine
ALTER TABLE Magazine ADD CONSTRAINT FK_Magazine_Angajati FOREIGN KEY (IDAngajat)
REFERENCES Angajati(AngajatID);

select * from Magazine;

UPDATE Magazine SET IDAngajat = MagazinID WHERE MagazinID BETWEEN 1 AND 10;

-- Selectarea numelui produsului și a prețului:


SELECT NumeProdus, Pret FROM Produse;

--salariul mediu
select AVG(Salariu) as SalariuMediu from Angajati;

-- Stocul total al produselor:


SELECT NumeProdus, SUM(Stoc) AS StocTotal FROM Produse GROUP BY NumeProdus;

-- Afișarea clienților și a magazinelor de unde cumpără:

SELECT Clienti.NumeClient, Clienti.Email, Magazine.NumeMagazin


FROM Clienti, Magazine
WHERE Clienti.MagazinID = Magazine.MagazinID;

-- Lista angajaților și funcția lor din fiecare magazin:


SELECT Angajati.NumeAngajat, Angajati.Pozitie, Magazine.NumeMagazin
FROM Angajati, Magazine
WHERE Angajati.MagazinID = Magazine.MagazinID;

--lista clientilor in ordine descendenta


select * from Clienti order by ClientID DESC;

--lista furnizorilor pana la ID-ul 5


select * from furnizori where FurnizorID <5 and FurnizorID >=1;

-- Lista furnizorilor și a produselor:


SELECT Furnizori.NumeFurnizor, Furnizori.Adresa, Furnizori.Telefon,
Produse.NumeProdus
FROM Furnizori, Produse
WHERE Furnizori.MagazinID = Produse.MagazinID;

-- Angajatul cu cel mai mare salariu:


SELECT * FROM Angajati WHERE Salariu = (SELECT MAX(Salariu) FROM Angajati);

19

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