2011-01-19 14 views
23

Todavía vivo en esta ambigüedad: conceptualmente, ¿cuál es la diferencia entre una declaración y una consulta en SQL? ¿Alguien puede dar una definición para cada uno de ellos? Sería útil, por ejemplo, al elegir nombres de variables dentro de los programas de una manera que sea clara para todos. Gracias!Diferencia entre una instrucción y una consulta en SQL

además: ¿Cómo puedo llamar a un trozo de código SQL hecha por más de una sentencia donde las declaraciones están separados por un punto y coma (;)? Quien ya respondió puede editar su respuesta. ¡Muchas gracias!

Respuesta

21

Una declaración es cualquier texto que el motor de base de datos reconozca como un comando válido. A partir de SQL-92:

Una sentencia SQL es una cadena de caracteres que se ajusta a las normas de formato y sintaxis especificados en esta norma internacional.

Un consulta es una sentencia que devuelve un conjunto de registros (posiblemente vacía).

¿Cómo puedo llamar a un fragmento de código SQL creado por más de una instrucción donde las instrucciones están separadas por un punto y coma (;)? Quien ya respondió puede editar su respuesta. ¡Muchas gracias!

Una serie de SQL declaraciones enviadas al servidor a la vez se llama un lote .

No todos los motores SQL requieren las declaraciones en un lote delimitado por punto y coma. SQL Server, por ejemplo, generalmente no lo hace y rompe las declaraciones basadas en el contexto. CTE declaraciones que comienzan con WITH son una excepción notable.

+0

"Una declaración es cualquier texto que el motor de base de datos reconoce como un comando válido". Por favor, indique la diferencia entre el comando y la consulta. –

+0

@akshayrajkore: 'DROP DATABASE' es un comando pero no una consulta – Quassnoi

1

Se utilizan indistintamente por la mayoría, pero algunos utilizan a menudo la palabra "consulta" para significar, en concreto, SELECT declaraciones, porque cuando se consulta algo o alguien, que desea información. Y las consultas SELECT devuelven conjuntos de resultados, por lo que encajarían con la descripción. Esto también es evidente en el hecho de que las declaraciones SELECT se denominan formalmente sentencias DQL (lenguaje de consulta de datos).

+0

¿Es un 'SELECT..INTO' (no devuelve un conjunto de resultados) una consulta? Es '(VALUES (1)) AS T (col);' (¿devuelve un conjunto de resultados) una consulta? – onedaywhen

+0

"Las instrucciones SELECT se llaman formalmente DQL" - Creo que el uso de DML. DDL, DCL, etc. son informales. ¿Quién es la fuente confiable para tales asuntos? He visto varias definiciones de DCL. 'SELECT' normalmente está asociado con DML, IMO. No creo que DQL se use comúnmente, que no sea para referirse a Doctrine Query Language o un error de escritura para SQL (considere que la tecla D está al lado de la tecla S). – onedaywhen

8

A instrucción es cualquier comando SQL como SELECT, INSERT, UPDATE, DELETE.

A consulta es un sinónimo de una instrucción SELECT.

4

A declaración es el término general para una pieza de SQL correcta y completa que puede enviar a un DBMS. Una consulta es una declaración que devolverá datos, por lo tanto, una consulta es un tipo especial de instrucción.

A SELECT ... sería una consulta, un DELETE... solo una afirmación.

7

De Wikipedia - SQL Language Elements

El lenguaje SQL es subdividido en varios elementos del lenguaje, incluyendo:

  • cláusulas, que son elementos constitutivos de las declaraciones y preguntas. (En algunos casos, estos son opcionales.) [9]
  • Expresiones, que pueden producir valores escalares o tablas que consisten en columnas y filas de datos.
  • Predicciones, que especifican las condiciones que pueden evaluarse con valores lógicos SQL de tres valores (3VL) o booleanos (verdaderos/falsos/desconocidos) y que se utilizan para limitar los efectos de declaraciones y consultas, o para cambiar flujo de programa.
  • Consultas, que recuperan los datos en función de criterios específicos.
  • Estados de cuenta, que pueden tener un efecto persistente en esquemas y datos, o que pueden controlar transacciones, flujo de programa, conexiones, sesiones o diagnósticos.
    • Las sentencias SQL también incluyen el terminador de sentencia de punto y coma (";"). Aunque no se requiere en todas las plataformas, se define como una parte estándar de la gramática SQL.
  • espacios en blanco insignificante se ignora generalmente en las sentencias SQL y consultas, por lo que es más fácil de formato de código SQL para facilitar la lectura.
+0

+1 para ir más allá :-) – paxdiablo

0

consultas se utiliza para recuperar los datos en base a criterios específicos, pero comunicado pueden tener un efecto persistente en los esquemas y datos, o que pueda controlar las transacciones, el flujo del programa, conexiones, sesiones, o diagnósticos . Vea también Wikipedia.

Cuestiones relacionadas