vineri, 20 februarie 2015

23-27.02

 ACTIVITATE DE PREDARE-INVATARE-35 min

Suport de curs<<descarca>>

MODIFICAREA INREGISTRARILOR 
comanda UPDATE

Pentru modificarea continutului uneia sau a mai multor coloane dintr-o inregistrare existenta este  folosita instructiunea UPDATE, cu urmatoarea sintaxa: 

UPDATE [LOW_PRIORITY] nume_tabel

SET actualizare

[WHERE conditie] [LIMIT randuri]

unde:

  • nume_tabel: numele tabelului ale carui inregistrari urmeaza a fi actualizate;
  • actualizare: indica modificarile ce trebuie operate, prezentandu-se sub forma de perechi coloana – valoare (col1 = ’val_noua_1’, col2 = ’val_noua_2’);
  • conditie: indica conditia ce trebuie indeplinita pentru ca modificarile sa se rasfranga asupra anumitor inregistrari; in cazul in care lipseste, modificarile vor afecta intregul tabel.
Clauza LIMIT specifica numarul maxim de inregistrari care vor fi actualizate. 
Clauza LOW_PRIORITY amana executia instructiunii UPDATE pana cand nici un utilizator nu mai citeste din tabelul care trebuie actualizat.
Clauza WHERE este optionala, fiind folosita pentru a crea instructiuni UPDATE conditionale. Este similara cu folosirea clauzei WHERE in cadrul instructiunilor SELECT, putandu-se folosi toti operatorii de comparatie si cei logici, cum ar fi: =, >, <, OR si AND


!!! Omiterea clauzei WHERE duce la actualizarea tuturor înregistrărilor din tabelă

Exemple:
UPDATE suppliers SET zip = ‘99999’ WHERE zip = ‘95460’
UPDATE coffees SET price = 9.99 WHERE price<=5.0

ACTIVITATE FIXARE CUNOSTINTE-15 min


Exemple:

1) Să se modifice câmpul NRSAL din tabela SALARIAŢI, pentru depozitul cu codul 130000, atribuindu-i valoarea 11.

SQL> UPDATE SALARIAŢI SET NRSAL=11 WHERE CODD= 130000;

1 record updated.

2) Să se modifice data de livrare, cantitatea solicitată şi preţul de livrare pentru produsul cu codul 13333 din comanda cu numărul 211111.

SQL> UPDATE COMENZI SET DATAL=SYSDATE,CANT=50, PRET=42000 WHERE CODP=13333 AND NRCOM=211111;
1 record updated.
3) Să se modifice data de livrare cu data actuală pentru toate produsele cu codul egal cu 13333, din toate comenzile.
SQL> UPDATE COMENZI SET DATAL=SYSDATE WHERE CODP=13333;
1 record updated.
4) Să se mărească salariul cu 15% pentru salariaţii care au o funcţie identică cu CARMEN ANA.
SQL> UPDATE SALARIAŢI SET SALA=SALA*1.15 WHERE FUNCT IN (SELECT FUNCT FROM SALARIAŢI WHERE NUME='CARMEN ANA');
11 records updated.
 

joi, 19 februarie 2015

marți, 17 februarie 2015

16-20.02

 Suport de curs:  
- pentru orele de curs: manual
- pentru performanta scolara:

Baze de date si MySQL - Suport de curs

Simulator SQL: http://sqlfiddle.com/

Interogari MYSQL

Proprietatea SELECT poate fi utilizata intr-o comanda mysql_query pentru a alege anumite informatii din tabelul bazei de date.

 Sintaxa pentru preluarea datelor din tabelul bazei de date este: 
SELECT  expresii si coloane FROM nume tabela
  [WHERE conditie][ORDER BY lista coloane expresii] [ASC/DESC]]

