Jóváhagyta a legjobb orosz programozók









ECK (expr) típus: tinyint [(hosszúság)] [Unsigned] [ZEROFILL] vagy smallint [(hosszúság)] [Unsigned] [ZEROFILL] vagy MEDIUMINT [(hosszúság)] [Unsigned] [ZEROFILL] vagy INT [(hosszúság) ] [unsigned] [ZEROFILL] vagy egész szám [(hosszúság)] [unsigned] [ZEROFILL] vagy BIGINT [(hosszúság)] [unsigned] [ZEROFILL] vagy a REAL [(hosszúság, tizedes)] [unsigned] [ZEROFILL] vagy dupla [(hosszúság, tizedes)] [unsigned] [ZEROFILL] vagy FLOAT [(hosszúság, tizedes)] [unsigned] [ZEROFILL] vagy decimális (hossz, tizedes) [unsigned] [ZEROFILL] vagy NUMERIC (hossz, tizedes) [Jelöletlen ] [ZEROFILL] vagy CHAR (hossz) [BINARY] vagy VARCHAR (hossz) [BINARY] vagy dátum és idő, vagy TIMESTAMP vagy DATETIME vagy TINYBLOB vagy BLOB vagy MEDIUMBLOB vagy LONGBLOB vagy TINYTEXT vagy TEXT vagy MEDIUMTEXT vagy LONGTEXT vagy ENUM (érték1, érték2 , érték3) vagy SET (érték1, érték2, érték3) index_col_name: COL_NAME [(hosszúság)] reference_definition: HIVATKOZÁSOK tbl_name [(index_col_name).] [MATCH FULL | .. MATCH Részleges] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT table_options: TYPE = vagy AUTO_INCREMENT = # vagy AVG_ROW_LENGTH = # vagy CHECKSUM = vagy COMMENT = "string" vagy MAX_ROWS = # vagy MIN_ROWS = # vagy = PACK_KEYS vagy jelszó = "string" vagy DELAY_KEY_WRITE = vagy = ROW_FORMAT vagy RAID_TYPE = RAID_CHUNKS = # RAID_CHUNKSIZE = # vagy UNION = (tábla_neve, [. TABLE_NAME]), vagy INSERT_METHOD = vagy adatkönyvtárban = "abszolút elérési útvonalát könyvtár" vagy index könyvtár = "abszolút elérési útvonalát könyvtár" select_statement: [IGNORE | CSERE] SELECT. (Minden érvényes kifejezés SELECT)

A CREATE TABLE utasítás létrehoz egy táblázatot a megadott néven az aktuális adatbázisban. Szabályai megengedhető táblanevek, lásd a 6.1.2 adatbázis nevét, táblák, oszlopok, indexek álnevek. Ha nem aktív a jelenlegi adatbázis vagy a megadott tábla már létezik, a parancs meghiúsul.

A MySQL verzió 3,22 vagy újabb, a tábla nevét lehet megadni db_name.tbl_name. Ez a felvétel formájában működik, függetlenül attól a megadott adatbázis aktuális.

A MySQL 3.23, amikor egy táblázat, akkor az ideiglenes kulcsszó. Az ideiglenes tábla automatikusan törlődik, amikor a hívás véget ér, és az ő neve csak akkor érvényes, ezt a kapcsolatot. Ez azt jelenti, hogy az ideiglenes táblát ugyanazzal a névvel nem ellentétesek egymással, vagy egy meglévő tábla azonos nevű (a meglévő táblázat rejtve, amíg az ideiglenes tábla törlésre) lehet használni két különböző vegyület. A MySQL 4.0.2 verzió létrehozása ideiglenes táblák, meg kell adnunk a jogosultságokat létre ideiglenes táblákat.

A MySQL verzió 3.23 vagy újabb, akkor a kulcsszavak HA NEM létezik olyan, hogy nincs hiba, ha a tábla már létezik. Tartsuk szem előtt, hogy ez nem ellenőrizte a személyazonosságát a szerkezetek ezek a táblák.

Minden asztal tbl_name képviseli néhány fájlt az adatbázis könyvtárba. Ha a MyISAM táblázat a következő fájlokat:

táblázat definíciós fájl

Ahhoz, hogy minél több információt a tulajdonságait a különböző típusú oszlop, 6.2 adattípusok oszlopok.

BDB vagy Berkeley_db

Táblázatok oldal zár és a tranzakciókat. Lásd 7.6 táblázat BDB vagy Berkeley_DB.

