InformáticaTipos de arquivos

SQL distinta: de descrición, exemplos, propiedades

Moitas veces, cando usa SQL para recuperar datos a partir das táboas, o usuario recibe os datos redundantes é a existencia dun liñas duplicadas absolutamente idénticos. Para evitar esta situación, use SQL argumento distinto na sentenza Select. Este artigo pode discutir exemplos do uso deste argumento, así como situacións en que a aplicación debe ser abandonadas polo argumento.

Antes de pasarmos a considerar os exemplos concretos, cree a base de datos necesario un par de mesas.

mesa de preparación

Imaxina que temos un almacena información da base de datos sobre o fondo presentados en dúas táboas. Este oboi mesa (fondo) con campos de ID (identificador único), do tipo (tipo de fondo -. Papel, vinilo, etc.), cor (cor), un struct (estrutura) eo prezo (prezo). E mesa Ostatki (residuos) con campos id_oboi (unha referencia ao identificador único na táboa Oboi) e count (o número de rolos en stock).

Cubrir a táboa de datos. Na táboa engadir o fondo 9 rexistros:

Oboi

ID

tipo

cor

struct

prezo

1

papel

Multicolor

en relevo

56,9

2

papel dobre en capas

beige

suave

114,8

3

vinilo

laranxa

en relevo

504

4

veo

beige

en relevo

1020,9

5

papel dobre en capas

beige

suave

150,6

6

papel

Multicolor

suave

95,4

7

vinilo

marrón

suave

372

8

veo

Blanco

en relevo

980,1

9

folla

-de-rosa

suave

1166,5

A táboa cos restos - e nove rexistros:

Ostatki

id_oboi

contar

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Procedemos á descrición da orde distinta en SQL.

Lugar distinto na cláusula Select

argumento distinto debe ser colocado inmediatamente despois a palabra chave Select nas consultas. Aplicou a todas as columnas especificadas na sentenza Select, porque vai ser eliminado do resultado da consulta final é cordas absolutamente idénticos. Así, unha vez é suficiente para especificar cando escribir SQL «elección distinta» da solicitude. A excepción é a utilización de funcións agregadas dentro distintas que mirar un pouco máis tarde.

Debe lembrar que a maioría da base de datos e non recoñece o tipo de solicitude:

Seleccione Ostatki.Count distinta, Oboi distinta. *

DE oboi

INNER JOIN Ostatki NO Oboi.id = Ostatki.id_oboi

Non foi considerado argumento varias veces ou xa indicado, pero antes da segunda, terceira ou outra columna seleccionada. Recibirá un erro referíndose a un erro de sintaxe.

Aplicación consultas distintas no estándar

É evidente que con mesas axeitadas estrutura do edificio e enche-los dentro dunha única tabela excluída a situación cando hai cordas absolutamente idénticos. Polo tanto, a execución da consulta «Escolla distinta *» cunha mostra de unha táboa é implacable.

Considero unha situación cando necesitamos saber que tipo temos fondo, só por conveniencia, para clasificar por tipo:

seleccionar Oboi.type

De orde Oboi por tipo

E obter os resultados:

tipo

papel

papel

papel dobre en capas

papel dobre en capas

vinilo

vinilo

folla

veo

veo

Como se pode ver na táboa existen liñas duplicadas. Se sumarmos a proposta Seleccione distinta:

Seleccione Oboi.type distinta

De orde Oboi por tipo

obtemos o resultado sen repetición:

tipo

papel

papel dobre en capas

vinilo

folla

veo

Así, se introducir correctamente os datos nunha táboa, a continuación, inmediatamente despois unha chamada ou solicitude de compradores podemos responder que o fondo líquido, fibra de vidro e fondo de acrílico dispoñibles na tenda non son. Dado que a variedade de tendas xeralmente non se limita a un centenar de fondo, ver a lista dos tipos non-únicos sería moi laborioso.

Aplicación de funcións de agregación distintas dentro

argumento distinto SQL pode ser usado con calquera función agregada. Pero ao Min e Max a súa aplicación non terá ningún efecto, pero ao calcular a suma ou o valor medio de cando en cando é unha situación onde ninguén tería que ter en conta as repeticións.

Supoña que queremos comprobar a capacidade do noso almacén e para enviar esta solicitude, calcula o número total de bobinas en stock:

SELECT sum (Ostatki.count)

DE Ostatki

Solicitude dará a resposta 143. Se, con todo, que cambiará a:

SELECT sum (Ostatki.count distinta)

DE Ostatki

obtense o total de 119, como fondo para os números de pezas 3 e 7 son en stock na mesma cantidade. Con todo, é obvio que a resposta está errada.

Na maioría das veces usado en SQL Conde función distinta. Así, podemos facilmente descubrir cantos tipos orixinais de fondo, temos:

SELECT COUNT (Oboi.type distinta)

DE oboi

E obter o resultado de 5 - papel común e dobre capa de vinilo e non tecido. Certamente todos vimos os anuncios, tales como: "Só temos máis de 20 tipos diferentes de fondo", polo que se entende que esta tenda non é só unha ducia de pan e unha variedade de fondo tipos modernos.

É interesante que na mesma consulta, é posible especificar múltiples funcións como asignar DISTINCT Conde, e sen el. Esa é a única situación en que distintos Select'e pode estar presente en varias ocasións.

Cando a abandonar o uso do argumento

A partir da utilización de SQL argumento distinto debe ser abandonada nun dos dous casos:

  1. Realizar unha selección de mesas e estamos seguros por valor único de cada. Neste caso, o uso do argumento é impropio, porque é unha carga adicional no servidor ou cliente (en función do tipo de DBMS).
  2. Ten medo de perder os seus datos. Imos explicar.

xefe Supoña que lle pide para incluír o fondo que ten, coa indicación de só dúas columnas - o tipo e cor. Por forza do costume, dá un argumento distinto:

Seleccione Oboi.type distinta, Oboi.color

DE oboi

ORDER BY Oboi.type

E - perder algúns datos:

tipo

cor

papel

Multicolor

papel dobre en capas

beige

vinilo

marrón

vinilo

laranxa

folla

-de-rosa

veo

beige

veo

Blanco

Pode dar a impresión de que o fondo papel (convencional e de dobre capa) temos só unha mente, de feito, mesmo na nosa pequena mesa de dous artigos (resultado sen distintos):

tipo

cor

papel

Multicolor

papel

Multicolor

papel dobre en capas

beige

papel dobre en capas

beige

vinilo

marrón

vinilo

laranxa

folla

-de-rosa

veo

Blanco

veo

beige

Polo tanto, como, por escrito, calquera proposta co argumento de necesidade distinta de ser coidadoso e competente para decidir sobre a súa aplicación en función da tarefa.

alternativa distinta

Contrariamente á tese distinta - Todos argumento. Na súa aplicación liñas duplicadas son almacenadas. Pero como a base de datos estándar e descobre que é necesario para mostrar todos os valores, o argumento Todos - é si un cualificado que o argumento función real. Esperamos que comprende agora que distinta (SQL) é usado. Descrición lle dar información completa sobre a viabilidade de utilizar este argumento en resolver problemas diferentes. Ao final, como se viu, mesmo un argumento tan sinxelo na súa aplicación esconde posibilidade moi concreta de perder algúns datos e visualización de información inexactas.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 gl.birmiss.com. Theme powered by WordPress.