Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Keď v databáze existujú názvy duplikátu stĺpcov a musíte uviesť, ktoré odvolávajú?

Ak v databáze existujú názvy stĺpcov duplikátu (často v rôznych tabuľkách, ale možno aj v jednej tabuľke, ak používate niektoré menej bežné funkcie databázy), musíte kvalifikovať názov stĺpca, aby ste sa vyhli nejednoznačnosti. To sa robí zadaním tabuľky (alebo iného rozsahu), do ktorého stĺpec patrí. Syntax sa mierne líši v závislosti od špecifického databázového systému (dialekt SQL), ale všeobecný princíp zostáva rovnaký.

Takto by ste to urobili v niekoľkých bežných databázových systémoch:

1. Pomocou aliasov tabuľky (najbežnejší a odporúčaný prístup):

Toto je všeobecne najčistejšia a najúčinnejšia metóda. Každej tabuľke dáte kratšiu alias a potom pomocou alias odkazujte na stĺpce.

`` sql

- Príklad:Predpokladajme, že máte tabuľky „objednávky“ a „zákazníkov“ so stĺpcom s názvom „ID“

Vyberte O.Id ako Order_id, C.Id ako customer_id

Z objednávok o

Pripojte sa k zákazníkom C na O.Customer_id =C.Id;

`` `

V tomto príklade sa „O.Id` týka stĺpca` id` v tabuľke „Orders`“ a `C.Id` sa vzťahuje na stĺpec` id` v tabuľke „Zákazníci“. Kľúčové slovo „ako“ vytvára viac popisných názvov stĺpcov v sade výsledkov.

2. Pomocou plne kvalifikovaných názvov tabuľky:

Je to menej stručné, ale spoľahlivo funguje. Na kvalifikáciu stĺpca používate úplnú schému a názov tabuľky. Časť schémy je často voliteľná, ak pracujete v predvolenej schéme.

`` sql

- Príklad (predpokladanie schémy je „MyDB“):

Vyberte Mydb.orders.id AS Order_id, Mydb.customers.id ako customer_id

Od mydb.orders

Pripojte sa k Mydb.Customers na MyDB.orders.customer_id =mydb.customers.id;

`` `

3. Použitie názvov databázových objektov (pre veľmi zložité scenáre):

Vo výnimočne zložitých situáciách s viacerými databázami alebo schémami možno budete musieť plne kvalifikovať stĺpec s databázou, schémou a názvom tabuľky.

Dôležité úvahy:

* Databázový systém: Presná syntax (napr. Citujúci konvencie pre názvy tabuľky a stĺpcov) sa môžu medzi databázami mierne líšiť (MySQL, PostgreSQL, SQL Server, Oracle atď.). Pre presné pravidlá sa obráťte na dokumentáciu svojho databázového systému.

* Manipulácia s chybami: Väčšina databázových systémov spôsobí chybu, ak je názov stĺpca nejednoznačný bez kvalifikácie *, pokiaľ * kontext neurobí úplne jasný, ktorý stĺpec je určený (napr. V `Where 'klauzula odkazujúc iba na jednu tabuľku). Najlepšie je vždy kvalifikovať názvy stĺpcov, keď existuje nejaký potenciál pre nejednoznačnosť.

* Čítateľnosť: Používanie aliasu výrazne zlepšuje čitateľnosť vašich dotazov SQL, čo uľahčuje pochopenie a údržbu.

Stručne povedané, použitie aliasy tabuľky je preferovanou metódou na vyriešenie nejednoznačných názvov stĺpcov, pretože je jasná, stručná a efektívna. Pri riešení potenciálnej nejednoznačnosti vždy kvalifikujte názvy stĺpcov, aby ste predišli chybám a zlepšili údržbu vášho databázového kódu.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené