Sunteți pe pagina 1din 35

MySQL

Introducere
Database Management System
SELECT * FROM
produse WHERE
name LIKE Peren%

Database
Client Manager

Interfata Controleaza accesul Database: o colectie


utilizator & la o baza de date structurata de date
protocol de • autentificare
comunicare • impune restrictii
•servicii de acces
Client - Server Databases
 Database Server este un proces separat pe un
server.
 Clientul poate fi orice calculator.
 Multe programe pot fi clienti folosind standard API.
"mysql" utility
Server
mysqld

Java App
+JDBC client
Serverul
controleaza
Excel client
accesul la baza
de date
Client side Server side
Client - Server Databases
SERVER
Motor de baze de date Pentru a crea serverul se
(Database Engine) => instaleaza o aplicatie =
= operatii cu tabele MySQL server
= executa interogarile
= controleaza drepturile
MySQL Workbench:
de acces
aplicatie client care
Neavand interfata
administreaza server-ul
utilizator avem nevoie de
de baza de date si
o aplicatie de administrare
bazele de date create
a bazelor de data

MySQL = aplicatie de gestiune a bazelor de date

Datele: Exemple de alte aplicatii de tip client: PhP MyAdmin,


structurate in Moodle
tabele
Structura unei baze de date
Schema descrie organizarea bazei de
Database date.
Schema contine:
tables – contin datele
Schema Schema
index files – structuri interne ale bazei
de date pentru optimizarea cautarilor in
Table Table tabele. Pe fiecare tabela se poate defini
Table Table
field1: t1 field1: t1 field1: t1 field1: t1 un index (un camp) sau mai multe
field2: t2 field2: t2 field2: t2 field2: t2 (campuri)
field3: t3 field3: t3 field3: t3 field3: t3
stored procedures- mai multe comenzi
SQL care definesc o actiune curenta. In
loc sa editezi de fiecare data apelezi o
indexes indexes indexes indexes astfel procedura scrisa anterior. Poate
sa returneze un select sau nimic
functions- returneaza un scalar (numar
sau sir de caractere)
triggers - contin instructiuni SQL
Client Software
MySQL Workbench – soft de tip client pentru administarea si
interogarea datelor din cadrul unei baze de date MySQL
Stabilirea conexiunii cu baza de date MySQL
1. Se deschide aplicatia MySQL Workbench
2. Se stabileste conexiunea master_gnda cu serverul

3. Se introduce parola: master_mtc


Client Software

4. Se actioneaza butonul OK.


Introducerea datelor intr-o baza de date

Dupa stabilirea conexiunii se vor introduce datele aferente


bazei de date. Datele vor fi stocate in tabele
Continutul unui tabel
Datele sunt continute in tabel in inregistrari (linii)

O intregistare este compusa din campuri (coloane)


Fiecare inregistrare contine un sir de valori corespunzatoare
datelor
Crearea tabelelor

 Obs. Un tabel contine o cheie primara (primary


key) care identifica in mod unic fiecare
inregistrare a tabelului

 Fiecare inregistrare trebuie sa aiba o valoare


distincta pentru cheia primara

 Cheia primara este utilizata pentru stabilirea


relatiilor (join) intre tabele
Exemplu
Crearea unui baze de date pentru un magazin online
care vinde produse pentru gradina
Tabela produse va contine coloanele
ID tip Integer, cheie primara
Nume, tip String, max 25 caractere
Descriere, tip String, max 100 caractere
Pretul, tip Decimal number cu maxim 5
cifre cu 2 zecimale
Tabela produse
Disponibil, tip Integer (nr de unitati din
produs aflate in stoc)
Tipul, tip Integer (tipul plantei:
anuala,bianuala,perena)
Etape creare tabel:
1. Se deschide aplicatia MySQL Workbench
2. Se stabileste conexiunea master_gnda cu serverul
3. Se introduce parola:
4. Se seteaza schema master_gnda schema activa
5. In caz ca nu exista schema de la pasul 4, se va crea
schema respectiva care va include tabelele efecuand
clic pe butonul Create New schema din toolbar
Crearea tabelei produse
6. Se introduce numele schemei
7. Se selecteaza optiunea Apply
8. In sectiunea Navigator, se efectueaza clic dreapta
pe numele schemei si se alege Set as Default Schema
9. Se creaza un tabel nou in cadrul schemei efectuand
clic pe butonul Create a new table in the active schema

