Understanding sql

Eddig a pontig, kérünk egy táblázat adatait és végrehajthatja a parancsokat az adatok kinyerésére, tekintve, hogy ezek a táblák már valaki által készített -, hogy a számunkra. Ez tényleg a leginkább reális helyzet, amikor egy kis számú ember hozza létre a táblát, amit azután a többi ember. Célunk az, hogy fedezze az első információkat minél szélesebb körben, aztán megy a szűkebb kérdéseket.







Ebben a fejezetben arról lesz szó, létrehozására, módosítására és törlésére táblázatokat. Mindez vonatkozik a táblázatok önmagukat, és nem az abban szereplő adatok. Lesz vagy nem fogja elvégezni ezeket a műveleteket a saját, de a fogalmi megértés növeli a megértést az SQL nyelv és a természet a táblázat, amit használ. Ez a fejezet bemutatja, hogy a terület az úgynevezett SQL - DDL (Data Definition Language), ahol az SQL adatbázis-objektumokat hoz létre.

Ez a fejezet is mutatja, egy másik néző SQL adat objektum - Index. Az indexeket használnak, hogy a keresést a hatékonyabb, és néha, hogy az értékek jelentősen eltérnek egymástól. Ezek általában dolgoznak csendben, de ha nem próbálod meg egy táblázatban, és ők el fogják utasítani, mivel ezek nem egyedi, az azt jelenti, hogy a másik sor értéke azonos az ezen a területen, és hogy ezen a területen van egy egyedi index vagy korlátozás amely előírja, hogy egyedülálló. Vita a fenti, továbbra is 18. fejezet.

TEAM a táblák

Táblák jönnek létre CREATE TABLE. Ez a parancs létrehoz egy üres asztal - egy asztal nélküli tételek. Az értékeket beírni a INSERT DML (Lásd a fickó. 15). CREATE TABLE parancs döntően az asztalra, egy leírást egy sor oszlop nevek megadott egy bizonyos sorrendben. Azt is meghatározza, az adattípusok és oszlop méretben. Minden asztal kell legalább egy oszlopot. Amint azt a 2. fejezetben A típusú adatok nagyban programonként. A kompatibilitás a szabványos, azokat is, legalábbis megőrizze a standard típus ANSI. Ez a B. függelékben leírt

Mivel terek használják különböző részein a SQL parancsok, akkor nem lehet része a tábla neve (vagy bármilyen más tárgy, például egy index). Aláhúzás (_) - jellemzően a szavak elválasztására a nevét a táblák.

Az érték nagyságától függ az érvelés adattípust. Ha nem adja meg, akkor a rendszer automatikusan hozzárendel egy értéket magam. A számokhoz, ez - a legjobb módja, mert ebben az esetben, az összes padló ilyen típusú lesz az azonos méretű, hogy fölöslegessé teszi az általános kompatibilitási problémák (lásd 14. fejezet). Ezen túlmenően, a méret érv használni numerikus készletek, ez nem egy egyszerű kérdés. Ha kell tárolni nagy számban, akkor biztosan van egy garancia arra, hogy a padló elég nagynak őket.

Egy adattípus amit általában meg kell adni a méret - KAR. a méret az érvelés - egy egész szám, amely meghatározza a karakterek maximális száma, amelyek befogadóképessége területen. Tény, hogy a mezők száma a karakter lehet nulla (ha a területen - NULL), hogy ezt a számot. Alapértelmezésben a mérete az érvelés 1, ami azt jelenti, hogy a mező tartalmazhat csak egy levelet. Ez persze nem pontosan mit akar.