Az adatok ehhez a táblázat csak a memóriában tárolódnak. Lásd 7.4 HEAP táblázatokban.

Az eredeti táblázat kezelő. Lásd 7.3 táblázatok ISAM.

Táblázatok sorban zár és tranzakciók. Lásd a 7.5 táblázatok InnoDB.

táblacsoportban MyISAM, használják az egyik asztalnál. Lásd a 7.2 fejezetet táblázatok MERGE.

Az alias Merge asztalok

Az új processzor, amely toleranciát biztosít táblázatok bináris formában, amely felváltja a ISAM. 7.1 fejezet táblázatok MyISAM.

Lásd 7. MySQL táblázat típusai. Ha megad egy tábla típus, amely nem támogatja ezt a verziót, MySQL fogja kiválasztani a lehető legszorosabb a megadott típus. Például, ha egy adott TYPE = BDB és aktív MySQL BDB eloszlása ​​nem támogatja táblázatokat. helyett MyISAM jön létre. Más asztali lehetőségek, melyek optimalizálják a jellemzői az asztalra. Ezek a beállítások a legtöbb esetben nem igényel külön telepítést. Ezek a lehetőségek a munka minden típusú táblák, hacsak másképp nincs feltüntetve:

Következő értéke AUTO_INCREMENT. szeretné beállítani az asztal (MyISAM).

Egy közelítő érték az átlagos Vonalhosszak egy adott táblázatban. Logikus, hogy csak a nagy asztalok változó hosszúságú rekordok.

Kell beállítani, hogy 1 MySQL támogatja az ellenőrző az összes sor (ez teszi az asztalra egy kicsit lassabb frissíteni, de könnyebbé teszi, hogy megtalálja a sérült táblázatok) (MyISAM).

A sorok maximális száma, amelyeket el kell tárolni a táblázatban.

A minimális számú sort kell tárolni a táblázatban.

Úgy van beállítva, hogy 1 termelni kisebb index. Általában lelassítja a frissítési és olvasási sebességet (MyISAM. ISAM). A 0 letiltja a tömítés kulcsokat. Ha az alapértelmezett beállítás (MySQL 4.0) táblázat felvezető lecsapódik csak a hosszú oszlopok CHAR / VARCHAR.