sau se efectueaza clic dreapta pe Tables in tab-ul


Navigation si se alege Create Table
10. In sectiunea Table Name se introduce numele
tabelului: produse
11. In sectiunea Column Name se introduc numele
coloanelor tabelului si in sectiunea Datatype tipul
acestora
Crearea tabelei produse
12. Se selecteaza butonul Apply pentru a
crea tabelul
13. Apply (Apply SQL Script to Database)
14. Finish
Datatype- tipuri de date aferente campurilor unui
tabel
1. Date de tip numeric
 Tipul INT: - număr întreg, pozitiv, inclus în intervalul [0;
4.294.967.295] sau număr întreg din intervalul [-
2.147.483.648, 2.147.483.647].

 Tipul TINYINT – număr înreg din intervalul [-128,127]

 Tipul DECIMAL(length, decimals) - nr. care conţine şi cifre


zecimale.

De exemplu sintaxa DECIMAL(5,2) – permite afişarea unor


valori până la 999.99
Datatype- tipuri de date aferente campurilor unui
tabel
2. Date de tip şir de caractere (tipul String):
VARCHAR(length) – variabilă de tip şir de caractere care are
maxim 255 caractere; optiunea length specifica lungimea
maxima a şirului de caractere introdus intr-un anumit camp

Tipul CHAR(length) – variabilă de tip şir de caractere care


conţine maxim 255 caractere; lungimea şirului de caractere este
specificată în optiunea length. Dacă lungimea şirului de
caractere este diferită de valoarea specificată în length, atunci se
completează automat cu spaţii goale.

Tipul LONGTEXT – variabilă de tip şir de caractere care conţine


maxim 4.294.967.295 caractere
Datatype- tipuri de date aferente campurilor unui
tabel
3. Date de tip dată şi timp
Tipul DATE: - stochează data în formatul „YYYY-MM-DD”.
Domeniul de valori este cuprins în intervalul „1000-01-01” ;
„9999-12-31”.

Tipul TIME – variabilă de tipul HH:MM:SS

Tipul YEAR: - o reprezentare de patru cifre aferentă anului,


cuprinsă în intervalul „1901”, „2155”
Optiuni corespunzatoare tipurilor de date
1. PK (Primary Key) identifica in mod unic fiecare inregistrare
2. NN (Not Null) cere ca fiecare celula din coloana de acest tip sa aiba
obligatoriu o valoare
3. UQ (Unique index) valoarea dintr-o coloana declarata de acest tip
nu poate sa fie identica pentru doua inregistrari diferite
4. UN (Unsigned) se pot introduce in campul respectiv doar valori
pozitive
5. ZF (Zero fill) pentru tipul INT(10) optiunea ZF determina o afisare
de forma “0000000025”
6. AI (Auto incremental) daca aceasta optiune se aplica unor date de
tip numeric, atunci valorile din acest tip de camp se vor incrementa
automat cu 1 la fiecare inregistrare adaugata
Popularea tabelei produse
Adaugarea datelor in cadrul unui tabel

In sectiunea Navigator din fereastra MySQL Workbench se


efectueza clic dreapta pe numele tabelei (produse) si se
alege optiunea Edit Table Data sau Select Rows -> se
deschide un tabel gol in celulele caruia se introduc datele

Navigarea intre celulele tabelului se face cu tasta TAB


Obs. In coloana ID se vor incrementa automat valorile

Dupa finalizarea introducerii datelor se activeaza optiunea


Apply
Efectuarea unor modificari in cadrul unui tabel salvat

1. In sectiunea Navigator se efectueaza clic dreapta pe


