Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

El select es un comando o una clausula?

Estas en el tema de El select es un comando o una clausula? en el foro de SQL Server en Foros del Web. He buscado información sobre lo que es un clausula y (1era definición)me dice que es un extensión que complementa una instrucción o sentencia.(2da definición) Y ...
  #1 (permalink)  
Antiguo 09/03/2013, 12:31
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta El select es un comando o una clausula?

He buscado información sobre lo que es un clausula y (1era definición)me dice que es un extensión que complementa una instrucción o sentencia.(2da definición) Y otros me dicen que son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
por ejemplo:

Update Cliente set codigo='100' where edad >10
Este ejemplo según la primera definición el set(por ser una extension es una clausula) y el where por ser una condicion tambien es una clausula. verdad estas dos definiciones?. Por favor espero que me puedan aclarar esta duda.

Última edición por RobertAC; 09/03/2013 a las 12:37
  #2 (permalink)  
Antiguo 10/03/2013, 07:44
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Es solamente terminología..

Código SQL:
Ver original
  1. SELECT ID,
  2.       SUM(Dinero)
  3. FROM MiTabla
  4. GROUP BY ID
  5. ORDER BY SUM(Dinero) DESC;
Espero que no me equivoco:

1.
Select es un comando,

2.
Select ID,
Sum(Dinero)

es una clausula.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 10/03/2013, 18:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: El select es un comando o una clausula?

Desde un sentido estricto, SELECT no es ni un comando ni una cláusula. Es una sentencia.

Un comando es (siempre hablando estrictamente de la definición) una instrucción dada a un sistema operativo, o que tiene impacto en acciones que el sistema operativo debe realizar.
Es en definitiva, una llamada al S.O., sea por medio de un intérprete o de una consola dada.

Una sentencia es una línea de código en un lenguaje informático, que determina un proceso de algún tipo, y en este caso es sobre un lenguaje de consultas.
Por ejemplo, enviar a imprimir es una sentencia de un lenguaje, mientras que leer el contenido de un directorio sería un comando. En SQL hay comandos que permiten leer archivos desde disco, pero los procesos que son interpretados internamente en el DBMS, son sentencias.

El SQL tiene efectivamente, "comandos", pero no son el SELECT, INSERT, UPDATE ni el DELETE. Son en todo caso las llamadas sentencias DML, es decir, aquellas que crean, modifican o destruyen objetos, porque estas son en definitiva acciones que impactan sobre el S.O.

Por su lado, las cláusulas son modificadores de las sentencias, es decir, partes de una sentencia que cambian el comportamiento de la misma, tales como los JOIN, HAVING, GROUP, etc. Estas cláusulas permiten que la sentencia básica sufra determinados cambios en el resultado de acuerdo a lo que las clausulas determinan.

SUM(), AVG(), COUNT(), etc., no son cláusulas. Son funciones (esto debería ser evidente), y como en todo lenguaje de computación, una función es un proceso que devuelve un datos o valor determinado. En este caso existen funciones de agrupamiento y "el resto". Las primeras sólo pueden ser usadas en conjunto con la cláusula GROUP BY, mientras que en el resto se procesan los valores sobre cada registro devuelto.

¿Se va entendiendo la diferencia?

Técnicamente, es incorrecto en SQL hablar de comandos (con puntuales excepciones). Cuando se menciona cualquiera de las sentencias DML o DDL, se habla de consultas, aunque sea UPDATE, DELETE o CREATE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 10/03/2013 a las 18:50

Etiquetas: select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.