LIMBAJUL SQL 5.1 Prezentare generală SQL
http://it-teacher-emanuela.blogspot.ro/2015/05/1105-1505-interogari.html
Suport de curs: Microsoft Access2007.pdf
Curs Access 2007.pdf
Multimedia - Exemple aplicatii: Access
Suport de curs: Microsoft Access2007.pdf
Curs Access 2007.pdf
Multimedia - Exemple aplicatii: Access
Sarcina de lucru:
1. Studiati urmatorul soft educational:
2. Alegeti subiectele tratate si aprofundati-le prin studiu.
3. Realizati o prezentare Power Point cu notiunile studiate.
4. Postati pe grup pana la data de
20.06.2016
- Interogarea de selectie
- Interogarea total
- Interogari actiune
1. Noţiuni generale
SQL (de la numele englez Structured Query Language - limbaj de interogare structurat - este un limbaj de programare specific pentru manipularea datelor în sistemele de manipulare a bazelor de date relaționale (RDBMS), iar la origine este un limbaj bazat pe algebra relațională.
Acesta are ca scop inserarea datelor, interogații, actualizare și ștergere, modificarea și crearea schemelor, precum și controlul accesului la date.
A devenit un standard în domeniu (standardizatANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale.
De exemplu, o instrucțiune SQL simplă care regăsește o listă cu numele de familie al persoanelor cu prenumele Maria poate arăta astfel:
2.Comenzi pentru definirea datelor
Bazele de date sunt folosite pentru stocarea informatiilor in vederea furnizarii ulterioare in functie de solicitarea primita.
Cele mai uzuale operatii cu bazele de date sunt:
Comanda CREATE DATABASE
Înaintea realizării ansamblului de tabelecare vor servi la păstrarea datelor, trebuie creatăo bază de date folosind comanda create database.
Exemplu : mysql> CREATE DATABASE proiect;
Comanda USE DATABASE
Pentru a lucra cu o bază de date, aceasta trebuie precizatăfolosind instrucţiunea use
Exemplu: mysql> USE DATABASE proiect
Comanda CREATE TABLE
După crearea bazei de date şi selectarea ei ca bază de date curentă se poate trece la crearea tabelelor (fişierelor) bazei.
Instrucţiunea create tableare sintaxa:
CREATE TABLE nume ( nume_coloana1 tip atribute, nume_coloana2 tip atribute, ..., primary key (nume_coloană), index nume_index(nume_coloană) )
|
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:
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?
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.
a. adevarat
b. fals
|
Rezolvati urmatoarele cerinte:
Dispuneţi de baza de date VANZARI cu tabelele CLIENTI(Codcl, Nume, Adresa, Zona), AGENTI(Codag, Nume, Salbaza, Zona) şi COMENZI(Nrcom, Data, Codcl, Codag, Valoare).
- Analizaţi atributele din fiecare tabel şi stabiliţi cheile primare corespunzătoare acestora.
- Definiţi legăturile dintre tabele şi aplicaţi restricţiile referenţiale.
- Să se afişeze pe ecran o listă a comenzilor din ziua de 9 mai 2010, în ordinea zonelor.
- Calculaţi totalul comenzilor pe zone.
- Dispuneţi de baza de date VANZARI. Să se realizeze un raport al comenzilor grupate după agentul care a preluat comanda (Nrcom, Data, Valoare).
- În antetul de grup se va afişa numele agentului, iar la sfârşitul grupului valoarea totală a comenzilor fiecărui agent