Documente Academic
Documente Profesional
Documente Cultură
- precizia dorita;
2. Temporale
4. Enumerate
Proprietati generale:
- raţionale. Acestea pot fi memorate in virgula fixa sau in virgula mobila. Stocarea
unora dintre numere in baza de date este subiect de trunchiere/rotunjire;
Datele numerice sunt implicit cu semn, avand domeniul simetric in jurul lui zero.
Interfon INT(3)
Memorarea numerelor rationale intr-un sistem de calcul se poate face in doua moduri:
- in virgula fixa - presupune stabilirea de la bun inceput a numărului de zecimale;
- in virgula mobila - poziţia virgulei in cadrul numărului nu mai este prestabilita, ci poate varia in
funcţie de valoarea memorata. Numărul total de cifre ce pot fi memorate ramane acelaşi, insa
prin schimbarea poziţiei virgulei pot fi obţinute numere de diferite anverguri si precizii.
Caracteristici:
- In virgula fixa stabilim de la inceput numarul de zecimale, respectiv pozitia virgulei;
- In cazul virgulei mobile putem muta virgula atat la dreapta cat si la stanga;
- In virgula fixa memoram valoarea exacta asteptata (finita sau rotunjita);
- In virgula mobila memoram valori aproximative dar avem viteza de calcul sporita;
Exemplu:
2. Temporale
4. Enumerate
Caracteristici (continuare):
- interval de timp - tipul de date TIME, care poate fi folosit pentru a reprezenta atat ora din
zi, cat si intervale de timp care pot fi mai mari de 24h. Formatul este 00:MM:SS sau
000:MM:SS;
- an - tipul YEAR, pe 2 sau pe 4 digiti;
- valorile pentru coloane se specifica incadrate in apostroafe, cu excepţia tipului YEAR
reprezentat ca intreg. Lunile sau zilele care au o singura cifra nu este obligatoriu sa aiba 0
in fata. Ex: '2006-4-13 18:23:45', '104:56:59', 1986
2. Temporale
4. Enumerate
- şiruri de octeţi - sunt simple succesiuni de numere. Compararea a doua astfel de şiruri se
efectuează numeric, octet cu octet;
2. Temporale
4. Enumerate
Coloana de acest tip poate lua valori doar dintr-o multime fixa de valori distincte. MySQL
dispune de doua tipuri de astfel de date:
- ENUM
- contine valori dintr-o multime prestabilita, specificata in definitia coloanei;
- fiecare inregistrare va avea una din valorile din lista, sau NULL, daca este permis;
- pot fi definite maxim 65535 de valori distincte
Atunci cand coloana in cauza permite NULL, valoarea default a coloanei va fi NULL. In
caz contrar, daca nu se specifica explicit valoarea default la crearea coloanei, in
modul non-strict va fi folosit implicit primul element din lista de valori permise.
Atunci cand pe o coloana de tip ENUM se introduce o valoare invalida (alta decat
cele din lista permisa) si serverul functioneaza in modul non-strict, valoarea
memorata in baza de date va fi '' (sirul vid) pentru a indica eroarea. Aceastei valori
particulare ii corespunde codul 0
- SET
- asemanator cu ENUM, in plus permite o combinatie de valori;
- pot fi definite maxim 64 de valori distincte;
- valoarea '' (sirul vid) este una valida in cazut acetui tip de date, asemenator ENUM.
Stocarea lor in baza de date se face insa eficient: fiecare valoare a unui tip de
date enumerat este memorata de catre MySQL astfel:
- sub forma unui intreg incepand de la 1 si pana la numarul de elemente
existente, in cazul ENUM;
- sub forma unui intreg corespunzator puterilor lui 2, de la 0 la numarul de
elemente, in cazul SET.
Exemplu:
3. Operatori
Toate acestea pot fi combinate de operatori, care acepta unul sau mai multi operanzi
InfoAcademy SQL 2017 26
EXPRESII SQL
3. Operatori
Reguli:
- In baza 10 numerele pot fi scrise astfel: 60, -25, +17;
- In hexazecimal pot fi scrise astfel:
- x’valoare’ Ex. x’DA’ = 13*16+10 = 218
- X’valoare’ Ex. X’58’ = 5*16+8 = 88
- 0xvaloare Ex. 0x2aF = 2*16*16+10*16+15 = 687
- Valoare utilizeaza cifre de la 0-9 si litere de la A la F, case insensitive, + sau -
- Numerele fractionare, pot fi precedate de semn si reprezentate astfel:
- In notatie fractionara obisnuita(dec) Ex. 43.8
- In notatie stiintifica(vm) Ex. 0.438e2 = 43.8 sau 438e-1
3. Operatori
- + adunare
- - scadere
- * inmultire
- / impartire – poate rezulta un numar fractionar
- DIV impartire intreaga – returneaza catul impartirii primului operand la al doilea
- % modulo – returneaza restul impartirii primului operand la al doilea
Atunci cand operanzii unui operator au tip de date diferit MySQL procedeaza astfel:
- Numerele sunt transformate automat in siruri de caractere si invers, unde este
necesar;
- Datele de tip temporal sunt convertite la numere cand sunt folosite intr-un context
numeric, si invers;
- Valorile coloanelor de tip enumerat sunt automat convertite la string sau la număr in
funcţie de context;
Vrem sa comparam daca doua expresii sunt NULL (ambele). Ce operator folosim?