Sunteți pe pagina 1din 4

SQL Structured Query Language limbaj standard pentru comunicarea cu baze de date

Pe scurt, ce vom inva astzi:


CREATE Creaz baze de date i
tabele
INSERT Adaug nregistrri
SELECT Afieaz inregistrri

CREATE crearea bazei de date i a relaiilor


Pai de urmat:

Verificm ce baze de date exist pe server:


SHOW DATABASES;
Setm o baza de date, din cele existente, ca fiind cea curent:
USE nume_bd;
Verificm ce relaii conine baza de date selectat mai sus:
SHOW TABLES;
Observaie O alta utilizare a lui SHOW este cea care afiseaza informatii despre coloanele

unui tabel (relaie)


SHOW COLUMNS FROM nume_tabel;
Crem o nou baz de date:
CREATE DATABASE nume_noua_bd;
Ce pas credei c urmeaz?
USE nume_noua_bd;
Aplicaie S se creeze baza de date SECRETARIAT

Dup ce am creat baza de date, se poate trece la crearea tabelelor (relaiilor) de care avem
nevoie:
CREATE TABLE nume_tabel
(nume_camp1 tip_camp1 descriere_camp1,
nume_camp2 tip_camp2 descriere_camp2,etc.);
Aplicaie S se creeze relaia STUDENTI cu urmtoarele campuri (id_student, nume,

prenume,taxa);

Tipuri de date cu care lucrm in MySQL:


Numeric

tip

Bytes

TINYINT
SMALLINT
MEDIUMINT
INT

1
2
3
4

Data/Timp

Sir de
caractere

BIGINT
FLOAT
DOUBLE
tip

DATETIME
DATE
TIMESTAMP
TIME
YEAR
tip

YYYY-MM-DD hh:mm:ss
YYYY-MM-DD
YYYYMMDDhhmmss
hh:mm:ss
YYYY
bytes

BLOB (TINY,MEDIUM, LONG)


TEXT (TINY, MEDIUM)
CHAR
VARCHAR
ENUM
SET

65535 (255,16777215,4294967295)
65535 (255,16777215)

Format coloana

Observaie La cutarea ntr-un cmp de tip BLOB se face diferena ntre majuscule i

minuscule, pe cnd la cea ntr-un camp tip TEXT, nu.


INSERT adugare de nregistrri
Adugarea de nregistrri ntr-o relaie se face folosind una din comenzile:
INSERT INTO nume_tabel
(nume_camp1, nume_camp2, ..)
VALUES (valoare1, valoare2, ..);
INSERT INTO nume_tabel
VALUES (valoare1, valoare2, ..);
Observaie Aceasta ultim comand trebuie s conin valori pentru toate cmpurile

tabelului; dac se dorete ca un cmp s nu fie completat, n dreptul valorii respective se vor
pune ghilimele sau \N

SELECT afiarea nregistrrilor


Cum afim nregistrrile coninute n tabel?
SELECT * FROM nume_tabel;
Aplicaie Afiai toate intregistrrile din tabelul STUDENTI

Dac dorim s afim doar anumite cmpuri din tabel, comanda va arta astfel:
SELECT nume_camp1, nume_camp2,.. FROM nume_tabel;
Aplicaie Afisai numele i prenumele studenilor intregistrai

Dac vrem s afim ntregistrrile care ndeplinesc anumite condiii se folosete clauza de
filtrare WHERE:
SELECT * FROM nume_tabel WHERE conditie;

Aplicaie Afisai studenii nscrii la regimul cu tax

n expresia din condiie pot aprea urmtorii operatori cu precedena (P):


(P1) =, !=, <>, >, >=, <, <=
(P1) LIKE

permite specificarea unui anumit model de ir de caractere cu care


trebuie s se potriveasc valoarea testata;

acest operator se folosete atunci cnd nu se tie exact care este


valoarea care trebuie cutata;

pentru cutare se folosesc 2 simboluri:


% inlocuiete orice secven de zero sau mai multe caractere
_ semnific orice caracter care apare o singur data

(P1) BETWEEN ..AND.. permite specificarea unui domeniu mrginit de


dou valori
(P1) IN permite specificarea unei liste de valori
(P1) IS NULL testeaza dac o valoare este sau nu NULL
(P2) NOT
(P3) AND
(P4) OR

Aplicaie S se creeze relaia CURSURI cu urmtoarele atribute (id_curs, nume_prof,

nume_curs, an, semestru, tip, credite). S se afieze:


o
o
o
o
o

toate cursurile de baze de date;


numele cursurilor cu 5 credite si profesorii corespunztori;
cursurile de pe semestrul 3 i care au ntre 5 i 9 credite;
cursurile care nu au cmpul credite completat;
numele profesorilor care susin cursuri facultative i opionale (F, O).

Dac vrem s afim ntregistrrile ordonate, se folosete clauza de sortare ORDER BY:
SELECT * FROM nume_tabel ORDER BY
nume_camp1 ASC/DESC,
nume_camp2 ASC/DESC,..;
Observaii

ntregistrrile sunt sortate implicit n ordine ascendent ;


valoarea Null este considerat cea mai mare (apare pe ultima poziie la ASC
i pe prima la DESC);
Aplicaie S se afieze studenii fr in ordine alfaberica

Dac vrem s afim ntregistrrile fr a vedea duplicatele se folosete clauza GROUP BY:
SELECT * FROM nume_tabel
GROUP BY nume_camp;
Aplicaie S se afieze alfabetic cursurile existente fr a se repeta.

Limitarea numrului de rezultate afiate se face folosind clauza LIMIT


SELECT * FROM nume_tabel LIMIT val1, val2;
unde: val1 nregistrarea de la care se pornete afiarea
val2 - numrul de nregistrari care vor fi afiate
Aplicaie S se afiseze primele 10 inregistrri din tabela STUDENTI

Aplicatii server:
1.WampSERVER
2.XAMPP
3.EasyPHP
Aplicatii client ftp:
WINSCP
Editor:
-notepad++
-nusphere PhpED
CREATE DATABASE nume_student;
USE nume_student;
CREATE TABLE studenti(id_student int(3), nume char(10), prenume char(10), taxa
char(2));
INSERT INTO studenti (id_student,nume,prenume,taxa) VALUES
(1,"Vasile","Gheorghe","Da");
INSERT INTO studenti VALUES (2,"Vasea","Ion","Da");
INSERT INTO studenti VALUES (10,"Vicu","Nicu","Da"),(1,"Vasea","Ion","Da");
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT
SELECT

* FROM studenti;
nume, prenume FROM studenti;
CONCAT(prenume,' ',nume) FROM studenti;
nume, prenume FROM studenti WHERE taxa="Da";
nume, prenume FROM studenti WHERE prenume LIKE "I%";
* FROM studenti WHERE id_student BETWEEN 2 AND 4;
* FROM studenti WHERE id_student>=2 AND id_student<=4;

CREATE TABLE stud (id int(3) NOT NULL AUTO_INCREMENT,nume varchar(20) NOT NULL
,prenume varchar(40) NOT NULL , varsta int(3) DEFAULT 18, PRIMARY KEY (id));
SELECT nume, prenume, varsta+10 FROM stud;

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