Kérdések megadása a mysql-ben

Ezen a ponton fontosabb, hogy kitaláljuk, hogyan adhat ki kérdéseket, mint mi és hogyan kell megfelelő adatbázisokat létrehozni. Ez a rész a parancsok beírásának alapelveit ismerteti, és számos lekérdezést használ, amelyek segítségével megismerheti a mysql kliens működését.

A lekérdezésekben számos parancs és paraméter található, amelyek az SQL nyelv részét képezik. Ez a fejezet csak rövid leírást ad a folyamat előrehaladásáról, amely szükséges ahhoz, hogy megértsük a tétet. Az SQL nyelv részletesebben a következő fejezetekben tárgyalt.

Van egy egyszerű parancs a szerver számára, hogy kommunikálja a verziót és az aktuális dátumot. Írja be ezt az alábbiak szerint a mysql> prompt után, majd nyomja meg az Enter billentyűt:

Ez a lekérdezés néhány kérdést tartalmaz a mysql-ről:

  • A parancs általában egy SQL utasításból áll, amelyet pontosvessző követ. Vannak olyan kivételes esetek, amikor nem kell pontosvesszőt megadni, például a fent említett QUIT parancsot. Majd később jutunk hozzá;
  • amikor parancsot ad ki, a mysql elküldi a kiszolgálónak az eredmények végrehajtására és megjelenítésére, majd egy másik mysql> promptra nyomtat, jelezve, hogy készen áll a következő parancs fogadására;
  • mysql megjeleníti a lekérdezés kimenetét táblázatként (sorok és oszlopok). Az első sor tartalmazza az oszlopok címkéit. A következő sorok adják meg a lekérdezés eredményeit. Az oszlopcímkék általában az oszlopnevek, amelyeket az adatbázis-táblák közül választ. Ha egy kifejezés értékét kapja, és nem az oszlop egy oszlopát, a mysql az oszlopot közvetlenül a kifejezéssel használja;
  • A mysql megmutatja, hány sorot visszaküldtek és mennyi ideig a kérés feldolgozásra került, ami általános adatokat szolgáltat a kiszolgáló teljesítményéről. Ezek az értékek pontatlanok, mert nem a gépidőt, sem a CPU időt, hanem a lekérdezés hatókörét jelzik. Ezek az adatok például a hálózati csatorna késedelmét járják el. A rövidség kedvéért a sorban szereplő sorsorok nem szerepelnek a jelen fejezet többi példájában, mivel most nem számít;
  • a SELECT kulcsszó az SQL nyelv egyik legfontosabb konstrukciója. Azt írja elő, hogy megtalálja azt, amit a kifejezés e szó után határoz meg.

Az SQL nyelvben található kulcsszavak bármelyik regiszterbe beírhatók. Az alábbi lekérdezések egyenértékűek:

mysql> SELECT VERSION (), CURRENT_DATE;
mysql> select version (), current_date;
mysql> SeLeCt vErSiOn (), current_DATE;

Javasoljuk, hogy az SQL kulcsszavakat BIG betűkkel írja be, és minden más lekérdezési elem kicsi. Tehát könnyebb lesz megérteni egy összetett lekérdezést, hogy elválassza a parancsokat a benne lévő adatoktól.

Van még egy kérés. Ez azt mutatja, hogy a mysql-t meglehetősen fejlett számológépként használhatod:

Az eddig bemutatott csapatok viszonylag rövidek voltak, egy tanítási sort. Még egy utasítást is megadhat. Mindegyiknek mindegyikét pontosvesszővel kell befejezni:

Azonban a csapatok is hosszúak. Az SQL nyelv csak a hosszú utasításainak ismerete. De a hosszú sorokat igénylő parancsok nem jelentenek problémát. A mysql kliens meghatározza az utasítás végét, pontosvesszőt keres, nem pedig a sor végét. Más szóval, a mysql elfogadja a szabad formátumú bemenetet: összegyűjti az input sorokat egybe, de nem hajtja végre őket, amíg nem látja a pontosvesszőt.

