tévék. Konzolok. Projektorok és tartozékok. Technológiák. Digitális TV

Bejelentkezés a MySQL-be. A PhpMyAdmin további funkcióinak engedélyezése Keresési paraméterek mentése

Az eseménynaplók az első és legegyszerűbb eszköz a rendszerállapot meghatározására és a hibák azonosítására. A MySQL-ben négy fő napló található:

  • Hibanapló— szabványos hibanapló, amelyet a szerver futása közben gyűjtenek (beleértve az indítást és a leállítást);
  • Bináris napló— a replikációhoz és a biztonsági mentésekhez szükséges összes adatbázis-módosítási parancs naplója;
  • Általános lekérdezési napló— fő lekérdezési napló;
  • Lassú lekérdezési napló— lassú kérések naplója.

Hibanapló

Ez a napló tartalmazza az összes hibát, amely a kiszolgáló futása közben fordult elő, beleértve a kritikus hibákat, valamint a kiszolgáló leállásait, a szerverindításokat és a figyelmeztetéseket. Itt kell kezdenie rendszerhiba esetén. Alapértelmezés szerint minden hiba a konzolra (stderr) kerül kiadásra, a hibákat a syslogba (alapértelmezett a Debianon) vagy egy külön naplófájlba is naplózhatja:

Log_error=/var/log/mysql/mysql_error.log

# A hibák a mysql_error.log fájlba kerülnek

Javasoljuk, hogy hagyja engedélyezve ezt a naplót a hibák gyors azonosítása érdekében. És hogy megértsük, mit jelent ez vagy az a hiba, a MySQL rendelkezik a perror segédprogrammal:

Shell> perror 13 64 OS hibakód 13: Engedély megtagadva OS hibakód 64: A gép nincs a hálózaton

# Elmagyarázza a hibakódok jelentését

Bináris (más néven bináris) napló

Minden adatbázis-módosítási parancs rögzítésre kerül a bináris naplóban, ami hasznos a replikációhoz és a helyreállításhoz.

Így kapcsol be:

Log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 5 max_binlog_size = 500 millió

# Megadja a helyet, az élettartamot és a maximális fájlméretet

Kérjük, vegye figyelembe, hogy ha nem tervezi a rendszer méretezését és a hibatűrés megvalósítását, akkor jobb, ha nem engedélyezi a bináris naplót. Erőforrás-igényes és csökkenti a rendszer teljesítményét.

Kérelemnapló

Ez a napló tartalmazza az összes fogadott SQL-lekérdezést és az ügyfélkapcsolatokkal kapcsolatos információkat. Hasznos lehet indexelemzésnél és -optimalizálásnál, valamint a hibás lekérdezések azonosításában:

General_log_file = /var/log/mysql/mysql.log általános_napló = 1

# Tartalmazza a naplót, és jelzi a fájl helyét

A MySQL szerver futása közben is engedélyezheti/letilthatja:

SET GLOBAL general_log = "BE"; SET GLOBAL general_log = "KI";

# Nem kell újraindítania a szervert a használatához

Lassú kérésnapló

A napló hasznos a lassú, azaz nem hatékony lekérdezések azonosítására. Bővebben ebben a cikkben.

Naplók megtekintése

A Debian (Ubuntu) naplók megtekintéséhez futtassa a következőket:

# Hibanapló farka -f /var/log/syslog #Lekérdezésnapló farka -f /var/log/mysql/mysql.log # Lassú kérések naplózása tail -f /var/log/mysql/mysql-slow.log

# Ha a naplók nincsenek külön megadva, akkor a /var/lib/mysql könyvtárban találhatók

Napló forgatás

Ne felejtse el tömöríteni (archiválni, elforgatni) a naplófájlokat, hogy kevesebb helyet foglaljon el a szerveren. Ehhez használja a segédprogramot log forgatni a konfigurációs fájl szerkesztésével /etc/logrotate.d/mysql-server:

# - Mindent egy blokkba tettem és megosztott szkripteket adtam hozzá, hogy a mysql csak egyszer kapjon # flush-logs"d. # Ellenkező esetben a bináris naplók automatikusan n-szeresére növekednének minden nap. # - A hibanapló elavult, az üzenetek most a syslogba kerülnek./var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log( napi forgatás 7 hiányok létrehozása 640 mysql adm tömörítés megosztott szkriptek postrotate test -x /usr/bin/mysqladmin || kilépés 0 # Ha ez nem sikerül, ellenőrizze a debian.conf fájlt! MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" if [ -z "`$MYADMIN ping 2>/dev/null`" ]; majd # Tényleg nincs mysqld, vagy inkább hiányzik egy debian-sys-maint felhasználó? # Ha ez előfordul, és nem hiba, kérjük, jelentse a hibát. #if ps cax | grep -q mysqld; majd if killall -q -s0 -umysql mysqld; majd lépjen ki 1 fi else $MYADMIN flush-logs fi endscript )

# Tömöríti és archiválja a szükséges naplókat, megtisztítja a fájlokat

DDL napló

A MySQL adatnyelvi naplót is vezet. Olyan műveletekből gyűjt adatokat, mint a DROP_TABLE és ALTER_TABLE. A napló az ilyen műveletek során fellépő hibák utáni helyreállításra szolgál. A DDL napló egy bináris fájl, és nem arra szolgál, hogy a felhasználó elolvassa, ezért ne módosítsa vagy törölje.

