You are on page 1of 44

SGBD (Sistemas Gestores de bases de datos) Ud1.- SGBD: Introduccin 1.1.

- Antecedentes
SGBD: Son una coleccin d datos relacionados entre s y conjunto de programas ue accede a los mismos y los gestionan. Antes de la aparicin de la SGBD! los datos se trata"an! "#sicamente de $ %ormas: Integrados en los programas &con%eccionados en Basic! 'o"ol(.): *os %ic+eros encargados de guardar datos se construan! almacena"an! modi%ica"an!( directamente desde los programas. ,osean una estructura particular y su modi%icacin e-iga cam"ios en la programacin. Almacenamiento en %ic+eros independientes. *os datos se almacenan en %ic+eros independientes y los programas acceden a ellos. o ,ro"lemas: inconsistencia de los datos. o Dependencia lgico.%sica de los datos. o *a seguridad tena ue ser programada &atendida) por el usuario. o ,ro"lemas de concurrencia. o ,ro"lemas de seguridad. o Dependencia de estructura respecto al lenguaje.

1.$.- /rgani0acin de los datos en los Sistemas de In%ormacin


,ara almacenar y gestionar la in%ormacin de %orma estructurada es necesario de%inir dos caractersticas: 1l dise2o lgico o apariencia ue presenta los datos cuando son presentados al usuario. 1l dise2o %sico o modo en ue se guardan en los dispositi3os de almacenamiento. 1l dise2o %sico en el modelo relacional se muestra en %ormato de %ic+as ue son las ta"las! cuyas columnas representan los campos o atri"utos y las %ilas son los registros o "lo ues
Registro o bloque

'ampo

'ampo

'ampo

'ampo

Bu%%er: Son 0onas intermedias de memoria para almacenar datos. 4actor de "lo ue: Al n5mero de registros ue es capa0 de almacenar el "u%%er. Acceso a los registros ,uede ser: Secuencial: *os registros se leen secuencial desde el primero al 5ltimo. Directo: ,ermite seleccionar un registro directamente. Inde-ado: 1l registro se selecciona indirectamente pre3ia consulta a un %ic+ero ndice. Din#mica: 'om"ina el inde-ado con %ic+eros pro3isionales de datos.

1.6.- 'omponentes de los SGBD.

Herramientas y utilidades SGBD Diccionario de datos Ncleo Sistema Operativo


DATOS

75cleo: 1s el inter%ase entre la "ase de datos y el sistema operati3o. Diccionario de datos: 1s el ni3el en el ue se traducen las rdenes del usuario &del cliente) en instrucciones entendi"les por el ser3idor.

1.8.- 1l modelo 1ntidad-Interrelacin


9am"i:n llamado 1ntidad-;elacin &1.;). 4ue propuesto para la interrelacin conceptual de los pro"lemas del mundo real. 1n 1<== el consejo A7SI lo seleccio como modelo est#ndar. 179IDAD. 'onceptos "#sicos. Uni3erso: Al conjunto de datos y relaciones entre ellos o"jeto del estudio. 1ntidad: Al o"jeto real o a"stracto del cual ueremos almacenar in%ormacin &Alumnos de una clase! clientes de una empresa! autom3iles de un %a"ricante! etc.) *a entidad se representa mediante el nom"re en may5sculas "ordeado por un recuadro. '*I1791: 1ntidad %uerte o regular: Son a uellas ue e-isten por si mismas. >I?/: 1ntidad d:"il cuya e-istencia depende de otra entidad. *a desaparicin de un registro de la entidad %uerte correspondiente de"e ocasionar la desaparicin de los registros relacionados en la d:"il. Atri"uto o campo: Unidades de in%ormacin ue descu"ren propiedades de cada unos de los o"jetos de las entidades. 1@,*1AD/

Nombre Apellidos DN

Dominio: 1s el conjunto de 3alores permitidos para un atri"uto. Identi%icadores o supercla3e: Atri"uto o atri"utos o"jeto de la entidad. 1jemplo: D7I. ue identi%ican de %orma 5nica cada

'la3e candidata: 'ada una de las supercla3es con n5mero mnimo de campos.

'la3e primaria o principal: &,rimary Aey). 1s la cla3e candidata elegida por el dise2ador para de%inir los registros. 7o puede contener 3alores nulos. 7o de"e 3ariar a lo largo del tiempo.

DN

'la3e ajena o %or#nea: &%oreign Bey) 1s cual uier atri"uto o conjunto de atri"utos con el mismo nom"re o no cuyos 3alores coinciden con la cla3e principal de otra entidad
N!pedido cantidad Dni!"liente

;1*A'I/7. '/7'1,9/S BASI'/S De%inicin una relacin &interlacin) como una asociacin entre distintas entidades. Se representa mediante un rom"o! siendo su nom"re un 3er"o! en min5sculas! relati3o a su de%inicin.

#mpleado

Traba$ a

empresa

7ormalmente no tiene atri"utosC si los tiene suele suponer ue de"ajo +ay otra entidad ue no se +a de%inido! sal3o ue sean estrictamente descripti3os. #mpleado #mpleado

tiene

contra to

mantien e

Grado: 1l n5mero de entidades ue relaciona Grado 1 o re%le-i3a: ;elaciona la entidad consigo misma. #mpleado

tiene

Grado $:

#mpleado

Traba$ a

empresa

Grado 6

"liente

tiene

cuenta

cuenta

7ormalmente se sustituye por 6 de grado $

"liente

tiene

cuenta

operar

pertene ce

Sucursal

'ardinalidad: De%ine el n5mero m#-imo y mnimo de elementos de una entidad &o todas) relaciona con otra ue se

Departam%

pertene ce

#mpleado &'n

9ipo: 1s el n5mero m#-imo de ocurrencias de cada entidad ue se relacionan. 'ategoras especiales de relaciones 'omo en el caso de las entidades! las relaciones pueden ser de 3arias categoras: ;egulares. 1ntre entidades regulares. D:"iles: o De e-istencias. 'uando las ocurrencias no pueden e-istir si desaparece la ocurrencia de la entidad regular.

#mpleado

# tiene

Hi$o

De identidad. 'uando los elementos de la entidad d:"il no pueden ser de%inidos solamente por sus atri"utos si no ue necesitan los de entidad %uerte.

GENERALIZACION

,ermite la descomposicin de tipos de entidades en 3arios su"tipos. *a interrelacin puede ser esta"lecida indistintamente por tipos o su"tipos dependientes a cual ata2e. *os su"tipos +eredan los atri"utos de los supertipos y puede tener los suyos propios. ,ueden ser: Solapada y ,arcial. Un editor puede ser escritor y un escritor puede ser editor

Solapada y total

1-clusi3a y parcial. Si esas en editor no estas en escritor

1-clusi3a y total. Si estas en escritor no eres editor y no ueda nadie en persona.

1.D.- 'onstruccin del 1s uema 1.;


Se parte del an#lisis del Uni3erso del Discurso ue tam"i:n puede llamarse An#lisis de la ;ealidad del ,ro"lema. ,osteriormente se ela"ora un Ees uema perci"idoF en lenguaje natural &especi%icaciones)! lo ue nos %acilitar# la o"tencin del Ees uema conceptualF. 7o e-isten reglas a"solutas para la con%eccin del es uemaC sin em"argo! algunas normas puede %acilitar su dise2o: Un sustanti3o &nom"re com5n) ue act5a como sujeto o complemento directo es! en general! una entidad &aun ue podra ser un atri"uto). *os nom"res propios no suelen ser entidades. *os 3er"os es una relacin. Una preposicin o %rase preposicional entre dos nom"res suele ser un tipo de interrelacin o una asociacin entre entidad y sus atri"utos. *os adjeti3os suelen ser atri"utos.

Seg5n este es uema ue nos aporta:

1G ,arte:

*a institucin puede estar asignado a H o a 3arios &n) departamentos &H!7).

$G ,arte:

Un departamento puede estar asignado a una institucin y solo a una &1!1) 6G ,arte:

