A mysql alapfogalmai és a szövegfájloktól való eltérések

A lista szöveges fájl. Vagy mondjuk a diákok listáját az osztály naplójában.
Rendezett lista megszerzéséhez a rekordok hozzáadásakor át kell rendezni a listát. Amikor hozzáadunk valamit! És ha két vagy többféle megrendelést szeretnénk? Például a diákok felsorolása ábécés sorrendben, de szeretnénk látni őt az egyetemi teljesítményében. Indítson két listát? NEM! Indítsa el az adatbázist.
És megérteni az első, legfontosabb alapelvet. Az adatok sorrendje csak akkor történik, ha azokat az adatbázisból választja ki. Ez nagyon fontos tény. Az adatbázisban lévő adatok nem szerepelnek az osztály naplójában - sorrendben. És mint a homokóra - egy csomó. Nem adja meg a kimenet sorrendjét - a nuláról jelenik meg. Maga az alap nem emlékszik arra, hogy melyik rekord volt az első, és melyik volt az utolsó. Azonban a felhasználó a táblázatban létrehozott attribútumokkal rendezheti.

Az első dolog, amit emlékezni kell. Az adatbázisban nincs első és utolsó adat. A megrendelésről csak a kimeneten tud beszélni, ha a felhasználó ezt a megrendelést megadta. például azáltal, hogy a bejegyzéseket betűrendben rendezi. Itt van ez a minta az első és az utolsó.
Ha tudnunk kell a rekordok adatbázisba való bejegyzésének sorrendjéről, adjunk hozzá egy mezőt, amellyel meg lehet határozni.

A következő dolog, hogy egy adatbázis eltér egy fájlból, véletlenszerű hozzáférés. Egy fájlban, annak érdekében, hogy a középső sorra hivatkozzon, rendezni kell mindazokat, akik hozzá járnak. Feljavításakor - még rosszabb. Annak érdekében, hogy megváltoztassa a sort a sorfájlban - újra kell írni mindent! Teljesen. Ugyanazzal az adatbázisral - minden egyszerű. Szeretnénk választani egy sort - válasszon! Egy sort akarunk változtatni - megváltozunk. Két törlést akarunk törölni!
Megjegyzés: Valójában az adatbázis nem mágikus doboz, és nem nem anyagi éterben tárolja az adatokat, hanem ugyanabban a fájlban. És ugyanúgy átírják őket. De teljesen átláthatóvá teszi a felhasználót.

Az önkényes hozzáférés és az "első-második harmad" belső számozás hiányában szembesülünk a vonalak azonosításával. Tegyük fel, hogy az adatbázisból a képernyőre adunk ki sorokat, és most a hivatkozásra kattintva egyiket is szerkeszteni szeretnénk. Hogyan kérhetem? Az egyik mező tartalma? De mi van, ha ez a tartalom egybeesik néhány további irattal? Egyedi azonosítóra van szükségünk! A MySQL-nek van egy zseniális megoldása. Az egyik mező, amelyet általában "id" -nek neveznek, az autoincrement, vagyis automatikusan növekszik. Az új rekordok hozzáadásakor, ha az azonosító nincs megadva, vagy az érték nulla, akkor az adatbázis egy értéket rendel az id mezőhöz, egynél többet, mint az előző. Tehát egy egyedi azonosítót kaptunk - a táblázatban lévő egyik vonalnak nincs azonos azonosítója. Most nagyon könnyű szerkeszteni vagy kimenni bármely bejegyzést - csak adja meg idét.
By the way, az automatikus növekményes azonosítónak még egy oldalsó tulajdonsága van. A táblázat táblázat szerinti rendezésével megkaphatja a nagyon hírhedt első vagy utolsó rekordot :-)

Azonban sok hiba és félreértés van ezen a területen.

