Tema: 58. Id Pregunta: 1753.

Temas relacionados con el examen de test
Cerrado
mjlpbfgpgr
Usuario registrado
Mensajes: 71
Registrado: 27 Abr 2013, 11:24
Agradecido: 0
Agradecimiento recibido: 0

Tema: 58. Id Pregunta: 1753.

Mensaje por mjlpbfgpgr »

8) Señale la falsa:
Tema: 58. Id Pregunta: 1753.
a) UPDATE es una sentencia de manipulación de datos
b) DROP es una sentencia de definición de datos
c) No se puede incluir una clausula HAVING sin utilizar previamente GRUOP BY
d) El resultado de un SELECT no tiene porqué ser una tabla

da como solución la d), ¿es correcta?
Yo creo que la c) es falsa porque se puede usar HAVING con o sin GROUP BY y con respecto a la d) no creo que el resultado de una SELECT sea siempre una tabla
Gracias. Saludos

kEko
Usuario registrado
Mensajes: 5
Registrado: 12 Mar 2015, 21:24
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por kEko »

Estoy de acuerdo contigo mjlpbfgpgr.

Aunque en la clausula HAVING solamente se permiten funciones agregadas, no necesariamente tienen que agruparse mediante un GROUP BY (por ejemplo en un count(*) )

Yo marcaría la d)

Un saludo

Salvatore
Usuario registrado
Mensajes: 89
Registrado: 27 Dic 2014, 08:56
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por Salvatore »

Yo he estado buscando para asegurarme y se puede incluir un having sin haber usado el group by (https://technet.microsoft.com/es-es/lib ... 05%29.aspx). Por tanto la correcta sería la c no?? ya que la pregunta indica cual es la falsa....La "d" es correcta ya que puede ser el resultado un numero como resultado de un count(*)

c) No se puede incluir una clausula HAVING sin utilizar previamente GRUOP BY (ESTO ES FALSO NO??)

Avatar de Usuario
vfrades
PreparaTIC XXI
Mensajes: 631
Registrado: 16 Jun 2008, 15:40
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por vfrades »

Lo normal al usar HAVING es que se use junto a GROUP BY. Si no hay GROUP BY, el HAVING se comporta como un WHERE. Puede que este uso de HAVING no sea muy útil, pero es lícito. Por lo tanto, esa es la falsa.

El resultado de SELECT siempre es una tabla, y como tal puede usarse dentro de una cláusula FROM.

Salvatore
Usuario registrado
Mensajes: 89
Registrado: 27 Dic 2014, 08:56
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por Salvatore »

vfrades escribió:Lo normal al usar HAVING es que se use junto a GROUP BY. Si no hay GROUP BY, el HAVING se comporta como un WHERE. Puede que este uso de HAVING no sea muy útil, pero es lícito. Por lo tanto, esa es la falsa.

El resultado de SELECT siempre es una tabla, y como tal puede usarse dentro de una cláusula FROM.
Perdona vfrades pero entonces no entiendo bien tu respuesta. EStoy de acuerdo contigo en la primera parte pero si dices que el resultado del select siempre es una tabla, para ti la respuesta correcta es la "d"??.. me estoy confundiendo ?? :lol:
Saludos, y a ver si llegamos a una solucion

mjlpbfgpgr
Usuario registrado
Mensajes: 71
Registrado: 27 Abr 2013, 11:24
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por mjlpbfgpgr »

Hola
Gracias a todos por vuestras aportaciones
He leído por ahí que el resultado de una select siempre es una tabla lógica, aunque yo no estoy de acuerdo, porque, por ejemplo, de una select en la que se pida una sola columna y se de la PK en el where, se obtiene un único valor, pero incluso dando por buena la "d" como respuesta falsa, sigo pensando que la "c" también es falsa
He intentado ir a la fuente y ver la especificación ISO 9075, pero es de pago y no la encuentro gratis por ningún sitio. Digo esto porque a lo mejor la ISO coincide con lo que se dice en esta pregunta y el hecho de poder usar HAVING sin "GROUP BY" es una extensión de los SGBD comerciales o algo así

Gracias de nuevo. Saludos

chuchurri0
PreparaTIC XXII
Mensajes: 141
Registrado: 22 Jul 2009, 21:34
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por chuchurri0 »

Hola, yo tampoco conozco el estándar, pero según la "Regla 1 de Codd: la regla de la información, toda la información en la base de datos es representada unidireccionalmente, por valores en posiciones de las columnas dentro de filas de tablas. Toda la información en una base de datos relacional se representa explícitamente en el nivel lógico exactamente de una manera: con valores en tablas." Aunque el resultado sea un único valor, será una tabla con una única tabla y una única columna.

Ya sé que para que una base de datos sea relacional no tiene por qué cumplir todas las reglas, y sin conocer el estándar al dedillo no puedo afirmar nada al 100%, pero es probable que sea así. (Y sé que la probabilidad cuando estás estudiando no convence mucho, pero es lo mejor que te puedo decir).

Avatar de Usuario
vfrades
PreparaTIC XXI
Mensajes: 631
Registrado: 16 Jun 2008, 15:40
Agradecido: 0
Agradecimiento recibido: 0

Re: Tema: 58. Id Pregunta: 1753.

Mensaje por vfrades »

Desde luego, la respuesta c) es la que es claramente falsa. Lo de la d) sería más discutible. Lo que dice el estándar es que el resultado de un SELECT es un "conjunto resultado" (o "result set") que ciertamente no es lo mismo que una tabla (no se puede hacer UPDATE/DELETE/INSERT, no se puede añadir columnas, etc). Siendo rigurosos, la única afirmación falsa es la c).

Cerrado

Volver a “PRIMER EXAMEN 2014”