,ara sa"er de ue tipo es esta relacin se cogen los n5meros m#s altos de cada lado. &1!1) y &H!7)! por lo ue la relacin es &1:7).

1.I.- ,aso del 1s uema 1.; al modelo relacional &9a"la) 1ntidad: 9oda 1ntidad es una ta"la y los atri"utos son sus campos. ;elanciones 7:@ Se traduce a una ta"la cuya cla3e principal es la suma de las cla3es principales de las entidades ue relacionan! acompa2ada de los atri"utos propios. ;elacin 1:7 1-isten dos casos: Si la relacin no posee atri"utos propios! la cla3e principal de la entidad correspondiente al 1 &cardinalidad 1!1 H!1) migra a la ta"la de la otra entidad &propagacin de cla3e) en donde ser# la Ecla3e ajenaF. Si la relacin tiene atri"utos propios! puede procederse de la %orma anterior! arrastrando estos atri"utos! o "ien se traduce como si %uera 7:@

1jemplo:

'*I1791 &7I4! nom"(. ) AU9/@/JI* &@atricula! modelo!((! 7I4)

Dos soluciones: 1. ,1;S/7A &7i%! nom"! (. 7i%K+otel! %ec+aKentrada! %ec+aKsalida) >/91* &7i%K+otel! nom"K+otel( ) $. ,1;S/7A &7i%Kpersona! nom"re ) >/91* &7i%K+otel! nom"reK+otel) A*/?A &7i%Kpersona! ni%K+otel! %ec+aKentrada! %ec+aKsalida) ;elaciones 1:1 Si am"as son de cardinalidades &1:1) la cla3e de una de las entidades EmigraF a la otra indistintamente de sentido o se resuel3e con una ta"la. S una de las cardinalidades es &H!1) y la otra &1!1) la cla3e asociada a esta 5ltima! migra +aca la otra. *a &1!1) 3a +acia la &H!1). Si am"as son &H!1) el m:todo es igual al del primer caso! pero con atencin a los posi"les nulos. 9ipo de: S tipo y su"tipos poseen muc+os atri"utos y.o relaciones tanto uno como los otros se re%lejan en ta"las separadas! en las ue los su"tipos +eredan la cla3e principal del tipo. S el tipo no tienen atri"utos ni relaciones propias se crean ta"las con la clase +eredada del tipo. S los su"tipos no tienen relaciones propias o muc+os atri"utos pueden crearse una ta"la con los atri"utos de tipo y su"tipos a2adiendo un campo tipo de

1jemplo:

/J1?A &'digo! peso! edad! color 3ariedad! tipo() 'la3e principal- A uella ue aparece un3ocamente en cada registro

1.L.- 9eora de la 7ormali0acin


Se trata de una teora o procedimiento ue ayuda a pre3enir pro"lemas de redundancia o anomalas en la modi%icacin! insercin o "orrado de los es uemas de datos &ta"las). 'onsiste en la descomposicin de las mismas en otras de menor tama2o! de %orma ue cumplan unas restricciones espec%icas llamadas E%ormas normalesF. 147 &,rimera %orma normal) ,ro+"e ue en un registro +aya grupos repetiti3os! es decir! multie3aluado! sino ue todos los campos de"en ser atmicos &indi3isi"le). *a solucin consiste en a2adir tantos campos como m#-imo n5mero de 3alores posi"les o "ien eliminar el campo multie3aluado de la ta"la principal! creando otra ta"la con la cla3e principal y ese campo. *a cla3e de la nue3a ta"la ser# la suma de los dos. 1sta ta"la: ,1;S/7A &Dni! 7om! Ape1!Ape$!'alle! 'iudad! 9%no). 1l mismo campo &9%no) no puede ser multie3aluado. ,ara solucionarlo se +aran unas nue3as ta"las: ,1;S/7A$&Dni! 7om! Ape1!Ape$!'alle! 'iudad) ,1;S/91*1&Dni! 9%no) $47 &Segunda %orma normal) 1n las ta"las! adem#s de estar en 147! todos los campos de"en de depender de la cla3e Eal completoF.

Ser(an clave principal

1jemplo:

J179AS& 'odKpie0a! 'odKalmacen! cantidad! DrKAlmacen). *a direccin de almac:n depende del cdigo de almac:n no del cdigo de pie0a. J179 &'odKpie0a! 'odKalmacen! cantidad) Almacen &'odKalmacen! DirecKalmacen)

647 &9ercera %orma normal)


*os campos ue no %ormen parte de una cla3e candidata &cumplen los re uisitos pero no son candidatas)! adem#s de estar en 147 y $47 de"en %acilitar in%ormacin solo acerca de las cla3es candidatas y no de otros campos. 1jemplo: 1@,*1AD/ &7Kempleado! 'odKdpto! 7omKDpto)

1@,*1&7Kempleado! 'odKdpto) D,9/&'odKdpto! 7omKdpto)


847 &'uatro %orma normal) o *ey B/M*1 '/DD) Se dice ue una ta"la cumple esta ley! si y slo si todo determinante es cla3e ,I1NA&7Kpie0a! 7Kalmacen) ,I1NA$&7Kpie0a! codKalmacen) 7os saldra otras ta"las con los nue3os campos A*@A'17 &'odKalmacen! 7omKalmacen) ,I1NAS &7Kpie0a!7omKalmacen)

$.=.- A*G1B;A ;1*A'I/7A*


'onjunto de reglas y operaciones dirigidas a la "5s ueda de datos. *a dos operaciones "#sicas son: 1. /peraciones "#sicas unitarias. Seleccin Where Dada una relacin KK de cardinalidad ' y grado G &' registros y G campos)! una operacin de seleccin consiste en la creacin de otra relcin rj cuyos elementos son un su"conjunto ue cumple las siguientes condiciones: 1l grado de %r es igual al de ri *a cardinalidad de r% es menor ue el de ri

(jugadores) Club=celta

(Clientes) Provincia=Bizkaia

U Vizca a
,odemos! en las condiciones! utili0ar tanto los operadores de comparacin como lgicos: O P PQ OQ QQ RQ ,royeccin &) 1n S l Select. ;ecoje las condiciones para seleccionar determinadas columnas de una ta"la.

&jugadores)
Ape1! ape$! nom"re

/peraciones "#sicas "inarias

Unin & ) /; Solo se puede reali0ar entre ta"las &relaciones) con el mismo grado &nS de columnas). A2ade los registros &%ilas) de la segunda ta"la tras los de la primera en una nue3a ta"la.

Interseccin &) Solo se puede reali0ar entre ta"las con el mismo grado y atri"utos compati"les. ;ecoge a uellas columnas &atri"utos) de la primera ta"la y los registros comunes a am"as.

Di%erencia &-) 'ompone una nue3a ta"la a partir de otras dos! con los campos de la primera y los registros de esta ue no est#n en la otra. *as columnas tienen ue ser iguales.

,roducto cartesiano &T) 'rea una nue3a ta"la a partir de otra dos! con los atri"utos de am"as y todas las com"inaciones.

'ociente &U) A partir de dos ta"las! crea una nue3a conteniendo los atri"utos de una de ellas ue no est#n en la otra y el producto cartesiano de los registros comunes a am"as.

;eunin! producto o com"inacin &V ?oin) 'onsiste en aplicar el producto cartesiano a $ ta"las y a la relacin o"tenida! aplicarle una seleccin ue elimine los registros ue no cumplen una determinada condicin. >ay ue poner los dos campos. &Alumnos V asignatura) Alumno.cursoQAsignatura.curso 'om"inacin e-terna.&/uter join) 'rea una ta"la con los mismos campos ue la operacin Union a2adiendo a uellas ue no est#n com"inadas con ninguna de la otra ta"la.

