Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[APORTE] FINAL GDD 20/12/2016
Autor Mensaje
luchotc Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2
Agradecimientos dados: 0
Agradecimientos: 3 en 1 posts
Registro en: Sep 2016
Mensaje: #1
[APORTE] FINAL GDD 20/12/2016 Finales Gestión de Datos
Buenas! Si alguno tiene una foto o algo le pido que la publique, yo escribo lo que me acuerdo

V o F:

1)Si una función de hash tiene poca dispersión es más probable que haya colisiones
2)En una vista nunca se pueden realizar inserts

Teoría:

Mencione elementos del motor de base de datos para la seguridad
Mencione que utilidad tiene saber el plan de ejecución de una consulta

Práctica:

3a) Te daban una query en pl/sql, había que pasarla a ansi sin usar el outer join.

Select nombre, importe, nvl(cli_id, "sin cliente")
From cliente c, factura f
where f.cli_id(+) = c.cli_id
and f.anio > (sysdate - 365)

Aclaro que el (+) al lado del f.cli_id reprensenta un left join, osea lo que hacía esa query era traer todas las facturas, tengan clientes o no, y si no tenían, mostraba "sin cliente"

3b) Te daban una query y era un multiple choice a ver que pasaba.
La solicitado por la query era traer las facturas del ultima año que no estén anuladas (Aclaraba que una factura anulada era aquella que no tenía nada en f.cli_id)

Select f.* from Facturas, clientes where f.cli_id = c.cli_id and f.anio > (sysdate - 365) and f.cli_id is not null


a)Se ejecuta y trae lo pedido
b)Se ejecuta y no trae lo pedido
c)Se ejecuta pero posee un filtro redundante
d)Se ejecuta pero posee un filtro redundante y no trae lo pedido
e)No se ejecuta

(Las opciones no estaban en ese orden ni eran tal cual, pero para que tengan una idea)


Respuestas:
1) V. Bastante evidente.
2) F. También bastante evidente. Las vistas te dejan insertar siempre y cuando tengas permisos y cumplas las constraints de las tablas originales.
(En el 90% de los casos que ponen NUNCA, SIEMPRE son falsas =P)

La teoría nada loco, te podés explayar bastante en ambos temas.

La práctica.
El 3a) lo resolví con un union all, la parte de arriba traia todos los que tenian clientes y la de abajo todos los sin clientes. Bastante pavo también

3b) La respuesta era la c). El filtro is not null era redundante porque si ya habias joineado te evitas registros nulos ahí por c.cli_id es pk de cliente.

Me saqué 9 así que los V o F deben estar ok porque sino tendría máximo 8 (restan los V o F). Probablemente algún chamuyo de la teoría no les gustó o algún error de sintaxis en el 3a, pero por ahí andan las respuestas gente.

Saludos y buen final de año!
21-12-2016 17:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] luchotc recibio 3 Gracias por este post
CarooLina (21-12-2016), Diesel (07-12-2019), nanohueso (15-12-2019)
rovila Sin conexión
Empleado del buffet
sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17
Agradecimientos dados: 46
Agradecimientos: 7 en 4 posts
Registro en: Feb 2011
Mensaje: #2
RE: [APORTE] FINAL GDD 20/12/2016
Hola!
Estaría bien el 3a:


select nombre, importe, cli_id
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is not null
union
select nombre, importe, isnull(cli_id, 'sin cliente')
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is null

11-02-2017 07:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rovila recibio 1 Gracias por este post
CarooLina (07-02-2018)
Smitten1994 Sin conexión
Campeon del cubo Rubik
La verdad es que no hay una ve...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 116
Agradecimientos dados: 340
Agradecimientos: 273 en 56 posts
Registro en: Aug 2013
Mensaje: #3
RE: [APORTE] FINAL GDD 20/12/2016
Utnianos! Les subo el final de GDD del 20-12-16.

[Imagen: u9prUvH.png]

No se olviden de agradecer! thumbup3
(Este mensaje fue modificado por última vez en: 14-12-2018 00:37 por Smitten1994.)
14-12-2018 00:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Smitten1994 recibio 3 Gracias por este post
Soy (05-02-2019), nanohueso (11-12-2019), .-Fede-. (11-02-2020)
Diesel Sin conexión
Profesor del Modulo A
me recibi !!! 25/10/2023
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 201
Agradecimientos dados: 178
Agradecimientos: 346 en 50 posts
Registro en: Sep 2012
Mensaje: #4
RE: [APORTE] FINAL GDD 20/12/2016
V o F:


2)En una vista nunca se pueden realizar inserts

2) F. También bastante evidente. Las vistas te dejan insertar siempre y cuando tengas permisos y cumplas las constraints de las tablas originales.
(En el 90% de los casos que ponen NUNCA, SIEMPRE son falsas =P)

WO wo wo

esta no es Verdadera? tenia entendido que en una vista NO se pueden realizar inserts.. Soy alto burro??
07-12-2019 20:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
manurocck Sin conexión
Militante
Preparado para la batalla
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 84
Agradecimientos dados: 62
Agradecimientos: 170 en 35 posts
Registro en: Sep 2015
YouTube
Mensaje: #5
RE: [APORTE] FINAL GDD 20/12/2016
(07-12-2019 20:14)Diesel escribió:  WO wo wo

esta no es Verdadera? tenia entendido que en una vista NO se pueden realizar inserts.. Soy alto burro??

Pensá que en los apuntes dice: "es el resultado de una consulta y es tratado como una tabla".

Tiene algunas restricciones igualmente.. No podés insertar en vistas que tengan JOINS u ORDER BY's.

Y pensá que está la función que le podes agregar a la vista que es "WITH CHECK OPTION" que sólo te deja insertar las filas que cumplan con la condición que le agregues. Así que por definición de esa función, si permite inserts.

<< Que lindo post, me voy a sentar a leerlo >>

[Imagen: giphy.gif]
09-12-2019 02:16
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] manurocck recibio 1 Gracias por este post
Diesel (09-12-2019)
Diesel Sin conexión
Profesor del Modulo A
me recibi !!! 25/10/2023
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 201
Agradecimientos dados: 178
Agradecimientos: 346 en 50 posts
Registro en: Sep 2012
Mensaje: #6
RE: [APORTE] FINAL GDD 20/12/2016
(11-02-2017 07:41)rovila escribió:  Hola!
Estaría bien el 3a:


select nombre, importe, cli_id
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is not null
union
select nombre, importe, isnull(cli_id, 'sin cliente')
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is null


Al margen de que te estoy contestando 1 año despues, no tengo ni la menor idea de lo que es sysdatetime -365 o sea no entiendo porque lo hace... Haria un GETDATE() en SQL que lo conozco y YEAR de eso o DAY y le resto los dias nose.. quizas me pare y les pregunte si me toman esa funcion, pero lo que te queria comentar es que si vos haces el filtro de que vas a traer NULLS ya directamente deberias imprimir 'sin cliente'




select nombre, importe, cli_id
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is not null
union
select nombre, importe, 'sin cliente'
from cliente c, factura f
where f.cli_id = c.cli_id
and f.anio > (sysdatetime - 365)
and cli_id is null




y sino una sola query sin UNION pero poniendo "isNull(valor,'Sin cliente') "
Pero la query funciona igual asi que deberia estar bien.
Abrazo!
10-12-2019 22:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)