Van egy egyszerű utasítás hosszú sorral:

Ebben a példában vegye észre, hogy a tipp a mysql> -ről> -ra változik az első lekérdezési karakterlánc beírása után. Ez a mysql azt jelzi, hogy még nem látta a teljes utasítást (és ami a legfontosabb, a végpont pontosvesszője), és várakozik rá. A tipp a barátod, mert értékes visszajelzést ad. Ha ezt a visszajelzést használja, akkor mindig tudni fogja, hogy pontosan mit vár róluk a mysql ebben a pillanatban.

Ha úgy dönt, hogy nem kívánja végrehajtani a parancsot, de be van írva, akkor írja be a parancsot:

Itt is figyeljen a tippre. Visszacsatolt a mysql> bemenet után, visszacsatolással jelezve, hogy a mysql készen áll az új parancsra.

Az alábbi 2.1. Táblázat megmutatja az összes utalást, és általánosítja a jelentésüket:

2.1. Táblázat. Az ügyfélprogram kéréseinek jelentése:

Várakozás a következő sorra, hogy összegyűjts egy olyan sort, amely kettős idézettel kezdődik (")

Néha több utasításait baleset amikor kíván kiadni a parancsot, hogy egyetlen vonalon, de elfelejti a pontosvessző befejezéséhez. Ebben az esetben a mysql folytatja a bevitelt:

mysql> SELECT USER ()
>

Ha ez megtörténik (úgy gondolja, hogy belépett egy szolgáltatóba, de az egyetlen válasz egy csipetnyi ->), akkor valószínűleg a mysql pontvéget vár. Adja meg a pontosvesszőt az utasítás kitöltéséhez, és a mysql:

Tippek „> és”> jelenik meg, ha dolgozik egy karakterlánc idézőjelek közé. A MySQL, akkor írj egy sort a szimbólumok „vagy” (például „helló” vagy «viszlát»), és mysql lehetővé teszi, hogy adjon meg egy hosszú karakterláncot néhány rövid vonalak. Amikor megjelenik a prompt „> vagy”> ez azt jelenti, hogy a beírt karakterlánc, amely kezdődik idézőjel „vagy”, de még nem lépett be a második idézet, amely lezárja a húr. Jelentést és hibát is jelenthet:

mysql> SELECT * FROM my_table WHERE name = "A Smith AND életkora <30;
„>

Ha megadja ezt a SELECT utasítást. majd az Enter billentyű lenyomása nem ad vissza semmit. Ahelyett, hogy elgondolkodnánk arról, hogy miért tart ez a kérés, olvassa el a ">" promptot. Azt mondja, hogy a mysql elvárja, hogy megnézze a befejezetlen húr fennmaradó részét. Hiba történt az utasításokban? A vonal "Smith hiányolja a második idézetjelet.

Mit tegyek? A legegyszerűbb megoldás a parancs törlése. Ebben az esetben azonban nem írhatod be a törlést, mert a mysql a beviteli vonal részeként fog értelmezni! Ehelyett írja be a végleges idézet karaktert (úgy, hogy a mysql megérti, hogy befejezte a karakterláncot), és csak akkor:

mysql> SELECT * FROM my_table WHERE name = "A Smith AND életkora <30;
">"
mysql>

A hivatkozás visszaáll a mysql> -ra, jelezve, hogy a mysql készen áll az új parancsra.

Fontos tudni, hogy a jelentés arra utal,> és „>, mert ha véletlenül meg egy befejezetlen, olyan vonal, amely megadja a jövőben figyelmen kívül fogja hagyni a mysql, beleértve QUIT sor! Ez megzavarhatja a program, főleg, ha nem tudja, hogy az aktuális parancs törlése előtt meg kell adnia a befejezési idézetet.

Itt rendkívül figyelmesnek kell lenni. Az a tény, hogy a vonal lehet korlátozni idézetek kétfajta „És” csereszabatosak, de meg kell felelnie a párosítás Azaz, ha elkezdi a sort néhány idézetek célvonalat kell pontosan ugyanaz idézet ..