Syntax válasszon - dokumentáció mysql 4, 5 orosz

SELECT szerkezete a következő:

SELECT lehívására használjuk sorok közül kiválasztott egy vagy több táblából. Select_expression kifejezése a kijelölt oszlop kívánt mintát. Továbbá SELECT lehet használni letölteni sorok számítjuk való hivatkozás nélkül asztalra. Például:

Amikor megadja a kulcsszavakat pontosan kell betartani a fenti eljárást. Például a RENDELKEZŐ kifejezést úgy kell elhelyezni, miután az összes GROUP BY záradék és az egész kifejezést ORDER BY.

Az AS kulcsszó. kifejezést a SELECT, hozzá lehet rendelni egy álnév. Az alias használják oszlop neve a kifejezést, és fel lehet használni az ORDER BY vagy korábban. Például:

Oszlop álnevek nem lehet használni a WHERE záradékot. csakúgy, mint az oszlopok nagysága idején végrehajtás WHERE használata még nem azonosították. Problémák alias.

Expresszió table_references meghatározza az asztalra, ahonnan a sorokat kell bontania. Ha a név több mint egy asztal, meg kell egyesíteni. További információ a csatlakozni szintaxis lásd REGISZTRÁCIÓ szintaxis. megadhat egy fedőnevet minden asztalnál adott kérésre.

A MySQL 3.23.12 verzió, megadhatja, hogy mely indexet (billentyűk) MySQL kell használni, hogy információt a táblázatban. Ez akkor hasznos, ha MAGYARÁZZA (kimenetre szerkezetére vonatkozó információkat és a rend a SELECT lekérdezés), azt mutatja, hogy a MySQL a listát a lehetséges indexek döntött rosszul. Ha szükséges. keresni a rekordok a táblát csak az egyik az indexek, meg kell adnia az index értéke a USE INDEX (KEY_LIST). Alternatív expressziós IGNORE INDEX (KEY_LIST) megtiltja a MySQL ebben az adott index.

A MySQL 4.0.9 is megadhatja FORCE INDEX. Úgy működik, ugyanúgy, mint a USE INDEX (KEY_LIST), de emellett egyértelművé teszi, hogy a szerver teljes táblázat vizsgálat lesz nagyon költséges művelet. Más szóval, ebben az esetben a táblázat vizsgálat csak akkor lesz használva, ha megállapítást nyer, egy másik módja, hogy az egyik ezek közül az indexek keresni rekordok a táblázatban.

Kifejezések által használt / ignore KEY szinonimái USE / ignore INDEX.

Linkek az asztalra adható tbl_name (az aktuális adatbázis), vagy dbname.tbl_name érdekében egyértelműen meghatározza az adatbázisban.

Oszlop hivatkozásokat adható formában COL_NAME. tbl_name.col_name vagy db_name.tbl_name.col_name. Ami tbl_name vagy db_name.tbl_name nem kell megadni egy előtagot oszlop hivatkozás egy SELECT. ha ezek a hivatkozások nem értelmezhető kétértelműen. adatbázis nevét, táblák, oszlopok, indexek álnevek. példákat a kétértelmű esetek, amelyek megkövetelik a pontosabb meghatározása oszlop referencia.

Link a táblázat helyébe egy álnév, a tbl_name [AS] ALIAS_NAME:

Az ORDER BY és GROUP BY terjeszti a kiválasztott oszlopokat a kimenetet, akkor bármelyik oszlopában nevek vagy felvett nevek, vagy a helyzetüket (helye). A számozás kezdődik oszlopon pozíciók 1:

Rendezéséhez fordított sorrendben, egy nyilatkozatában ORDER BY neve a megadott oszlop, amelyben rendezni, adja meg a kulcsszót DESC (csökkenő). Alapértelmezett elfogadott rendezési emelkedő sorrendben, amely megadható explicit módon, az ASC kulcsszó.

A WHERE kifejezés használja a funkciót, amely támogatja a MySQL. Használt funkciók a SELECT utasítás és hol.

