SQL Structured Query Language - limbaj standard pentru comunicarea cu baze de date
Pe scurt, ce vom invata astazi: |
|
CREATE |
Creaza baze de date si tabele |
INSE 515p157f RT |
Adauga înregistrari |
SE 515p157f LECT |
Afiseaza inregistrari |
CREATE - crearea bazei de date si a relatiilor
Pasi de urmat:
Verificam ce baze de date exista pe server:
SHOW DATABASE 515p157f S;
Setam o baza de date, din cele existente, ca fiind cea curenta:
USE 515p157f nume_bd;
Verificam ce relatii contine baza de date selectata mai sus:
SHOW TABLES;
Observatie O alta utilizare a lui SHOW este cea care afiseaza informatii despre coloanele unui tabel (relatie)
SHOW COLUMNS;
Cream o noua baza de date:
CREATE DATABASE 515p157f nume_noua_bd;
Ce pas credeti ca urmeaza?
USE 515p157f nume_noua_bd;
Aplicatie Sa se creeze baza de date SE 515p157f CRETARIAT
Dupa ce am creat baza de date, se poate trece la crearea tabelelor (relatiilor) de care avem nevoie:
CREATE TABLE nume_tabel
(nume_camp1 tip_camp1 descriere_camp1,
nume_camp2 tip_camp2 descriere_camp2,etc.);
Aplicatie Sa se creeze relatia STUDENTI cu urmatoarele campuri (id_student, nume, prenume,taxa);
Tipuri de date cu care lucram in MySQL: |
||
Numeric |
tip |
Bytes |
TINYINT SMALLINT MEDIUMINT INT BIGINT FLOAT DOUBLE | ||
Data/Timp |
tip |
Format coloana |
DATETIME DATE TIMESTAMP TIME YEAR |
'YYYY-MM-DD hh:mm:ss' 'YYYY-MM-DD' YYYYMMDDhhmmss 'hh:mm:ss' YYYY |
|
Sir de caractere |
tip |
bytes |
BLOB (TINY,MEDIUM, LONG) TEXT (TINY, MEDIUM) CHAR VARCHAR ENUM SE 515p157f T |
65535 (255,16777215) |
Observatie La cautarea într-un câmp de tip BLOB se face diferenta între majuscule si minuscule, pe când la cea într-un camp tip TEXT, nu.
INSE 515p157f RT - adaugare de înregistrari
Adaugarea de înregistrari într-o relatie se face folosind una din comenzile:
INSE 515p157f RT INTO nume_tabel
(nume_camp1, nume_camp2, ..)
VALUES (valoare1, valoare2, ..);
INSE 515p157f RT INTO nume_tabel
VALUES (valoare1, valoare2, ..);
Observatie Aceasta ultima comanda trebuie sa contina valori pentru toate câmpurile tabelului; daca se doreste ca un câmp sa nu fie completat, în dreptul valorii respective se vor pune ghilimele sau \N
SE 515p157f LECT - afisarea înregistrarilor
Cum afisam înregistrarile continute în tabel?
SE 515p157f LECT * FROM nume_tabel;
Aplicatie Afisati toate intregistrarile din tabelul STUDENTI
Daca dorim sa afisam doar anumite câmpuri din tabel, comanda va arata astfel:
SE 515p157f LECT nume_camp1, nume_camp2,.. FROM nume_tabel;
Aplicatie Afisati numele si prenumele studentilor intregistrati
Daca vrem sa afisam întregistrarile care îndeplinesc anumite conditii se foloseste clauza de filtrare WHERE:
SE 515p157f LECT * FROM nume_tabel WHERE conditie;
Aplicatie Afisati studentii înscrisi la regimul cu taxa
În expresia din conditie pot aparea urmatorii operatori cu precedenta (P):
(P1) =, !=, <>, >, >=, <, <=
(P1) LIKE
permite specificarea unui anumit model de sir de caractere cu care trebuie sa se potriveasca valoarea testata;
acest operator se foloseste atunci când nu se stie exact care este valoarea care trebuie cautata;
pentru cautare se folosesc 2 simboluri:
inlocuieste orice secventa de zero sau mai multe caractere
semnifica orice caracter care apare o singura data
(P1) BETWEEN ..AND..- permite specificarea unui domeniu marginit de doua valori
(P1) IN- permite specificarea unei liste de valori
(P1) IS NULL- testeaza daca o valoare este sau nu NULL
(P2) NOT
(P3) AND
(P4) OR
Aplicatie Sa se creeze relatia CURSURI cu urmatoarele atribute (id_curs, nume_prof, nume_curs, an, semestru, tip, credite). Sa se afiseze:
o toate cursurile de baze de date;
o numele cursurilor cu 5 credite si profesorii corespunzatori;
o cursurile de pe semestrul 3 si care au între 5 si 9 credite;
o cursurile care nu au câmpul credite completat;
o numele profesorilor care sustin cursuri facultative si optionale (F, O).
Daca vrem sa afisam întregistrarile ordonate, se foloseste clauza de sortare ORDER BY:
SE 515p157f LECT * FROM nume_tabel ORDER BY
nume_camp1 ASC/DESC,
nume_camp2 ASC/DESC,..;
Observatii
întregistrarile sunt sortate implicit în ordine ascendenta ;
valoarea Null este considerata cea mai mare (apare pe ultima pozitie la ASC si pe prima la DESC);
Aplicatie Sa se afiseze studentii fara in ordine alfaberica
Daca vrem sa afisam întregistrarile fara a vedea duplicatele se foloseste clauza GROUP BY:
SE 515p157f LECT * FROM nume_tabel
GROUP BY nume_camp;
Aplicatie Sa se afiseze alfabetic cursurile existente fara a se repeta.
Limitarea numarului de rezultate afisate se face folosind clauza LIMIT
SE 515p157f LECT * FROM nume_tabel LIMIT val1, val2;
unde: val1 - înregistrarea de la care se porneste afisarea
val2 - numarul de înregistrari care vor fi afisate
Aplicatie Sa se afiseze primele 10 inregistrari din tabela STUDENTI
|