A legfontosabb

Mindig kapcsolja be a hibanaplót, a lekérdezési napló segítségével ellenőrizze az alkalmazás adatbázishoz való kapcsolódását, ellenőrizze a lekérdezéseket és a működést. A lassú lekérdezések naplója hasznos a MySQL teljesítményének optimalizálásához.

Ezt a cikket a "Webprogramozás alapjai" témakör tanulmányozásának szenteljük, ahol továbbra is az adatbázissal, de több táblával dolgozunk, kapcsolatokat hozunk létre köztük és megismerjük a SELECT utasítást.

phpMyAdmin egy PHP nyelven írt program, amelyet MySQL szerverek világhálón keresztüli kezelésére terveztek. A phpMyAdmin a MySQL műveletek széles skáláját támogatja, a leggyakrabban használt műveleteket a felhasználói felület támogatja (adatbázisok, táblák, mezők, kapcsolatok, indexek, felhasználók, jogok stb. kezelése), ugyanakkor bármilyen SQL-t közvetlenül végrehajthat. lekérdezés.

Kérések egy adatbázis-objektum, amely arra szolgál, hogy adatokat gyűjtsön ki táblákból, és azokat kényelmes formában jelenítse meg a felhasználó számára. A lekérdezések sajátossága, hogy alaptáblákból nyernek ki adatokat, és ezek alapján készítenek egy ideiglenes táblát. A lekérdezések használatával elkerülhető az adatok megkettőződése a táblákban, és maximális rugalmasságot biztosít az adatok keresésében és megjelenítésében az adatbázisban.

SQL lekérdezések - egységes SQL utasításkészlettel felépített lekérdezések (Structured Query Language – strukturált lekérdezési nyelv). Az SQL nem sorolható be teljesen a hagyományos programozási nyelvek közé, ahol változókat kell bevinni, egy típust leírni és még sok minden mást, csak az adatbázisban tárolt adatokhoz való szabványos hozzáférési operátorokat tartalmaz.

NyelvSQLnégy részre osztva:

  • Adatdefiníciós operátorok(Data Definition Language, DDL): létrehozás ("létrehozás"), alter ("módosítás"), eldobás ("törlés").
  • Adatkezelési operátorok(Data Manipulation Language, DML): kijelölés, beszúrás, frissítés és törlés.
  • Adathozzáférés-definíciós operátorok(Data Control Language, DCL): engedélyezés („provide”) és visszavonás („deprive”).
  • Tranzakcióellenőrzési nyilatkozatok(Tranzakcióvezérlő nyelv, TCL): véglegesítés („teljes”), visszaállítás („visszagörgetés”), mentési pont („mentés”).

Megvizsgálunk egy SQL-parancsot – az adatlekérési parancsot KIVÁLASZTÁS , így ennek a parancsnak köszönhetően minden lehetséges kérést rendszerezhet.

Operátori szintaxisKIVÁLASZTÁS

KIVÁLASZTÁS <список полей, которые вы хотите отразить в запросе> |*

TÓL <список таблиц, с которыми вы работаете>

[AHOL <предикат-условие выборки или неявное внутреннее соединение таблиц>]

[CSOPORT ÁLTAL <список полей группировки> [HAJNÁL <предикат-условия для группировки>]]

[RENDELÉS ÁLTAL <список полей, по которым упорядочивает вывод> ]

A szögletes zárójelben szereplő információk a szokásos módon nem kötelezőek.

Nézzünk néhány példát a phpMyAdmin kérésére, ehhez a korábbi adatbázist fogjuk használni " Komp _ texnika " Ebben az adatbázisban már létrehoztunk egy táblázatot termék "(termék), amely az entitás megfelelő tulajdonságait tükrözte: termék_ ID ( elsődleges kulcs ), készítő ( gyártó ), modell ( modell ), Isten_ sozd ( teremtés éve ) Éstípus_ ID ( terméktípus, egy idegen kulcs ) (lásd 1. ábra).

Szintén ebbe az adatbázisba hozzáadtunk egy másik entitást " laptop "(terméktípus), amely az entitás megfelelő tulajdonságait tükrözte: típus_ ID(elsődleges kulcs), típus(típus), OS(operációs rendszer), processzor(CPU), pamjat(memória), zvet(szín), ves(súly) és zena(ár) (lásd 2. ábra).

Most, mielőtt folytatná a lekérdezések összeállítását, kapcsolatot kell létesítenie az entitások (táblázatok) között. Ehhez a táblázattal fogunk dolgozni laptop", nevezetesen válassza ki az elemet" Kapcsolatok "(lásd a 3. ábrát).

Ezután megnyílik egy oldal, ahol meg kell adni a táblák közötti kapcsolatért felelős mezőket (lásd 4. ábra). A kapcsolat más módon is létrehozható a " Tervező "(lásd a 4. ábrát)

Így a táblák közötti kapcsolatok létrehozásával folytathatjuk a lekérdezések létrehozását a felső menüben " SQL ».