Instalacin de /;A'*1 'ontrase2a del sistema:SMS Usuario: >; 'ontrase2a >; 1ste usuario est# "lo ueado! para des"lo uearlo entrar como SMS de usuario y la misma contrase2a. ,asar a Administracin data"ase user @arcar todo menos DBA Alter user. ,ara ue no nos ralentice el ordenador uitar de los ser3icios de WindoXs poner en manual los ser3icios oracleser3iceT1 y oracleTenslistener. 'onectar la ta"la 'onnect >; contrase2a >; Start %ic+ero &E1l %ic+ero +ay ue arrastraloF) conecta la "ase de datos Descri"e empleC Saca la estructura de la ta"la empleados. Autocommit 'on3ierte en de%initi3os los cam"ios ue +as +ec+o. Si uitamos autocommit podemos des+acer los cam"ios con ;oll"acB.

6.- SY*
6.1.- 9ipos de sentencias SY* o o o o o o o D@*. @anipulacin de datos: Select Insert Delete Update De%inicin de datos: 'reate &'rear) 'reate 9a"le 'reate JieX 'reate inde'reate Synonym Drop &Borrar) Drop 9a"le Drop JieX Drop IndeDrop Synonym Alter &Alterar) Alter 9a"le Alter JieX Alter IndeD'* 'ontrol de accesos Grant Dar pri3ilegios ;e3oBe Yuitar pri3ilegios

o o o o o

9ransacciones 'ommit >acer de%initi3os los cam"ios ;oll"acB Jol3er atras S l program#tico &,l.SY*) Declare /pen 4etc+ 'lose

>ay 6 roles en SY*: ;ol Usuario ;ol ,rogramador ;ol Administrador 9iene autori0acin para administrador el uso. 1n /racle tienes 8 ni3eles de distri"ucin de recursos: Instancia Di3isin de recursos ! memoria ue 3a usar cada instancia. *as instancias no se me0clan. BD 9a"lespace cada usuario tiene asignado el %ragmento de disco ue puede utili0ar. 9a"la 6.1.1. 'omponentes de una sentencia.

+royecci,n .erbo "ampos


1jemplo: S1*1'9 'ampo1! campo$ I7S1;9 E E U,DA91 D1*191

"l-usula

Tablas

"ondiciones

4;/@ 4;/@

ta"la1!ta"la$ E E

