Documente Academic
Documente Profesional
Documente Cultură
Corectare tema
Expresii SQL
• Operatorul ‘Case’:
• SELECT 3>2 AND 5>4, 58, 5>3 XOR 6>1, NOT (7>-1);
Transformare de la un tip de date la altul
• CREATE TABLE date(d DATE, t TIMESTAMP); INSERT INTO date('2009-
08-02', '2009-08-02 20:44:00'); SELECT d+0, t+0;
• Cheia primara: Index unic care nu permite null. De obicei cheia primara este un numar intreg.
• OBS: intr o tabela MySql exista o singura coloanal unde poate fi folosita functia AUTO_INCREMENT si aceea
trebuie declarata ca cheie primara
Indexare
• Crearea indecsilor:
• La crearea tabelei
• create table persoane (cnp int(13), nume varchar(30), UNIQUE (cnp));
• Show index from persoane
• Dupa crearea tabelei
• alter table <tableName> drop index <index_name>;
• create index <index_name> on <tablerName> (<columnName>);
Indexare
• Exercitii
• Dezavantaje:
• Operatiune mai lenta in cazul unui batch insert sau a multor instructiuni insert
consecutive
• Spatiul de memorie ocupat, informatiile fiind duplicate. Mai multi indecsi si multe
inregistrari cresc resursele neceare pentru alocarea indexarii.
Subinterogari
• Definitie: Instructiune select, plasata intr o alta instructiune.
• Select * from personae where dataNasterii = (select dataNasterii from
personae where name = ‘maria’)
Subinterogari
• Subinterogari
• De tip lista:
• select * from payment where rental_id in (select rental_id from payment where amount
> 10);
• De tip scala: # selectati preturile mai mari decat media
• SELECT * FROM payment where amount > (select avg(amount) from payment) ;
Subinterogari
• SQL All:
• Returneaza Boolean (true/false)
• TRUE daca ALL subinterogarile sunt adevarate
• SQL Any
• Returneaza Boolean (ture/false)
• Returneaza true daca una din subinterogari e adevarata
select * from payment where rental_id = ANY (select rental_id from payment
where amount > 10);
Curs 7 view uri
• View = interogare de tip select al carui rezultat este stocat in baza de
date si produce un set de rezultate.
• View ul este o tabela virtuala
• Exemplu:
• create view test_view asselect * from actor;
• Select * from test_view;
Views
• Utilitati:
• Memorarea in baza de date a unor rezultate care pot fi utilizate la alte interogari
• Prezentare informatii prefiltrate
• Pastarea structurii view urilor, indifierent de structura baei de date
• Definesc o structura de table fara a ocupa mult spatiu in baza de date.
• Poate fi refolosit
• Creste securitatea
• Denumiri de business
• Lista coloanelor unui view ramane fixa chiar daca structua tabelei se
modifica.
Inserare date in tabela prin view
• create table produse2 (nume varchar(50),tip int(50));
• insert into produse2 values ('produs', 2);
• select * from produse2;
• create view test_view2 as select * from produse2 where tip > 1;
• select * from test_view2;
• insert into test_view2 values('produs',1);
• insert into test_view2 values('produs',3);
Descriere view
• Describe view2;
• show tables;
• show full tables;
Variabile definite de client – user Variables
• Definitie: Nume atribuit unor date, permitandu ne sa memoram valori
pentru folosirea lor ulterioada
• Notatie: @numevariabila @a
• SET @test = ‘1’;
• Definirea unei variabile neinitializate anterior, va lua in considerare
valoarea null;
• Rezultatele vor ave avaloarea null
• Exemplu text
• Exemplu numar
• SET @t = 't1’;
• SET @s = CONCAT('select * FROM', @t);
• PREPARE stmt3 FROM @s;
• EXECUTE stmt3;
Proceduri si Functii, Trigger, Event