1. kérés. Információk megjelenítése a 2012-es kiadáshoz rendelkezésre álló berendezésekről (lásd 1. táblázat).

1. táblázat

A kérés végrehajtásához az operátort használtuk válassza ki – a mezőről származó információk megjelenítéséhez készítő ( gyártó ) És modell ( modell ) , -tól – annak a táblázatnak a leírása, amelyből információkat kell megjelenítenie; állítmány ahol – az eredménytáblából sorok kiválasztásának feltételére, azaz olyan adatot állít elő, amelynek a létrehozás éve ( Isten_ sozd) egyenlő 2012 ; rendelés által – az adatok mező szerinti rendezéséhez készítő ( gyártó ) .

2. kérés. Információk megjelenítése a rendelkezésre álló gyártók berendezéseinek számáról (lásd 2. táblázat).

2. táblázat

Vel szám egyike az ún. aggregációs függvények", amely a nem üres sorok számát számolja, hatékony eszköz a lekérdezések létrehozásához; ebben az esetben a kimenetet a következő szerint csoportosította készítő ( gyártók ) .

3. kérés. Jelenítse meg a laptopok teljes költségét az elérhető gyártók szerint, összegek szerint rendezve, növekvő sorrendben (lásd 3. táblázat).

3. táblázat

Ehhez a lekérdezéshez két tábla adataira van szükség, ehhez kombinálnunk kell a táblákat " termék " (termék) és " laptop "(termék típusa), ehhez predikátumot használunk csatlakozik mezők egyesülését jelző: a tábla elsődleges kulcsa laptop . típus _ ID és tábla idegen kulcs termék . típus _ ID . Vegye figyelembe azt is, hogy ha két vagy több táblával dolgozik, az utasításban válassza ki, a mezők leírásánál pl. ennek a mezőnek a táblázat nevét szükséges feltüntetni laptop . típus . összeg , pont úgy gróf arra utal, hogy " aggregációs függvények”, amely a sorok értékeinek összegét számítja ki, esetünkben a felszerelés költségének összegét.

4. kérés. Adatok megjelenítése Windows-8 operációs rendszerrel rendelkező laptopokon, amelyek költsége legfeljebb 25 ezer (lásd 4. táblázat).

4. táblázat

5. kérés. Információk megjelenítése a termékről: készítő(gyártó), modell(modell), pamjat(memória), processzor(processzor) és zena(ár), kategória szerint " podhodit "És" nem podhodit "(lásd 5. táblázat).

5. táblázat

Eredmény:

Program :

Válassza ki az esetet, amikor (laptop.pamjat = 1000) és (laptop.processzor >=2600), majd a "podhodit" különben a "nem podhodit" így végződik: itog, product.maker, product.model, laptop.pamjat mint pamjat_v_Gb, laptop.processor mint proc_v_Mgz, laptop.zena termékről csatlakozzon laptophoz a laptopon.type_ID=product.type_ID ahol laptop.type, mint "l%", sorrend 1 desc, 6

Vel ase vége – kiválasztási predikátum, az áruk kritériumoknak megfelelő kategóriákba történő felosztására szolgál. mint "1%" – egy állítmány, amely a karakterláncok mintával való párosítására szolgál. A minta egy karakterlánc, amely két speciális karaktert használhat: " % "És" _ ", hol" % " megfelel bármely karakterláncnak (esetleg üres) és " _ " egyetlen karakterre egyezik, a speciális karakterektől eltérő karakterek csak speciális karakterekkel és önmagukkal párosíthatók. rendelés által [ asc| desc] – a lekérdezések eredményeinek rendezésére tervezve [növekvő (alapértelmezett) | Csökkenő], a rendezés egy vagy több mezőben lehetséges.

Operátor KIVÁLASZTÁS nem más, mint egy kifejezés, amellyel adatbázistáblákból nyerhetünk eredményhalmazt. Az operátor segítségével kérést generálunk KIVÁLASZTÁS , és ő viszont, miután befejezte a munkáját, visszaküldi a kapott adatkészletet. Ezeket az adatokat egy táblázat formájában adjuk vissza, amelyet viszont a következő operátor tud feldolgozni KIVÁLASZTÁS stb.

Hivatkozások

  1. Kivonat a phpMyAdminhoz [elektronikus forrás] / URL: http://php-myadmin.ru/about/notice.html
  2. Adatbázis lekérdezések és felhasználásuk. Kérelmek típusai. Létrehozás technológiája [Elektronikus forrás] / URL: http://www.yaklass.ru/materiali?mode=cht&chtid=514
  3. Osztrovszkij S.L. Webprogramozás alapjai iskolai honlapkészítéshez. 5. előadás PHP+MySQL [Szöveg]/ S.L. Osztrovszkij // Informatika. - 2008.-№21.-p.2-15

A standard csomagban pedig sok mindent meg lehet vele csinálni. De akárhogy is legyen, számos hasznos funkciója van, amelyeket külön is engedélyezhetünk. Ebben a cikkben bemutatjuk a PhpMyAdmin további funkcióit, és meglátjuk, hogyan lehetnek hasznosak számunkra.

Beállítások elemre

Mielőtt elkezdené, győződjön meg arról, hogy a PhpMyAdmin működik és fut. Ha bejelentkezik, egy ehhez hasonló üzenetet láthat:

A phpMyAdmin konfigurációs tárolója nincs teljesen konfigurálva, néhány bővített szolgáltatás deaktiválva lett. Ha meg szeretné tudni, miért, kattintson ide.
(A phpMyAdmin konfigurációs tárolója nincs megfelelően konfigurálva, egyes funkciók le vannak tiltva. Ha meg szeretné tudni, miért, kattintson ide)

$cfg["Szerverek"][$i]["controluser"] = "pma"; $cfg["Szerverek"][$i]["controlpass"] = "pmapass"; $cfg["Szerverek"][$i]["pmadb"] = "phpmyadmin"; $cfg["Szerverek"][$i]["bookmarktable"] = "pma__bookmark"; $cfg["Szerverek"][$i]["relation"] = "pma__relation"; $cfg["Szerverek"][$i]["table_info"] = "pma__table_info"; $cfg["Szerverek"][$i]["pdf_pages"] = "pma__pdf_oldalak"; $cfg["Szerverek"][$i]["table_coords"] = "pma__table_coords"; $cfg["Szerverek"][$i]["column_info"] = "pma__oszlop_információ"; $cfg["Szerverek"][$i]["history"] = "pma__history"; $cfg["Szerverek"][$i]["recent"] = "pma__recent"; $cfg["Szerverek"][$i]["table_uiprefs"] = "pma__table_uiprefs"; $cfg["Szerverek"][$i]["users"] = "pma__users"; $cfg["Szerverek"][$i]["usergroups"] = "pma__usergroups"; $cfg["Szerverek"][$i]["navigationhiding"] = "pma__navigationhiding"; $cfg["Szerverek"][$i]["tracking"] = "pma__tracking"; $cfg["Szerverek"][$i]["userconfig"] = "pma__userconfig"; $cfg["Szerverek"][$i]["designer_coords"] = "pma__designer_coords"; $cfg["Szerverek"][$i]["favorite"] = 'pma__kedvenc'; $cfg["Szerverek"][$i]["savedsearches"] = "pma__savedsearches";

Módosítsa a felhasználónevet, jelszót és adatbázis nevét saját belátása szerint. A fennmaradó konfigurációs értékek táblanevek. Ha üresen hagyja, letiltja a hozzájuk tartozó funkciókat. De általában azt javaslom, hogy hagyjuk ezeket a neveket úgy, ahogy vannak. A PhpMyAdmin verziójától függően alapértelmezés szerint nem minden érték lesz elérhető. Ebben az esetben a PhpMyAdmin 4.2.x verzióját használtam.

Ha elkészült a konfigurációval, létre kell hoznia az adatbázist. Hozzon létre egy adatbázist a konfigurációs fájlban megadott névvel. Ezután keressen egy create_tables.sql nevű fájlt a gépén. Valószínűleg ez a fájl a telepített PhpMyAdmin gyökérkönyvtárában vagy a szkriptek alkönyvtárában található. Ha Linuxot használ, a hely a /usr/share/phpMyAdmin/examples/ vagy /usr/share/doc/phpmyadmin/scripts/ lesz. Futtassa ezt a fájlt a létrehozott adatbázison belül. Ha a fenti konfigurációban megváltoztatta a táblaneveket, ne felejtse el megváltoztatni az adatbázisban is.

HASZNÁLAT ENGEDÉLYEZÉSE A mysql.*-n a "pma"@"localhost"-nak, ME AZONOSÍTJA: "pmapass"; GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Create_priv, Alter_priv, Show_t s_priv, Execute_priv, Repl_slave_priv, _priv) BE mysql.user TO "pma"@"localhost"; GRANT SELECT ON mysql.db "pma"@"localhost"; GRANT SELECT ON mysql.host TO "pma"@"localhost"; GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO "pma"@"localhost"; KIVÁLASZTÁS, BEHELYEZÉS, FRISSÍTÉS, TÖRLÉS A phpmyadminon.* A "pma"@"localhost"-hoz;

A PhpMyAdminból való kijelentkezés és újbóli bejelentkezés után látnunk kell, hogy a figyelmeztetés eltűnt. Ha nem hiányzik, kattintson a linkre, hogy megtudja, mi hiányzik.

Nézzük a további lehetőségeket.

Könyvjelzők

Ha engedélyezi a könyvjelző-bővítményt, akkor a lekérdezéseket könyvjelzővel láthatja el. Amikor létrehoz egy kérést, hozzáadhatja azt a könyvjelzőihez. Továbbá, ha a kérést már elindították, akkor az oldal aljára görgetve és az űrlap kitöltésével könyvjelzők közé helyezheti.

Amikor az SQL fülre lép, alul megjelenik egy panel, ahol a könyvjelzők közül választhat egy lekérdezést. Válassza ki a kívántat, és jelezze, hogy mit szeretne vele tenni: végrehajtani, megtekinteni vagy törölni.

Kapcsolatok

A kapcsolati lehetőség valószínűleg a legjobb dolog, amit valaha használtam. Ha idegen kulcsokat használ, akkor az ilyen kulcsok kattinthatóvá válnak. Ha rákattint egy idegen kulcsra, egy másik táblába kerül: az idegen kulcs által hivatkozott rekordba.

Továbbá, amikor idegen kulcsot ad hozzá vagy szerkeszt, a szövegbeviteli mező helyett az összes lehetséges opció listája jelenik meg.

Táblázat információk

Természetesen jó látni egy listát az összes lehetséges értékkel az idegen kulcshoz. De még jobb lenne, ha az azonosító helyett egy konkrét oszlopot mutatnánk. Ennek eléréséhez engedélyeznie kell azable_info . Lépjen a fő táblázatba, lépjen a „Struktúra” fülre, és kattintson a hivatkozásra a kapcsolat megtekintéséhez. Ha az oldal aljára görget, látni fogja, hogy az adott kulcshoz melyik oszlop fog megjelenni.

Ha új rekordot hozok létre idegen kulccsal, akkor az elsődleges kulcs értéke mellett az általam megadott oszlop értéke jelenik meg. Most már nem kell emlékezni az azonosítóra.

PDF oldalak

A táblák közötti kapcsolatok PDF-be exportálhatók. Ehhez aktiválni kell a pdf_pages, table_coords és a relációt a configban. A következő lépés a PDF-be exportálni kívánt adatbázis megnyitása. Kattintson a „Műveletek” fülre. Ezután kattintson a „Bekötési rajz szerkesztése vagy exportálása” hivatkozásra. Töltse ki az összes mezőt, és kattintson a „Küldés” gombra. Ha kitöltötte az űrlapot, egy PDF-fájlt kap az összes szükséges adattal.

Oszlop információ

Az oszlopinformáció opcióval megjegyzéseket fűzhet az oszlopnevekhez. Ez akkor lehet hasznos, ha szeretné másoknak közvetíteni, hogy mi az oszlop, és milyen adatokat tárol. Ezt az oszlopadatok módosításával teheti meg. Észreveheti, hogy új megjegyzés került az oszlopba. Ha megjegyzést ír be, az közvetlenül az oszlop neve alatt jelenik meg.

Az átalakítások ugyanúgy alkalmazhatók oszlopokra. Az átalakítások segítségével egy fájlnevet hiperhivatkozássá alakíthat, amely megnyitja a megadott fájlt.

Történet

Ha engedélyezi az előzményeket , a PhpMyAdminon keresztül küldött összes kérést a rendszer menti az előzmények között, amíg ki nem jelentkezik vagy bezárja a böngészőt. Az előzmények a „Lekérdezés” párbeszédpanel meghívásával és az „SQL-előzmények” gombra kattintva tekinthetők meg

Legutóbbi

A navigációs sávban láthat egy „Legutóbbi” gombot, amely a legutóbb megtekintett táblázatok legördülő listáját tartalmazza. Ez a lista alapértelmezés szerint jelenik meg. De ha tartósan szeretné tárolni a munkamenetek között, akkor engedélyezheti a legutóbbi opciót a konfigurációban, és a böngészési előzmények mentésre kerülnek az adatbázisba.

A táblázat megjelenítési beállításai

A táblázatok megtekintése közben megváltoztathatja az oszlopok sorrendjét azok mozgatásával. Ezeket a változtatásokat csak Ön láthatja. Az oszlopok tényleges sorrendje nem változik. Ezenkívül az oszlopokat növekvő és csökkenő sorrendbe is rendezheti. Az ilyen változtatások a munkameneten belül tárolódnak, és kijelentkezéskor visszaállnak, és az alapértelmezett beállításokra cserélik őket. Ha azonban azt szeretné, hogy a táblázatok mindig „az Ön igényei szerint” legyenek elhelyezve, akkor engedélyezze a table_uiprefs opciót.

Felhasználók és felhasználói csoportok

Előfordulhat, hogy nem kívánja megjeleníteni az összes funkciót minden felhasználó számára. Ebben az esetben csoportokra oszthatja őket a „Felhasználók” lapon. Hozzon létre egy új csoportot, és határozza meg, hogy a csoport felhasználói mit láthatnak. Ezután felvehet felhasználókat ebbe a csoportba, és biztos lehet benne, hogy csak azokat a menüpontokat fogják látni, amelyeket Ön engedélyez. Így különböző felhasználók számára biztosíthat hozzáférést a különböző rendszerfunkciókhoz, valamint elrejtheti a nem használt opciókat.

Navigáció elrejtése

A navigációs elrejtés funkcióval elrejthet néhány táblázatot a navigációs sávban. A táblázat neve melletti villanykörte ikonra kattintva elrejti azt. A villanykörte ikonra kattintva ismét láthatóvá is teheti. Így megszabadítja a navigációs sávot a nem használt táblázatoktól.

Követés

Ezzel a funkcióval nyomon követheti az egyes táblákon a PhpMyAdmin segítségével végrehajtott összes módosítást. Ha a táblázatra lép, és megnyitja a „Követés” lapot, létrehozhatja az aktuális táblázat verzióját. Most a táblán a PhpMyAdmin segítségével végrehajtott összes módosítás mentésre kerül. Ugyanígy könnyen meghatározhatja, hogy az utolsó verzió létrehozása óta milyen változtatások történtek a táblán.

Egyéni beállítások

Alapértelmezés szerint az összes felhasználói beállítást a böngésző tárolja. Ez azt jelenti, hogy ha úgy dönt, hogy másik böngészőt használ, vagy törli a böngésző gyorsítótárát, minden beállítása elvész. A userconfig aktiválásával véglegesen elmenti beállításait az adatbázisba.

Adatbázis tervező koordináták

A designer_coords engedélyezésével megtekintheti a táblák közötti kapcsolatokat adatbázis-tervező nézetben. Az adatbázisba lépve a „Designer” fülre kattintva az alábbi képhez hasonlót láthatunk, amely a táblák közötti kapcsolatokat mutatja. Ugyanakkor az ablak segítségével vizuálisan kezelheti a táblák közötti kapcsolatokat.

Kedvencek

Ha engedélyezi a kedvenc opciót, azt észlelheti, hogy adatbázisböngészési módban csillag ikonok jelennek meg a táblanevek mellett. Ha hozzá szeretne adni egy táblázatot a kedvenceihez, kattintson a csillagra. A navigációs sávban megjelenik a „Kedvencek” legördülő lista. A kedvenceihez hozzáadott táblázatok megjelennek ebben a listában.

Keresési paraméterek mentése

Az adatbázis megnyitásával és a Lekérdezés lapra lépve speciális kereséseket állíthat be. A keresési lehetőségek könyvjelzővel elláthatók. Vegye figyelembe, hogy ezek nem a korábban tárgyalt SQL lekérdezési könyvjelzők. Ezzel az opcióval elmentheti keresési paramétereit, és később felhasználhatja azokat.

Következtetés

A felsorolt ​​szolgáltatások könnyen engedélyezhetők, és valóban segíthetnek az adatbázisokkal való munka során a PhpMyAdmin segítségével. Különösen szeretem az idegen kulcsok részletezésének lehetőségét, hogy lássam a kapcsolódó rekordokat. Remélem, engedélyezi ezeket a funkciókat, és hasznosak lesznek a mindennapi munkájában.

Kérdés: Az ms sql lekérdezések története


Hogyan lehet megtekinteni a kérések előzményeit (törlés, frissítés...)?

Válasz:
a profilkészítő a leglassabb audit, amelyre gondolhat. A kiterjesztett események testreszabhatók az Ön igényei szerint, és feltölthetők stb. is, de ezen lehetőségek mindegyike erőforrásokat igényel.

Kérdés: Lekérdezés végrehajtási előzményei


Mondd, lehet látni valahol az MS SQL-ben, hogy egy adott adatbázisban ki milyen lekérdezéseket hajtott végre?

Válasz: iluxa1810, ez az információ csak részben áll rendelkezésre. Próbáljon ki egy ilyen lekérdezést:

T-SQL kód
1 2 3 4 SELECT deqs.last_execution_time AS [ Time ], dest.TEXT AS [ Query] FROM sys.dm_exec_query_stats AS deqs CROSS APPLY sys.dm_exec_sql_text (deqs.sql_handle) AS dest ORDER BY deqs.last_Cexecution

A lekérdezések teljes történetéhez naplózni kell, vagy olyan segédprogramokat kell használnia, mint az SQL Profiler.

Kérdés: Sql lekérdezés a korábbi értékek visszaállításához az adatbázisba


Sziasztok mindenkinek!

Kérem, mondja meg, hogyan tudom visszaküldeni az utolsó előtti rendelési állapotokat az adatbázisban egy bizonyos dátumtól kezdődően minden rendelésben?

Esetleg van valami sql lekérdezés vagy esetleg valami script... nagyon megköszönném.

A programozó enyhe hibát követett el a raktárommal való integráció során, és minden rendelés az integrációs modul beállításaiban lévő állapotra változott, és nem tudja, hogyan kell visszaküldeni.

Nem vettük észre azonnal, és már késő volt visszaállítani az adatbázis régi példányát. Már új rendelések vannak az üzletben.

Válasz: Poetiq,
Az InnoDB tárolhatja a lekérdezési előzményeket.

Bash
1 ~/ .mysql_history

Tekerje fel a legújabb biztonsági másolatot, és ismételje meg a parancsokat
Általánosságban elmondható, hogy minden egyes integráció előtt biztonsági másolatot kell készíteni, és még jobb, ha tesztelni kell egy tesztszerveren

Kérdés: SQL lekérdezés több táblából történő kereséshez


Jó napot. Kérem, segítsen megérteni, hogy ezt meg tudom-e csinálni, vagy az adatbázist újra kell csinálni, vagy egy ilyen keresést nem lehet megvalósítani.
Delphi rad xe10-en írok.
Az Alkalmazottak táblázatba egy sorban írom az alkalmazottra vonatkozó információkat, a ruhaméreteknél is egy sor, és az előzmények, hogy mit kapott (sok sor és csak ID_rab a különbség).

Keresni akarok
így a vezetéknév vagy a lapszám szerinti kérdésre a következő információkat kaphatom:
A dolgozóról a dbgrid1 első táblájából,
méretei a dbgrid2 második táblájából
és az ehhez az alkalmazotthoz kapcsolódó előzmények a 3. táblázatból (sok sor lehet, amely csak ID_rab szerint tér el) a dbgrid3-ban