W>1;1 ((((. G;/U, BM

Siempre delante de cada elemento e-terno +ay una cl#usula. 1jemp: 4;/@! W>1;1! G;/U, BM. 6.1.$. 1l proceso de una sentencia SY*. 1. 1l motor anali0a la sentencia &comprue"a ue est# sintacticamente "ien escrita! tanto en las pala"ras como su gram#tica. )% Jalidar 'omprue"a ta"las! campos! etc. Se denomina Ecompro"acin sem#nticaF. 'omprue"a tanto ue e-istan las ta"las como ue el autor tenga derec+os so"re ellas. *% /ptimi0a la sentencia 1-plora la %orma de lle3ar a ejecucin la sentencia. 8. Genera un plan de aplicacin: cdigo ejecuta"le. D. 1jecuta la accin. 6.$ 9I,/S D1 DA9/S JA;'>A; &tama2o) Almacena cadenas de caracteres de longitud 3aria"le &+asta 8.HHH caracteres). '>A; &tama2o) Almacena cadenas de caracteres con longitud %ija &+asta $HHH "ytes.caracteres. 1l resto lo rellena en "lanco). 7U@B1; &precisin! escala) ,recisin es el n5mero total de dgitos. 1scala es el n5mero de dgitos a la derec+a del separador de decimales.

*/7G 'adenas de caracteres +asta $ G"ytes. Solo puede de%inirse una por ta"la sin restricciones. DA91 Almacena %ec+as y +oras. 1l %ormato es siglo.a2o.mes.dia.+ora.min.segund. 1l %ormato se declara con 7*SKDA91K4/;@A9 con un %ormato EDD.@@.MMF. ;AW &tama2o) Almacena datos "inarios &$HHH "ytes). */7G;AW Almacena datos "inarios. ;/W ID 'adena +e-adecimal ue representa la direccin de una %ila en una ta"la. 7JA;'>A; $ &tama2o) . 7'>A;&tama2o) Similares a sus +omnimas pero con relacin al juego de caracteres. '*/B.7'*/B.B*/B Jaria"les grandes.

6.6. '/@A7D/S D1 '/7S/*A *IS9 Jisuali0a el contenido del "u%%er. *IS97 Jisuali0a el contenido de la lnea 7. SAJ1 %ic+ero Almacena el "u%%er en un %ic+ero. G19 %ic+ero ;ecupera del %ic+ero al "u%%er. S9A;9 %ic+ero 1jecuta un %ic+ero .s l ;U7 ;epite la ejecucin de la 5ltima sentencia. I7,U9 A2ade una lnea a continuacin de la acti3a. D1* Borra la lnea actual S,//* %ic+ero 9odas las salidas se almacenan en el %ic+ero.t-t S,//* o%% Deja de almacenar. '*1A; S'; Borra la pantalla.

6.8 '/7SU*9A D1 DA9/S Sentencia S1*1'9 S1*1'9Zall[distinct\ Zcol1! col$!(.[]\ 4;/@ n.ta"l1 Z nta"l$!-------\ W>1;1 cond1Z/; A7D cond$\ Z/;D1; BM coln ZD1S'[A**\! colp ZD1S'[A**\ ---C DIS9I7'9 ,ara sacar los campos 5nicos ue +ayamos seleccionado. D1S' Saca los campos de las ta"las. 1jemplo: desc depart. Select e.apellido %rom emple eC la e es el alias de apellido Select ] %rom emple e! depart d X+ere e.departKnoQd.deptK noC 1sta +aciendo un join con los departametneos de $ ta"las. select ] %rom emple! depart X+ere emple.deptKnoQdepart.deptKno and loc liBe ^BA;'1*/7A^C Un join cuando los departamentos son iguales y la localidad Barcelona tanto en may5sculas como en min5sculas. U ,ara 3arias! e ui3alente ] de ms-dos. K,ara uno! e ui3alente _ de ms-dos. 4;/@ ((((.. 4;/@ nom-ta"1 Znom-ta"$! ((.\ 1l nom"re +ay ue ponerlo completo! si no eres propietario de la ta"la o +ay ta"las coincidentes. Si el usuario no es propietario de la ta"la de"er# se2alar el nom"re completo ue consiste en :,ropietario. 7om"re.ta"la- tam"i:n cuando +aya con nom"re coincidentes. ,uede asign#rsele un alias indicando a continuacin de del nom"re de la ta"la y antes de la coma de la siguiente ta"la el alias. 1jemplo: (. 4;/@ nom.ta"la alias! (..

4;/@ ;ecoge las condiciones! tanto de ?oin como otras de la "5s ueda. *as condiciones pueden contener todos los operandos! tanto arimeticos como de comparacin o "ooleanos. /;D1; BM 'ondicin de orden de presentacin. A** ;ecupera todas la %ilas.

DIS9I7'9 Solo las %ilas distintas. Si +ici:ramos S1*1'9 DIS9I7'9 col1! col$! las dos columnas tendran ue ser distintas. A*IAS de columna Se se2alaran tras el nom"re y entre comillas. 1jemplo: S1*1'9 ape$ EapellidosF(.. 6.D /,1;AD/;1S A;I9@19I'/S ` ] . '/@,A;A'I/7 Q RQ O OP PQ O OQ */GI'/S And /r 7ot 'AD17AS *iBe U @5ltiple - Simple

7U*/ IS 7U** &Sin in%ormacin) IS 7/9 7U** W>1;1 salario is 7U** 1l salario no es cero! no +ay in%ormacin o es desconocida. '/7?U79/ D1 JA*/;1S In 'onjunto de 3alores. SA*A;I/ I7 &1HHH! 11HH(.) 9iene ue estar en uno de esos 3alores &no ue este entre ellos). D1,A;9A@179 7/9 I7 &$H!6H!DH). Yue los departamentos no sean ni $H!6H ni DH. B19W117 ;ango de 3alores. SA*A;I/ B19W117 &1HHH and 6HHH). 1l salario tiene ue estar entre 1HHH y 6HHH.

1H-1-$H11

6.I Su"consultas S1*1'9 ] 4;/@ emple W>1;1 nKemple I7 &S1*1'9 nKemple 4;/@ emple W>1;1 dpto in &S1*1'9 dpto 4;/@ depart W>1;1 nom"re *IA1 aI74/;@A9I'Aa))C Son a uellas sentencias S1*1'9 ue %orman parte de una causula W>1;1 &o >AJI7G) de una sentencia anterior.

*as condiciones de "5s ueda ue podemos encontrar en una consulta son: 9est de comparacin &O! P! OQ! PQ!-) 9est de pertenencia a un grupo de 3alores I7 9est de e-istencia 1TIS9 &de3uel3en alg5n resultado) o 7/9 1TIS9 &no de3uel3en ning5n resultado). 1jemplo: 'uando das de alta un D7I comprue"as si ya e-iste. 9est de comparacin cuali%icada: A7M y A** &en conjuncion con OP PQ OQ Q) A7M 'ompara cada uno de los 3alores o"tenidos en la consulta y de3uel3e 9;U1 si encuentra alguna coincidencia. A** Solo de3uel3e 9;U1 si coincide en todos los casos. ;esolucin del ejercicio 1 Selecciona el apellido! el o%icio y la localidad de los departamentos de a uellos empleados cuyo o%icio sea bA7A*IS9Aa >ago una "us ueda general para 3er cuantos +ay: S1*1'9 A,1**ID/!/4I'I/!*/' 1@,*1.D1,9K7/QD1,A;9.D1,9K7/C 4;/@ 1@,*1!D1,A;9 W>1;1

Saco a los analistas: S1*1'9 A,1**ID/!/4I'I/!*/' 4;/@ 1@,*1!D1,A;9 1@,*1.D1,9K7/QD1,A;9.D1,9K7/ A7D /4I'I/Q^A7A*IS9A^C W>1;1

;esolucin del ejercicio $ /"t:n los datos de los empleados cuyo director &columna DI; de la ta"la 1@,*1) sea Ecere0oF. S1*1'9 ] 4;/@ 1@,*1!D1,A;9 W>1;1 1@,*1.D1,9K7/QD1,A;9.D1,9K7/ A7D A,1**ID/Q^'1;1N/^C

;esolucin del ejercicio 6 /"t:n los datos de los empleados del departamento de E3entasF S1*1'9 ] 4;/@ 1@,*1 W>1;1 D1,9K7/Q&S1*1'9 D1,9K7/ 4;/@ D1,A;9 W>1;1 D7/@B;1Q^J179AS^)C S1*1'9 ] 4;/@ 1@,*1!D1,A;9 W>1;1 1@,*1.D1,9K7/QD1,A;9.D1,9K7/ A7D D1,A;9.D7/@B;1Q^J179AS^C

;esolucin del ejercicio 8 /"t:n los datos de los departamentos ue no tengan empleados. select ] 4;/@ D1,A;9 W>1;1 D1,9K7/ 7/9 I7&S1*1'9 DIS9I7'9 D1,9K7/ 4;/@ 1@,*1)C

;esolucin del ejercicio D /"t:n los datos de los departamentos ue tengan empleados.

;esolucin del ejercicio I /"t:n el apellido y el salario de los empleados ue superen todos los salaries de los empleados del departamento $H. S1*1'9 A,1**ID/! SA*A;I/ 4;/@ 1@,*1 W>1;1 SA*A;I/ PA**&S1*1'9 SA*A;I/ 4;/@ 1@,*1 W>1;1 D1,9K7/Q$H)C S1*1'9 A,1**ID/! SA*A;I/ 4;/@ 1@,*1 W>1;1 @AT&SA*A;I/) 4;/@ 1@,*1 W>1;1 D1,9K7/Q$H)C @a- se re%iere al salario ma-imo. SA*A;I/ P&S1*1'9

9a"la li"rera ;esolucin del ejercicio L Jisuali0a el tema! estante y ejemplares de la %ilas de li"rera con templares comprendidos entre = y 1D. desc li"reriaC Jisuali0o el contenido

S1*1'9 91@A! 1S9A791! 1?1@,*A;1S 4;/@ *IB;1;IA B19W117 = A7D 1DC

W>1;1 1?1@,*A;1S

;esolucin del ejercicio =

Jisuali0a las columnas 91@A! 1S9A791 y 1?1@,*A;1S de las %ilas cuyo 1S9A791 no est: comprendido entre la EBF y la EDF. S1*1'9 ] 4;/@ *IB;1;IA W>1;1 1S9A791 7/9 B19W117 ^B^ A7D ^D^C

;esolucin del ejercicio < Jisuali0a con una sola orden S1*1'9 todos los temas de *IB;1;cA cuyo n5mero de ejemplares sea in%erior a los ue +ay en E@1DI'I7AF. S1*1'9 ] 4;/@ *IB;1;IA W>1;1 1?1@,*A;1S O &S1*1'9 1?1@,*A;1S 4;/@ *IB;1;IA W>1;1 91@AQ^@1DI'I7A^)C

S1*1'9 91@A 4;/@ *IB;1;IA W>1;1 1?1@,*A;1S O A** &S1*1'9 1?1@,*A;1S 4;/@ *IB;1;IA W>1;1 91@A Q^@1DI'I7A^)C

;esolucin del ejercicio 1H

Jisuali0a los temas de li"rera cuyo n5mero de ejemplares no est: entre 1D y $H! am"os incluidos. S1*1'9 ] 4;/@ *IB;1;IA W>1;1 1?1@,*A;1S 7/9 B19W117 1D A7D $HC

;esolucin del ejercicio 11 Jisuali0a todas las asignaturas ue contengan tres letrasaoa en su interior y tengas alumnos matriculados de @adrid S1*1'9 7/@B;1 4;/@ ASIG7A9U;AS!7/9AS!A*U@7/S W>1;1 A*U@7/S.D7IQ7/9AS.D7I A7D 7/9AS.'/DQASIG7A9U;AS.'/D A7D ,/B*AQ^@adrid^ A7D 7/@B;1 *IA1 ^UoUoUoU^C

;esolucin del ejercicio 1$ Jisuali0a los nom"res de alumnos de b@adrida ue tengan alguna asignatura suspendida &saco con datos e-tras para compro"ar) S1*1'9 apenom! nota! po"la 4;/@ ASIG7A9U;AS!7/9AS!A*U@7/S W>1;1 A*U@7/S.D7IQ7/9AS.D7I A7D 7/9AS.'/DQASIG7A9U;AS.'/D A7D ,/B*AQ^@adrid^ A7D nota O DC

;esolucin del ejercicio 16 @uestra los nom"res de alumnos ue tengan la misma nota ue tiene EDa0 4ern#nde0! @ara E en E4/*F en alguna asignatura. ,ara sa"er la nota del alumno ue nos pide:

S1*1'9 7/9A 4;/@ ASIG7A9U;AS A!7/9AS 7! A*U@7/S A W>1;1 A.D7IQ7.D7I A7D A.'/DQ7.'/D A7D A,17/@ *IA1 ^Da0 4ern#nde0! @ara^ A7D 7/@B;1 *IA1 ^4/*^C

As saldran todos los ue tienen la nota =: S1*1'9 A,17/@!'/D 4;/@ A*U@7/S A! 7/9AS 7 W>1;1 A.D7IQ7.D7I A7D 7/9AQ&S1*1'9 7/9A 4;/@ ASIG7A9U;AS A!7/9AS 7! A*U@7/S A W>1;1 A.D7IQ7.D7I A7D A.'/DQ7.'/D A7D A,17/@ *IA1 ^Da0 4ern#nde0! @ara^ A7D 7/@B;1 *IA1 ^4/*^)C

'on la siguiente nos saldra los ue tiene la puntuacin de = sin estar :l mismo S1*1'9 DIS9I7'9 A,17/@ 4;/@ A*U@7/S A! 7/9AS 7 W>1;1 A.D7IQ7.D7I A7D 7/9AQ&S1*1'9 7/9A 4;/@ ASIG7A9U;AS A!7/9AS 7! A*U@7/S A W>1;1 A.D7IQ7.D7I A7D A.'/DQ7.'/D A7D A,17/@ *IA1 ^Da0 4ern#nde0! @ara^ A7D 7/@B;1 *IA1 ^4/*^)C

;esolucin del ejercicio 18 /"t:n los datos de las asignaturas ue no tengan alumnos select ] 4;/@ ASIG7A9U;AS W>1;1 '/D 7/9 I7 &S1*1'9 '/D 4;/@ 7/9AS)C

;esolucin del ejercicio 1D /"t:n el nom"re y apellido de los alumnos ue tengan nota en la asignatura con cdigoQ1 select ] %rom alumnos!asignaturas!notas X+ere alumnos.dniQnotas.dni and notas.codQasignaturas.cod and notas.codQ1C

;esolucin del ejercicio 1I /"t:n el nom"re y apellido de los alumnos asignatura con cdigoQ1

ue no tengan nota en la

select ] %rom alumnos!asignaturas!notas X+ere alumnos.dniQnotas.dni and notas.codQasignaturas.cod and notas.codOP1C

