Sunteți pe pagina 1din 8

1.

MySQL - SISTEM DE GESTIUNE


A BAZELOR DE DATE RELAȚIONALE
I. Obiective

1. MySQL - sistem de gestiune a bazelor de date relaționale-generalități


2. Tipuri de date MySQL
3. Operatori ,expresii şi funcții MySQL

II. Fundamentare teoretică

2.1.Sisteme de gestiune a bazelor de date

Un sistem de gestiune pentru baze de date - SGBD (eng. DBMS = Database Management
Systems) este o colecţie de programe care are drept scop indicarea structurii bazei de date, popularea și
exploatarea sa, asigurând totodată și accesul concurent la date și protecţia datelor. Acesta are ca funcţii
definirea (specificarea structurii şi a tipurilor de date stocate), construcţia (popularea) şi manipularea
bazei de date prin diferite operaţii de la implementarea interogărilor pentru regăsirea informaţiilor până
la generarea de rapoarte .
MySQL este un sistem de baze de date relaţional realizat de TcX DataKonsult AB în 1996.
Soluția a revoluționat piața bazelor de date și a dus la parteneriate importante cu RedHat, Veritas,
Novell sau Rackspace. În 2008, MySQL a fost achizițional de Sun Microsytems, care la rândul ei a fost
cumparată de Oracle în 2009. Limbajul utilizat este SQL ( Structured Query Language) ce permite
definirea , manipularea și securizarea datelor stocate într-un model relațional în sistemul MySQL.
Scopul inițial al sistemului era orientat pe performanță - timp de răspuns redus la număr mare
de utilizatori și cereri de acces şi scalabilitate- susținerea perfomanței prin creșterea resurselor.
Rezultatul a fost un produs puternic optimizat ce nu includea inițial o serie de caracteristici considerate
standard pentru soluțiile de baze de date, cum ar fi procedurile stocate, trigger-ele sau tranzacțiile.
Ulterior, prin implementări din ce în ce mai performante aceste caracteristici au fost integrate motoarelor
moderne MySQL ( de ex. InnoDB).

Caracteristici MySQL

Sunt enumerate în continuare o serie de caracteristici particulare importante ale MySQL.

 Sistem de baze de date relaţional


 Arhitectura de tip client-server - spre deosebire de Access, dBase sau FoxPro, care sunt
sisteme de tip file-server, ce devin ineficiente la utilizarea în reţea.
 Compatibilitate SQL - permite utilizarea SQL şi aderă la standardul SQL-2003 cu o serie de
restricţii, dar şi extensii. Se poate configura însă în modul sql-mode şi devine astfel compatibil
cu multiple sisteme cu baze de date, cum ar fi DB/2 sau Oracle.
 Unicode - permite utilizarea întregului set de caractere Latin-1, Latin-2 şi Unicode (UTF8 sau
 UCS2)
 Interfaţa grafică - există multiple interfețe pentru managementul serverelor
MySQL
 Funcţii GIS - sau Geographic Information Sytems - suport pentru stocarea şi procesarea datelor
geografice bidimensionale

1
 Limbaje de programare - există o serie de API-uri şi librării pentru dezvoltarea de aplicaţii
MySQL.
 ODBC - MySQL oferă suport pentru ODBC, ceea ce permite adresarea MySQL din cadrul
limbajelor de programare ce ruleaza sub Windows (Delphi, Visual Basic etc.).
 Independenţă de platformă

În cadrul aplicaţiilor web, cea mai des întâlnită pereche de limbaj de programare şi sistem de baze
de date este perechea PHP-MySQL. Cele mai importante avantaje acestei combinații sunt următoarele:
 Sunt sub sistem de licențiere gratuită
 Sunt orientate pe aplicații web
 Sunt ușor de utilizat , oferă integrare simplă
 Sunt rapide şi eficiente