Táblázat a felhasználó tulajdonában, aki teremtette őket, és a nevét minden táblázatban a felhasználó tulajdonában különbözni egymástól, valamint a nevét az összes oszlopot a táblázatban. Külön asztalok használhatja ugyanazt oszlop nevét, akkor is, ha tartoznak azonos felhasználó. Egy példa erre - városi oszlop a táblázatban vásárlók és a kereskedők asztalra. Az ügyfelek nem tulajdonosai a táblázatok utalnak ezekre a táblákat a nevét a tulajdonos az asztal, majd egy pont; például az alkalmazottak tábla jön létre fogják hívni Smith Smith.Employees amikor említette egy másik felhasználó (tudjuk, hogy Smith - ez id Engedélyek (ID) (ID) tájékoztatja a felhasználót (a megengedett ID -. ez a rá SQL Ezt a következtetést. 2. fejezetben, és tovább folytatódik a 22. fejezet).

Ez a parancs létrehoz egy táblázatot Sellers: Az, hogy az oszlopok a táblázat határozza meg, hogy milyen sorrendben jelennek meg. Ezek oszlop nem kell osztani a sortörést (ami történik, az olvashatóság), de vesszővel elválasztva.

Indexek - Az SQL egy olyan eszköz, amely életet adott a piac önmagában nem ANSI. Ezért saját ANSI szabvány jelenleg nem támogatja az index, annak ellenére, hogy nagyon hasznos és széles körben alkalmazott.

Amikor létrehoz egy indexet a pályán, az adatbázis tárolja a megfelelő sorrendben az értékek ezen a téren a memória terület. Tegyük fel, hogy az Ügyfeleink tábla ezer bejegyzés, és meg akarja találni a vásárló szám = 2999. Mivel húrok nem rendelt, az Ön program átvizsgálja az egész táblázatot, sorról sorra, és minden alkalommal ellenőrizze az értéket a nemek közötti egyenlőség cnum értéke 2999. Azonban, ha lenne egy index cnum területen. A program elérheti száma 2999 az index, és tájékoztatást ad, hogy megtalálják a megfelelő sort a táblázatban.







Míg az index nagyban javítja a hatékonyságot a lekérdezés index használaton lassítja DML módosítási műveletek (mint például a beszúrási és törlési), és az index foglal memóriát. Ezért minden alkalommal, amikor létrehoz egy táblázatot el kell dönteni, hogy vagy nem indexet. Az indexek állhat több mezőt. Ha egynél több területen van megadva egyetlen mutató, a második rendelt az első, a harmadik, a második, és így tovább. Ha lett volna az első és az utolsó, hogy azokat két különböző területein az asztalra, akkor létrehoz egy indexet, amely volna áramvonalas az előző mezőben a következő. Ez megvalósítható, függetlenül a módszer szekvenált oszlopok a táblázatban.

A szintaxis létrehozása index - általában a következő (megjegyzendő, hogy ez nem ANSI szabvány): táblázat, persze, hogy előtte hozza létre, és tartalmaznia kell az oszlopot. Ezek index nem használható másra az adatbázis (bárki). A létrehozott index lesz láthatatlan a felhasználó számára. SQL dönti el, mikor szükséges hivatkozni rá, és automatikusan elvégzi. Ha például az ügyfél asztal közkeletű a kéréseket eladók saját ügyfélkör, nem lenne bölcs dolog, hogy hozzon létre egy indexet a SNUM Vevők táblában. Most, az eladó, aki képesnek kell lennie arra, hogy megtalálják ezt a táblázatot saját ügyfélkör nagyon gyorsan.

Egyedülálló index

Az index az előző példában, szerencsére, nem írja elő különleges, annak ellenére, hogy a megfigyelés, hogy az egyik célja az index. Az eladó tetszőleges számú vevő. Ez azonban nem fog megtörténni, ha egy olyan kulcsszót kulcsszó elé egyedi index. SNUM mező az elsődleges kulcs lesz az első jelölt egy egyedi index: Megjegyzés: Ez a parancs elutasításra kerül, ha már van egy azonos értéket cnum területen. A legjobb módja annak, hogy foglalkozik indexek létrehozni őket, amint a tábla jön létre, és mielőtt bármilyen megadott értékek. Szintén fontos megjegyezni, hogy az egyedi index több mint egy emelet, ez - a kombináció az értékek, amelyek mindegyike nem lehet egyedi. Az előző példa - indirekt módon, hogy cnum terepmunka az elsődleges kulcs a Vevők táblában. Adatbázisok hatása van az elsődleges kulcsokat és más, közvetlenül. Megbeszéljük ezt a megállapítást fejezetében a 18. és 19..

Törlése az index

A fő jellemzője az index nekik - így lehet távolítani. Általában a felhasználók nem tudják, hogy létezik az index. SQL automatikusan meghatározza, hogy a felhasználó jogosult használni az indexet, és ha igen, ami lehetővé teszi, hogy használja azt. Azonban, ha szeretné törölni az index, meg kell tudni, hogy ez nekik. Ez a szintaxis eltávolítására használt index:

Pelenkázó után jött létre

Az ALTER TABLE parancs nem része az ANSI szabvány; de ez - széles körben elérhető, és elég értelmes formában, bár a képességeit némileg korlátozott. Arra használják, hogy módosítsa a meghatározását egy meglévő táblához. Általában, teszi hozzá oszlopokat az asztalra. Néha lehet eltávolítani oszlopok, vagy módosítsa a méretét, valamint az egyes programok hozzáadni vagy eltávolítani korlátozások (fejezetben tárgyalt 18). Tipikus szintaxis hozzá egy oszlopot a táblázatban. Az oszlop hozzáadásra kerül a NULL érték az összes sort a táblázat. Az új oszlop lesz az utolsó oszlop a táblázatban érdekében. Tulajdonképpen akkor adjunk hozzá néhány új oszlopokat, vesszővel elválasztva, ugyanabban a csapatban. Lehetőség van módosítani vagy törölni oszlopokat. Leggyakrabban a változás az oszlop lehet egyszerűen méretének növelése vagy új (eltávolítása) korlátai. A rendszernek biztosítania kell, hogy minden változás nem ütköznek meglévő adatok - például amikor megpróbálja felvenni a kényszer, hogy az oszlop, amely már tett különbséget megsérti az említett korlátozás elutasításra kerül. A legjobb, ha még egyszer ellenőrizze azt. Legalább nézd meg a dokumentációt a rendszer, hogy ha biztosítja, hogy ez volt az oka. Mivel a komplex jellege ALTER TABLE parancs, akkor is meg kell nézni, hogy részben a rendszer dokumentációját, amely utal a konkrét esetekre.

Ha a rendszer nem támogatja ALTER TABLE. vagy ha azt szeretné, hogy ne használja azt, akkor egyszerűen hozzon létre egy új táblát, a szükséges változtatások létrehozása és használata INSERT SELECT * query parancs átírni az adatokat ki a régit. A felhasználók, akik megadták a hozzáférést a régi táblázat (lásd a fickó. 22.) részére biztosítani kell, hogy az új tábla.

távoli asztal

Meg kell a tulajdonos (azaz, hogy a Teremtő) a táblázat, hogy képes legyen eltávolítani. Tehát ne aggódj véletlenül elpusztítja az adatokat, az SQL lesz szükség, hogy az első tábla üres, mielőtt eltávolítaná az adatbázisból. Egy táblázat, amelynek sorai ott elhelyezett nem lehet eltávolítani. Lásd 15. fejezet részletezi, hogyan sorokat törölni egy asztalhoz. A szintaxis a eltávolítása a táblázatban, kivéve ha az üres, a következő: amikor ezt a parancsot, akkor nem ismeri fel az asztalra, és van egy csapat, amely lehet fordítani ezt az objektumot. Meg kell győződni arról, hogy a táblázat nem hivatkozik rá egy idegen kulcs egy másik asztalhoz (idegen kulcsok fejezetben tárgyaljuk 19), és hogy nem használják a nézet meghatározása (20. fejezet).

Ez a parancs valójában nem része a szabványos ANSI, de támogatja azt a közös és hasznos. Szerencsére ez egyszerűbb, és ezért következetesebb, mint ALTER TABLE. ANSI egyszerűen nincs mód annak megállapítására megsemmisült vagy rossz táblákat.

Most már folyékonyan célzási adatok alapján definíciókat. Hozhat létre, módosíthat és törölhet táblázatokat. Bár csak az első ilyen funkciók - az SQL része a hivatalos szabvány, mások idővel változni fog, különösen - ALTER TABLE. DROP TABLE lehetővé teszi, hogy megszabaduljon a táblák, amelyek használhatatlanok. Ez tönkreteszi csak az üres asztal, és így nem pusztítja el az adatokat.

Ön most tudni indexeket, valamint hogyan lehet létrehozni és törölni. SQL nem ad sok ellenőrzést felettük, valamint a felismerés, hogy használja elég sikeres, hogy milyen gyorsan végez különböző parancsokat. Indexek - ez az egyik olyan eszköz, amely megadja a lehetőséget arra, hogy közvetlenül a teljesítményét a parancsokat az SQL. Megvizsgáltuk itt az indexek megkülönböztetni őket a megszorítások, amelyekkel nem lehet összetéveszteni. Korlátozások - ez a témája a fej 18 és 19. fejezet.

Az SQL

1. Írja CREATE TABLE állításokat hozott volna a táblázat az ügyfelek. 2. Írj egy parancsot, amely lehetővé tenné, hogy a felhasználó gyorsan letölteni a megrendelések szerint csoportosított napján a megrendelések asztalra. 3. Ha a táblázat rendelések már létrehozott, hogyan lehet, hogy onum terén, hogy egyedi legyen (ha feltételezzük, hogy az összes aktuális érték egyedi). 4. Hozzon létre egy indexet, amely engedélyezi egyes eladók, hogy gyorsan megtalálja a megrendelések szerint csoportosítva dátum. 5. Tegyük fel, hogy minden eladó csak egy vevő ennek a vizsgálatnak, írja be a parancsot, amely bontani. (Lásd. Függelékben válasz).