Cómo utilizar expresiones de valor fila sql

En los estándares SQL originales, SQL-86 y SQL-89, la mayoría de las operaciones que lidiar 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 usando lógica conectivas.

Introducido SQL-92 expresiones de valor consecutivo, que operan en una lista de valores o columnas en lugar de en un solo valor o columna. Una expresión de valor de fila es una lista de expresiones de valor que encierran entre paréntesis y separados por comas. Puede codificar estas expresiones para operar en una fila completa de una sola vez o en un subconjunto seleccionado de la fila.

Para utilizar el INSERT declaración para agregar una nueva fila a una tabla existente, la instrucción utiliza una expresión de valor fila. Considere el siguiente ejemplo:

INSERT INTO ALIMENTOS (FOODNAME, calorías, proteínas, grasas, carbohidratos) VALUES ('Queso, cheddar', 398, 25, 32.2, 2.1) -

En este ejemplo, ('Queso, cheddar', 398, 25, 32.2, 2.1) es una expresión de valor de la fila. Si utiliza una expresión de valor en una fila INSERT declaración de esta manera, puede contener valores nulos y por defecto. (LA valor por defecto es el valor que una columna de tabla asume si se especifica ningún otro valor) La siguiente línea, por ejemplo, es una expresión de valor de fila jurídica.:

('Queso, cheddar', 398, NULL, 32.2, DEFAULT)

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

INSERT INTO ALIMENTOS (FOODNAME, calorías, proteínas, grasas, carbohidratos) VALUES ('lechuga', 14, 1.2, 0.2, 2.5), ('Mantequilla', 720, 0.6, 81.0, 0.4), ('Mostaza', 75, 4.7, 4.4, 6.4), ('spaghetti', 148, 5.0, 0.5, 30.1) -

Puede utilizar expresiones de valor fila 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. Usted quiere encontrar esas filas en la tabla de idioma Inglés que corresponden exactamente a las filas de la tabla idioma español. Sin una expresión de valor de fila, puede que tenga que formular algo como el siguiente ejemplo:

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

Expresiones de valor de fila 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. Se podría beneficiar un poco más si se comparan más columnas. En los casos de beneficio marginal como en este ejemplo, usted puede ser mejor de pegarse con la sintaxis mayor porque su significado es claro.

Ganas 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 y ponerlo en práctica como la versión de valor de la fila. En la práctica, esta operación es una optimización difícil que no se pueden realizar actualmente DBMS.




» » » » Cómo utilizar expresiones de valor fila sql