Titkosítja az `.frm„fájlokat egy jelszóval. Ez a lehetőség nem működik a standard változat MySQL.

1-be késések a frissítési művelet kulcstáblázatot amíg nem zár említett táblázat (MyISAM).

Ez határozza meg, hogy a sorok között kell tárolni. Jelenleg ez az opció csak akkor működik, asztalok MyISAM. hogy a támogatási tétel formátumok dinamikus és rögzített. Lásd 7.1.2 MyISAM formátumban.

Ha ön használ MyISAM MySQL táblák kiértékeli a kifejezést MAX_ROWS * avg_row_length. meghatározni, hogy mekkora a kapott táblázat lesz. Ha nincs megadva, sem a fenti lehetőségek, a maximális mérete a táblázat lesz 4 GB (2 GB vagy ha az operációs rendszer csak támogatja legfeljebb 2 GB méret a táblázatban). Ez biztosítja, hogy ha nincs valós igény a nagy fájlok méretének korlátozása egy mutató, amely biztosítja, hogy az index kisebb és gyorsabb. Ha PACK_KEYS opció nem használható, az alapértelmezett lezárjuk csak húrok, de nem a számok. Ha PACK_KEYS = 1 száma is lezárjuk. Amikor tömörítő bináris numerikus billentyűt MySQL fogja használni előtag tömörítést. Ez azt jelenti, hogy az előnyeit ez jelentős lesz csak abban az esetben nagyszámú azonos számokat. Tömörítéskor előtagokat minden alapvető szükségletek egy extra byte, ami azt jelzi, hogy hány korábbi kulcs bájt megegyeznek az alábbi (megjegyzendő, hogy a mutató egy húr alatt a sorrendben „nagy-byte-for-elindítása” után azonnal a legfontosabb - hogy megnövelik a tömörítés). Ez azt jelenti, hogy ha több azonos kulcsokat két sorban rögzíti az összes későbbi `hasonló 'gombok foglalnak csak 2 byte (beleértve a vonal pointer). Összehasonlítása: a szokásos esetben tárolására szükséges kulcsokat későbbi razmer_hraneniya_klyucha + razmer_ukazatelya (általában 4) bájt. Másrészt, ha az összes kulcsot teljesen különböző, minden kulcs fogja elfoglalni 1 byte több, ha a kulcs nem lehet NULL értéket (ebben az esetben a csomagolt kulcs lesz tárolhatók ugyanabban byte, amely azt jelzi, hogy a legfontosabb az, NULL) .
  • Ha a CREATE parancs adja meg a SELECT utasításban. akkor a MySQL teremt majd új területeket minden eleme a SELECT utasításban. Például: Ez a parancs létrehoz egy MyISAM három oszlop a. b és c. Megjegyezzük, hogy az oszlopok a SELECT csatolt táblázatban a jobb oldalon, és ne takarja le. Tekintsük a következő példát: Minden sor táblázatban ize bevezetjük bár asztal értékkel az ize. míg az új oszlopok bár asztal tárolt érték az alapértelmezett. A parancs CREATE TABLE. SELECT automatikusan nem hoz létre semmilyen indexek. Ez úgy történik, szándékosan, hogy a csapat a lehető legrugalmasabb. Ahhoz, hogy a létrehozott indexeket asztal, meg kell adnia őket előtte a SELECT utasításban. Ha hiba történik, amikor a másolás adatokat egy táblázatban, akkor automatikusan törlésre kerül. Ahhoz, hogy használni, hogy visszaállítsa a táblázatok frissítés log / bináris log MySQL alatt a CREATE TABLE paranccsal. SELECT tiltva egyidejű betétekkel.
  • Opció használatával RAID_TYPE. osztható MyISAM adatfájlt állnak annak érdekében, hogy felszámolja a 2GB / 4GB limit a fájlrendszer az operációs rendszer nem támogatja a nagy fájlokat. Particionálás nem tekintve az index fájlt. Meg kell jegyezni, hogy a fájlrendszereket támogatja a nagy fájlokat, ez az opció nem ajánlott! A nagyobb input-output sebesség elhelyezésére RAID-könyvtárak különböző fizikai lemezen. RAID_TYPE fog futni bármilyen operációs rendszert, ha a MySQL konfiguráció történik a --with-raid. Jelenleg RAID_TYPE opció csak az opció csíkos (1 és RAID0 vannak álnevek neki). Ha megadod RAID_TYPE = CSÍKOS egy MyISAM. ez létre fog hozni egy MyISAM RAID_CHUNKS elnevezett könyvtárban, 00”. `01”. `02„az adatbázis könyvtárban. Ezeken a könyvtárak MyISAM létrehoz egy `table_name.MYD„fájlt. Ha az adatok írása adatfájlt RAID felvezető beállítani az első sorban RAID_CHUNKSIZE * 1024 bájt, hogy az előbb említett fájl, a következő RAID_CHUNKSIZE * 1024 bájt - a következő fájlt, és így tovább.
  • UNION opció vonatkozik, ha azt szeretné, hogy egy gyűjtemény azonos táblákat egy táblázatban. Ez csak akkor működik, MERGE táblázatokat. Lásd a 7.2 fejezetet táblázatok MERGE. Abban a pillanatban, asztalokhoz leképeződő egyesítést asztalra. meg kell adnunk SELECT kiváltság. UPDATE és DELETE. Minden leképezett táblázatokat kell ugyanabban az adatbázisban, mint a MERGE asztalra.
  • Ahhoz, hogy az adatokat a MERGE táblázatban meg kell adni a INSERT_METHOD. ahol asztal, ezt a sort kell beírni. Lásd a 7.2 fejezetet táblázatok MERGE. Ez a lehetőség vezették be MySQL 4.0.0.
  • A létrehozott táblázatban az elsődleges kulcs kerül először, minden egyedi kulcsokat, majd követte az egyszerű kulcsokat. Ez segít a MySQL optimalizáló előtérbe kulcsok használatáért, valamint gyorsabban azonosíthatják duplikált kulcsokkal egyedülálló.
  • Az opció adatnyilvántartás = "directory" vagy index könyvtár = "directory". Megadhatja, hol az asztal felvezető kell tenni a tábla és index fájlokat. Megjegyezzük, hogy a paraméter jelzi a könyvtárban kell lennie a teljes elérési utat a kívánt könyvtárat (nem relatív útvonal). Ezek a lehetőségek csak MyISAM táblákat a MySQL verzió 4.0, ha nem használja --skip-symlink opciót. Lásd 5.6.1.2 szimbolikus kötések táblázatokban.
  • MySQL.RU. Jóváhagyta a legjobb orosz programozók