Documente Academic
Documente Profesional
Documente Cultură
2
Obiective
3
1. SQL – Structured Query Language
4
1. SQL – Structured Query Language(continuare)
5
2. Instrucțiuni DDL (Data Definition Language) – operații cu BD
1. Crearea de BD
CREATE DATABASE nume_BD;
sau
CREATE SCHEMA nume_BD;
6
2. Instrucțiuni DDL (Data Definition Language) – operații cu BD
2. Stabilirea BD curente
SELECT * FROM nume_BD.nume_tabel;
sau
USE nume_BD;
SELECT * FROM nume_tabel;
- toate referințele ulterioare la nume de tabele, dacă nu conțin numele bazei de date vor
fi considerate că aparțin acestei baze de date;
Exemplu:
SHOW TABLES; - va afișa tabelele bazei de date curente.
7
2. Instrucțiuni DDL (Data Definition Language) – operații cu BD
3. Lichidarea BD
DROP DATABASE IF EXISTS nume_BD; -- operație ireversibilă
sau
DROP SCHEMA IF EXISTS nume_BD;
4. Vizualizarea BD existente
SHOW DATABASES;
SHOW DATABASES LIKE m%;
8
2. Instrucțiuni DDL (Data Definition Language) – operații cu BD
9
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
10
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
11
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
3. Definiții de coloane
12
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
4. Clauza DEFAULT
- stabilită explicit
Ex: Culoare VARCHAR(50) NOT NULL DEFAULT 'roşu‘
- stabilita automat, de către server, atunci când în definiţia coloanei nu este prezentă
clauza DEFAULT. Dacă definiţia coloanei permite NULL, valoarea implicită va fi automat
NULL;
- absența - în modul non-strict, serverul va însera automat o valoare din oficiu pe acea
coloană, aleasă în funcţie de tipul de date al coloanei (coloanele de tip numeric vor primi
valoarea zero, cele de tip șir de caractere - şirul vid "", cele de tip ENUM prima valoare din
mulţimea de valori permise etc). În modul strict va fi generata o eroare.
13
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
5. Crearea de tabele
14
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
CREATE TABLE Lactate SELECT produs, U/M, pret FROM magazie WHERE
categorie='lactate‘
Poate extrage coloane și înregistrări din mai multe tabele, nu sunt copiaţi indecşii și alți
parametri ai tabelului. În toate situațiile este recomandabil să folosim clauza: IF NOT EXIST
15
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
SHOW TABLES;
SHOW TABLES FROM nume_BD;
SHOW TABLES FROM nume_BD LIKE '%agazi%';
16
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
Exista diferite instrucţiuni ce pot fi folosite pentru a determina structura și caracteristicile unui tabel:
SHOW TABLE - afişează informaţii despre tabelele din baza de date curentă. Cu clauza
suplimentara LIKE se pot filtra numele tabelelor listate.
SHOW CREATE TABLE nume_tabel. Afişează instrucţiunea exactă ce poate fi folosita pentru a
crea un tabel identic cu cea curentă.
17
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
18
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
9. Modificare de tabele
a) - Redenumire
ALTER TABLE nume_tabel RENAME nume_nou;
RENAME TABLE tab_1 TO tab_x [, tab_2 TO tab_y, ... ] ;
- permite mai multe redenumiri într-o singura instrucțiune;
b) - Schimbarea de caracteristici
ALTER TABLE nume_tabel ENGINE MyISAM;
c) - Stergerea de coloane
ALTER TABLE nume_tabel DROP COLUMN denumire;
19
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
Ex: ALTER TABLE student CHANGE email mail VARCHAR(200); - schimbă denumirea
20
3. Instrucțiuni DDL (Data Definition Language) – operații cu tabele
e) - Adăugare de coloane
21
5. Constrângeri de integritate
- specifică o coloană (o combinaţie de coloane) a cărei valoare (combinaţie de valori) trebuie să fie unică pentru
toate înregistrările din tabel):
UNIQUE [ ( camp1 [, camp2,…])
- specifică faptul că o coloană nu poate conţine o valoare NULL/ poate conține o valoare NULL:
NOT NULL / NULL
Exemplu:
CREATE TABLE Student (
contract INT NOT NULL,
nume VARCHAR(255) NOT NULL,
prenume VARCHAR(255),
ani INT,
UNIQUE (contract)
);
22
5. Constrângeri de integritate
- identifică unic fiecare înregistrare;
PRIMARY KEY [ ( camp1 [camp2,… ]) ] |
- stabileşte o legătură pe baza unei chei externe între o coloană din tabel şi o coloană din tabelul referit;
FOREIGN KEY (camp1 [camp2,.. ]) REFERENCES nume_tabel [(camp1[,camp2,…])
Exemplu:
CREATE TABLE evidenta_note (
id INT NOT NULL,
contract INT,
nota DECIMAL,
PRIMARY KEY (id),
FOREIGN KEY (contract) REFERENCES Student(contract)
);
23
5. Constrângeri de integritate
Exemplu:
CREATE TABLE Student (
contract INT NOT NULL,
nume VARCHAR(255) NOT NULL,
prenume VARCHAR(255),
ani INT,
CHECK (ani >= 18)
);
24
6. Exemplu BD: organizația de propiectare
departs –
departamente
employees –
angajați
projects – proiecte
job – participare în
proiecte
25
6. Exemplu BD: organizația de propiectare (continuare)
employees - angajați:
e_id - numărul personalului angajaților, cheia primară;
e_fname - numele complet al angajatului, câmpul obligatoriu;
e_lname - numele complet al angajatului, câmpul obligatoriu;
e_born - data nașterii angajatului, câmpul obligatoriu;
e_sex - sexul angajatului, domeniu obligatoriu;
e_pasp - seria și numărul pașaportului, un atribut obligatoriu unic;
e_date - data eliberării pașaportului, câmp obligatoriu;
e_given - pașaport emis de, câmp obligatoriu;
e_inn – numărul de identificare, câmp obligatoriu;
e_pens - CPAS, câmp obligatoriu;
e_depart - număr departament, câmp obligatoriu, cheie străină;
e_post – funcția angajatului;
e_room – numărul încăperii;
e_phone - telefoane angajați;
e_loghin - adresa angajatului;
26
6. Exemplu BD: organizația de propiectare (continuare)
Departs - departamente:
d_name - nume departament, cheia primară;
Proiect - proiecte:
p_abbr – abrevierea denumirii proiectului, cheia primară;
p_title - numele proiectului, câmpul obligatoriu;
p_company - client, câmp obligatoriu;
p_chief – persoan de contact
p_begin - data începerii proiectului, câmpul obligatoriu;
p_end - data finalizării proiectului, câmpul obligatoriu;
p_finish – data finală de facto;
p_cost - cost de proiect, câmp obligatoriu.
Job - participare la proiecte:
j_id – enumerarea înregistrărilor, cheia primară;
j_pro - nume scurt al proiectului, cheie străină;
j_emp - numărul angajatului participant la proiect, cheie străină;
j_rol - rolul angajatului în proiect; poate lua una dintre cele trei valori: 'executant', ‘manager', 'consultant'.
j_bonus – salariu.
27
6. Exemplu BD: organizația de propiectare (continuare)
28
6. Exemplu BD: organizația de propiectare (continuare)
29
6. Exemplu BD: organizația de propiectare (continuare)
30
7. Adăugarea datelor
Exemple:
-- Se adaugă o înregistrări în entitatea “departs”:
INSERT INTO departs(d_name)
VALUES ('Design exterior’);
Nota: valorile implicite sunt utilizate doar atunci, când valoarea cîmpului nu este definit în codul programului.
31
Recapitulare
36