numele tabelului, produse
2. Din meniul contextual afisat se alege optiunea Alter
Table
3. In fereastra deschisa se opereaza modificarile dorite:
numele tabelului, numele campurilor tabelului, tipul
acestor campuri
4. Se salveaza modificarile facute folosind succesiunea
de comenzi: Apply/Apply/Finish.
Stergerea unui tabel din cadrul unei scheme

1. In sectiunea Navigator se efectueaza clic dreapta pe


numele tabelului, produse
2. Din meniul contextual afisat se alege optiunea Drop
Table
3. Se alege optiunea Drop Now din fereastra deschisa
sau se anuleaza cu Cancel
Operatii care se pot efectua asupra tabelei
produse

Obs. Dupa introducerea inregistrarilor in cadrul unui tabel


vom afisa si vom modifica date din interiorul bazei de date cu
ajutorul limbajului SQL
Introducere in SQL
 SQL (Structured Query Language) – limbaj de
programare pentru interogarea si manipularea datelor
incluse in baze de date relationale
 Facilitatile limbajului SQL:
 - afisarea unor date specifice (interogari)
 - crearea sau stergerea unor tabele
 -adaugarea, actualizarea sau stergerea inregistrarilor
din cadrul unui tabel
Comenzi SQL
Nume comanda Descriere
SELECT Afiseaza o lista de inregistrari dintr-
un tabel sau din mai multe tabele
INSERT Adauga o noua inregistrare intr-un
tabel
UPDATE Modifica datele existente intr-o
inregistrare
DELETE Sterge una sau mai multe inregistrari
dintr-un tabel
GRANT Acorda accesul unui utilizator la o
baza de date
Sintaxa SQL

 - comenzile se introduc interactiv intr-un fisier script


 - fiecare comanda se termina cu caracterul “;”
 - SQL este “case-insensitive”, codul poate fi scris cu litere
mari sau cu litere mici sau cu o combinatie a acestora
 Se recomanda scrierea codului SQL cu litere mari pentru
a distinge usor codul SQL de numele tabelelor
 Tabelele si numele coloanelor sunt “case-sensitive”,
adica daca referim tabelul produse cu numele Produse
sau PRoduse sau PRODUSE, MySQL va returna o
eroare care ne informeaza ca nu poate gasi tabelul
produse
Sintaxa SQL
 Sintaxa SELECT
SELECT <columns> FROM <table>;
Ex1: Afisati intr-o interogare toate coloanele tabelului
produse.
Pas1: Meniul File/New Query Tab sau CTRL+T sau
butunul Create a new SQL tab for executing queries

Aceasta comanda deschide editorul SQL


Pas2: In fereastra SQL File 1* se scrie codul SQL
SELECT * FROM produse;

