Cómo utilizar expresiones de valores de filas de sql

En los estándares SQL originales, SQL-86 y SQL-89, la mayoría de las operaciones tratado con un único valor o una sola columna en una fila de la tabla. Para operar en múltiples valores, había que construir expresiones complejas mediante el uso de lógica conectivas.

SQL-92 introducido expresiones de valores de filas, que operar en una lista de valores o columnas en lugar de en un único valor o columna. Una expresión de valor de fila es una lista de expresiones de valor que encierran entre paréntesis y separadas por comas. Puede codificar estas expresiones para operar en una fila entera de una vez o en un subconjunto seleccionado de la fila.

Para utilizar el INSERTAR declaración de añadir una nueva fila a una tabla existente, la instrucción utiliza una expresión de valor de fila. Consideremos el siguiente ejemplo:

Video: Insert o Insertar datos en una Tabla en SQL SERVER

INSERT en los alimentos (FOODNAME, calorías, proteínas, grasas, hidratos de carbono) VALORES ( `Cheese, cheddar`, 398, 25, 32,2, 2,1) -

En este ejemplo, ( ‘Cheese, cheddar’, 398, 25, 32,2, 2,1) es una expresión de valor fila. Si utiliza una expresión de valor en una fila INSERTAR La declaración de este modo, puede contener valores nulos y valores por defecto. (UN valor por defecto es el valor que asume una columna de tabla si se especifica ningún otro valor) La siguiente línea, por ejemplo, es una expresión de valor de fila legal.:

( `Cheese, cheddar`, 398, NULL, 32,2, DEFAULT)

Puede agregar varias filas a una tabla poniendo múltiples expresiones de valor en la fila VALORES cláusula, como sigue:

INSERT en los alimentos (FOODNAME, calorías, proteínas, grasas, hidratos de carbono) VALORES ( `lechuga`, 14, 1.2, 0.2, 2.5), ( `Butter`, 720, 0,6, 81,0, 0,4), ( `mostaza`, 75, 4.7, 4.4, 6.4), ( `spaghetti`, 148, 5,0, 0,5, 30,1) -

Se pueden utilizar expresiones de valores de filas para salvarse de tener que introducir manualmente las comparaciones. Suponga que tiene dos tablas de valores nutricionales, compilado en Inglés y otro en español. ¿Quieres encontrar a esas filas en la tabla de idioma Inglés que corresponden exactamente a las filas de la tabla de idioma español. Sin una expresión de valor de fila, puede que tenga que formular algo así como el siguiente ejemplo:

Video: MySQL - Insertar, modificar y eliminar registros con sentencias desde MySQL Browser

SELECT * FROM FOODSWHERE FOODS.CALORIES = COMIDA.CALORIAAND FOODS.PROTEIN = COMIDA.PROTEINASAND FOODS.FAT = COMIDA.GRASASAND FOODS.CARBOHYDRATE = COMIDA.CARBOHIDRATO -

expresiones de valores de filas le permiten codificar la misma lógica, de la siguiente manera:

SELECT * FROM FOODSWHERE (FOODS.CALORIES, FOODS.PROTEIN, FOODS.FAT, FOODS.CARBOHYDRATE) = (COMIDA.CALORIA, COMIDA.PROTEINAS, COMIDA.GRASAS, COMIDA.CARBOHIDRATO) -

En este ejemplo, no guarda mucho escribir. Que se beneficiaría poco más si hacer una comparación más columnas. En los casos de beneficio marginal como en este ejemplo, puede ser mejor de pegarse con la sintaxis anterior, ya que su significado es más clara.

Se gana un beneficio mediante el uso de una expresión de valor de fila en lugar de su equivalente codificado - la expresión valor de fila es mucho más rápido. En principio, una aplicación inteligente puede analizar la versión codificada e implementarlo como la versión de valor de fila. En la práctica, esta operación es una optimización difícil que no se pueden realizar actualmente DBMS.

Artículos Relacionados