În aceasta pereche, PHP este un limbaj de programare ce permite scrierea de aplicații simple,
precum afișarea unei pagini web complexe sau validarea datelor introduse de un utilizator într-un form.
PHP poate fi inclus în fîşiere HTML prin intermediul tag-urilor. Când o anumită sarcină necesită
accesul la o baza de date, PHP oferă un set de funcţii de acces direct la MySQL .
Serverul MySQL poate gestiona simultan mai multe baze de date accesate de mai mulţi
utilizatori. Dintre bazele de date gestionate de serverul MySQL, baza de date mysql este creată implicit
la instalarea serverului (în Windows) şi este formată din mai multe tabele care conţin informaţii despre
starea curentă a serverului: numele bazelor de date existente, numele calculatoarelor gazdă (host),
numele utilizatorilor, drepturile utilizatorilor asupra tabelelor şi a coloanelor. Operaţiile de creare
(ştergere) a bazelor de date, creare (ştergere) a utilizatorilor, schimbarea drepturilor de acces, se pot
face modificând continutul tabelelor bazei de date mysql. Unele din aceste operații pot fi efectuate şi
prin intermediul unor programe utilitare (mysqladmin sau wsmysqladmin ).

Utilizatorii serverului MySQL sunt identificati prin numele utilizatorului (user) şi, opțional,
printr-o parolă (password). Deşi se acceptă utilizatori fără parolă, este recomandabil să se introducă
parola pentru toti utilizatorii, pentru a proteja datele memorate în bazele de date. Utilizatorii serverului
MySQL nu sunt identici cu utilizatorii sistemului de operare (Windows sau Linux) şi trebuie să fie
creați după instalarea şi pornirea serverului. Drepturile de acces ale utilizatorilor se stabilesc după
crearea acestora prin comenzi SQL. Utilizatorul root, creat implicit la instalarea serverul MySQL este
contul de administrare şi are toate drepturile de creare şi modificare a bazelor de date. De asemenea,
După instalarea serverului MySQL în Windows, toti utilizatorii locali au drepturi de acces complet la
toate bazele de date, fără specificarea unei parole de acces.

Pentru a asigura o mai mare securitate, după instalarea şi pornirea serverului, administatorul
bazei de date va limita drepturile de acces ale utilizatorilor, conform cerintelor de funcţionare a bazei
de date. Prima acţiune este de a elimina dreptul de acces al unui utilizator oarecare (utilizator anonim)
la baza de date test, prin urmatoarele comenzi:

C:\mysql\bin>mysql mysql mysql> DELETE FROM user WHERE Host='localhost' AND


User=''; mysql> QUIT C:\mysql\bin>mysqladmin reload

După acesta, se va introduce o parolă pentru utilizatorul de administrare (root) cu comanda:


C:\mysql\bin>mysqladmin -u root password parola_admin
Din acest moment, la orice acces al utilizatorului root va trebui să fie introdusa parola setată.
S-a presupus ca serverul mysql a fost instalat în directorul C: \mysql; dacă a fost instalat în alt director,
atunci în comenzile de mai sus se trece numele directorului respectiv.

Diverse versiuni ale sistemului de gestiune a bazelor de date MySql pot fi identificate la adresa
http://www.mysql.com/products/standard/, sau http://dev.mysql.com/downloads/) .
O altă opțiune ce conține serverul MySQL şi suport pentru managementul bazelor de date și
proiectarea vizuală este utilitarul Workbench, ce poate fi descărcat de la adresa :

2
http://dev.mysql.com/downloads/workbench/ , respectiv produsul Navicat ce poate fi descărcat de la
adresa https://www.navicat.com/en/.

Un alt instrument integrat ,ce conține serverul Web - ApacheTomcat , serverul de baze de date
MySQL și un editor pentru programarea clienţilor în limbajul PhP și care simplifică modul de lucru cu
serverul de baze de date MySQL este XAMPP și poate fi descărcat de la adresa
http://www.apachefriends.org/en/xampp.html. Diverse alte sisteme software pentru gestionarea
datelor în baze de date MySQL, mult edintre ele cu sursă deschisă, noncomerciale pot fi consultate la
adresa http://www.databasejournal.com/features/mysql/slideshows/top-10-mysql-gui-tools.html.

2.2.Tipuri de date

Ca orice limbaj de programare, limbajul SQL suportă anumite tipuri de date. Ele pot fi în
general împarţite în: numerice, logice, data calendaristică, timp, şiruri de caractere şi date binare
mari (BLOB - binary large object). Din motive de implementare, fiecare sistem de gestiune de baze
de date implementează propriile subtipuri ale tipurilor de bază. Aceasta situatie poate pune uneori
probleme de compatibilitate la trecerea bazelor de date de pe un sistem pe altul.În continuare se vor
prezenta tipurile de date suportate de MySQL.