Exemple:
SELECT * FROM tabel; afiseaza tot continutul tabelului
SELECT camp1 FROM tabel; afiseaza continutul campului 1
SELECT camp1, camp2 FROM tabel afiseaza continutul campului 1 si campului 2
SELECT * FROM tabel WHERE camp1 = 'valoare1'; afiseaza toate randurile din camp1 a caror valoare este "valoare1"
SELECT camp1, camp2 FROM tabel WHERE camp2 LIKE 'valoare2'; afiseaza continutul campului 1 si campului 2 acolo unde campul 2 este asemanator cu "valoare2"
SELECT * FROM tabel WHERE camp2 LIKE 'valoare2%'; afiseaza toate inregistrarile acolo unde campul 2 incepe cu "valoare2"
SELECT * FROM tabel WHERE camp2 LIKE '%valoare2'; afiseaza toate inregistrarile acolo unde campul 2 se termina cu "valoare2"
SELECT * FROM tabel WHERE campul2 LIKE '%valoare2%'; afiseaza toate inregistrarile acolo unde campul 2 se aseamana cu "valoare2" oriunde in text
SELECT * FROM tabel WHERE camp1=valoare1 AND camp2 LIKE '%valoare2%'; afiseaza inregistrarile acolo unde campul 1 este egal cu "valoare1" si campul 2 este asemanator cu "valoare2"
SELECT camp1, camp2 FROM tabel WHERE camp1 != valoare3; afiseaza camp 1 si camp 2 acolo unde camp 1 este diferit de "valoare3"
SELECT * FROM tabel WHERE camp3 NOT LIKE 'valoarea3%'; afiseaza toate inregistrarile acolo unde campul 3 nu incepe cu "valoare3"
SELECT camp2 FROM tabel ORDER BY camp2 ASC; afiseaza campul 2 in ordine crescatoare
SELECT camp1, camp2 FROM tabel ORDER BY camp1 ASC, camp2 DESC; afiseaza continutul campului 1 in ordine crescatoare si continutul campului 2 in ordine descrescatoare
SELECT count(*) FROM tabel;afiseaza cate inregistrari sunt in total in tabel
SELECT count (*) FROM tabel WHERE camp1=valoare1; afiseaza cate inregistrari sunt in tabel al caror camp 1 este "valoare1"
SELECT SUM(coloana1) FROM tabel; afiseaza suma elementelor din campul"coloana1" din tabelul "tabel"
SELECT AVG(coloana1) FROM tabel; afiseaza media aritmetica a elementelor din campul"coloana1" din tabelul "tabel"
SELECT CONCAT(coloana1, coloana2) FROM TABEL; afiseaza valorile coloanei 1 si coloanei 2 concatenate
SELECT LENGTH(coloana1) FROM tabel; afiseaza cate caractere contine fiecare valoare din coloana 1
SELECT MAX(camp1) FROM tabel; afiseaza numarul cel mai mare din coloana "camp1"
SELECT MIN(camp1) FROM tabel; afiseaza numarul cel mai mic din coloana "camp1"
SELECT * FROM tabel LIMIT 0,5; afiseaza primele 6 inregistrari din tabel(0 = prima inregistrare, 1 = a doua etc)
SELECT * FROM tabel LIMIT 6,4; afiseaza incepand de la inregistrarea 6, inca 4


 SARCINA DE LUCRU:
1. Fie relaţia (tabelul) Angajat cu următoarele atribute: NumeAngajat, PrenumeAngajat, DataNasterii, CNP, Adresă, DataAngajarii, Functie. 
Executarea comenzii:
SELECT NumeAngajat, PrenumeAngajat, Funcţia
FROM Angajat
WHERE Salariu = 1000;
are drept rezultat?
2. Dată fiind relaţia Angajat cu atributele: Nume, Prenume, Funcţie, Salariu. Comanda:
SELECT Nume, Prenume, Funcţia

FROM Angajat

ORDER BY Nume  ASC;

Are drept rezultat listarea tuturor angajaţilor cu toate atributele existente în relaţia Angajat ordonaţi alfabetic după nume.


Adevărat

Fals


3. Identificaţi corespondenţele corecte care se pot stabili între elementele coloanei A şi cele ale coloanei B.

Coloana A
Coloana B
  1. Reguli de integritate
  2. Cheia primară
  3. Supercheie
  4. Domeniul

  1. Este obligatorie şi este unică
  2. Integritatea entităţilor, integritatea referenţială
  3. Numărul de rânduri ale unei relaţii.
  4. Poate conţine şi atribute care nusunt necesare pentru identificarea unică.
  5. Mulţime de valori permisă pentru unul sau mai multe atribute.