Funciones de una Fila.pptx

download Funciones de una Fila.pptx

of 41

Transcript of Funciones de una Fila.pptx

  • 8/18/2019 Funciones de una Fila.pptx

    1/41

    Unidad de Aprendizaje N°1

    Construyendo Consultas SQL

    Aprendizaje Esperado :Construir sentencias de recuperación y manipulación, de

    una base de datos relacional, según sintais, restricciones

    del lenguaje, re!uisitos de la lógica negocios, re!uisitos dein"ormación y sistema de gestión de base de datos#

      ELECT employee_id,TRUNC(salary/1000),

    TO_CHAR(ROUND(salary (  U! TR(salary,1,1)/100)),

    "#$$$,$$$"),

      ROUND(salary N%L(&ommissio'_p&,0))

    RO* employees+

  • 8/18/2019 Funciones de una Fila.pptx

    2/41

    Objetivos de la Clase

    • Describir las características generales de las Funciones SQL.

    • Describir las características de las Funciones SQL que operan con una fila.

    • Describir los tipos de Funciones que operan con una sola fila: de

    caracteres nu!"ricas de fec#as de conversi$n % generales.

    • &sar Funciones de Caracteres en sentencias SQL.• &sar Funciones de '(!eros en sentencias SQL.

    • &sar Funciones de Conversi$n en sentencias SQL.

    • &sar Funciones de )enerales en sentencias SQL.

  • 8/18/2019 Funciones de una Fila.pptx

    3/41

    RE ULTADO

    UNC-N

    Funciones SQL

    Reali.a 'a a&&i'

    Arme'o 1

    Arme'o 2

    Arme'o N

    A&&i'

  • 8/18/2019 Funciones de una Fila.pptx

    4/41

    Funciones SQL

    UNCONE

    UNCONE DE

    UNA LA

    UNCONE DE

    *3LT4LE

    LA

  • 8/18/2019 Funciones de una Fila.pptx

    5/41

    • Sinta*is:

    Funciones SQL de una Fila

    nombre_función [(argumento1, argumento2 , …)]

    Se pueden usar en lascláusulas SELECT,

    WE!E " #!$E! %&

    'can sobre cada fila*ue la senencia S+L

    recupera

    'cepan arumenos "reornan un -alor 

    .anipulan /em de daos 0ueden modificar el ipode daos !eornan un -alor porfila

    0ueden ser anidadas

  • 8/18/2019 Funciones de una Fila.pptx

    6/41

    Funciones SQL de una Fila

    5ENERAL

    CARACTER

    ECHA

    CON%ER -N

    UNCONE 6UE

    O4ERAN CON UNA

    LA

    N3*ERO

  • 8/18/2019 Funciones de una Fila.pptx

    7/41

    Funciones de Caracteres

    •  +ceptan co!o argu!entos de entrada datos del tipo caracter %retornan datos del tipo caracteres $ n(!eros.

    UNCONE DE

    CARACTERE

    UNCONE DE

    CON%ER -N

    *A73 CULA O

    *N3 CULA

    UNCONE DE

    TRAN OR*AC-N O

    *AN4ULAC-N

  • 8/18/2019 Funciones de una Fila.pptx

    8/41

    Funciones de Caracteres

    • Funciones de conversi$n del te*to a !a%(sculas % !in(sculas:

    • Funciones de ree!pla,o o !anipulaci$n de caracteres:

    L#WE!(columna|expresión) 100E!(columna|expresión)232TC'0(columna|

    expresión)

    C#3C'T(columna1|expresión1,

      columna2|expresión2 )S1%ST!(columna|expresión,m[ ,n ] ) LE34T(columna|expresión)

    !T!2.(columna5e6presión )

    LT!2.(columna5e6presión )

    !E0L'CE(columna|expresión,

    texto_a_buscar, texto_reemplazo)T!2.(columna|expresión)

    L0'$(columna|expresión,n,‘caracter_de_relleno’ )

    !0'$(columna|expresión,n,‘caracter_de_relleno’ )

    23ST!(columna|expresión,

    ‘texto_buscado‘, [,m] ],n] )

    T!2.(‘caracter’ 7!#. columna|expresión)

  • 8/18/2019 Funciones de una Fila.pptx

    9/41

    Funciones de Caracteres

    • -je!plo:

    SELECT las_'ame, U44ER(las_'ame), 8o9_id, LO:ER(8o9_id), NTCA4(8o9_id)RO* employees+

     ……………………………………………………………………………………………………………

     ……………………………………………………………………………………………………………

  • 8/18/2019 Funciones de una Fila.pptx

    10/41

    ………………………………………………………………………………………………………………………………...

    ………………………………………………………………………………………………………………………………888

    Funciones de Caracteres

    • -je!plo:

    SELECT las_'ame apellido, CONCAT("S salario es ", salary),SU!STR(las_'ame , 2,;), LEN5TH(las_'ame), NSTR(las_'ame, "a") 

    RO* employees+

  • 8/18/2019 Funciones de una Fila.pptx

    11/41

    Funciones de Caracteres

    • -je!plo:

    SELECT las_'ame

  • 8/18/2019 Funciones de una Fila.pptx

    12/41

    …………………………………………………….…….......….……… …………………..…..………………...….

    ……………………………………………………8……8888888…8……… …………………8…88………………888…8 

    Funciones de Caracteres

    • -je!plo:

    SELECT las_'ame apellido, RE4LACE(las_'ame, "A", "Hola"),  salary salario, L4AD(salary,10,""), R4AD(salary,10,"")RO* employeesORDER !7 las_'ame+

  • 8/18/2019 Funciones de una Fila.pptx

    13/41

    Funciones de '(!eros

    • anipulan n(!eros aceptan un valor nu!"rico co!o argu!ento %retornan un valor nu!"rico.

    • -je!plo:

    SELECT ROUND(12;>@B,2), ROUND(12;>@B), ROUND(12;@>@B, =1),TRUNC(12;>@B,2), TRUNC(12;>@B), TRUNC(12;>@B, =2)

    RO* DUAL+

    !#13$(columna|expresión,n) T!13C(columna|expresión,n) .#$(m,n)

  • 8/18/2019 Funciones de una Fila.pptx

    14/41

    Funciones de '(!eros

    • -je!plo:

    SELECT las_'ame, salary, *OD(salary, @000)RO* employees:HERE 8o9_id"ST_*AN"+

  • 8/18/2019 Funciones de una Fila.pptx

    15/41

    Funciones de Fec#a

    ECHA

    EN

    ORACLE

    $ebe ir enrecomillas al ser

    uili9ada en unasenencia S+L

    0or defeco se-isuali9a en el

    formao:$$;.#3;!!

    Se almacena silo,a

  • 8/18/2019 Funciones de una Fila.pptx

    16/41

    Funciones de Fec#a

    • -l for!ato de fec#a // es si!ilar al ele!ento 00 pero se puedeutili,ar para especificar diferentes siglos:

  • 8/18/2019 Funciones de una Fila.pptx

    17/41

    Funciones de Fec#as

    • 1odas las funciones de fec#as retornan un tipo de dato Fec#a e*cepto lafunci$n O'12S34-15--' que retorna un valor nu!"rico.

    S&S$'TE .#3TS_%ETWEE3(fec=a>,fec=a?)

    '$$_.#3TS(fecha,n) 3E@T_$'&(fecha,da)

    L'ST_$'&(fecha) !#13$!fecha,["formato"])

    T!13C(fec=a,["formato" ])

  • 8/18/2019 Funciones de una Fila.pptx

    18/41

    Funciones de Fec#as

    • -je!plo:

    • -je!plo 6asu!iendo que la fec#a actual 6S0SD+1-7 es 89;8

  • 8/18/2019 Funciones de una Fila.pptx

    19/41

    Funciones de Fec#as

    • Las fec#as en la 4ase de Datos se al!acenan co!o n(!eros por lotanto se pueden reali,ar c>lculos usando operadores arit!"ticos.

    • -je!plo:

    SELECT las_'ame, Gire_dae, ROUND((S7SDATE = Gire_dae) / ) 

  • 8/18/2019 Funciones de una Fila.pptx

    20/41

    Conversi$n de 1ipos de Datos

    CON%ER -N DE

    T4O DE DATO

    CON%ER -N DE T4O

    DE DATO *4LCTA

    CON%ER -N DE T4O

    DE DATO EF4LCTA

  • 8/18/2019 Funciones de una Fila.pptx

    21/41

    Conversi$n de 1ipos de Datos ?!plícita

    • -je!plo:

    SELECT employee_id, Gire_daeRO* employees:HERE Gire_dae I "0@/0;/200"

    ORDER !7 Gire_dae+

      DE A

    B'!C'!? o C'! 31.%E!B'!C'!? o C'! $'TE31.%E! B'!C'!?$'TE B'!C'!?

  • 8/18/2019 Funciones de una Fila.pptx

    22/41

    Conversi$n de 1ipos de Datos -*plícita

    N3*ERO CARJCTER ECHA

    T#_C'!(nmero5fec=a[, formao_con-ersión ])

    T#_31.%E!(caracer [,  formao_con-ersión ])

    T#_$'TE(caracer[,  formao_con-ersión ])

  • 8/18/2019 Funciones de una Fila.pptx

    23/41

    &so de Funci$n 1O3C2+/ con Fec#as

    • 1O3C2+/ puede convertir la fec#a desde su for!ato por defecto a unfor!ato especificado por el usuario.

    • @rincipales ele!entos de for!atos de fec#as v>lidos:

    • @rincipales ele!entos de #oras v>lidos para los for!atos de fec#as:

    • Sufijos en los ele!entos de fec#as % #oras para !odificar la for!a devisuali,aci$n:

    TO_CHAR(Ke&Ga, " Kormao_&o'ersi'")

     &&&& &E'! .. .#3T .#3 $& $'& $$

    '. o

    0.

    .#3 >? ?D .2 SS 8 , Fcaracteres_a_#isuali$ar  F

    S0S0T o

    TS0

  • 8/18/2019 Funciones de una Fila.pptx

    24/41

    …………………………………………………….…….......….…….…………..…………………..…..………………...….

    ……………………………………………………8……8888888…8……8…………88…………………88…88………………888…

    &so de Funci$n 1O3C2+/ con Fec#as

    • -je!plo:

    SELECT las_'ame

  • 8/18/2019 Funciones de una Fila.pptx

    25/41

    &so de Funci$n 1O3C2+/ con '(!eros

    • 1O3C2+/ puede convertir los valores nu!"ricos a una cadena decaracteres en un for!ato especificado por el usuario.

    • @rincipales ele!entos de for!atos de n(!eros v>lidos:

    TO_CHAR('mero, " Kormao_&o'ersi'")

    ELE*ENT

    O

    DE CR4C-N

    EE*4LO

    (&o' el alor

    12;)

    RE ULTADO

    G !epresena un nmero8 GGGGGG  >?HD

    I 7uer9a a *ue se muesre un cero IGGGGG  II>?HD 

    J Coloca un sino dólar8 JGGGGGG  J>?HDL Coloca el s/mbolo local de la moneda8 LGGGGGG  J>?HD

    8 Coloca un puno decimal en la posiciónespecificada8

    GGGGGG8GG >?HD8II

    , Coloca un separador de miles8 GG,GGG  >,?HD

  • 8/18/2019 Funciones de una Fila.pptx

    26/41

    &so de Funci$n 1O3C2+/ con '(!eros

    • -je!plo:

    SELECT salary, TO_CHAR(salary, "#$$,$$$>00") ormao1,TO_CHAR(salary, "#00$$,$$$>00") ormao2,

      TO_CHAR(salary, "#$$5$$$D00") ormao;,TO_CHAR(salary, "#$$$$$%000") ormao

    RO* employees:HERE las_'ame "Er's"+

  • 8/18/2019 Funciones de una Fila.pptx

    27/41

    Funciones +nidadas

    • Las funciones que operan sobre un fila se pueden anidar sin lí!ites.• Se eval(an desde el nivel !>s interno #asta el nivel !>s e*terno.

    • -je!plo:

    ;( 2( 1(&ol,ar1), ar2), ar;)

    SELECT las_'ame, deparme'_id, U44ER(CONCAT(SU!STR(las_'ame, 1, ), "_&Gile"))RO* employees:HERE deparme'_id 9e?ee' 10 AND 0+

  • 8/18/2019 Funciones de una Fila.pptx

    28/41

    Funciones )enerales

    • 1rabajan con cualquier tipo de dato % per!iten definir valores a utili,ar en elcaso de que las e*presiones to!en valor nulo.

    NVL(expr1, expr2)   NVL2(expr1, expr2, expr3))

    NULLIF(expr1, expr2)   COALESCE(expr1, expr2, …, exprn)

  • 8/18/2019 Funciones de una Fila.pptx

    29/41

    &so de Funci$n 'AL

    • Si expr1  es nula devuelve el valor de expr2 . Si e*pr; no es nula lafunci$n retorna el valor de expr1. +!bos deben ser del !is!o tipo dedato.

    N%L(ePpr1 , ePpr2 )

    T4O DE DATO A E%ALUAR 4OR

    LA UNC-N

    EE*4LO DE CON%ER -N

    31.%E! 3BL(commission_pc,I)

    $'TE 3BL(=ire_dae, I>;3#B;IK)

    C'! o B'!C'!? 3BL(T#_C'!(manaer_id), 3o posee efe)

  • 8/18/2019 Funciones de una Fila.pptx

    30/41

    ………………………………………….…….…………..………………..………………………...….

    ………………………………………….…….…………..………………..………………………...….

    ……………………………………….…….…………..…………………..………………………...….

    ……………………………………….…….…………..…………………..………………………...….

    &so de Funci$n 'AL

    • -je!plo:

    SELECT las_'ame, salary, N%L(&ommissio'_p&, 0) 

  • 8/18/2019 Funciones de una Fila.pptx

    31/41

    &so de Funci$n 'AL<

    • -val(a expr1. Si "sta no es 'ula la funci$n retorna expr2 . Si expr1 esnula entonces la funci$n retorna la e xpr%.

    • -je!plo:

    N%L2(ePpr1 , ePpr2 , ePpr; )

    SELECT employee_id, salary, &ommissio'_p&,N%L2(&ommissio'_p&, "SALAROQCO*SON", "SOLO SALARO") AS

  • 8/18/2019 Funciones de una Fila.pptx

    32/41

    &so de Funci$n '&LL?F

    • Co!para dos e*presiones 6expr1 & expr2 7. Si son iguales la funci$nretorna 'ulo.

    • -je!plo:

    NULL(ePpr1 , ePpr2 )

    SELECT Kirs_'ame, LEN5TH(Kirs_'ame) 

  • 8/18/2019 Funciones de una Fila.pptx

    33/41

    &so de Funci$n CO+L-SC-

    • /etorna la pri!era e*presi$n no nula de la lista.

    • -je!plo:

    COALESCE(ePpr1, ePpr2, , ePpr')

    SELECT las_'ame, &ommissio'_p&, ma'aer_id,  COALESCE(&ommissio'_p&, ma'aer_id, $$$$) 

  • 8/18/2019 Funciones de una Fila.pptx

    34/41

    -*presiones Condicionales

    EF4RE ONE

    CONDCONALE

    CA DE

    DECODE

  • 8/18/2019 Funciones de una Fila.pptx

    35/41

    &so de -*presiones C+S-

    • Facilita las consultas condicionales #aciendo el trabajo de lainstrucci$n ?FB12-'B-LS-.

    • -je!plo:

    CA E Ppr :HEN Ppr1_&ompara&i0' THEN Ppr1_r s/l(ado 

    S :HEN Ppr2_&ompara&i0' THEN Ppr2_r s/l(ado 

    :HEN Ppr'_&ompara&i0' THEN Ppr'_r s/l(ado

      EL E Ppr_ ls

    END 

    ELECT employee_id, 8o9_id, deparme'_id, salary,

      CA E 8o9_id :HEN "4R_RE4" THEN 1>1@salary

      :HEN "*_*AN" THEN 1>20salary

      EL E salary END < alario '&reme'ado<

    RO* employees

    :HERE deparme'_id N(0, 20, 110)+

  • 8/18/2019 Funciones de una Fila.pptx

    36/41

    &so de -*presiones C+S-

    • Facilita las consultas condicionales #aciendo el trabajo de lainstrucci$n ?FB12-'B-LS-.

    • Sinta*is:

    C'SE expr WE3 expr1_comparación TE3 expr1_resultado [ WE3 expr2_comparación TE3 expr2_resultado 

    WE3 exprn_comparación TE3 exprn_resultado  ELSE expr_else ]E3$ 

  • 8/18/2019 Funciones de una Fila.pptx

    37/41

    &so de -*presiones C+S-

    • -je!plo:

      ELECT employee_id, 8o9_id, deparme'_id, salary,

      CA E 8o9_id :HEN "4R_RE4" THEN 1>1@salary

      :HEN "*_*AN" THEN 1>20salary

      EL E salary END < alario '&reme'ado<

    RO* employees

    :HERE deparme'_id N(0, 20, 110)+

  • 8/18/2019 Funciones de una Fila.pptx

    38/41

    &so de -*presiones C+S-

    • -je!plo:

      ELECT las_'ame, salary,

    (CA E :HEN salary V @000 THEN "!a8o"

      :HEN salary V 10000 THEN "*edio"

      :HEN salary V 20000 THEN "!e'o"

      EL E "EP&ele'e" END) 

  • 8/18/2019 Funciones de una Fila.pptx

    39/41

    Uso de Función DECODE

    • Facilita las consultas condicionales haciendo el trabajo de lainstrucción IF-THEN-ELSE o de las e!resiones C"SE#

    • Sintais$

    $EC#$E(columna5e6presión, b's(ueda1, resultado1

      [, b's(ueda2 , resultado2  … , ][resultado por defecto]

  • 8/18/2019 Funciones de una Fila.pptx

    40/41

    Uso de Función DECODE

    • Eje%!lo$

      ELECT employee_id, 8o9_id, deparme'_id, salary,

      DECODE (8o9_id, "4R_RE4", 1>1@salary,

      "*_*AN", 1>20salary,

      salary) < alario '&reme'ado<

    RO* employees

    :HERE deparme'_id N(0, 20, 110)+

  • 8/18/2019 Funciones de una Fila.pptx

    41/41

    /esu!en de la Clase

    • Se describieron las características generales de las Funciones SQL.• Se describieron las características de las Funciones SQL que operan con

    una fila.

    • Se describieron los tipos de Funciones que operan con una sola fila % sus

    características particulares

    • Se e*plic$ c$!o usar Funciones de Caracteres en sentencias SQL.

    • Se e*plic$ c$!o usar Funciones de '(!eros en sentencias SQL.

    • Se e*plic$ c$!o usar Funciones de Conversi$n en sentencias SQL.

    • Se e*plic$ c$!o usar Funciones de )enerales en sentencias SQL#