RENDELKEZŐ expressziós utalhat bármely oszlop vagy alias említett select_expression expresszió. Miután dolgozott a múlt, csak mielőtt az adatok az ügyfél, és minden megkülönböztetés nélkül optimalizálás. Ne használja ezt a kifejezést, hogy meghatározzák, mit kell meghatározni a WHERE. Például, ha nem adja meg a következő nyilatkozatot teszi:

Ehelyett meg kell kérdezni:

A MySQL verzió 3.22.5 vagy újabb, akkor is lekérdezéseket írni, mint ez:

A régebbi verziói MySQL helyett megadhatja:

Options (opció) különbözőek. DISTINCTROW és ALL megadja, hogy visszatérjen ismétlődő rekordokat. Az alapértelmezett beállítás (ALL), azaz vissza az összes előfordulását a húr. Elkülönülő és DISTINCTROW szinonimák, és adja meg, hogy az ismétlődő sorok az eredmény adathalmazt kell hagyni.

Minden paraméter, kezdve SQL_. STRAIGHT_JOIN és HIGH_PRIORITY. MySQL egy kiterjesztése az ANSI SQL.

Ha meg paraméter tartalmazó HIGH_PRIORITY a SELECT lesz magasabb a prioritása, mint egy parancsot, amely frissíti a táblázatot. Csak akkor kell használni ezt az opciót lekérdezéseket végezni nagyon gyorsan és azonnal. Ha a tábla le van zárva az olvasás, a SELECT HIGH_PRIORITY vizsgálatot kell elvégezni, ha van egy frissítés parancs, várjon, amíg egy asztal felszabadul.

SQL_BIG_RESULT paraméter használható GROUP BY vagy külön-külön. elmondani az optimalizáló, hogy az eredmény tartalmazni fog egy nagy sorok számát. Ha ez az opció meg van adva, MySQL, ha szükséges, akkor azonnal használhatja ideiglenes táblák lemezen, de előnyben kell részesíteni, hogy ne hozzon létre egy ideiglenes táblát egy billentyűt elemeinek GROUP BY. és az adatok válogatás.

Amikor megadja SQL_BUFFER_RESULT MySQL paraméter adja meg az eredményt egy ideiglenes tábla. Így MySQL képes, hogy a zárat, mielőtt az asztalra; ez is hasznos, ha küldeni az eredményt a kliens hosszú időt vesz igénybe.

SQL_SMALL_RESULT lehetőség is van lehetőség külön MySQL. Ez az opció használható GROUP BY vagy külön-külön. elmondani az optimalizáló, hogy az eredmény meg kicsi lesz. Ebben az esetben a MySQL tárolni az így kapott táblázat használata helyett válogatás fogja használni a gyors ideiglenes táblák. A MySQL 3.23, adja meg ezt a beállítást általában nem szükséges.

Paraméter SQL_CALC_FOUND_ROWS (MySQL 4.0.0 és újabb) visszaadja a sorok számát vissza kell juttatni a SELECT. ha nem meghatározott értéket. A kívánt sorok száma lehet beszerezni a SELECT FOUND_ROWS (). Különböző funkciókat.

Vegye figyelembe, hogy a MySQL 4.1.0 előtti verziókban nem működik LIMIT 0 optimalizált, hogy visszatérjen a null eredmény azonnal. Hogyan MySQL optimalizálja LIMIT.

Paraméter SQL_CACHE utasítja MySQL tárolja a lekérdezés eredménye a lekérdezés cache segítségével query_cache_type = 2 (kereslet). Kérdés cache MySQL.

Paraméter SQL_NO_CACHE tiltja MySQL tárolja a lekérdezés eredménye a lekérdezés cache. Kérdés cache MySQL.

Amikor a GROUP BY output string kifejezést lesz rendezve szerint a megadott sorrendben GROUP BY. - mintha az ORDER BY záradékot kell alkalmazni minden olyan területre meghatározott GROUP BY. A MySQL GROUP BY tagmondat hosszabbítani, hogy akkor is meg ASC és DESC opciók számára:

