Como usar expressões de valor linha sql
Nos padrões SQL originais, SQL-86 e SQL-89, a maioria das operações de que trata um valor único ou uma única coluna em uma linha da tabela. Para operar em vários valores, você teve que construir expressões complexas usando lógica conectivos
.SQL-92 introduziram expressões de valor linha, que operam de uma lista de valores ou colunas, em vez de um único valor ou coluna. A expressão valor de linha é uma lista de expressões de valor que você coloque entre parênteses e separam por vírgulas. Você pode codificar essas expressões para operar em uma linha inteira de uma vez ou em um subconjunto selecionado da linha.
Para usar o INSERIR declaração para adicionar uma nova linha a uma tabela existente, a instrução usa uma expressão valor de linha. Considere o seguinte exemplo:
Video: 063 SQL Utilizando a expressão DISTINCT
INSERT INTO FOODS (FOODNAME, calorias, proteínas, gorduras, hidratos de carbono) VALUES ( `queijo, queijo cheddar`, 398, 25, 32.2, 2.1) -
Neste exemplo, ( ‘Queijo, queijo cheddar’, 398, 25, 32,2, 2,1) é uma expressão valor de linha. Se você usar uma expressão de valor de linha em uma INSERIR declaração Desta forma, ele pode conter valores nulos e predefinidos. (UMA valor padrão é o valor que uma coluna de tabela assume se for especificado nenhum outro valor) A seguinte linha, por exemplo, é uma expressão de valor de linha legal.:
( `Queijo, queijo cheddar`, 398, NULL, 32,2, PADRÃO)
Você pode adicionar várias linhas a uma tabela, colocando várias expressões de valor linha na VALORES cláusula, como segue:
INSERÇÃO EM ALIMENTOS (FOODNAME, calorias, proteínas, gorduras, hidratos de carbono) VALORES ( `alface`, 14, 1,2, 0,2, 2,5), ( `Manteiga`, 720, 0,6, 81,0, 0,4), ( `Mostarda`, 75, 4.7, 4.4, 6.4), ( `esparguete`, 148, 5,0, 0,5, 30,1) -
Você pode usar expressões de valor linha para salvar-se de ter de introduzir comparações manualmente. Suponha que você tenha duas tabelas de valores nutricionais, uma compilados em Inglês e outro em espanhol. Você quer encontrar essas linhas na tabela idioma Inglês que correspondem exatamente às linhas na tabela língua espanhola. Sem uma expressão valor de linha, você pode precisar de formular algo como o exemplo a seguir:
Video: SQL - Comando Case - Parte01 - Aula 5
SELECT * DE FOODSWHERE FOODS.CALORIES = COMIDA.CALORIAAND FOODS.PROTEIN = COMIDA.PROTEINASAND FOODS.FAT = COMIDA.GRASASAND FOODS.CARBOHYDRATE = COMIDA.CARBOHIDRATO -
expressões valor de linha permitem que você codificar a mesma lógica, como segue:
SELECT * DE FOODSWHERE (FOODS.CALORIES, FOODS.PROTEIN, FOODS.FAT, FOODS.CARBOHYDRATE) = (COMIDA.CALORIA, COMIDA.PROTEINAS, COMIDA.GRASAS, COMIDA.CARBOHIDRATO) -
Neste exemplo, você não salvar muita digitação. Você iria beneficiar um pouco mais se você estivesse comparando mais colunas. Em casos de benefício marginal como neste exemplo, você pode ser melhor fora de furar com a sintaxe mais velhos, porque seu significado é claro.
Você ganha um benefício usando uma expressão valor de linha em vez de seu equivalente codificado - a expressão valor de linha é muito mais rápido. Em princípio, uma aplicação inteligente pode analisar a versão codificada e implementá-lo como a versão valor de linha. Na prática, esta operação é uma otimização difícil que nenhum DBMS atualmente pode executar.