Ca şi regulă generală, notaţia: tip [(M, D)] [optiuni] are următoarea interpretare: tipul de date
referit este afisat pe M pozitii, eventual cu D pozitii în partea zecimala. Toate valorile ce se găsesc în
paranteze drepte semnifică mărimi opționale. Optiunile M şi D nu influentează însă spațiul de stocare
necesar pentru memorarea valorilor de acel tip.

Valorile opționale au urmatoarea semnificație:


 UNSIGNED - permite memorarea doar a valorilor pozitive.
 ZEROFILL - la afisare, valorile numerice vor fi precedate de '0' pana la lungimea de afisare
(ex.
0003)
 BINARY - specifica faptul ca interpretarea caracterelor se va face în cod ASCII (la comparărea
a doua şiruri se va face distinctie între litere mari/mici).

2.2.1.Tipuri de date numerice

Tipuri de date întregi, cu valoare exactă:


INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
https://dev.mysql.com/doc/refman/5.7/en/integer-types.html

Tipuri de date în virgulă fixă, cu valoare exactă - DECIMAL, NUMERIC


https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html

Tipuri de date în virgulă mobilă, cu valoare aproximativă: FLOAT, DOUBLE


https://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html

Tipuri de date BIT


https://dev.mysql.com/doc/refman/5.7/en/bit-type.html

2.2.2.Tipuri de date dată calendaristică şi timp


https://dev.mysql.com/doc/refman/5.7/en/date-and-time-types.html

3
 DATE - Dată calendaristică, în intervalul ['1000-01-01'..'9999-12-31']. Stocarea/afişarea se