Részletes szereplő GROUP BY MySQL előírja többek között, a választás a mezők nem szerepel a GROUP BY kifejezés. Ha a kérelem nem hozta meg a várt eredményt, kérjük, olvassa el a leírást GROUP BY. Funkciók használt GROUP BY nyilatkozatokat.

Ha megad STRAIGHT_JOIN optimalizáló, hogy csatlakozzon a táblákat a sorrendben, amelyben szerepel a FROM záradék. Az ezzel a paraméter lehetővé teszi, hogy növelje a sebességet a megkeresés esetén az optimalizáló termel egyesület asztalok szuboptimális módon. Szintaxis EXPLAIN (információk megszerzésére SELECT).

LIMIT kifejezést lehet használni, hogy korlátozza a sorok számát SELECT parancs. LIMIT vesz egy vagy két numerikus érveket. Ezek az érvek kell lennie egész konstansokat. Ha a két érv, az első pont a kezdete az első sorban, hogy visszatérjen, és a második megadja a maximális sorok számát. Az elmozdulás a kezdeti sor 0 (1):

Kompatibilitás PostgreSQL MySQL is támogatja a LIMIT # OFFSET # szintaxis.

Jelölje ki az összes sort egy bizonyos eltolás legfeljebb a végeredmény, akkor értéke -1, mint a második paraméter:

Ha az egyik érv, hogy azt a maximális sorok számát:

Más szóval, LIMIT n egyenértékű LIMIT 0, n.

SELECT lehet bemutatni formájában SELECT. INTO OUTFILE 'fájlnév'. Ez a fajta csapat írja a kijelölt sorokat a fájl által meghatározott fájlnév. Ez a fájl jön létre a szerveren, és azt megelőzően nem létezik (így többek között megakadályozza a megsemmisítése a táblázatok és fájlokat, mint például a / etc / passwd). Ahhoz, hogy használni ezt a fajta SELECT parancs szükséges jogosultságokat FILE. SELECT formában. INTO OUTFILE célja elsősorban, hogy végre nagyon gyors billenő asztalt a szerver számítógépen. SELECT parancs. INTO OUTFILE nem lehet használni, ha azt szeretné, hogy megteremtse a kapott fájlt egy másik gazda, mint a szerver. Ebben az esetben, hogy a kívánt fájlt, hanem a parancs használja néhány kliens programot, mint mysqldump --tab vagy mysql -e „SELECT.”> Outfile. A SELECT parancs. INTO OUTFILE a kiegészítője a LOAD DATA INFILE; export_options része parancs szintaxisa azonos expressziós mezők és vonalak. amelyeket a parancs LOAD DATA INFILE. Syntax LOAD DATA INFILE. Figyeljük meg, hogy a kapott szöveges fájl megmenekült szereplő képernyők, csak a következő karaktereket:

A szimbólum megmenekült

Az első jel az üzemeltető TERÜLETEK leállítottuk

Az első jel az üzemeltető VONALAK leállítottuk

Ha ahelyett, hogy INTO OUTFILE használni INTO DumpFile. akkor a MySQL rögzíti a fájl csak egy sor karakter, oszlopok vagy sorok teljes és nincs semmilyen árnyékolás. Ez akkor hasznos, tárolására BLOB adattípus egy fájlban.

Vegye figyelembe, hogy bármilyen fájl által létrehozott INTO OUTFILE és INTO DumpFile. Elérhető lesz rögzíteni minden felhasználó! Ennek az az oka a következő: a MySQL szerver nem tud létrehozni egy fájlt, csak az tartozik, hogy minden aktuális felhasználó (sosem lehet futtatni mysqld root), illetve a fájlt kell írható minden felhasználó.

Ha FOR UPDATE felvezető táblák támogatása zár oldalak / vonalak, a kiválasztott sor lesz zárva az íráshoz.

Kapcsolódó cikkek