Az első táblázatban:

a másodikban:

SQL
1 2 3 4 5 6 7 8 9 10 11 TÁBLÁZAT LÉTREHOZÁSA Méret (ID_razmOdejdi INT NEM NULL IDENTITY (1, 1), Ruhák VARCHAR (4), ID_rab INT, ELSŐDLEGES KULCS (ID_razmOdejdi), IDEGEN KULCS (ID_rab) REFERENCIÁK Alkalmazottak, ) ;

a harmadikban:

SQL
1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE Előzmények ( ID_story INT NEM NULL IDENTITY (1, 1), Nim_means VARCHAR (15), ID_rab INT, ELSŐDLEGES KULCS (ID_story), IDEGEN KULCS (ID_rab) HIVATKOZÁSOK Alkalmazottak, ) ;

Készítsen 3 ADOQuery-t különböző lekérdezésekkel egyszerre?
Nem tudom, hogyan tudom megjeleníteni az elsőhöz tartozó másik táblából származó információkat
Ha ez lehetséges: Beírtam egy személyt a keresésbe, az megtalálta, és az ID_rab segítségével más táblákban talál információt, és egyben 3 különböző dbgridben jeleníti meg.

Válasz:

Üzenet tőle Rogzar

És ha igény szerint teljesen töröl minden adatot egy alkalmazottról, méretéről, előéletéről, megtehető ez egy kéréssel?

Ha az Alkalmazottak táblában engedélyezve van a lépcsőzetes törlés, akkor egy sor törlésével az alárendelt táblák adatai törlődnek. Ellenkező esetben több TÖRLÉS kérést kell benyújtania.

Hozzáadva 14 óra 31 perc után
Az ilyen kód sebezhető az úgynevezett támadásokkal szemben. Paraméteres lekérdezéseket kell használni.

Kérdés: Egy kérés – lehetséges?


Jó napot, Uraim!
Mondja el, hogyan lehet ésszerűen megoldani a következő problémát...
Három táblázat van: termékek (tényleg kevés van belőlük, kb 60-80 darab), értékesítési előzmények és egyenlegek...

IN egyszerűsített a szerkezet a következő:
áruk:
id
név

order_history:
id
s_date
jó_azonosító
ár

egyensúly:
id
s_date
order_id
gróf

Mindhárom tábla azonosítóval van összekapcsolva (goods.id - order_history.good_id, order_history.id - balance.order_id).
A feladat az összes áru teljes egyenlegének beszerzése tetszőleges időpontra! Vagyis minden terméknél a legközelebbi dátumot kell lekérnem a mérlegből és az értékesítési előzményekből (a mérlegből rendre a mennyiséget, az értékesítési előzményekből az árat).

Egyértelmű, hogy ID alapján végig lehet hurcolni az összes terméket, és minden iterációban végrehajtani egy SQL-lekérdezést, de valahogy... nem szeretem ezt a lehetőséget! :) Meg lehet oldani a problémát kecsesen - egy kéréssel?

Bármilyen ötletért hálás lennék!

Válasz: Nem látok ellenjavallatot. Ha rendet tesz a szerkezetben.

Tompa!
Hozzáadott némi redundanciát az adatbázishoz
Már így is túl sok van belőle. Ráadásul potenciálisan ellentmondásos is. Nem látok olyan korlátozást, amely megtilthatná, hogy új egyenlegbejegyzést tegyek úgy, hogy az e és az előző mennyiségi bejegyzés közötti különbség ne feleljen meg a rendeléstörténetből származó teljes mennyiségnek ugyanarra az időszakra vonatkozóan.

Kérdés: Beágyazott lekérdezés, segítsen néhány egyszerű lekérdezés kombinálásában


Jó napot Nagyon hálás leszek a segítségért)) Régóta töröm az agyamat.
Egy kis történelem. Létezik egy bizonyos kéréscsoport a hozzájuk kapcsolódó URL-lel, a cél az, hogy egymást keresztező kéréseket adjanak ki egy bizonyos URL-listára, amelyet szintén a kérés határoz meg.

Így több lekérdezés is végrehajtódik sorrendben:
$sql2 = SELECT url FROM FROM WHERE `group` = "1" ÉS `proekt`= "1" GROUP BY url ORDER BY COUNT(*) DESC LIMIT 3 - képernyőkép
Kiválasztom az URL-ek listáját 3 darabból, majd összegyűjtöm őket egy nézetbe a kéréshez

