Limbajul SQL - who.rocq.inria.fr · PDF fileWHERE Titlu=‘Amintiri din copilarie’;...

Post on 11-Feb-2018

222 views 1 download

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