(caracterul * se refera la toate coloanele tabelului


Sintaxa SQL
Pas3: Se executa scriptul folosind butonul Execute sau
meniul Query/Execute

In sectiunea Output se afiseaza statusul interogarii:


daca s-a efectual cu succes, durata executiei, nr de
inregistrari gasite sau eroare
Pas4: Salvarea scriptului corespunzator interogarii
Butonul Save din fereastra de editare SQL

sau meniul File/Save Script As


Obs: Un script salvat poate fi deschis ulterior cu optiunea
Open a script
sau meniul File/Open SQL Script
Sintaxa SQL
Ex2: Selectia unor coloane specificate din cadrul unui
tabel (coloanele ID, Nume si Descriere din tabelul
produse)
SELECT ID, Nume, Descriere FROM produse;
Clauza WHERE
 Se foloseste in cazul in care dorim sa obtinem
informatii din mai multe inregistrari ale unui tabel
 Clauza WHERE returneaza inregistrarile care
respecta anumite criterii
Sintaxa comenzii SELECT cu clauza WHERE
SELECT <columns> FROM <table> WHERE
<conditions>;
Ex3: Returnati prima inregistrare din tabelul produse.
SELECT * FROM produse WHERE ID=1;
Obs: Simbolul “=“ reprezinta un operator de comparatie
si determina afisarea inregistrarilor a care se potrivesc
exact cu valoarea specificata dupa semnul “=“
Operatori ai clauzei WHERE
Operator Descriere

= (egal) Returneaza inregistrarile care se potrivesc exact cu o valoare


data relativ la un camp specificat
SELECT * FROM produse WHERE ID=1;
!=(diferit) Returneaza inregistrarile diferite de o valoare specificata
relativ la un anumit camp
SELECT * FROM produse WHERE Disponibil !=0;
>(mai mare) Returneaza inregistrarile pentru care valoarea unui camp dat
este mai mare decat o valoare specificata
SELECT * FROM produse WHERE ID>5;
>=(mai mare SELECT * FROM produse WHERE ID>=5;
sau egal)
<(mai mic) Returneaza inregistrarile pentru care valoarea unui camp dat
este mai mica decat o valoare specificata
SELECT * FROM produse WHERE ID<8;
Operatori ai clauzei WHERE
Operator Descriere
<=(mai mic sau egal) SELECT * FROM produse WHERE ID<=8;
BETWEEN…AND… Returneaza inregistrarile pentru care valoarea unui
camp este cuprinsa intr-un intervalul specificat intre
BETWEEN si AND
SELECT * FROM produse WHERE ID BETWEEN 4
AND 11
LIKE Returneaza inregistrarile pentru care valoarea unui
camp specificat se respecta un sablon (pattern) dat
Simboluri folosite pentru specificarea unui sablon:
%(procentul) - inlocuieste un sir de caractere, marcheaza inclusiv lipsa
caracterelor
_(liniuta de subliniere)- inlocuieste un singur caracter
Ex4: Afisati inregistrarile care includ plante perene.
SELECT * FROM produse WHERE Descriere LIKE ‘%peren%’;
Obs: Un sir de caractere folosit ca si argument al unui operator se introduce
folosind caracterul apostrof ‘
Clauza WHERE
Ex5: Afisati toate inregistarile care include informatii
despre capsuni.
SELECT * FROM produse WHERE Nume LIKE
‘%capsuni%’;
Ex6: Afisati toate produsele ambalate care au greutatea
cel putin 100g, dar nu mai mult de 999g.
SELECT * FROM produse WHERE Descriere LIKE
'%___g%'; (s-a folosit caracterul ”_” de trei ori consecutiv
pentru a specifica un nr de 3 cifre)
Conditii multiple specificate in clauza WHERE

In interiorul caluzei WHERE putem introduce mai multe


conditii prin intermediul operatorilor AND si OR
AND determina indeplinirea simultana a unor conditii
Sintaxa:
SELECT <columns> FROM <table> WHERE <condition>
AND <condition>;
Ex6: Afisati toate produsele disponibile in tabelul produse
care au pretul mai mic egal decat 35 ron.
SELECT * FROM produse WHERE Disponibil!=0 AND
Pret<=35;
Conditii multiple specificate in clauza WHERE

OR permite specificarea a cel putin doua conditii si


determina afisarea inregistrarilor chiar daca numai o
singura conditie este indeplinita
Sintaxa:
SELECT <columns> FROM <table> WHERE
<conditions> OR <condition>;
Ex7: Afisati informatii despre capsuni sau rosii.
SELECT * FROM produse WHERE Nume LIKE
‘%capsuni%’ OR Nume LIKE ‘%rosii%’;
Obs: Se pot combina operatorii AND si OR in cadrul unei
interogari.
Conditii multiple specificate in clauza WHERE

Ex8: Afisati toate produsele disponibile (care exista pe


stoc) si contin informatii despre capsuni sau rosii.
SELECT * FROM produse WHERE Nume LIKE
‘%capsuni%’ OR Nume LIKE ‘%rosii%’ AND Disponibil
!=0;
Ex9: Afisati toate inregistrarile relative la produse cu
pretul in intervalul [20.5;80.5]
Ex10: Afisati toate plantele de tip arbust.
Ex11: Afisati toate tipurile de seminte disponibile.
Ex12: Afisati toate tipurile de fertilizatori.
Ex13: Afisati toate produsele care nu sunt plante.
Resources
MySQL
 http://dev.mysql.com/tech-resources/articles/
Learning SQL
 http://www.w3schools.com/sql/
nice tutorial and command reference

S-ar putea să vă placă și