Limbajul SQL - who.rocq.inria.fr · PDF fileWHERE Titlu=‘Amintiri din copilarie’;...
Transcript of Limbajul SQL - who.rocq.inria.fr · PDF fileWHERE Titlu=‘Amintiri din copilarie’;...
Limbajul SQL
jeudi 22 octobre 15
2/ 21
Principiile SQL
O interogatie se termina prin ;
Instructiunile sunt in majuscule (conventie)
Numele câmpurilor sau a tabelelor - scriere exacta
Numele nu pot depasi 128 caractere
jeudi 22 octobre 15
Gestiunea tabelelor
CREATE TABLE Carti (lista coloane cu tipul asociat);
3/ 21 jeudi 22 octobre 15
Gestiunea tabelelor
CREATE TABLE Carti (lista coloane cu tipul asociat);
INSERT INTO Carti(Titlu, Autor, ISBN, PRET, N_inventar)VALUES (‘Infern’, ‘Dante’, 55525, 15, 100);
3/ 21 jeudi 22 octobre 15
Gestiunea tabelelor
CREATE TABLE Carti (lista coloane cu tipul asociat);
INSERT INTO Carti(Titlu, Autor, ISBN, PRET, N_inventar)VALUES (‘Infern’, ‘Dante’, 55525, 15, 100);
DELETE FROM CartiWHERE Titlu=‘Amintiri din copilarie’;
3/ 21 jeudi 22 octobre 15
Gestiunea tabelelor
CREATE TABLE Carti (lista coloane cu tipul asociat);
INSERT INTO Carti(Titlu, Autor, ISBN, PRET, N_inventar)VALUES (‘Infern’, ‘Dante’, 55525, 15, 100);
DELETE FROM CartiWHERE Titlu=‘Amintiri din copilarie’;
3/ 21
UPDATE CartiSET Titlu=”Amintiri din tinerete”WHERE Autor=”Creanga”
jeudi 22 octobre 15
4/ 21
Proiectia
SELECT Nume, OrasFROM Persoana;
jeudi 22 octobre 15
4/ 21
Proiectia
SELECT Nume, OrasFROM Persoana;
Nume OrasNestor ParisIrma LilleHenri ParisJosette LyonJacques Bordeaux
jeudi 22 octobre 15
Proiectia (2)
5/ 21
SELECT *FROM Persoana;
SELECT Oras AS City FROM Persoana;
jeudi 22 octobre 15
Proiectia (2)
5/ 21
SELECT *FROM Persoana;
Toata tabla
SELECT Oras AS City FROM Persoana;
jeudi 22 octobre 15
Proiectia (2)
5/ 21
SELECT *FROM Persoana;
Toata tabla
SELECT Oras AS City FROM Persoana;
CityParisLilleParisLyon
Bordeaux
jeudi 22 octobre 15
Proiectia - valori diferite
6/ 21
SELECT DISTINCT VilleFROM Persoana;
jeudi 22 octobre 15
Proiectia - valori diferite
6/ 21
SELECT DISTINCT VilleFROM Persoana;
Ville
ParisLille
Lyon
Bordeaux
jeudi 22 octobre 15
Operatii
7/ 21
+ Addition- Soustraction* Multiplication/ Division% Modulo
SELECT Pret, N_inventar, (Pret/4.31) AS Pret_EurosFROM Stoc;
jeudi 22 octobre 15
Operatii statistice
8/ 21
COUNT
MAX
MIN
AVG
SUM
SELECT AVG(Pret) AS Pret_MediuFROM Carti;
SELECT COUNT(*) AS Numar_TotalFROM Stoc;
jeudi 22 octobre 15
Selectia - operatori de comparare
9/ 21
=<><>
<=>=
SELECT *FROM VânzariWHERE Pret > 50000;
jeudi 22 octobre 15
Alti operatori de comparare
10/ 21
BETWEEN <val1> AND <val2>In <liste_valeurs>
IS NULLLIKE
Modulo
SELECT *FROM TipografieWHERE Calitate IN (“mediu”, “superior”);
jeudi 22 octobre 15
Conectori
ANDOR
NOT
SELECT *FROM CartiWHERE Titlu =‘Infern’ AND Pret <10;
jeudi 22 octobre 15
Agregate (groupari)
SELECT MarcaFROM MasinaGROUP BY Marca;
jeudi 22 octobre 15
Agregate (groupari)
SELECT MarcaFROM MasinaGROUP BY Marca;
Marca
Citroen
Opel
Peugeot
Renault
jeudi 22 octobre 15
Alt exemplu
SELECT Marca, COUNT(*) AS ContFROM MasinaGROUP BY Marca;
jeudi 22 octobre 15
Alt exemplu
SELECT Marca, COUNT(*) AS ContFROM MasinaGROUP BY Marca;
Marca Cont
Dacia 1
Opel 1
Peugeot 2
Dacia 2
jeudi 22 octobre 15
Alt exercitiu
SELECT Oras, AVG(Varsta) AS Varsta_MedieFROM PersoanaGROUP BY Oras;
jeudi 22 octobre 15
Restrictionarea rezultatului
15/ 21
SELECT Marca, COUNT(*) AS ContFROM MasinaGROUP BY MarcaHAVING Cont >1;
jeudi 22 octobre 15
Restrictionarea rezultatului
15/ 21
SELECT Marca, COUNT(*) AS ContFROM MasinaGROUP BY MarcaHAVING Cont >1;
Marca Cont
Peugeot 2
Renault 2
jeudi 22 octobre 15
Interogatii pe mai multe table
16/ 21
SELECT Carti.Pret, Stoc.CantitateWHERE Stoc.N_Inventar <= 400FROM Librarie;
jeudi 22 octobre 15
Produs cartezian
SELECT *FROM Carti, Stoc;
nbr_coloane_rezultat = nbr_col_1 + nbr_col_2nbr_linii_rezultat = nbr_lin_1 * nbr_lin_2
jeudi 22 octobre 15
Join (simplu)
SELECT Masina.Marca, Masina.Culoare, Vânzari.PretFROM Masina, VânzariWHERE Masina.Numar = Vânzari.Numar;
jeudi 22 octobre 15
Join (simplu)
SELECT Masina.Marca, Masina.Culoare, Vânzari.PretFROM Masina, VânzariWHERE Masina.Numar = Vânzari.Numar;
Optimizare posibila
jeudi 22 octobre 15
Join (simplu)
SELECT Masina.Marca, Masina.Culoare, Vânzari.PretFROM Masina, VânzariWHERE Masina.Numar = Vânzari.Numar;
SELECT Masina.Marca, Masina.Culoare, Vânzari.PretFROM Vânzari JOIN Masina.Numar = Vânzari.Numar;
Optimizare posibila
jeudi 22 octobre 15
Join extern
SELECT Masina.Numar, Vânzari.Numar, Masina.Marca, Masina.Culoare, Vânzari.PretFROM Masina LEFT OUTER JOIN Vânzari ON Masina.Numar = Vânzari.Numar;
jeudi 22 octobre 15
Trierea rezultatului
SELECT Pret, DateVânzareFROM VânzareORDER BY Pret DESC;
jeudi 22 octobre 15
Trierea rezultatului
SELECT Pret, DateVânzareFROM VânzareORDER BY Pret DESC;
Pret DateVânzare70000 1996-03-3045000 2000-12-0330000 1998-12-0310000 1985-12-03
jeudi 22 octobre 15
21/ 21
jeudi 22 octobre 15