1. Expresii si functii

SQL va permite sa formati expresii folosind valori din coloane, valori literale si functii. Ca si în PHP, puteti controla ordinea de evaluare a expresiilor SQL folosind paranteze pentru a delimita sub-expresiile care trebuie evaluate mai intai.
Tabelele urmatoare rezuma functiile MySQL frecvent folosite

Functii matematice frecvent folosite în MySQL
Functie Descriere
abs(x) - Valoarea absoluta a lui x
atan(x) - Arc tangenta lui x, unde x este dat în radiani
atan2(y,x) - Arc tangenta lui y/x, unde semnele ambelor argumente sunt folosite pentru a determina cadranul cercului trigonometric
ceiling(x) - Cel mai mic întreg care nu este mai mic decât x
cos(x) - Cosinusul lui x, unde x este exprimat în radiani
exp(x) - Baza logaritmilor naturali (e) ridicata la puterea x
floor(x) - Cel mai mare întreg care nu este mai mare decât x
log (x) - Logaritmul natural al lui x
mod(x,y) - Restul împartirii x/y
power(x,y) - x la puterea y
rand(x) - Valoare aleatoare cu virgula, mai mare sau egala cu zero si mai mica decât unu
sign(x) - Valoarea -1, 0 sau 1, dupa cum valoarea lui x este negativa, zero sau pozitiva
sin(x) - Sinusul lui x, unde x este dat în radiani
sqrt(x) - Radacina patrata a lui x
tan(x) - Tangenta lui x, unde x este dat în radiani

\Functii sir frecvent folosite în MySQL
Functie Descriere
ascii(s) - Codul ASCII al octetului celui mai din stânga al sirului s
char(n) - Caracter al carui cod ASCII este n
concat(s1, s2) - Concatenarea sirurilor s1 si s2; cu alte cuvinte, s2 atasat la s1
lcase(s) - Sirul s, unde toate majusculele au fost transformate în minuscule
left(s,n) - Primii n octeti ai sirului s, de la stânga la dreapta
length(s) - Numarul octetilor din sirul s
locate(s1, s2) - Pozitia primei aparitii a lui s1 în s2, respectiv zero daca s1 nu se gaseste în s2
ltrim(s) - Sirul s, cu eliminarea spatiilor de început
right(s,n) - Primii n octeti din sirul s, de la dreapta la stânga
rpad(s1,n,s2) - Sirul s1, completat la dreapta cu sirul s2 pâna când rezultatul are lungimea n
rtrim(s) - Sirul s, cu spatiile finale eliminate
space(n) - Un sir alcatuit din n spatii
substring(s,m,n) - Sub-sir al lui s, care începe de la pozitia m si care are lungimea n
trim(s) - Sub-sir al lui s, cu spatiile initiale si finale eliminate
ucase(s) - Sirul s, cu toate minusculele convertite în majuscule

Functii MySQL de data si ora frecvent utilizate
Functie Descriere
dayofmonth(d) - Ziua din luna a datei specificate (1-31)
dayofweek(d) - Ziua din saptamâna a datei specificate (1 =duminica, 2=luni,…, 7=sâmbata)
dayofyear(d) - Ziua din an a datei specificate (1-366)
hour(t) - Partea orelor din momentul de timp mentionat (0-23)
minute(t) - Partea minutelor din momentul de timp mentionat (0-59)
month(d) - Luna datei specificate (1-12)
now() - Data si ora curenta
second(t) - Partea secundelor din momentul de timp mentionat (0-59)
week(d) - Saptamâna din an a datei specificate (0-53)
year(d) - Partea anilor din momentul de timp mentionat (1000-9999)

Functii specifice MySQL
Functie Descriere
database() - Returneaza numele bazei de date deschise
get_lock(s,n) - Obtine o blocare a bazei de date
md5(s) - Returneaza o suma de control a sirului s, calculata dupa algoritmul MD5
password(s) - Returneaza sirul s, criptat folosind algoritmul aplicat de MySQL parolei
release_lock(s) - Anuleaza blocarea unei baze de date
user() - Returneaza numele utilizatorului curent
version() - Returneaza numarul versiunii MySQL

2. Uniri

SQL va permite sa obtineti accesul la mai multe tabele într-o singura interogare, în general, aceasta operatie se executa pentru ca datele dintr-un tabel sa poata fi folosite cu date din alt tabel.
De exemplu, sa presupunem ca baza de date este asemanatoare celei prezentate mai jos, unde avem doua tabele, primul numit "persoane" iar cel de-al oilea numit "meserii", si o relatie cheie externa - cheie primara (persoanaid) asociaza cele doua tabelele.