Bases de datos 8- 4U7'I/71S 8.1- 4U7'I/71S A;I9@19I'AS 9ra"ajan con datos tipo 7U@B1; y son de 6 tipos:
1- 4unciones con 3alores simples $- 4unciones de grupos de 3alores 6- 4unciones de listas.

8.1.1-4unciones con 3alores simples: 9ra"ajan con un solo 3alor &son %unciones un poco e-tra2as) ABS &n) 3alor a"soluto '1I*&n) 3alor entero superior o igual a n 4*//;&n) 3alor in%erior o igual a n &similar a truncar! uitar los decimales) @/D &m!n) @odulo: ;esto de la di3isin m.n 7J* &3alor! e-presion) se utili0a para sustituir un 3alor nulo por otro! si 3alor es nulo se sustituye por la e-presin. Admite todos lo tipos) 7ulo :es ue no +ay 3alor 1jemplo: S1*1'9 A,1**ID/ 4;/@ 1@,*1 W>1;1 SA*A;I/ Q1H.HHHC 7J*&A,1**ID/ !F7ADI1F) Sustituye el apellido por 7ADI1 ,/W1;&n! e-ponente) ,otencia de n a la e-ponente. A 3eces se puede utili0ar la
potencia para +acer races

;/U7D &nZ!m\) ;edondear a m decimales. SIG7 &3alor) De3uel3e el signo del 3alor K1 si es negati3o y 1 si es positi3o SY;9&n) rai0 cuadrada 9;U7' &nZ!m\) es truncar con m decim#les. $. 4unciones de grupos de 3alores AJG &n) Jalor medio de los n! desec+ando los cero. '/U79 &][ e-presin) 7umero de 3eces de un 3alor con 3alor no nulo. /sea no cuenta los "lancos. @AT &e-presin) Jalor m#-imo de la e-presin @I7 &e-presin) Jalor mnimo SU@ &e-presin) Suma de todos los 3alores JA;IA7'1 &e-presin) Jarian0a. DISI7'9 y A** no se pueden utili0ar en %unciones AJG!SU@! @AT y @I7! pero si en '/U79 1jemplo: -----'ount&DIS9I7'9 apellido)--- te cuenta los apellidos distintos S1lect DIstinct apellido %rom te muestra los distintos 8.1.6 4unciones de listas G;1A91S9 &3alor1! 3alor$! () @ayor 3alor de la lista en +ori0ontal *1AS9 &3alor1! 3alor$!(..) Jalor mas pe ue2o o menor de la lista 8.$ 4U7'I/71S '/7 'AD17AS '>; &n) De3uel3e el car#cter cuyo 3alor "inario es n '/7'A9 &cad1! cad$) 'oncatenar ! e ui3alente al operador [[

*/W1; &cad) @inusculas U,,1;&cad) @ay5sculas I7I9'A, &cad) 'apitali0ar . *a primera letra en may5sculas de cada pala"ra. *,AD& cad1!n Z! cad$\) ;ellena de cadena$ +asta la longitud n a la i0 uierda ;,AD& cad1!n Z! cad$\) ;ellena de cadena$ +asta la longitud n a la derec+a *9;I@&cad Zset\) Suprime caracteres a la i0 uierda de cadC con bseta el conjunto de caracteres a suprimir . si omites el Set eliminar# "lancos ;9;I@&cadZset\) Suprime caracteres a la i0 uierda de cadC con bseta el conjunto de caracteres a suprimir. SUBS9;&cad! mZ!n\) o"tiene una parte de la cadena! desde la posicin m y n el numero de caracteres! si se omite n de3uel3e el resto desde mC n no puede ser negati3o. Si m es negati3o empie0a a contar por el %inal. ;1,*A'1&cad! cadK"uscadaZ!cadKsustitucin\) reempla0a los 3alores de cadena "uscada con cadena de sustitucin. Si no pones cadena de sustitucin te "orra la cadena encontrada. 9;A7S*A91&cad1! cod$!cad6) sustituye 8.6- 4U7'I/71S YU1 D1JU1*J17 JA*/;1S 7U@1;I'/S AS'II&cad) De3uel3e el 3alor num:rico de la 1G letra de bcoda I7S9;&cad1!cad$ Z! comien0oZ!m\\) Busca un determinado conjunto de caracteres en una cadena y nos de3uel3e la posicin de la m- esima aparcin empe0ando en comien0o *17G9&cad) longitud de caracteres! incluido el "lanco. 8.8- 4U7'I/71S YU1 ,A;A 1* @A71?/ D1 41'>AS *os datos tipo %ec+a &DA91) tiene %unciones especi%icas: 9/ '>A; &%ec+a) 7os de3uel3e la %ec+a en caracteres. Una %ec+a siempre tiene siglo.a2o.mes.dia.+ora.min.seg. SMSDA91De3uel3e la %ec+a del sistema ADDK@/79>S &%ec+a!n)A2ade n meses *AS9KDAM &%ec+a)De3uel3e el 5ltimo da del mes. @/79>SKB19W117&4ec+a 1! %ec+a$) @eses entre %ec+as. 719TKDAM&4ec+a!cad)De3uel3e el primer da puesto en cad! despu:s de la %ec+a indicada. 71T9KDAM&1D.11.1<LH!amondaya). De3ol3era el siguiente lunes despu:s de la %ec+a indicada. 8.D- 4U7'I/71S D1 '/7J1;SI/7 9/K'>A;&%ec+a!a%ormatoa) y 9/K'>A;&numero!a%ormatoa) o ,ara el 9/K'>A; &%ec+a): '.S' siglo M A2o @ mes D da Y trimestre W semana > +ora @i minuto

S segundo ? juliano

9/K7U@B1;%cadena!Z%ormato\ de3uel3e una cadena seg5n el %ormato ue le pongas 9/KDA91 &cadenaZ!%ormato\ De3uel3e una %ec+a de la cadena ue tu pones en el %ormato se2alado.

,ar#metros 7*SK91;;I9/9MQS,AI7 >ace ue todo lo ue corresponda a la "ase de datos se trans%orma al %ormato espa2ol. 7*SKDA91K4/@A9 ,ara cam"iar el %ormato de las %ec+as. 7*SKDA91K*A7GUAG1 ,ara cam"iar los nom"res de los das y meses 7*SK7U@1;I'K'>A;A'91;S @iles y Decimales. 7*SKIS/K'U;;17'M 1speci%ica territorio &1S,) 7*SK'U;;17'M 1speci%ica la moneda 'on S>/W ,A;A@191; 7*S Saca los par#metros 'on S>/W DA9ABAS1 7os ense2a las "ases de datos a las acceso.

ue tenemos