$return=array();
$maxcount=mysql_query($sql2);
while($url = mysql_fetch_array($maxcount)) (
$return = $url;
}
foreach ($return mint $url1) ( //URL-ek sorozatának összegyűjtése a Muscle számára egy tömbből
if ($frag2==0) ( $urls = "`url`="."".$url1."""; $frag2=1; ) else $urls .= " VAGY `url` = "$ url1.""";
}

Ebben az esetben $urls = `url` = "http://www.MosDance.com/" VAGY `url`="http://rasky.com/" stb.

Megjelenítem az ezekhez az URL-ekhez kapcsolódó kulcsok listáját
válassza ki a `kulcsot' innen: (SELECT `key` , COUNT(*) AS total FROM list WHERE `group` = "1" AND `proekt`= "1" AND (.$urls.") GROUP BY `key` ORDER BY `összes` DESC) mint t2 WHERE t2.total >=3

Valójában a fő kérdés az, hogy hogyan lehet ezt a problémát csökkenteni? Hogyan állítsuk össze helyesen az URL-t, hogy megszabaduljunk az URL-t a kívánt sorrendben összegyűjtő php crutch szkripttől, és mindezt például egyetlen lekérdezéssel az adatbázisban? általában hogyan kaphatom meg a mankóimnál okosabb végeredményt egyetlen lekérdezésből?

Válasz:

Jó napot kívánok!
Soha ne írjon COUNT(*). Egy jobb lehetőség a COUNT(`id`).
Ezenkívül ne írjon RAND(*) kifejezést. Természetesen jobb, ha másképp írod: a megjegyzéseknek van funkciója, és ez a helyzet.
A rekordok adatbázisból való kiválasztására szolgáló fenti módszerek mindegyike erősen terheli a mysql szervert. Persze ha nincs 30 ezer rekord az adatbázisban, akkor nem lesz olyan fájdalmas.

A kéréssel kapcsolatban:
Áss az INNER JOIN felé. Vagy küldd el nekem az asztalod szemétdombját, segítek, ha részletesebben elmondod a problémát, mert amit olvasok, az lusta belemerülni a nagy felhajtásba =)

-----
- programozási órák itt. Itt is vannak érdekességek =)

Kérdés: Lekérdezés két táblából több feltétel használatával


Jó estét!

Kérem, segítsen az alábbi kérés teljesítésében:
1. Van egy táblázat a tranzakciókról a következő mezőkkel: pénznem neve, dátum, árfolyam típusa és egyéb mezők
2. Van egy táblázat az árfolyamok történetével, mezőkkel: pénznem neve, dátum, árfolyam típusa, árfolyam.

A lekérdezést az első tábla összes mezője és rekordja, valamint a második tábla árfolyama alapján kell előállítani. Sőt, mind a 3 kiválasztási kritériumnak egybe kell esnie: a pénznem neve, dátuma és az árfolyam típusa.

Előre is köszönöm!

Válasz:
Kényelmesebb lesz a lekérdezéstervezőben.

Rájöttem, hogyan szerezhetek belső örömöt SQL-en keresztül, első pillantásra egyszerű. De van egy kérdés:
1. A tranzakciós táblában van egy "Tranzakció típusa" mező.
2. Az általam végrehajtott lekérdezés minden egyes táblabejegyzéshez lekéri a "Tranzakciótípusok" táblából a "Devizaárfolyam típus" tranzakciókat.
3. A kérés kikerül a kurzusokat tartalmazó táblázatból a 2. lépésben kapott „Tanfolyam típusa” kritérium szerint.

Más szóval: először 2 tábla összevonásra kerül (tranzakciók és tranzakciótípusok), majd az általános információk felhasználásával hozzáadják a „Devizaárfolyamok” tábla adatait.

Kérdés: Nézze meg, melyik táblarekordon sikertelen a lekérdezés hibával


Találkoztam olyan helyzettel, amikor egy ténytáblázat lekérdezése hibát ad vissza, de nem tudom elkapni a hibához vezető bejegyzéseket a könyvtárban (a kérdés a dátumokra vonatkozik)
Maga a lekérdezés visszaadja a ténytáblázat összes rekordját, plusz egy számított mezőt a könyvtárból. Ha a könyvtár helyesen lett feltöltve, az allekérdezés ténytáblarekordonként egy értéket ad vissza. Valójában azonban olyan hibák vannak a címtár bejegyzéseiben, amelyeket nem tudok elkapni.
Meg lehet valahogy nézni, hogy melyik ténytábla rekord okozza a hibát?

Válasz: Nem vicces. Mert ez már régóta (szó szerint):
Nos, amint kialudt a tévedésérzékelő, azonnal futni kezdett... Mi a baj?
Mielőtt hősiesen írnál szuperlekérdezéseket (minden alkalomra), be kell kapcsolnod az agyad - nos, legalább pár percre...
Nos, személy szerint elég volt a „szenvedésed” egy őrült kéréshez, aminek a helye a szemetes.
És csak a szemantikája és szintaxisa miatt kapott egy „papucsot”...
Jó ötlet!
És amint kimosta, vegye le a polcról (legalább!) - és „tanuljon, tanuljon és tanuljon” (c). Minden bizonnyal van valami abban, hogy megosztod a GROUP BY-t és...

Kérdés: Profilkészítő programok lekérdezése


Üdvözlet!

Mondja meg, hogy ki mit használ (programok, IDE-k stb.) a lekérdezések elemzéséhez, érdekelnek a lekérdezéselemző eszközök az optimalizálásukhoz. Hol láthatja a lekérdezési tervet: lekérdezési indexek, Teljes vizsgálat stb.

11) |

DÁTUM |

DÁTUM |

driver_name |

VARCHAR(100) |
százalék |

Válasz: INT(11) |

ügyféltől_kapott_összeg |
TIZESES (9 , 2 ) |
sum_tariff_for_driver |

SQL
1 TIZESES (9 , 2 ) |

fizetett_összeg |



TIZESES (9 , 2 ) |