Sql – Valor NULL i funcions estàndards

711 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
711
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Sql – Valor NULL i funcions estàndards

  1. 1. SQL – Unitat didàctica 3 Miriam Clavé Ibarz Departament: Informàtica Cicle: Desenvolupament d’Aplicacions Informàtiques (Grau Superior) Crèdit C3: Anàlisi i disseny de base de dades Curs: 2008/2009 5 de desembre 2008
  2. 2. SQL – UD 3 <ul><li>Valor NULL </li></ul><ul><ul><li>Concepte </li></ul></ul><ul><ul><li>Expressions IS NULL, IS NOT NULL </li></ul></ul><ul><li>Funcions estàndard SQL </li></ul><ul><ul><li>Matemàtiques: ABS, SIN, COS, POWER, EXP, SQRT, LOG </li></ul></ul><ul><ul><li>De cadena de caràcters: SPACE, LENGHT, LEFT, RIGHT, LOWER, UPPER, SUBSTRING, LTRIM, RTRIM, REVERSE </li></ul></ul><ul><ul><li>De data i hora: DATEPART </li></ul></ul>
  3. 3. SQL – UD 3. Valor NULL <ul><li>Quan definim un camp com a valor NULL vol dir: </li></ul><ul><ul><li>Que és un valor desconegut o que no existeix. </li></ul></ul><ul><li>Utilitzem NULL quan alguna tupla ha de tenir algun o alguns atributs no coneguts. </li></ul><ul><li>El valor NULL NO és: </li></ul><ul><ul><li>Equivalent a cero. </li></ul></ul><ul><ul><li>Ni és una cadena de caràcters buida. </li></ul></ul>
  4. 4. SQL – UD 3. Valor NULL <ul><li>El resultat de qualsevol expressió aritmètica amb null és null. </li></ul><ul><ul><li>Exemple: 5 + null retorna null </li></ul></ul><ul><li>Qualsevol funció ignora els null excepte COUNT, REPLACE, CONCAT i GROUPING. </li></ul><ul><ul><li>Per exemple, si tenim un sumatori on hi ha valors nulls o no hi ha valors, amb la funció SUM el resultat es NULL. </li></ul></ul>
  5. 5. SQL – UD 3. Valor NULL <ul><li>Qualsevol comparació amb null retorna unknown. </li></ul><ul><ul><li>Exemples: 5 < null o null <> null o null = null </li></ul></ul><ul><li>Comportament dels operadors lògics amb unknown : </li></ul><ul><ul><li>OR: ( unknown or true ) = true , ( unknown or false ) = unknown ( unknown or unknown) = unknown </li></ul></ul><ul><ul><li>AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown </li></ul></ul><ul><ul><li>NOT : ( not unknown) = unknown </li></ul></ul>
  6. 6. SQL – UD 3 NULL – NOT NULL <ul><li>Les columnes poden acceptar o no valors NULL. </li></ul><ul><ul><li>Si la definició d’una columna només té la paraula clau NULL, accepta valors NULL. </li></ul></ul><ul><ul><li>Si la definició d’una columna conté la clàusula NOT NULL, no es poden inserir files que tinguin el valor NULL en aquella columna. </li></ul></ul><ul><li>Les columnes definides com a primary key mai poden acceptar valors NULL. </li></ul><ul><li>Si s’insereix una fila, però no s’inclou cap valor per a una columna que permet valors NULL, normalment, el motor de la BD proporcionarà el valor NULL. </li></ul><ul><li>Una columna definida amb la paraula clau NULL també accepta una entrada explícita de NULL per part de l’usuari, independentment del tipus de dades definit. </li></ul><ul><li>El valor NULL no s’ha de posar entre cometes ja que no serà interpretat com a un valor NULL, sinó como la cadena de caràcters &quot;NULL&quot;. </li></ul><ul><li>El valor NULL és una paraula reservada. </li></ul>
  7. 7. SQL – UD 3 Definició en una BD <ul><li>Per definir si una columna acceptarà o no valors null se fa amb les restriccions NULL o NOT NULL. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>CREATE TABLE Alumnes ( </li></ul></ul></ul><ul><ul><ul><li>idalumne serial primary key, </li></ul></ul></ul><ul><ul><ul><li>nom varchar (20), </li></ul></ul></ul><ul><ul><ul><li>edat int, </li></ul></ul></ul><ul><ul><ul><li>coeficient int NOT NULL </li></ul></ul></ul><ul><ul><ul><li>); </li></ul></ul></ul><ul><li>Per defecte estan definides com a NULL. </li></ul>
  8. 8. SQL – UD 3 IS NULL – IS NOT NULL <ul><li>El predicat IS NULL pot ser utilitzat per comprovar si hi ha valors null. </li></ul>FALSE FALSE TRUE NULL FALSE TRUE IS NULL TRUE FALSE FALSE NULL TRUE TRUE IS NOT NULL
  9. 9. SQL – UD 3. Exemples IS NULL – IS NOT NULL <ul><li>Podem llistar els clients que no tenen telèfon. </li></ul><ul><ul><ul><li>SELECT nom, poblacio </li></ul></ul></ul><ul><ul><ul><li>FROM clients </li></ul></ul></ul><ul><ul><ul><li>WHERE telefon IS NULL ; </li></ul></ul></ul><ul><li>Llistar els clients que tenen assignat un nombre de fills. </li></ul><ul><ul><ul><li>SELECT nom, estatcivil, poblacio </li></ul></ul></ul><ul><ul><ul><li>FROM clients </li></ul></ul></ul><ul><ul><ul><li>WHERE nfills IS NOT NULL; </li></ul></ul></ul>
  10. 10. SQL – UD 3. Funció ABS <ul><li>ABS(n) - Retorna el valor absolut de n. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT ABS(2); </li></ul></ul></ul><ul><ul><ul><ul><li>+--------+ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| ABS(2) | </li></ul></ul></ul></ul><ul><ul><ul><ul><li>+--------+ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| 2 | </li></ul></ul></ul></ul><ul><ul><ul><ul><li>+--------+ </li></ul></ul></ul></ul><ul><ul><ul><li>SELECT ABS(-32); </li></ul></ul></ul><ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| ABS(-32) | </li></ul></ul></ul></ul><ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| 32 | </li></ul></ul></ul></ul><ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul></ul>
  11. 11. SQL – UD3 Funcions SIN I COS <ul><li>SIN(n) – Retorna el sinus de n. On n ve donat amb radians. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT SIN(PI()); </li></ul></ul></ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul><ul><ul><ul><li>| SIN(PI()) | </li></ul></ul></ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul><ul><ul><ul><li>| 0.000000 | </li></ul></ul></ul><ul><ul><ul><li>+-----------+ </li></ul></ul></ul><ul><li>COS(n) – Retorna el cosinus de n. On n ve donat amb radians. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><li>SELECT COS(PI()); </li></ul></ul><ul><ul><li>+-------------+ </li></ul></ul><ul><ul><li> | COS(PI()) | </li></ul></ul><ul><ul><li>+-------------+ </li></ul></ul><ul><ul><li> | -1.000000 | </li></ul></ul><ul><ul><li>+-------------+ </li></ul></ul>
  12. 12. SQL – UD 3. Funció POWER <ul><li>POWER(x,y) – Retorna el valor de x elevat a la potencia y. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT POWER(2,2) o SELECT POW(2,2) </li></ul></ul></ul><ul><ul><ul><li>+---------------+ </li></ul></ul></ul><ul><ul><ul><li>| POWER(2,2) | </li></ul></ul></ul><ul><ul><ul><li>+---------------+ </li></ul></ul></ul><ul><ul><ul><li>| 4.000000 | </li></ul></ul></ul><ul><ul><ul><li>+---------------+ </li></ul></ul></ul>
  13. 13. SQL – UD 3. Funció EXP <ul><li>EXP(n) – Retorna el valor del nombre e elevat a la potència n. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT EXP(2); </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| EXP(2) | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| 7.389056 | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul>e ≈ 2,7182 <ul><ul><ul><li>SELECT EXP(-2); </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| EXP(-2) | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| 0.135335 | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul>
  14. 14. SQL – UD 3. Funció SQRT <ul><li>SQRT(n) – Retorna l’arrel quadrada no negativa de n. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT SQRT(20); </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| SQRT(20) | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| 4.472136 | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul>
  15. 15. SQL – UD 3. Funció LOG <ul><li>LOG(n) – Retorna el logaritme natural de n. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LOG(2); </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| LOG(2) | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| 0.693147 | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul>SELECT LOG(-2); +----------+ | LOG(-2) | +----------+ | NULL | +----------+
  16. 16. SQL – UD 3 Funcions SPACE i LENGTH <ul><li>SPACE(n) – Retorna una cadena que consisteix en n caràcters espai. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT SPACE(6); </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| SPACE(6) | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><ul><ul><li>| | </li></ul></ul></ul><ul><ul><ul><li>+------------+ </li></ul></ul></ul><ul><li>LEN(str) – Retorna la longitud de la cadena str. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LEN('text'); </li></ul></ul></ul><ul><ul><ul><li>+-------------------+ </li></ul></ul></ul><ul><ul><ul><li>| LEN('text') | </li></ul></ul></ul><ul><ul><ul><li>+-------------------+ </li></ul></ul></ul><ul><ul><ul><li>| 4 | </li></ul></ul></ul><ul><ul><ul><li>+-------------------+ </li></ul></ul></ul><ul><ul><ul><li>SELECT LEN(poblacio) FROM clients; </li></ul></ul></ul>
  17. 17. SQL – UD3 Funcions LEFT i RIGHT <ul><li>LEFT(cadena,longitud) – Retorna els 'longitud' caràcters de l’esquerra de la 'cadena'. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LEFT('SQL amb Classe', 3); </li></ul></ul></ul><ul><ul><ul><li>+----------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| LEFT('SQL amb Classe', 3) | </li></ul></ul></ul><ul><ul><ul><li>+----------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| SQL | </li></ul></ul></ul><ul><ul><ul><li>+----------------------------------+ </li></ul></ul></ul><ul><li>RIGHT(cadena,longitud) – Retorna els 'longitud' caràcters de la dreta de la 'cadena'. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT RIGHT('SQL amb Classe', 10); </li></ul></ul></ul><ul><ul><ul><li>+------------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| RIGHT('SQL amb Classe', 10) | </li></ul></ul></ul><ul><ul><ul><li>+------------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| amb Classe | </li></ul></ul></ul><ul><ul><ul><li>+------------------------------------+ </li></ul></ul></ul>
  18. 18. SQL – UD 3 Funcions LOWER i UPPER <ul><li>LOWER(str) – Retorna la cadena str amb tots els caràcters canviats a minúscules. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LOWER(‘HOLA’); </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul><ul><ul><ul><li>| LOWER(‘HOLA‘) | </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul><ul><ul><ul><li>| hola | </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul><ul><li>UPPER(str) - Retorna la cadena str amb tots els caràcters canviats a majúscules. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT UPPER(‘hola’); SELECT UPPER(provincia) FROM clients; </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul><ul><ul><ul><li>| UPPER(‘hola‘) | </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul><ul><ul><ul><li>| HOLA | </li></ul></ul></ul><ul><ul><ul><li>+---------------------+ </li></ul></ul></ul>
  19. 19. SQL – UD 3 Funció SUBSTRING <ul><li>SUBSTRING(cadena,posicio,longitud) - Retorna una subcadena de ‘longitud’ caràcters de la 'cadena' començant per la 'posicio’. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT SUBSTRING('SQL amb Classe',5,3); </li></ul></ul></ul><ul><ul><ul><li>+--------------------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| SUBSTRING('SQL amb Classe',5,3) | </li></ul></ul></ul><ul><ul><ul><li>+--------------------------------------------+ </li></ul></ul></ul><ul><ul><ul><li>| amb | </li></ul></ul></ul><ul><ul><ul><li>+-------------------------------------------+ </li></ul></ul></ul>
  20. 20. SQL – UD 3 Funcions LTRIM i RTRIM <ul><li>LTRIM(str) – Retorna la cadena str amb els caràcters d’espai inicials eliminats. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LTRIM(‘ barbar'); </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul><ul><ul><ul><li>| LTRIM(' barbar') | </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul><ul><ul><ul><li>| barbar | </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul><ul><li>RTRIM(str) - Retorna la cadena str amb els caràcters d’espai finals eliminats. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT LTRIM('barbar '); </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul><ul><ul><ul><li>| LTRIM('barbar ') | </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul><ul><ul><ul><li>| barbar | </li></ul></ul></ul><ul><ul><ul><li>+----------------------+ </li></ul></ul></ul>
  21. 21. SQL – UD 3 Funció REVERSE <ul><li>REVERSE(str) – Retorna la cadena str amb l’ordre dels caràcters invertits. </li></ul><ul><ul><li>Exemple: </li></ul></ul><ul><ul><ul><li>SELECT REVERSE('abc'); </li></ul></ul></ul><ul><ul><ul><li>+--------------------+ </li></ul></ul></ul><ul><ul><ul><li>| REVERSE(‘abc') | </li></ul></ul></ul><ul><ul><ul><li>+-------------------+ </li></ul></ul></ul><ul><ul><ul><li>| cba | </li></ul></ul></ul><ul><ul><ul><li>+-------------------+ </li></ul></ul></ul><ul><ul><ul><li>SELECT REVERSE(provincia) FROM clients; </li></ul></ul></ul>
  22. 22. SQL – UD 3 Funció DATEPART <ul><li>DATEPART(datepart, date). On: </li></ul><ul><ul><li>Datepart – és la part de date (una data o hora) </li></ul></ul><ul><ul><li>date – la data de la qual volem la informació. </li></ul></ul>qq, q quarter wk, ww week hh hour mi, n minute ss, s second ms milisecond mcs microsecond ns nanosecond dw weekday dd, d day dy, y dayofyear mm, m month yy, yyy year Abreviatura datepart
  23. 23. SQL – UD 3 Funció DATEPART <ul><li>Exemples </li></ul><ul><ul><li>SELECT DatePart(yyyy,’18-08-2007’); </li></ul></ul><ul><ul><li>Resultat: 2007 </li></ul></ul><ul><ul><li>SELECT DatePart(yy,’18-08-2007’); </li></ul></ul><ul><ul><li>Resultat: 07 </li></ul></ul><ul><ul><li>SELECT DatePart(q,’02-12-1998’); </li></ul></ul><ul><ul><li>Resultat: 4 </li></ul></ul>
  24. 24. SQL – UD 3 “Libros en pantalla” <ul><li>L’entorn SQL Server Management Studio, proporciona uns documents anomenats libros en pantalla on es pot consultar totes les funcions entre altres coses. </li></ul><ul><li>Els trobem a: Ayuda->Contenido </li></ul>
  25. 25. Bibliografia <ul><li>SQL.org </li></ul><ul><li>Curs SQL </li></ul>

×