1jemplo como se +ace este cam"io: Al*91; S1SSI/7 S19 7S*((Qaparametrosa A*91; S1SSI/7 S19 7lSK7U@1;I'K'>A;A'91;SQa. !aC 9e dara el ] como miles y la "arra como comas. para la sesin actual. ,ara cam"iar esto de %orma de%initi3a en nuestro sistemas

ACTIVIDADES COMPLEMENTARIAS 4 #$ercicio &%'Dada la tabla emple/ obt0n el sueldo medio/ el nmero de comisiones no nulas/ el m-1imo sueldo y el m(nimo sueldo de los empleados del departamento *2% #mplea el 3ormato adecuado para la salida para las cantidades num0ricas S#4#"T RO5ND6A.G6SA4AR O778S5#4DO 9#D O8/"O5NT6"O9 S ON78"O9 S ON#S NO N54AS8/9A:6SA4AR O78S5#4DO 9A: 9O8/ 9 N6SA4AR O78S5#4DO 9 N 9O8 ;RO9 #9+4# <H#R# D#+T!NO = *2>

#$ercicio?% )%'.isuali@a los temas con mayoer nmero de e$emplares de la tabla libreria@a y que tengan/ al menosm una AeB 6+uede ser un tema o varios7 S#4#"T T#9A ;RO9 4 BR#R A <H#R# T#9A 4 C# DE#EDAND #F#9+4AR#S=6select 9A:6#F#9+4AR#S7 ;RO9 4 BR#R A7>

#$ercicio *%' Dada la tabla 9 ST#:TOS GHu0 sentencia select utili@ar-s para tener este resultadoIJ R#S54TADO 9#TODO4OG A D# 4A +ROGRA9A" ON 'K'K%K N;OR9AT "A BLS "A'K'K'K'K Al principio 3igura de esta 3orma el campoJ

select rpad6ltrim 6rtrim66titulo7/D8D7/D8D7/M2/D'KD7 8R#S54TADO8 3rom miste1tos>