face implicit în formatul 'YYYY-MM-DD' (an-lună-zi).

 DATETIME - Combinaţie de dată calendaristică şi timp, în intervalul ['1000-01-01


00:00:00'..'9999-1231 23:59:59']. Stocarea/afişarea se face implicit în formatul 'YYYYMM-
DD HH:MM:SS' (an-lună-zi ora:minut:secundă).

 TIMESTAMP [(M)] = Moment de timp, care include şi data calendaristică. Este util la
înregistrarea efectuării unor operaţii gen inserare sau modificare, deoarece reţine implicit data
efectuării ultimei operaţii. Întervalul de valori posibile este ['1970-01-01 00:00:00'..'2037-01-
01 00:00:00']. Afişarea se face în formatul: YYYYMMDDHHMMSS,
YYMMDDHHMMSS, YYYYMMDD sau YYMMDD
o După cum M este 14 (sau lipseste), 12, 8 sau 6.

 TIME = Moment de timp. Întervalul de valori posibile este [-838:59:59'..'838:59:59'].


Reprezentarea este în format 'HH:MM:SS' (ora:minut:secunda). Motivul pentru care ora nu
este limitata la intervalul [0..24] esta ca acest tip poate fi folosit şi pentru a retine intervale de
timp între doua evenimente. Tot din acest motiv ora poate fi şi negativa.

 YEAR [(2|4)] = An calendaristic cu 2 sau 4 cifre, în intervalul de valori [1901..2155] pentru


4 cifre, respectiv [1970..2069] pentru 2 cifre .

2.2.3.Tipuri de date şir de caractere


https://dev.mysql.com/doc/refman/5.7/en/char.html

 CHAR (M) = Şir de caractere de lungime fixă. Lungimea M a şirului poate lua valori în
intervalul [1..255]. o BIT/BOOL/CHAR = sinonime cu declaraţia CHAR.
 VARCHAR (M) = şir de caractere de lungime variabilă. Lungimea M a şirului poate lua valori
în intervalul [1..255].

2.2.4.Tipuri de date binare mari (BLOB)


https://dev.mysql.com/doc/refman/5.7/en/blob.html

Se folosesc pentru a reţine obiecte binare (BLOB) de mari dimensiuni (ex. imagini, secvenţe audio sau
video) sau pentru a reţine texte de dimensiune mai mare de 255 caractere (TEXT).

 TINYBLOB/TINYTEXT - Valori BLOB, TEXT cu lungime de max. 255 elemente.

 BLOB/TEXT - Valori BLOB, TEXT cu lungime de max. 65535 (64 KB) elemente.

 MEDIUMBLOB/MEDIUMTEXT - Valori BLOB, respectiv TEXT cu lungime de max.


16777215 (16 MB) elemente.

 LONGBLOB/LONGTEXT - Valori BLOB, respectiv TEXT cu lungime de max.


o 4294967295 (4 TB) elemente.

2.2.5. Tipuri de date speciale


https://dev.mysql.com/doc/refman/5.7/en/enum.html
https://dev.mysql.com/doc/refman/5.7/en/set.html

4
ENUM ('value1', 'value2',...) - Enumerare de elemente tip şir de caracter. Un obiect de acest
tip poate avea la un moment dat o singură valoare dintre cele enumerate sau valoarea NULL. Valoarea
" " (şir vid) este considerată eroare. Un tip enumerare poate defini maxim 65535 de valori distincte.

SET ('value1', 'value2',...) - Mulţime de elemente tip şir de caracter. Un obiect de acest tip poate
conţine la un moment dat mai multe valori distincte dintre cele definite sau poate fi gol
(nu conţine nici o valoare). Un tip mulţime poate defini maxim 65 de valori membru.

2.3. Constante, identificatori, comentarii

Constante.
Constantele de tip şir de caractere se includ între apostroafe sau ghilimele: 'constanta şir' "alta
constanta şir". În interiorul unui şir se pot include caractere speciale precedate de semnul '\' (escape):
\n Trecere la linie noua (new line).
\t Tab (caracter de aliniere).
\r Salt la inceputul liniei (carriage return).
\b Sterge inapoi.
\' Caracterul '.
\" Caracterul ".
\\ Caracterul \.
\% Caracterul '%'. Se poate folosi pentru a căuta caracterul %, în conditiile în care acest
caracter este folosit în expresii regulate (subiectul va fi detaliat ulterior).
\_ Caracterul _. Se poate folosi pentru a căuta caracterul _, în conditiile în care acest caracter
este folosit în expresii regulate (subiectul va fi detaliat ulterior).

Constantele întregi sunt reprezentate prîntr-un şir de cifre zecimale. Constantele reale conţin semnul
'.' pentru specificarea părţii zecimale. Ambele tipuri pot fi precedate de semnul '-' pentru a indica numere
negative.

Identificatori. Numele pentru baza de date, tabele, coloane, indecşi sau alias-uri trebuie să
îndeplinească condiţiile normale pentru identificatori în limabje de programare: să fie o combinatie de
litere, cifre şi semne grafice care încep cu o litera. Identificatorii pot fi scrîşi în general cu orice
combinatie de litere mari sau mici. Pentru numele bazei de date şi cel al tabelelor unele, implementări
impun respectarea tipului de caractere folosit la definirea elementelor respective. Ca şi regulă generală,
este bine să se păstreze o convenție de notare care să nu fie schimbata de la o interogare la alta. O regulă
simpla este să se scrie comenzile SQL cu litere mari şi identificatorii definiti de utilizator cu litere mici.

Comentarii: MySQL suportă trei tipuri de comentarii prin care se poate explica codul. Ele sunt:
Comentarii pe o singura linie care incep cu # şi continuă până la sfârșitul liniei;
Comentarii pe o singura linie care incep cu -- şi continuă până la sfârșitul liniei.
Comentarii pe mai multe linii care incep cu /* şi se incheie cu */

2.4.Operatori şi functii MySQL

Operatori aritmetici.Operatorii aritmetici opereaza asupra numerelor întregi cu precizia BIGINT


(pe 64 biti). Sunt disponibili următorii operatori:
 + pentru adunare; o - pentru scădere; o * pentru înmulţire;
 / pentru împărţire; dacă se împarte la 0 rezultatul va fi NULL;

Operatori logici. Operatorii logici întorc 1 pentru adevărat şi 0 pentru fals.

5
 NOT ! - Negatie logica. Întoarce 1 dacă argumentul este 0, altfel întoarce 0. (NOT NULL
întoarce NULL).
 OR || - SAU logic. Întoarce 1 dacă cel putin un argument nu este 0 sau NULL. o AND && -
SI logic. Întoarce 0 sau NULL dacă cel putin un argument este 0 sau NULL, altfel întoarce 1.

Operatori de comparare. Operatorii de comparăre returnează 1 pentru adevărat, 0 pentru fals şi NULL
dacă nu se poate efectua comparătia.Ei pot compară atât numere cât şi şiruri de caractere. La
comparărea unui număr cu un şir se încearcă transformarea şirului în numărul pe care il contine. La
comparărea a doua şiruri nu se va tine cont de litere mari/mici.

 = egalitate; la comparărea cu NULL întoarce NULL; o != inegalitate; o < - mai mic; o <= -
mai mic sau egal; o > - mai mare; o >= - mai mare sau egal;
 <=> - echivalenta; la comparărea cu NULL întoarce 0 sau 1 (1 doar la NULL <= > NULL);
dacă ambii operanzi sunt diferiti de NULLse comporta ca şi =;
 IS NULL - testează dacă operandul are valoarea NULL; o IS NOT NULL - testează dacă
operandul este diferit de NULL; o ISNULL(expr) - testează dacă expresia are valoarea NULL;
 expr BETWEEN min AND max - testează dacă valoarea expresiei este în intervalul
 [min..max]; o expr IN (value,... ) - testează dacă valoarea expresiei este în lista de
valori specificată;
 expr NOT IN (value,... ) - testează dacă valoarea expresiei nu este în lista de valori specificată;
 IF(expr1,expr2,expr3) - testează valoarea de adevăr a expr1 (falsă dacă este 0 sau NULL) şi
întoarce expr2 pentru adevărat respectiv expr3 pentru fals;

Detalii suplimentare: http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html


https://dev.mysql.com/doc/refman/5.7/en/non-typed-operators.html

Pentru expresii logice diverse,din surse de cod SQL este utilă cunoașterea modului în care acestea vor
fi executate bazat pe aplicarea regulilor de precedenţă a operatorilor:
https://dev.mysql.com/doc/refman/5.7/en/operator-precedence.html

2.4.1.Funcţii pe şiruri de caractere

Funcţiile pe şiruri consideră implicit primul caracter pe poziţia 1.


 ASCII(str) - întoarce codul ASCII al caracterului de pe pozitia 1 din şir. Daca şirul este vid
întoarce 0.
 CONV(N, from_base, to_base) - converteşte numărul N considerat în baza from_base în
valoarea sa în baza to_base. o CHAR(N,...) - converteşte şirul de numere primite într-un şir de
caractere ale căror coduri ASCII sunt egale cu cele din şirul initial.
 CONCAT(str1,str2,...) - concatenează şirurile primite ca argument, returnand şirul rezultat. o
LENGTH(str) - întoarce lungimea (numărul de caractere) a şirului primit ca şi argument.
 LOCATE(substr,str)
 POSITION(substr IN str) - cauta prima aparitie a şirului substr în şirul str.Daca il gaseste
returnează pozitia, dacă nu, returnează 0.
 LEFT(str,len) - întoarce un şir format din primele len caractere din şirul dat. o
RIGHT(str,len) - întoarce un şir format din ultimele len caractere din şirul dat.
 SUBSTRING(str,pos,len) o MID(str,pos,len) - întorc subşirul de pe poziţia pos, de lungime
len caractere din şirul str.
 SUBSTRING_INDEX(str,delim,count) - întoarce subsirul pana la count aparitii ale
caracterului delimitator delim. Daca delim este pozitiv întoarce prima parte a şirului, dacă este
negativ, ultima parte. LTRIM(str) RTRIM(str)
 TRIM(str) - întoarce şirul str fără spaţiile de la inceput (LTRIM), sfarsit (RTRIM) sau din
ambele parti (TRIM). SPACE(N) - întoarce un şir format din N spaţii. LOWER(str)

6
 UPPER(str) - întoarce şirul str cu toate caracterele convertite la litere mici, respectiv litere
mari.
 şir (NOT) LIKE tipar - compară şirul şir cu tiparul dat. Întoarce adevărat (1) dacă se potrivesc.
Tiparele pot include caracterele speciale: '_' care se potriveste cu orice caracter şi '%' care poate
inlocui orice secventa de 0 sau mai multe caractere.

Comparații pe stringuri:
http://dev.mysql.com/doc/refman/5.7/en/string-functions.html
http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

2.4.2.Funcţii matematice

Toate funcțiile matematice întorc NULL în caz de eroare.

 ABS(X) - valoarea absoluta (fără semn) a lui x.


 SIGN(X) - testează semnul lui x, întoarce -1 pentru x negativ, 1 pentru x pozitiv şi 0 altfel o
MOD(N,M) % - modulo (restul impartirii) lui N la M. o FLOOR(X) - cea mai mare valoare
întreagă mai mică decât x (rotunjire în jos)
 CEILING(X) - cea mai mică valoare întreagă mai mare decât x (rotunjire în sus) o
ROUND(X) - rotunjire la cel mai apropiat întreg o EXP(X) - exponentiala (e la puterea x) o
LOG(X) - logaritm natural din x o LOG10(X) - logaritm în baza 10 din x o POW(X,Y) - x
la puterea y o SQRT(X) - radical de ordinul 2 din x
 PI() - numărul PI; implicit se afişează cu 5 zecimale dar în calcule intervine cu dubla precizie
 COS(X), SIN(X),TAN(X) - cosinus, sinus şi tangenta de x
 RAND(N) - genereaza un număr pseudo-aleator în intervalul [0..1]; prin N se poate specifica o
valoare de initializare calcul
 LEAST(X,Y,... ) - întoarce cea mai mică valoare din lista valorilor specificate o
GREATEST(X,Y,... ) - întoarce cea mai mare valoare din lista valorilor specificate

Detalii suplimentare: https://dev.mysql.com/doc/refman/5.7/en/mathematical-functions.html

2.4.3.Funcţii de tip dată calendaristică şi timp

 DAYOFWEEK(date) - indexul zilei din saptamana al datei specificate (1=duminica,2=luni


etc.) o DAYOFYEAR(date) - numărul zilei din an pentru data specificată o
DAYNAME(date) - numele (în engleza) al zilei din data specificată o MONTHNAME(date)
- numele (în engleza) al lunii din data specificată o YEAR(date) - extrage anul din data
specificată o HOUR(time) - extrage ora din timpul precizat o MINUTE(time) - extrage
minutul din timpul precizat o SECOND(time) - extrage secunda din timpul precizat o
CURDATE() - întoarce data curentă în format 'YYYY-MM-DD' o CURTIME() - întoarce
ora curentă în format 'HH:MM:SS' o NOW() - întoarce data şi ora curentă în format 'YYYY-
MM-DD HH:MM:SS' o SYSDATE() - întoarce data şi ora curentă în format 'YYYY-MM-DD
HH:MM:SS' o SEC_TO_TIME(seconds) - întoarce timpul în format 'HH:MM:SS' reprezentat
de numărul de secunde specificate
 TIME_TO_SEC(time) -converteste timpul specificat în număr de secunde scurse de la ora
00:00:00

Funcţii speciale
 DATABASE() - numele bazei de date active
 USER() - numele utilizatorului conectat la server

7
 VERSION() - returnează versiunea serverului MySQL
instalat
 PASSWORD(str) - criptare şir După metoda interna prin care MySQL îşi păstrează parolele;
criptarea nu este reversibila (nu se poate calcula şirul de plecare pornind de la cheia criptata)
 FORMAT(N,D) - returnează numărul N în format '#,###,###.##' cu D zecimal

III. Exerciţii propuse

3.1. Se va instala și studia toolul integrat utilizat în dezvoltarea aplicațiilor cu baze de date MySQL
Workbench, parcurgând tutorialul asociat ce poate fi accesat la adresa https:/ftp.utcluj.ro
/~civan/IBD

3.2. Se vor identifica tipurile de date prezentate în motorul de baze de date MySQL. Se vor studia
caracteristicile lor și se vor imagina date din lumea reală translatate către o anumită reprezentare
MySQL

3.3. Prezentați și explicați comparativ cu limbajul de programare C/C++ regulile de precedență a


utilizării operatorilor specifice expresiilor logice acceptate de sintaxa MySQL

3.4. Identificați operatori și funcții specifice MySQL pentru operarea cu date relaționale

3.5. Scrieţi comenzile necesare în editorul SQL din Workbench pentru a afla următoarele informaţii:

• sin ( )
• Data curentă
• Pentru data de “2017-10-01” găsiţi:
- Numele zilei săptămânii - Ziua din an
- Numărul săptămânii din an

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