persoanaid nume AnNastere
001 George Washington 1732
002 John Adams 1735
003 Thomas Jefferson 1743
meserie persoanaid
Arhitect 003
General 001
Filozof 002
Sa examinam urmatoarea interogare:
SELECT nume, meserie FROM persoane, meserii
    WHERE persoane.persoanaid=meserii.persoanaid;
- Constructiile "persoane.persoanaid" si "meserii.persoanaid" se numesc "nume definite", prima se refera la coloana "persoanaid" din tabelul "persoane", iar a doua se refera la coloana "persoanaid" a tabelului "meserii".
- Clauza WHERE asigura o echivalenta între valoarea cheii externe din tabelul "meserii" cu aceea a cheii primare din tabelul "persoane", (în absenta clauzei WHERE, se va stabili o corespondenta între fiecare rând din tabelul cu meserii si fiecare rând din tabelul cu persoane; un asemenea rezultat, numit "produs cartezian", contine în general multe rânduri - majoritatea nedorite - si ca atare trebuie evitat).
- Rezultatul interogarii de mai sus este un raport care indica numele si meseria asociata fiecarui angajat prezentat în tabelul "meserii".
O interogare ca aceasta, care combina date din mai multe tabele, se numeste "unire". Sunt posibile si uniri mai complexe, care implica trei sau mai multe tabele.
Daca un rând dat din tabelul principal (aici "persoane") nu are nici un rând asociat în tabelul cu detalii (aici "meserii"), rândul respectiv din tabelul principal nu va aparea în datele de iesire ale unei uniri. In cazul acesta, pentru a determina aparitia acestei înregistrari din tabelul principal, se poate folosi o categorie speciala de unire, cunoscuta sub numele de "unire la stânga" sau "unire exterioara la stânga". Iata un exemplu:
SELECT nume, meserie FROM persoane
    LEFT JOIN meserii
    ON persoane.persoanaid=meserii.persoanaid;
Aceasta interogare va afisa toate persoanele, indiferent daca acestea au sau nu asociata o meserie. Persoanele fara o meserie au specificatia NULL în coloana corespunzatoare meseriei.

3. Executarea instructiunilor dintr-un fisier extern

Comenzile MySQL pot fi scrise si intr-un fisier extern (editat de exemplu, in Windows, cu Notepad), acest fisier se numeste "script de shell".
Scriptul din fisierul extern poate fi executat din fereastra de comanda MySQL (MySQL Command Line Client), utilizand comanda:

Unde "nume_fisier" este calea si numele fisierului in care se afla scriptul de shell.
De exemplu, scriem urmatoarele comenzi intr-un fisier numit "lucru.txt" pe care-l salvam in directorul "C:/teste".
CREATE DATABASE lucrudb;
USE lucrudb;
GRANT ALL ON lucrudb.* TO php IDENTIFIED BY 'mypass';

CREATE TABLE angajat (
      angajatnr SMALLINT PRIMARY KEY,
      nume VARCHAR(50),
      ore SMALLINT,
      departament CHAR(16),
      salariu DECIMAL(8,2),
      data_angajare DATE);
INSERT INTO angajat (
      angajatnr,
      nume,
      ore,
      departament,
      salariu,
      data_angajare)
    VALUES (
      1,
      'George Washinton',
      40,
      'Contabilitate',
      500.00,
      '2007-10-04'),
      ( 2,
      'John Adams',
      35,
      'Marketing',
      1000.00,
      '2007-10-11'),
      ( 3,
      'Thomas Jefferson washinton',
      20,
      'Vanzari',
      1300.00,
      '2007-07-02');
- Pentru a executa acest script, scriem in fereastra de comanda MySQL: SOURCE C:/teste/lucru.txt
MySQL va executa comenzile din script ca si cum acestea ar fi scrise direct in linia de comanda.
Exemplul de mai sus va crea o baza de date noua, numita "lucrudb", va acorda utilizatorului "php" toate drepturile in utilizarea acestei baze de date, dupa care va crea tabelul "angajat", cu 6 coloane ("angajatnr", "nume", "ore", "departament", "salariu", "data_angajare") in care vor fi adaugate trei linii.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Baze de date SQL 3

Last accessed pages

  1. Conditional IF - Exercitii si teste engleza incepatori (3885)
  2. Proprietati si Metode obiect window (40)
  3. Substantivul din limba engleza - The Noun (14684)
  4. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (28635)
  5. Gramatica limbii engleze - Prezentare Generala (58053)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2529)
  2. Prezentul simplu si continuu - Present Tense Simple and Continuous (1597)
  3. Cursuri si Tutoriale: Spaniola, Engleza, HTML, CSS, Php-Mysql, JavaScript, Ajax (1336)
  4. Trecutul simplu si continuu - Past Tense Simple and Continuous (949)
  5. Articolul din limba engleza - The article (886)