Tambi0n se podr(a Naber NecNo con la siguiente ordenJ select ltrim6rpad6rtrim6titulo/D8D7/*O/D'KD7/D8D78resultado8 3rom miste1tos>

#$ercicio P%' .isuali@a los titulos de la tabla miste1tos sin los caracters punto y comillas y/ en minusculas/ de dos 3ormas conocidas select ltrim 6rtrim 6loQer 6titulo7/D%8D7/D8D7 8+imera 3orma8 3rom miste1tos>

#$ercicio R%' Dada la tabla libros/ escribe la sentencia select que visualice dos columnas/ una con el autor y otra con el apellidos del autor% +rimera 3ormaJ select ltrim 6substr6autor/instr6autor/D/D77/D/D78nombre8/ rtrim 6substr6autor/&/instr6autor/D/D77/D/D78apellidos8 3rom libros> Segunda 3ormaJ select substr6autor/instr6autor/D/D7S&7 8apellidos8 3rom libros> 8nombre8/ substr6autor/&/instr6autor/D/D7'&7

#$ercicio M%' Dada la tabla libros/ escribe la sentencia select que visualice dos columnas/ una con el autor y otra con el nombre s del autor% S#4#"T S5BSTR6autor/ NSTR6autor/D/D/ &/ &7S&78autor8 ;RO9 libros>

#$ercicio T%' A partir de la tabla libros/ reali@a una sentencia select que visualice en una columna/ primero el nombre del autor y/ luego/ su apellido% +rimera 3ormaJ select substr6autor/instr6autor/D/D7S&7 UU D D UU substr6autor/&/instr6autor/D/D7'&7 8A5TOR#S8 3rom libros>

Segunda 3ormaJ S#4#"T "ON"AT6"ON"AT66substr6autor/instr6autor/D/D7S&77/D 6autor/&/instr6autor/D/D7'&77 8A5TOR#S8 3rom libros>

D7/

S5BSTR

#$ercicio V%' A partir de la tabla 4 BROS/ reali@ar una sentencia S#4#"T para que apare@can los t(tulos ordenados por su nmero de car-cter% S#4#"T T T54O ;RO9 4 BROS ORD#R BW 4#NGTH6T T54O7>

#$ercicio O%' Dada la tabla nacimientos/ reali@a una sentencia S#4#"T que obtenga la siguiente tabla salidaJ NO9BR# ;#"HANA"/ ;#"HA!;OR9AT#ADA/ donde ;#"HA!;O9AT#ADA tiene el siguiente 3ormatoJ ANaci, el &) de mayo de &OV)B S#4#"T NO9BR#/;#"HANA"/ TO!"HAR 6;#"HANA"/Ddd 8de8 montN 8de8 yyyyD7 8;#"HA ;OR9AT#ADA8 3rom nacimientos>

#$ercicio &2%' Dada la tabla 4 BR#RXA Na@ un a sentencia S#4#"T que visualice el tema/ el ltimo car-cter del tema que no sea blanco y el nmero de caracteres de tema 6sin contar los blancos de l derecNa7 ordenados por tema% select tema/ lengtN6rtrim6tema/D D778numero caracteres8/ substr6rtrim6tema/D D7/'&7 3rom libreria order by tema

#$ercicio &&%' A partir de la tabla NA" 9 #NTOS/ visuali@a en una columna el NO9BR# seguido de su 3ecNa e nacimiento 3ormateada 6quitando blancos del nombre7% select ltrim 6rtrim 6nombre77 UU D/ NA" O #4 DUU TO!"HAR 6;#"HANA"/Ddd 8de8 montN 8de8 yyyyD7 3rom nacimientos>

#$ercicio &)%' "onvierte la cadena Y2&2T&)? a su 3ecNa y visuali@a su nombre de mes en maysculas% select to!cNar6to!date6D2&2T&)D7/D9ONTHD7 3rom dual>

#$ercicio &*%' .isuali@a aquellos temas de la tabla 4 BR#RXA cuyos e$emplares sean T con el tema de tema de YS#.#N?> el resto de temas que no tengan T e$emplares se visuali@ar-n como est-n S#4#"T DS#.#ND8T#9A8/#STANT#/#F#9+4AR#S ;RO9 4 BR#R A <H#R# #F#9+4AR#S=T 5N ON S#4#"T Z ;RO9 4 BR#R A <H#R# #F#9+4AR#S [ =T>

#$ercicio &P%' A partir de la tabla #9+4#/ obt0n el pellido de los empleados que lleven m-s de &R a\os traba$ando% S#4#"T A+#44 DO/ 9ONTHS!B#T<##N 6SWSDAT#/;#"HA!A4T7 89#S#S8 ;RO9 #9+4# <H#R# 9ONTHS!B#T<##N 6SWSDAT#/;#"HA!A4T7]&RZ&)>

#$ercicio &R%' Selecciona el apellido de los empleado de la tabla #9+4# que lleven m-s de &M a\os traba$ando en el departamento .#NTAS%

#$ercicio &M%' .isuali@a el apellido/ el salario y el nmero de departamento de aquellos empleados de la tabla emple cuyo salario sea el mayor de su departamento S#4#"T A+#44 DO/ SA4AR O/ D#+T!NO ;RO9 #9+4# <H#R# 6dept!no/SA4AR O7 N 6S#4#"T dept!no/ 9A:6SA4AR O7;RO9 #9+4# GRO5+ BW D#+T!NO7ORD#R BW D#+T!NO>

#$ercicio &T%' .isuali@a el apellido/ el salario y el nmero de departamento de aquellos empelados de la tabla #9+4# cuyo salario supere a la media en su departamento% S#4#"T A+#44 DO/SA4AR O/D#+T!NO ;RO9 #9+4# # <H#R# SA4AR O]6S#4#"T A.G6SA4AR O7 ;RO9 #9+4# <H#R# D#+T!NO=#%D#+T!NO7order by dept!no>

5D%R "4A5S54AS A.AN^ADAS D# S#4#"" ON R%&%' AGR5+A" ON D# #4#9#NTOSJ GRO5+ BW_%%HA. NG S#4#"T col&/ col) ;RO9 tables GRO5+ BW col&/ col) HA. NG condici,n% &/% 4a agrupaci,n se Nar- por columna o con$unto de columnas con valores coincidentes Select 9A: 6SA4AR O7 3rom emple group by D#+T!NO> Select D R 3rom emple group by D R/D#+T!NO> )%' #n los campos seleccionados solo podr-n incluir aquellos que se utili@an para agrupar u operaciones% Select D#+T!NO/ 9A:6SA4AR O7 3rom emple group by D#+T!NO> Select count 6n'emple7 3rom emple group by dept!no> )%' HA. NG es la clausula de grupo ACTIVIDADES COMPLEMENTARIAS 5 #$ercicio &%' +artiendo de la tabla #9+4#/ visuali@a por cada o3icio de los empleados del departamento Y.#NTAS? la suma de salarios> S#4#"T O; " O/ S596SA4AR O7 ;RO9 #9+4# <H#R# D#+T!NO=6S#4#"T D#+T!NO ;RO9 D#+ART <H#R# DNO9BR# 4 C# D.#NTASD7GRO5+ BW O; " O>

4o mismo utili@ando HA. NGJ S#4#"T O; " O/S596SA4AR O7 ;RO9 #9+4# GRO5+ BW O; " O/D#+T!NO HA. NG D#+T!NO=6S#4#"T D#+T!NO ;RO9 D#+ART <H#R# DNO9BR# 4 C# DE.#NTASED7ORD#R BW O; " O>

#$ercicio )%'Selecciona aquellos apellidos de la tabla #9+4#/ cuyo salario sea igual a la media del salario en su departamento% select apellido/ salario 3rom emple QNere 6dept!no/salario7 in 6select dept!no/ trunc 6avg6salario7 3rom emple group by dept!no7>

No Nay ningn dato que de igual que la mediaJ Hemos metido un Nuevo dato para que se pueda comprobar que la orden esta bienJ 'insert into emple values 6MTTT/DA4ONSOD/D#9+4#ADOD/TO2)/D&T`&&`O2D/))TP/N544/)27 select apellido/ salario 3rom emple QNere 6dept!no/salario7 in 6select dept!no/avg6salario7 3rom emple group by dept!no7>

#$ercicio *%' A partir de la tabla emple/ visuali@a el nmero de empleados de cada departamento cuyo o3icio sea Y#9+4#ADO? S#4#"T D#+T!NO/ "O5NT 6Z78#9+4#ADOS8 ;RO9 #9+4# <H#R# O; " O=D#9+4#ADOD GRO5+ BW D#+T!NO ORD#R BW D#+T!NO

#$ercicio P%' Desde la tabla #9+4# / visuali@a el departamento que tenga m-s empleados cuyo o3icio sea A#9+4#ADOB +rimero buscar el departamento que mas empleados tengaJ S#4#"T 9A:6"O5NT6#9+!NO77 ;RO9 4 C#DE#9+4#ADOED GRO5+ BW D#+T!NO #9+4# <H#R# O; " O

Despu0s los departamentos por empleadosJ select D#+T!NO/"O5NT6#9+!NO7 ;RO9 #9+4# <H#R# O; " O 4 C# DE#9+4#ADOED GRO5+ BW D#+T!NO Despu0s $untarlo con Naving/ ya que en el primer grupo tenemos el que mas empleados tiene y en el Segundo los departamentos por numero de empleadosJ select D#+T!NO/"O5NT6#9+!NO7 ;RO9 #9+4# <H#R# O; " O 4 C# DE#9+4#ADOED GRO5+ BW D#+T!NO Naving "O5NT6#9+!NO7=6S#4#"T

9A:6"O5NT6#9+!NO77 ;RO9 #9+4# <H#R# O; " O 4 C#DE#9+4#ADOED GRO5+ BW D#+T!NO7> #$ercicio R%'A partir de las tablas #94# y D#+ART/ visuali@a el nmero de departamento y el nombre de departamento que tenga m-s empleados cuyo o3icio sea AempleadoB S#4#"T DNO9BR#/ D#+T!NO ;RO9 D#+ART <H#R# D#+T!NO =6 S#4#"T D#+T!NO ;RO9 #9+4# <H#R# O; " O 4 C# DE#9+4#ADOED GRO5+ BW D#+T!NO HA. NG "O5NT 6#9+!NO7 = 6S#4#"T 9A:6"O5NT6#9+!NO77 ;RO9 #9+4# <H#R# O; " O 4 C# D#9+4#ADOD GRO5+ BW D#+T!NO77>

S( queremos que apare@can los apellidos de empleadosJ S#4#"T DNO9BR#/ #9+4#%D#+T!NO/ A+#44 DO ;RO9 #9+4#/ D#+ART <H#R# #9+4#%D#+T!NO=D#+ART%D#+T!NO AND O; " O 4 C# DE#9+4#ADOED AND #9+4#%D#+T!NO= 6S#4#"T D#+T!NO ;RO9 #9+4# <H#R# O; " O 4 C# DE#9+4#ADOED GRO5+ BW D#+T!NO HA. NG "O5NT 6#9+!NO7 = 6S#4#"T 9A:6"O5NT6#9+!NO77 ;RO9 #9+4# <H#R# O; " O 4 C# D#9+4#ADOD GRO5+ BW D#+T!NO77>

#$ercicio M%' Busca los departamentos que tienen m-s de dos personas traba$ando en la misma pro3esi,n% select dept!no/ count 6Z7 8Total8 3rom emple group by dept!no/o3icio Naving count6Z7 ] ) order by dept!no>

select dept!no/ o3icio/ count 6emp!no7 3rom emple group by dept!no/ o3icio Naving count6emp!no7]=)>

#$ercicio T%' .isuali@a los nombres de los alumnos de la tabla A459N que apare@can en estas dos tablas ANT G5OS W N5#.OS% select nombre 3rom alum intersect select nombre 3rom nuevos intersect select nombre 3rom antiguos>

#$ercicio V%' #scribe las distintas 3ormas en que se puede poner la consulta anterior llegando al mismo resultado select A459%NO9BR# ;RO9 A459 <H#R# A459%NO9BR# N 6S#4#"T ANT G5OS%NO9BR# ;RO9 ANT G5OS <H#R# ANT G5OS%NO9BR# N6S#4#"T N5#.OS%NO9BR# ;RO9 N5#.OS77

S#4#"T A%NO9BR# ;RO9 A459 A/N5#.OS N/ ANT G5OS G <H#R# A%NO9BR#=N%NO9BR# AND A%NO9BR# =G%NO9BR#

#$ercicio O%' .isuali@a aquellos nombres de la tabla alud que no est0n en las tablas ANT G5OS ni en la tabla N5#.OS

S#4#"T NO9BR# ;RO9 A459 9 N5S S#4#"T NO9BR# ;RO9 ANT G5OS 9 N5S S#4#"T NO9BR# ;RO9 N5#.OS

#$ercicio &2%' Reali@a una consulta en la que apare@ca por cada centro y en cada especialidad el nmero de pro3esores% Si el centro no tiene pro3esores/ debe aparecer un 2 en la columna de nmero de pro3esores% 4as columnas a visuali@ar sonJ nombre de centro/ especialidad y nmero de pro3esores% select nombre/ especialidad/ count6dni78Na +RO;#SOR#S8 3rom pro3esores p/ centros c QNere p%cod!centro6S7 = c%cod!centro group by 6nombre/ especialidad7>

#$ercicio &&%' Obt0n por cada centro el nmero de empleados% Si el centro carece de empleados/ Na de aparecer un 2 como nmero de empelados% select nombre/ count6dni7 3rom personal p/ centros c QNere c%cod!centro=p%cod!centro6S7 group by nombre order by nombre>

select nombre/ c%cod!centro/ count6dni7 8Na8 3rom personal p/ centros c QNere c%cod!centro=p%cod!centro6S7 group by nombre/ c%cod!centro order by cod!centro

#$ercicio &)%'Obten la especialidad con menos pro3esores select especialidad/ count 6dni7 3rom pro3esores group by especialidad Naving count6dni7= 6select min6count6dni77 3rom pro3esores group by especialidad7>

Beste 3ormaJ select especialidad/ count 6dni7 3rom pro3esores group by especialidad Naving count6dni7b=all 6select min6count6dni77 3rom pro3esores group by especialidad7> Seleccionamos la especialidad y los que Nay por especialidad que sean menores o iguales que los que est-n en la segunda opci,n 6que es &7 #$ercicio &*%'Obt0n el banco con m-s sucursales% 4os datos a obtener esJ Nombre del banco :111111111111111 Na Sucursales 111111111

S#4#"T NO9BR#!BAN" 8NO9BR# D# BAN"O8/ "O5NT 6"OD!S5"5R7 8Na S5"5RSA4#S8 ;RO9 BAN"OS B/ S5"5RSA4#S S <H#R# B%"OD!BAN"O=S%"OD!BAN"O GRO5+ BW NO9BR#!BAN" HA. NG "O5NT 6"OD!S5"5R7= 6S#4#"T 9A:6"O5NT6"OD!S5"5R77 ;RO9 BAN"OS B/ S5"5RSA4#S S <H#R# B%"OD!BAN"O=S%"OD!BAN"O GRO5+ BW NO9BR#!BAN"7>

ACTIVIDADES COMPLEMENTARIAS 6 Tablas +#RSONA4/ +RO;#SOR#S W "#NTROS #$ercicio &%' 9odi3ica el nmero de pla@as con un valor igual a la mitad en aquellos centros con menos de dos pro3esores update centros S#T N59!+4A^AS=N59!+4A^AS`) <H#R# NO9BR# N 6select nombre 3rom centros c/ pro3esores p QNere c%cod!centro=p%cod!centro group by nombre Naving count 6dni7b)7

"ON RO44BA"C S# D#SHA"#N 4OS "A9B OS

#$ercicio )%' #limina los centros que no tengan personal Buscamos lo que sonJ S#4#"T NO9BR# /"OD!"#NTRO ;RO9 "#NTROS <H#R# "OD!"#NTRO NOT N 6S#4#"T "OD!"#NTRO ;RO9 +#RSONA47> c S#4#"T "OD!"#NTRO ;RO9 "#NTROS 9 N5S S#4#"T "OD!"#NTRO ;RO9 +#RSONA4>

4uego borramos con delete tabla QNere condicion delete 3rom centros QNere cod!centro in 6S#4#"T "OD!"#NTRO ;RO9 "#NTROS 9 N5S S#4#"T "OD!"#NTRO ;RO9 +#RSONA47>

#$ercicio *%' A\ade un nuevo pro3esor en el centro o en los centros cuyo nmero de administrativos sea & en la especialidad de AidiomasB/ con Dni VO22RR y de nombre A"lara SalasB Buscamos que los administrativos por centros sean menor a &% S#4#"T "OD!"#NTRO/ "O5NT 6;5N" ON7 ;RO9 +#RSONA4 <H#R# ;5N" ON 4 C# DEAD9 N STRAT .OED GRO5+ BW "OD!"#NTRO HA. NG "O5NT 6;5N" ON7=&> c S#4#"T "OD!"#NTRO ;RO9 +#RSONA4 <H#R# ;5N" ON = DAD9 N STRAT .OD GRO5+ BW "OD!"#NTRO HA. NG "O5NT6Z7 = &

4uego insertamos los datosJ NS#RT NTO +RO;#SOR#S 6"OD!"#NTRO/ DN / A+#44 DOS/ #S+#" A4 DAD 7S#4#"T distinct "OD!"#NTRO/ VTO22RR/ DSalas/ "laraD/ D D O9AD 3rom personal QNere cod!centro in 6S#4#"T "OD!"#NTRO ;RO9 +#RSONA4 <H#R# ;5N" ON 4 C# DEAD9 N STRAT .OED GRO5+ BW "OD!"#NTRO HA. NG "O5NT 6;5N" ON7=&7> W vemos los resultadosJ

R%)%' "O9B NA" ON #:T#RNA 6O5T#R FO N7 Select col&/col)_% ;rom tabla&/tabla)/_% <Nere tabla&%col=tabla)%col 6S7 and tabla&%col=tabla*%col 6S7 Alumnos%DN 6S7 Alumnos Apenom Fose Angel +ablo Notas%DN 6S7 NOTAS DN &M &M &V &V )*

Dni &M &V )2

4oca B B B

"od & ) &

NOTA R T O * M

"OD ) & * P &

Apenom Fose Fose Angel Angel +ablo

Dni &M &M &V &V )2

4oca B B B B B

"od & & ) ) &

DN &M &M &V &V )*

NOTA R T O * M

"OD ) & * P &

R%*%' 5N ON/ NT#RS#"T W 9 N5S Son operadores sobre con$untos 6entre dos selecciones7 con campos AequivalentesB% 5N ON "ombina resultados de dos consultas% 4as 3ilas duplicadas solo aparecen una ve@% Si queremos que apare@ca los duplicados/ utili@aremos 5N ON A44% NT#RS#"T Devuelve los registros comunes a ambos consultas 9 N5S Devuelve los registros de la primera consulta que no est0n en la segunda% Reglas de uso 4as columnas de las dos consultas se relacionan en orden/ de i@quierda a derecNa% 4os nombres de las columnas no tienen porque ser los mismos% 4os select deben tener el mismo nmero de columnas%

4os tipos de datos deben coincidir/ as( como el orden/ pero no necesariamente la longitud% M%' 9AN +54A" ON D# DATOS M%& NS#" ON D# DATOSJ NS#RT NS#RT NTO nomb!tabla d6col&/ col)/_7e .A45#S 6valor&/ _/ valor7> 6nombrebase nom!tabla7 Se puede prinscindir del nombre las columnas/ lo que supondr- que se van a llenar todas y los valores corresponder-n al mismo orden% 4os valores deben corresponder a los tipos de las columnas y a su 3ormato% 4os valores pueden proceder de un select% 4as columnas que no reciban valor se rellenaran 6dos comas seguidas7 con N544 salvo que est0n de3inidas con NOT N544%

NS#RT "ON S#4#"T #l con$unto de valores a insertar pueden provenir de un S#4#"T/ siempre que el resultado del mismo sea nico% Se a\aden tantas 3ilas como generen la consulta% NS#RT NTO nombretabla d6col&/%%coln7e .A45#S 6S#4#"T _%% ;RO9 _%%7 M%) 9OD ; "A" ONJ5+DAT# 5+DAT# nombtabla S#T col&=valor&/ col)=valor)/_%% <H#R# condici,n> 5+DAT# clients S#T nombre=?+#+#? <H#R# nombre=?pepito?> 5+DAT# "ON S#4#"T 4a condici,n puede incluir un S#4#"T como termino de comparaci,n% 5+DAT# nombtab S#T col&=_%% <H#R# condi=6S#4#"T _%%7> "uando la subconsulta 3orma parte de un S#T/ debe devolver valor nico% Tambi0n puede incluir un S#4#"T en la parte del S#T/ que el valor de una columna lo saque de una tabla% 5+DAT# nomtab S#T "O4&=6S##"T_%%7_%%<H#R# __% M%* 9OD ; "A" ONJD#4#T# D#4#T# ;RO9 nombtab <H#R# condicion> M%P "O99 T/ RO44BA"C/ A5TO"O99 T SNoQ autocommit vemos si el sistema esta con3igurado para Nacerlo% "on S#T A5TO"O99 T ON`O;; para activarlo o no%

"O99 T Hacer de3initivos los cambios% RO44BA"C .olver atr-s los cambios% "O99 T Algunas 3unciones las reali@an autom-ticamente% #$emploJ Huit/ e1it connect/ disconnet/ create table/ drop table/ alter/ revoque/ audit%/ noaudit RO44BA"C autom-tico Oracle lo reali@a cuando no se 3inali@a correctamente la sesi,n%

You might also like