*   >> Læs Uddannelse artikler >> science >> programming

Mysql: Forståelse relationel Tables

| id | bogstaver | + ---- + -------- + | 1 | X || 2 | Y || 3 | Z | + ---- + -------- + 3 rækker i sæt (0.00 sec)


Nu udføre en slutte på de to borde, uden betingelsen

 mysql> SELECT * -> FROM T1, T2; + ---- + -------- + ---- + -------- + | id | brev | id | brev | + ---- + ---- --- + ---- + -------- + | 1 | A | 1 | X || 2 | B | 1 | X || 3 | C | 1 | X || 1 | A | 2 | Y || 2 | B | 2 | Y || 3 | C | 2 | Y || 1 | A | 3 | Z || 2 | B | 3 | Z || 3 | C | 3 | Z | + ---- + -------- + ---- + -------- + 9 rækker i sæt (0.

00 sec)


Som du kan se, er hver række fra t1 kombineret med hver række fra T2. Tre rækker i hver tabel producere en slutte, hvilket resulterer i alt ni par af poster. Dette er kendt som en kartesiske produkt, og det er sjældent det resultat, du ønsker fra en forespørgsel.


SELECT *

Bemærk hvordan SELECT * notation i den foregående eksempel forårsagede hver kolonne fra begge tabeller, der skal returneres. Som følge heraf blev to kolonner navngivet id og to navngivne skrivelse tilbage.

Disse kolonner hører til bordene i den angivne rækkefølge i FROM-udtrykket.


Det totale antal rækker returnerede er produktet af antallet af rækker i hver tabel. Du kan forestille dig hvor stor den resulterende datasæt kan vokse, når de enkelte tabeller indeholder et stort antal rækker selv.


Cross Sammenføjninger

Et kartesiske produkt er også kendt som et kryds deltage.


Tilføjelse af en WHERE betingelse for dette slutte instruerer MySQL til at filtrere de par poster, for hvilke der ikke er nogen sammenhæng mellem dataene.

Dette er de fleste af de rækker, der ville blive returneret i et kartesisk produkt. Antages en sammenhæng mellem id kolonnen i hver tabel, sammenføjningen derefter producerer følgende resultat:

 mysql> SELECT * -> FROM T1, T2 -> WHERE t1.id = t2.id; + --- - + -------- + ---- + -------- + | id | brev | id | bogstaver | + ---- + -------- + ---- + -------- + | 1 | A | 1 | X || 2 | B | 2 | Y || 3 | C | 3 | Z | + ---- + -------- + ---- + -------- + 3 rækker i sæt (0.

00 sec)


Tag et øjeblik at se tilbage på resultatet af den kartesiske produkt, og du vil se, at de tre rækker, der returneres af det foregående eksempel vises, men de andre rækker er blevet kasseret.


Deltag Typer

En slutte, der involverer en tilstand, hvor kolonner i to tabeller er angivet som lige er kendt som en equijoin ell

Page   <<  [1] [2] [3] [4] >>

Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.