GYIK. ID.
Először is, ez a mező téves a számláló számára. Mint az osztály naplójában - az 1,2,3-as diák. És ha a diákot kiutasították az iskolából? És ha nem minden diákot választunk, csak fiúkat?
Az első szabály: a számozásnak nincs a legkisebb viszonya! Először is, mert id nem mehet rendben, és másodszor, hogy mindegyiknek van rendje csak a MINTA. Ami lehet bármi, az id ben teljesen elmélkedhet! Ha meg akarjuk számolni az eredményeket - kérjük, a kimeneten hozzáadjuk a kódot a PHP-hez, ami meg fogja csinálni. Ebben a PICK. Be kell számolni a kimeneten. Pontosan azért, mert a mintavételi lehetőségek végtelen számúak lehetnek.
Lássuk, miért lehet szükség egy másik kezdőre a számozáshoz? A kiválasztott rekordok számának meghatározása. Ehhez van egy függvény - mysql_num_rows (). Ő segít nekünk MINDEN minta. Míg a számozás egyáltalán nem segít nekünk, a fenti okok miatt.
Második szabály: A rekord azonosítóját, soha, semmilyen módon nem lehet megváltoztatni. Először is soha nem szükséges. Másodszor, ez a mi UNIQUE ID. Az id mező csak úgy néz ki, mint a számok. Valójában - ez a módszer SINGLE, és bármikor azonosítani a rekordot. Tegyük fel, hogy híreink vannak. Valaki összekapcsolta a hírt id = 1-vel. Aztán megváltoztattuk ezt az azonosítót. Ennek eredményeképpen egy személy rossz kapcsolatra fog kerülni. Ha újra kell számot adnia, akkor egyszerűen nincs szükség automatikus növekedési mezőre.

Az SQL nyelv.
Most egy kicsit az SQL nyelvről. Ez, mint mondtam, az emberiség zseniális találmánya. Szinte mesterséges intelligencia. Bíró maga.
Annak érdekében, hogy kiválaszthassuk az iskola minden tanulójának nevét, a 7A osztályba tartozó diákok betűrendben szétválogassák a következő lekérdezést:
VÁLASZTÁS keresztnévneve FROM iskolából ahol klass = '7A' ORDER BY utónév
Ez egy gyakorlatilag értelmes javaslat angolul!
Próbáljunk fordításokat készíteni:
SELECT SAMPLES FROM THE SCHOOL [ilyen,] ahol az osztály 7A, DISCARDING alternatív találkozások
Nos, nem rossz? Gyakorlatilag a természetes nyelven mondjuk az adatbázist, amire szükségünk van - és ez adja a megfelelő sorokat a megfelelő sorrendben! És mindez ez egy ékszer! Ugyanakkor a minta bonyolultsága is lehet. Ha szövegfájlból választunk - a programot nem egy lapra kellene írni. És itt - egy sor!
Nos, hogyan? Fájlokat szeretne még fájlba helyezni?

GYIK. Adatátvitel különböző szerverek között.
Adatátvitel az INSERT kéréseket tartalmazó dump fájlokon keresztül.
Vagyis azon a kiszolgálón, ahonnan az adatbázist szeretnénk átvinni, létrehozunk egy fájlt INSERT kérésekkel az egyes táblák minden sorában az adatbázisban. És egy távoli kiszolgálón, egyszerűen végrehajtjuk ezeket a kéréseket.

A leginkább helyes és közvetlen módja annak, hogy a dumpot használjuk, a parancssori segédprogram mysqldump
menjen a DOS-ba vagy a shell-ba, és írjon
mysqldump -u<логин> -p<пароль> bázis> dump.sql
kapjuk a dump.sql fájlt, amelyet át kell adni egy távoli kiszolgálóra, és ott végre kell hajtani.
Ehhez hívja a mysql shell-t ehhez hasonló módon:
mysql -u<логин> -p<пароль> bázis mindent, az alapot mozgatják.
Ha nincs hozzáférése a shellhez, használhatja a Sypex Dumper PHP szkriptet

Egyéb anyagok a MySQL-en:

Kapcsolódó cikkek