NULL - lectii TIC

Download Report

Transcript NULL - lectii TIC

Operatorii Access
De atribuire =
Preced o expresie si semnifica
faptul ca rezultatul obtinut in
urma evaluarii expresiei va fi
atribut unui camp, unui criteriu
etc
Aritmetici {+,,*,/,\,^,MOD}
Se folosesc pentru a executa calcule
matematice in campurile calculate
Relationali
{>,>=,<,<=,=,<>,Like,Is}
Se folosesc pentru a compara valorile
a doua expresii
De concatenare{+,&}
Se folosesc pentru a
combina sirurile de
caractere
Logici
{And, Or, Xor, Not, Eqv,
Imp, Between…and, In
Operatorii logici sunt foarte utili
atunci cand se construiesc expresii
logice care descriu anumite
conditii,ce vor fi testate, urmand ca in
functie de rezultat, sa se execute
anumite operatii. Ei se folosesc
pentru construirea criteriilor de
interogari sau in controalele calculate
din formulare sau rapoarte.
Precedenta operatorilor
1.Aritmetici si de concatenare
1. Ridicarea la putere (^)
2. Inmultirea si impartirea(* si /)
3. Impartirea intreaga (\)
4. Modulo (MOD)
5. Adunarea si scaderea (+ si -)
6. Concatenarea (&)
2.Relationali
Precedenta egala
3.Logici
Precedenta
este: not,
and, or, xor,
eqv si imp
Operatorii Access
• Operanzii – pot fi constante, nume de campuri, nume de variabile de
memorie, functii sau nume de obiecte (tabele, formulare, interogari,
rapoarte). Referirile la numele de campuri sau nume de obiecte trebuie
inchise intre paranteze drepte: [<nume>]. De exemplu, daca intr-0m
expresie trebuie sa apara referirea la campul cod_mat din tabelul
Materiale, se scrie in expresie [cod_mat].
• Expresia – se poate folosi in conditiile de validare a datelor din tabelele
bazei de date, in interogari in campurile calculate sau in criterii, in rapoarte
si in formulare in campurile calculate, in conditiile de macrocomenzi, etc.
Access recalculeaza o expresie de fiecare data cand se schimba valoarea
operanzilor. Dac aexpresia este folosita intr-un camp calculat dintr-un
formular sau dintr-un raport, ea va fi evaluata de fiecare data cand se
schimba inregistrarea afisata in formular sau in raport. Daca expresia este
folosita intr-un criteriu al unei interogari, ea va fi evaluata de fiecare data
cand se executa interogarea respectiva.
Operatorii aritmetici
• Operatorii aritmetici care apar in plus in Access, fata de aplicatia Excel, sunt:
Operator
Semnificatie
Exemple
MOD (modulo)
Calculeaza restul impartirii primului
operand la al doilea operand
19MOD4
\ (impartire
intreaga)
Calculeaza catul impartirii primului
operand la al doilea operand. Daca
operanziii nu sunt numere intregi, ei
sunt rotunjiti inainte de executarea
operatiei de impartire.
19\4
11,7\6,2
3
4
2
Operatori Aritmetici
Operator
Adunare
Scadere
Negare
Inmultire
Impartire
Rest
Simbol Actiune
+
*
/
%
Aduna operanzii
Scade al 2 din primul
Neaga operandul
Inmulteste operanzii
Imparte 1 la al doilea
Restul impartirii
Exemplu
x+y
x-y
-x
x*y
x/y
x%y
Operatori relationali
• Operatorii>, >=, <, <=, =, <> pot fi aplicati pe date de tip numeric sau
alfanumeric. In cazul in care cel putin unul dintre operanzi are valoarea NULL
, furnizeaza rezultatul NULL. De exmplu: 5=NULL
NULL sau 5<>NULL
NULL sau NULL<=7
NULL.
Compararea a doua caractere este posibila prin compararea numerica a
codurilor lor ASCII. Compararea a doua siruri de caractere se face prin
compararea codului ASCII al caracterelor din aceeasi pozitie a fiecarui sir.
Operatia de comparare incepe cu prima pozitie din sir si continua cu
urmatoarele pozitii, numai daca pozitiile anterioare sunt identice in ambele
siruri. De exemplu, “Idee”>”IDei” produce rezultatul True.
Operatorul Like se poate aplica numai pe siruri de caractere si compara daca
un sir de caractere corespunde unui sablon.
Daca sirul de caractere corespunde sablonului, rezultatul furnizat este True.
Daca siruk de caractere este constanta NULL, rezultatul furnizat este NULL.
Sablonul se construieste cu ajutorul caracterelor de inlocuire.
Operatori Relationali
• Operatorii relationali permit compararea variabilelor:
– Ei returneaza val. 1 pentru true si val. 0 pentru false.
Operator
Simbol
Exemplu
Egalitate
Mai mare
Mai mic
Mai mare/egal
Mai mic/egal
Inegalitate
==
>
<
>=
<=
!=
x
x
x
x
x
x
== y diferit de x = y
> y
< y
>= y
<= y
!= y
Operatorii de concatenare
Operator
+
(de
concatenare
simplu)
&
(de
concatenare
special)
Semnificatie
Exemple
Reuneste doua siruri de caractere
intr-un singur sir de caractere. Ambii
operanzi trebuie sa fie de tip sir de
caractere.
“Buna”+”ziua”
“Buna ziua”
“alfa”+123
mesaj de eroare
(Type mismatch)
Reuneste doua siruri de caractere
intr-un singur sir de caractere. Daca
unul dintre operanzi nu estede tip sir
de caractere, va fi convertit in sir de
caractere.
“alfa”&”bet”
“alfabet”
“alfa”&123&”beta”
“alfa123beta”
Operatorii logici
• Operatorii logici And, Or, Xor, Not, Eqv, Imp se folosesc in general in construirea
criteriilor din interogari sau pentru validarea datelor introduse in campurile tabelelor.
Operator
Semnificatie
Exemple
And
(“si”)
Daca ambii operanzi au valoarea
True, rezultatul este True. Daca
unul dintre operanzi este False,
rezultatul este False
(9>8)And(8>7)
True
(8>9)And(8>7)
False
(9>8)And(8>NULL)
NULL
Or
(“sau
inclusiv”)
Daca cel putin unul dintre
operanzi are valoarea True,
rezultatul este True
(9>8)Or((8>7)
True
(8>9)Or(8>7)
True
(9>8)Or(8>NULL)
True
(8>9)Or(9>NULL)
False
Xor
(“sau
exclusiv”)
Daca cel putin unul dintre
operanzi are valoarea NULL,
rezultatul este NULL.Daca numai
unul dintre operanzi are valoarea
True, rezultatul este True
(9>8)Xor(8>7)
(8>9)Xor(8>7)
(8>9)Xor(7>8)
(9>8)Xor(8>NULL)
False
True
False
NULL
Operatorii logici
Operator
Semnificatie
Daca cel putin unul dintre
Eqv
(“echivalenta”) operanzi are valoarea NULL,
rezultatul este NULL. Dacanumai
unul dintre operanzi are valoarea
False, rezultatul este False
Imp
(“implicatia”)
Exemple
(9>8)Eqv(8>7)
True
(8>9)Eqv(8>7)
False
(8>9)Eqv(7>8)
True
(9>8)Eqv(8>NULL) NULL
(9>8)Imp(8>7)
True
(8>9)Imp(8>7)
True
(9>8)Imp(7>8)
False
(8>9)Imp(7>8)
True
(9>8)Imp(8>NULL)NULL
a
b
a And b
a Or b
a Xor b a Eqv b A Imp b
True
True
True
True
False
NULL
True
False
NULL
True
True
True
False
True
NULL
True
False
NULL
True
False
NULL
False
False
False
True
False
NULL
False
False
False
True
False
NULL
True
False
NULL
False
True
NULL
True
True
True
NULL
NULL
NULL
True
False
NULL
NULL
False
NULL
True
NULL
NULL
NULL
NULL
NULL
NULL
NULL
NULL
True
NULL
NULL
Operator
Not
(negare)
Semnificatie
a
Not a
Exemplu
Schimba valoarea unui
True
operand cu complementul
sau: True cu False si False cu
True. Daca operandul are
False
valoarea NULL, isi pastreaza
valoarea.
False
Not(9>8) False
True
Not(8>9) True
NULL
NULL
Not(NULL>8)
NULL
Operatorul between…and se foloseste pentru a verifica daca valoarea
unei expresii se gaseste intr-un interval precizat:
<exp>between<v1>and<v2>
unde <exp> reprezinta expresia a carei valoare se testeaza, iar <v1>
si <v2> reprezinta doua constante care definesc intervalul [v1,v2].
Constantele <v1> si <v2> trebuie sa fie de acelasi tip ca si rezultatul
expresiei <exp>. Daca rezultatul expresiei se gaseste in intervalul
precizat, atuncirezultatul furnizat de operator va fi True, altfel, va fi
False. Daca una dintre constantele <v1> si <v2> are valoarea Null,
rezultatul va fi Null.
Exemple: [data_m]between#01/1/08#and#01/1/09#
Daca data miscarii materialului din campul data_m este intre
01.01.2008 si 01.01.2009 atunci rezultatul va fi True, altfel, va fi False.
[stoc]not between 100 and 150
Daca valoarea din campul stoc nu este cuprinsa intre 100 si 150, atunci
rezultatul va fi True, altfel, va fi False.
Operatorul in se foloseste pentru a testa daca valoarea unei expresii
se gaseste intr-o lista de valori precizate:
<exp>in(<v1>,<v2>,…,<vn>)
unde <exp> reprezinta expresia a carei valoare se testeaza, iar
<v1>, <v2>, …, <vn> reprezinta lista de valori. Constantele <v1>,
<v2>, …, <vn> trebuie sa fie de caelasi tip cu rezultatul expresiei
<exp>. Daca rezultatul expresiei este egal cu una dintre valorile din
lista, atunci rezultatul furnizat de operator va fi True, altfel va fi
False.
Exemple: [den_mat] in (“pixuri”,”creioane”)
Daca numele materialului memorat in campul den_mat este Pixuri
sau Creioane atunci rezultatul va fi True, altfel va fi False.
[cod_mat] not in (100, 200, 300)
Daca identificatorul codului din campul cod_mat nu este 100, 200
sau 300 atunci rezultatul va fi True, altfel va fi False.