Manual de Introducción SQL

download Manual de Introducción SQL

of 19

Transcript of Manual de Introducción SQL

  • 8/18/2019 Manual de Introducción SQL

    1/19

    Manual de introducción SQL -Centro deTecnología Informática-

    web1.cti.unav.es/cti/manuales/intro_sql/indice.html 

    Universidad de Navarra, abril 1996  

    1. CONCEPTO DE BASE DE DATOS 

    2. EL LENGUAJE DE GESTIóN DE BASES DE DATOS SQL 

    1. Estructura de una base de dats 

    2. Creac!ón de una tab"a 

    #. Intrducc!ón de "a !n$r%ac!ón 

    &. B's(ueda de !n$r%ac!ón en una tab"a

    #. B'SQUEDA DE IN)O*+ACIóN EN UNA TABLA 

    1. Cnd!c!nes %'"t!,"es ,ara una b's(ueda

    2. B's(uedas ,r ,a"abras !nc%,"etas 

    #. Có% se rdena e" resu"tad de una b's(ueda 

    &. Có% se e-!tan "as "neas re,et!das en un "!stad

    &. B'SQUEDA DE IN)O*+ACIóN EN /A*IAS TABLAS0 JOIN QUE* 

    . E3P*ESIONES A*IT+4TICAS )UNCIONES PA*A EL +ANEJO DE TE3TO 

    1. E5,res!nes ar!t%4t!cas 

    2. )unc!nes ,ara e" %ane6 de te5ts

    7. )O*+ATO DE )EC8A N'+E*O 

    1. )r%at de $ec9a 

    2. O,erac!nes ar!t%4t!cas cn $ec9as

    :. )UNCIONES PA*A EL +ANEJO DE G*UPOS DE )ILAS 

    1. Cnd!c!nes de b's(ueda de un ;ru, de "neas0 8A/ING

  • 8/18/2019 Manual de Introducción SQL

    2/19

    1. Có% %d!$!car "a ca,ac!dad de "s dats de una c"u%na

    11. /ISTAS ALTE*NATI/AS DE IN)O*+ACIóN 

    1. B's(ueda de !n$r%ac!ón en un -!e@ 

    2. Ase;urar "a !nte;r!dad de "a !n$r%ac!ón en "s -!e@s

    CURSO 95/96 Universidad de Navarra 

    Introducción a

    SQL y ORACLE

    21/9/95

    CONCEPTO DE !SE DE D!TOSE" cnce,t bs!c en e" a"%acena%!ent de dats es e" re;!str. E" re;!str a;ru,a "a !n$r%ac!ónasc!ada a un e"e%ent de un cn6unt est c%,uest ,r ca%,s. As ,r e6e%," un re;!str

    crres,nd!ente a un "!br n es %s (ue un e"e%ent de un cn6unt0 b!b"!teca e"enc b!b"!;r$!cetc. A su -e> ese re;!str cnt!ene tda "a !n$r%ac!ón asc!ada a" "!br c"as!$!cada en ca%,s0 ttu"autr $ec9a de ed!c!ón etc.

    Se puede hablar de propiedades características o camposcaracterísticos, y propiedades secundarias o campos secundarios e!"n de#nan o co$ple$enten el ele$ento repreentado por elre!itro%&or e'e$plo( el re!itro e$pleado tiene lo i!uiente ca$po) *+I( +o$bre( Apellido( Edad( &oblación( Sueldo% Lo ca$po *+I( +o$bre y

    Apellido on ele$ento o ca$po caracter,tico% Lo retante onecundario%-n #chero o tabla e un con'unto de re!itro ho$o!.neo con la$i$a etructura)

    Cuando e tienen aria tabla o #chero con al!"n ca$po en co$"n(entonce pueden relacionare y contituyen una bae de datorelacional)

    http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC27http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC28http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC29http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC29http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC30http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC27http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC28http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC29http://www.unav.es/cti/manuales/Intro_SQL/intro_SQL.html#RTFToC30

  • 8/18/2019 Manual de Introducción SQL

    3/19

    En el e'e$plo anterior( puede e0traere la inor$ación relacionada enla do tabla( por $edio del ca$po co$"n DNI por e'e$plo)34ucar en la tabla lo pueto de traba'o dee$peado y la anti!6edad dele$pleado con no$bre 7 Lui3 8ata hace un tie$po( y ie$pre ue e deeara una bae de datoepecial$ente dieada( e utili:aban bae de dato con etructura 'er;ruica o de red( $ediante anillo interconectado% La inor$acióna,n et; or!ani:ada en anillo >uetiondo?n@@u. a'utadoretraba'an en alencia3 pero ante otra pre!unta co$o3>>uetiondo?n@@Cu;nta perona tiene contratada $i e$preaB3 la b"uedae hace batante $; di,cil%Ade$;( la bae de dato en red y 'er;ruica reuieren un dieoepec,#co a'utado a la conulta( por lo ue no uele uare antela di#cultade t.cnica ue plantea u dearrollo%-n e'e$plo de bae de dato 'er;ruica( aunue no baada enanillo $"ltiple( er,a el de una bae de dato contruida e!"n laor!ani:ación 'er;ruica de la pie:a ue co$ponen un eh,culo)

  • 8/18/2019 Manual de Introducción SQL

    4/19

    El $odelo relacional( baado en tabla( tiene en la actualidad unadiuión $ayor% La b"ueda pueden er $ucho $; e0ible(baada en cualuier ca$po

  • 8/18/2019 Manual de Introducción SQL

    5/19

    bae de dato propia$ente dicha% El uuario accede con al!uno de lopro!ra$a cliente diponible para conultar Oracle%En ete $anual e e0plica co$o e$plear SQL para)H Crear y $odi#car la etructura de una tabla de dato%H Seleccionar inor$ación de una tabla%

    H Aadir dato a una tabla%H Introducir inor$ación en una tabla%H Reali:ar conulta entre tabla con ca$po co$une%

    E%tructura de una &a%e de dato%Una base de dats Orac"e est $r%ada ,r tab"as. Ls e6e%,"s de este %anua" se basan en "as tab"as dede,arta%ents *E&  e%,"eads EF& de una e%,resa.

    DEPT' 

    EMP' 

    Creación de una ta&la

    Antes de cua"(u!er cnsu"ta a una base de dats debe crearse una tab"a e !ntrduc!r "a !n$r%ac!ón. Ennuestr cas crea%s "as ds tab"as (ue -a%s a ut!"!>ar c% e6e%,"0CREAE A4LE *E&

  • 8/18/2019 Manual de Introducción SQL

    6/19

    un e'e$plo de co$o ORACLE anali:a lo alore ue e introducen encada ca$po y co$prueba ue e cu$ple lo epeci#cado%Aunue el n"$ero $;0i$o de caractere de#nido para un ca$po eapor e'e$plo 1J( i ólo e ocupan J( ORACLE olo utili:a cuatro endico% Lo alore nulo no ocupan epacio%

    Introducción de la informaciónTan ,rnt c% se 9a cread "a tab"a ,uede c%en>arse a !ntrduc!r "neas re;!strs de !n$r%ac!ón%ed!ante c%and I+SER0I+SER I+O *E& AL-ES

  • 8/18/2019 Manual de Introducción SQL

    7/19

    &ara eleccionar deter$inado re!itro o #la de la bae de dato(debe aadire una condición con el co$ando 8ERE al uar SELEC%%%ROF)SELEC H ROF EF& 8ERE *E&+O7K 8eader

  • 8/18/2019 Manual de Introducción SQL

    8/19

    y u reultado e el i!uiente)

    Fediante lo co$ando 4EEEE+ y A+* pueden pedire datoco$prendido en un ran!o deter$inado% El e'e$plo i!uiente acilitalo el no$bre y el alario de lo e$pleado cuyo alario et.co$prendido entre T y 9)SELEC E+AFE( SAL ROF EF& 8ERE SAL 4EEE+ T A+* 9 

    El co$ando I+ per$ite eleccionar l,nea cuyo ca$po conten!a unode lo alore de una lita epeci#cada entre par.ntei)SELEC H ROF *E& 8ERE *E&+O I+

  • 8/18/2019 Manual de Introducción SQL

    9/19

    Lo operadore 4EEE+( I+ y LIUE( pueden ir precedido por +O yunido con A+* y OR( para or$ar una b"ueda tan co$pleta co$oe neceite%

    Cómo %e ordena el re%ultado de una

    &(%)uedaEn tds "s e6e%,"s 9asta a9ra "as "neas resu"tad de "as b's(uedas 9an estad en un rden a"eatr!

    deter%!nad ,r e" ,r;ra%a O*ACLE. Puede cntr"arse e" rden de "as "neas se"ecc!nadas aad!end"a ,c!ón OR*ER 4X a" $!na" de nuestr c%and SELEC.

    Co$o e'e$plo upon!a ue deea obtener una lita de lo e$pleadoue traba'an en el departa$ento K pero ordenado por u alario%Eta ordenación no et; li$itada a un orden acendente o a un "nicocriterio( a, por e'e$plo( pueden ordenare lo e$pleado por puetode traba'o( y dentro de eta ordenación < lo traba'o= por orden dealario)SELEC MO4(SAL(E+AFE ROF EF& OR*ER 4X MO4(SAL *ESC 8eader

  • 8/18/2019 Manual de Introducción SQL

    10/19

    (SQ#ED! DE IN*O+M!CIóNEN .!+I!S T!L!S' $OINQ#E+/

    8asta a9ra se 9an e$ectuad b's(uedas en una s"a tab"a ,er ,uede curr!r (ue "a !n$r%ac!ón (ue busca%s n est4 a"%acenada en una s"a tab"a. C% O*ACLE es una base de dats re"ac!na ,er%!tese"ecc!nar !n$r%ac!ón de %s de una tab"a c%b!nar "s resu"tads en un "!stad. La b's(uedac%b!nada en %s de una tab"a se den%!na b's(ueda re"ac!na"  join query.

    En la bae de dato 'er;ruica y en anillo( la relacione onet;tica porue et;n perecta$ente de#nida en la etructura de labae de dato dede el dieo( por lo ue la conulta deben e!uiree $i$o eue$a% En la bae de dato relacionale co$oORACLE( la relacione on din;$ica e etablecen en el $o$entode la conulta( y e poible e0traer inor$ación e!"n conen!a encada cao%&or e'e$plo( i e deea aber el no$bre del departa$ento dondetraba'a deter$inado e$pleado( y e intenta bucar en la tabla EF& ord$aculine@@ de departa$ento( epoible relacionar la do tabla% &uede hacere con do b"ueda)SELEC E+AFE( *E&+OROF EF&8ERE E+AFE 7 PAR*P 

    SELEC LOC ROF *E& 8ERE *E&+O 7 K 

    &ero puede lle!are al $i$o reultado $ediante una "nica b"uedaindicando la tabla y la colu$na eparado por un punto% El e'e$ploi!uienteSELEC E+AFE(LOC ROF EF&(*E& 8ERE E+AFE7PUI+DP A+* EMP0DEPTNO 7DEPT0DEPTNO 8eader

  • 8/18/2019 Manual de Introducción SQL

    11/19

  • 8/18/2019 Manual de Introducción SQL

    12/19

    retaH producto/ diiión&OER e0ponenciaciónRO-+* redondeo

     R-+C trunca a enteroA4S alor aboluto

    *uncione% ,ara el mane5o de te3to%Las $unc!nes ar!t%4t!cas ns ,er%!ten %an!,u"ar !n$r%ac!ón nu%4r!ca de $r%a ,arec!da "as $unc!nes ,ara %ane6 de te5t character strings unctions ,er%!ten %an!,u"ar "s ca%,s (ue cnt!enen te5t.

    El e'e$plo i!uiente buca en la tabla EF& lo re!itro cuyo ca$poE+AFE uene parecido a PSC8FI*P)SELEC E+AFE ROF EF&8ERE SO-+*EG

  • 8/18/2019 Manual de Introducción SQL

    13/19

    *X 3the3 ddth 3o3 Fonth XXXX edneday the 22nd o October 199K

    O,eracione% aritm2tica% con fec7a%Ade%s de ,der dar $r%at a "a $ec9a ,ueden rea"!>arse ,erac!nes ar!t%4t!cas en "s ca%,s de$ec9as0

    SXS*AE ie$pre no da la echa del d,a

  • 8/18/2019 Manual de Introducción SQL

    14/19

    El i!uiente e'e$plo tiene co$o ob'etio aber cuanto e$pleadoet;n traba'ando en cada cate!or,a en cada departa$ento( cuantoecretario hay en el departa$ento de enta y( en eo !rupo( cu;le la u$a y $edia de lo alario)SELEC *+AFE(MO4(S-F

  • 8/18/2019 Manual de Introducción SQL

    15/19

    ORACLE reali:a la ubb"ueda ante( por ue neceita el reultadode eta para la b"ueda%Co$o e'e$plo adicional puede bucare el e$pleado ue !ana $;ue la $edia de todo lo alario de lo e$pleado)SELEC E+AFE(SAL 

    ROF EF&8ERE SAL  ar en "a tab"a de e%,"eads e" ca%, de sa"ar! en a(ue""as "neas en

    (ue e" traba6 sea $!c!n!sta. E" c%and -&*AE se escr!be se;u!d ,r "a tab"a dnde rea"!>a%s e"ca%b! ,ara !nd!car "a actua"!>ac!ón se escr!be Set se;u!d ,r e" ca%b! $!na"%ente "a cnd!c!ón,c!na" en "a (ue se !nd!can "as "neas (ue se -an a %d!$!car0-&*AE EF&SE SAL7SALY18ERE MO47PCLERCUP 8eader

  • 8/18/2019 Manual de Introducción SQL

    16/19

    orrado de regi%tro% de una ta&laPara brrar se e%,"ea "a rden *elete  se ,uede ut!"!>ar cn ?here ,ara deter%!nar "s re;!strs (uese (u!eren brrar. As ,r e6e%," ,ara brrar e" de,arta%ent &? se 9ara " s!;u!ente0*ELEE ROF *E& 8ERE *E&+O7J Cuando ORACLE ha reali:ado la orden aparece 1 record deleted%&uede pedire un litado de todo lo departa$ento paraco$probarlo)SELEC H ROF *E& 

    La condicione para todo eo co$ando de$uetran co$o SQLe$plea la $i$a inta0i tanto para la b"ueda co$o para la$anipulación de la inor$ación% En lo co$ando SELEC( -&*AE(

    I+SER y *ELEE( la condición con 8ERE e opcional%

    C!MIOS EN L! EST+#CT#+!DE #N! !SE DE D!TOS

    O*ACLE ,r,rc!na "s c%ands necesar!s (ue se neces!tan ,ara %d!$!car "a estructura de una basede dats. En esta secc!ón ut!"!>a SQL ,ara0

    H ALER A4LE A**) Aadir una colu$na a una tabla e0itente%H ALER A4LE FO*IX) 8acer una colu$na e0itente $; lar!a%Si!uiendo con lo e'e$plo anteriore( e a a au$entar la bae de

    dato $odelo para poder ai!nar e$pleado a proyecto de i!ualor$a ue hay e$pleado ai!nado a departa$ento% Se trata ende#nitia de crear una nuea tabla y practicar lo co$ando ALER A4LE en u dieo%El ca$bio en la etructura de la bae de dato e0i!e ario pao%&ri$ero( con el co$ando CREAE( hay ue aadir la tabla proyecto ala bae de dato)CREAE A4LE &ROM

  • 8/18/2019 Manual de Introducción SQL

    17/19

    inal$ente para ue puedan hacere b"ueda relacionale obrela tabla &ROX y EF&( debe aadire una colu$na a EF& deno$inadan"$ero de proyecto

  • 8/18/2019 Manual de Introducción SQL

    18/19

    La actuali:ación de la l,nea con el n"$ero de proyecto( co$pleta la$odi#cación de la bae de dato e'e$plo y per$ite relacionar loe$pleado con lo proyecto co$o ante e hac,a con lodeparta$ento%E poible( ahora ue la tabla tienen un ca$po co$"n( el n"$ero

    de proyecto( hacer b"ueda relacionale)SELEC E+AFE(MO4(*E&+O(&+AFE ROF EF&(&ROM 8ERE EF&%&ROM+O 7 &ROM%&ROM+O 8eader

  • 8/18/2019 Manual de Introducción SQL

    19/19

    la bae de dato% Lo views no contienen inor$ación propia( peropuede operare con ella co$o i ueran tabla reale%La utili:ación de views tiene tre enta'a)H Si$pli#ca el acceo a la inor$ación%H Independencia de la inor$ación%

    H &riacidad de la inor$ación%Co$o e'e$plo a a creare un view co$o un ubcon'unto de la tablaco$pleta( ue no $uetre ola$ente al!una colu$na de al!unoe$pleado >ord$aculine@@ 1=%

    CREAE IE ai!na un no$bre al view y de#ne u contenido en or$ade una b"ueda%

    (%)ueda de información en un ie:Puede ut!"!>arse un view c% s! de una tab"a se tratase. Para recu,erar "a !n$r%ac!ón a;ru,ada en unview se ,rcese cn e" c%and SELEC0

    !%egurar la integridad de la información

    en lo% ie:%Cuand 9e%s cread e" view cn "a c"usu"a I8 C8ECU O&IO+( Orac"e ase;ura (ue tda "a!n$r%ac!ón (ue se aada a "a tab"a cu%,"!r "a cnd!c!ón cn "a (ue se creó 8ERE *E&+O7P1P.

    Si intenta$o introducir un e$pleado del dpto 2)

    da un error ue indica ue ee dato e inco$patible con lacondicione de contrucción del view%