OrdinadorsTipus d'arxius

SQL diferent: descripció, exemples, propietats

Sovint, quan s'utilitza SQL per recuperar dades de les taules, l'usuari rep les dades redundants és l'existència d'un absolutament idèntics files duplicades. Per evitar aquesta situació, utilitzeu l'argument diferent SQL a la sentència Select. Aquest article discutirà exemples de l'ús d'aquest argument, així com situacions en què l'aplicació ha de ser abandonada per l'argument.

Abans de procedir a considerar els exemples específics, crear la base de dades necessari un parell de taules.

taula de preparació

Imaginem que tenim una base de dades emmagatzema informació sobre el fons de pantalla es presenten en dues taules. Aquest Oboi taula (fons de pantalla) amb camps de ID (identificador únic), del tipus (tipus de fons de pantalla -. Paper, vinil, etc.), color (color), una estructura (estructura) i el preu (preu). I taula Ostatki (residus) amb camps id_oboi (una referència a l'identificador únic a la taula Oboi) i el recompte (el nombre de rotlles en estoc).

Ompliu la taula de dades. A la taula afegir el fons de pantalla 9 registres:

Oboi

identificació

tipus

color

struct

preu

1

paper

multicolor

en relleu

56.9

2

paper de doble capa

beix

llis

114,8

3

vinil

taronja

en relleu

504

4

velló

beix

en relleu

1020.9

5

paper de doble capa

beix

llis

150,6

6

paper

multicolor

llis

95.4

7

vinil

marró

llis

372

8

velló

blanc

en relleu

980,1

9

drap

rosa

llis

1166.5

La taula amb les restes - i nou registres:

Ostatki

id_oboi

comptar

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Es procedeix a la descripció de l'ordre diferent en SQL.

Lloc diferent a la clàusula Select

argument diferent ha de col·locar immediatament després de la Selecció de paraules clau en les consultes. S'aplica a totes les columnes especificades en la sentència Select, perquè serà exclosa del resultat de la consulta final és absolutament cadenes idèntiques. Per tant, una vegada és suficient per especificar l'hora d'escriure SQL «seleccionar diferent» petició. L'excepció és l'ús de les funcions d'agregat dins diferents que miren una mica més tard.

Cal recordar que la major part de la base de dades i no reconeix el tipus de sol·licitud:

SELECT Ostatki.Count diferent, diferent Oboi. *

D'Oboi

INNER JOIN Ostatki A Oboi.id = Ostatki.id_oboi

No es va considerar l'argument diverses vegades o un cop especificat, però abans de la segona, tercera o d'una altra columna seleccionada. Obtindrà un error en referència a un error en la sintaxi.

Aplicació consulta en diferents norma

És obvi que amb les taules adequades estructura de l'edifici i omplir-los dins d'una única taula exclou la situació quan hi ha cadenes absolutament idèntics. Per tant, l'execució de la consulta «SELECT DISTINCT *» amb una mostra d'una taula és poc pràctic.

Penseu una situació en la que necessitem saber quin tipus tenim fons de pantalla, només per conveniència, per ordenar per tipus:

SELECT Oboi.type

D'ordre Oboi per tipus

I obtenir els resultats:

tipus

paper

paper

paper de doble capa

paper de doble capa

vinil

vinil

drap

velló

velló

Com es veu a la taula hi ha files duplicades. Si afegim la proposta Seleccionar diferent:

SELECT Oboi.type diferent

D'ordre Oboi per tipus

obtenim el resultat sense repetició:

tipus

paper

paper de doble capa

vinil

drap

velló

Per tant, si introduir correctament les dades en una taula, a continuació, immediatament després d'una trucada telefònica o una petició dels compradors podem respondre que els fons de pantalla líquida, fibra de vidre i paper pintat d'acrílic disponibles a la botiga no ho són. Atès que la gamma de botigues generalment no es limita a un centenar de fons de pantalla, veure la llista dels tipus no únics seria bastant mà d'obra intensiva.

Aplicació de funcions agregades diferents dins de

argument diferent de SQL es pot utilitzar amb qualsevol funció d'agregat. Però per al mínim i màxim la seva aplicació no tindrà cap efecte, però en el càlcul de la suma o el valor mitjà poques vegades és una situació en què ningú hauria de prendre en compte les repeticions.

Suposem que volem comprovar la capacitat del nostre magatzem i per enviar aquesta sol·licitud, calcula el nombre total de bobines en estoc:

SELECT sum (Ostatki.count)

D'Ostatki

Sol·licitud donarà la resposta 143. Si, però, que canviarà a:

SELECT sum (diferent Ostatki.count)

D'Ostatki

s'obté el total de 119, com a fons de pantalla els números de peça 3 i 7 estan en estoc en la mateixa quantitat. No obstant això, és obvi que la resposta és incorrecta.

El més usat en SQL Comte funció diferent. Així, podem trobar fàcilment el nombre de tipus singulars de fons de pantalla, tenim:

SELECT count (diferent Oboi.type)

D'Oboi

I obtenir el resultat de 5 - paper ordinari i vinil de doble capa i la tela no teixida. Segurament tots hem vist els anuncis com: "Només tenim més de 20 diferents tipus de paper pintat", el que vol dir que aquesta botiga no és només un parell de dotzenes de rotllos i una varietat de tipus de fons de pantalla moderns.

És interessant que a la mateixa consulta, podeu especificar múltiples funcions com el Comte d'atributs diferents i sense. Aquesta és l'única situació en què diferents en Select'e pot estar present diverses vegades.

Quan a abandonar l'ús de l'argument

Des de l'ús d'argumentació diferent de SQL ha de ser abandonada en un dels dos casos:

  1. Es realitza una selecció de taules i tenen confiança en el valor únic de cada. En aquest cas, l'ús de l'argument és inadequat, perquè és una càrrega addicional en el servidor o client (depenent del tipus de DBMS).
  2. Té por de perdre les seves dades. Anem a explicar.

Suposem que el cap et demana esmentar el fons de pantalla que té, amb la indicació de només dues columnes - el tipus i color. Per costum, li dóna un argument diferent:

SELECT Oboi.type diferent, Oboi.color

D'Oboi

ORDER BY Oboi.type

I - perdre algunes dades:

tipus

color

paper

multicolor

paper de doble capa

beix

vinil

marró

vinil

taronja

drap

rosa

velló

beix

velló

blanc

Es pot donar la impressió que el fons de pantalla de paper (convencional i de doble capa) només tenim una ment, de fet, fins i tot en la nostra petita taula de dos articles (sense donar lloc diferent):

tipus

color

paper

multicolor

paper

multicolor

paper de doble capa

beix

paper de doble capa

beix

vinil

marró

vinil

taronja

drap

rosa

velló

blanc

velló

beix

Per tant, com per escrit qualsevol sol·licitud amb l'argument clara necessitat de ser acurat i competent per decidir sobre la seva aplicació, depenent de la tasca.

alternativa diferent

Contràriament a l'argument diferent - Tots argument. En la seva aplicació s'emmagatzemen les files duplicades. Però a mesura que la base de dades per defecte i troba que és necessari per a mostrar tots els valors, l'argument Tots - és més aviat un qualificatiu que l'argument de la funció real. Esperem que ara entén que diferent (SQL) s'utilitza. Descripció donar-li informació completa sobre la viabilitat d'utilitzar aquest argument en la resolució de diferents problemes. Després de tot, com es va veure després, fins i tot un argument tan simple en la seva aplicació amaga possibilitat molt tangible de la pèrdua d'algunes dades i mostrar informació inexacta.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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