Weboldal keresés

MySQL Basic Database Administration Commands – I. rész


Az Adatbázis elektronikusan tárolt adatok strukturált halmaza. Az adatbázis fogalmát már akkor is ismerték őseink, amikor még számítógép nem volt, azonban az adatbázis létrehozása és karbantartása igen fárasztó munka volt. Egy kézi adatbázisban, mondjuk 100 oldalról, ha meg kell keresnie az összes alkalmazottat, akinek a fizetése kevesebb volt, mint 10 ezer, gondolja csak bele, milyen nehéz lett volna, akkor .

A mai világban egyszerűen nem menekülhet az Adatbázis elől. Jelenleg adatbázisok milliói dolgoznak szerte a világon mindenféle adat tárolására és lekérésére, legyen az stratégiai adat, alkalmazotti nyilvántartás vagy webes technológia.

Az adatbázist gyakran háttérfolyamatnak nevezik, mivel sem a végfelhasználó számára nem látható, sem a Végfelhasználó nem lép kapcsolatba közvetlenül az adatbázissal. A front-end folyamatokon dolgoznak, pl.: PHP, VB, ASP.NET stb., és megkérik a kezelőfelületet, hogy kezelje az adatbázist a háttérben.

Számos adatbázis-szerver és kliens áll rendelkezésre, mint például az Oracle, MySQL, MySQLi, MariaDB, MongoDB stb. Ezek mindegyikének szintaxisa több ill. kevésbé ugyanaz. Az egyik elsajátítása azt jelenti, hogy átveheti az irányítást a legtöbb felett, és egy adatbázis lekérdezésének megtanulása nagyon egyszerű és szórakoztató.

Kezdjük egyszerű lekérdezésekkel az adatbázisban. A MySQL-t fogjuk használni, amely alapértelmezés szerint a legtöbb Linux disztribúcióhoz tartozik, és manuálisan is telepítheti a tárolóból, ha az Ön esetében alapértelmezés szerint nincs telepítve.

Nos, az adatbázis-lekérdezés egy egyszerű kódrészlet, amelyet az adatbázisba küldenek, hogy igény szerint egyedi és finomított eredményeket kapjanak.

Telepítse a MySQL adatbázist

Használja a „yum” vagy az „apt” csomagkezelőt a MySQL Database telepítéséhez.

yum install mysql mysql-client mysql-server  (on Yum based Systems)

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Indítsa el a MySQL-t

Indítsa el a MySQL adatbázis-szolgáltatást a következőképpen:

service mysqld start
or
service mysql start

MySQL adatbázis telepítése a konfigurációhoz vezet, ahol meg kell adnia az adminisztrátori jelszót stb. A telepítés és a szerver elindítása után lépjen a MySQL-be. parancsot.

mysql -u root -p

Cserélje ki a root elemet a beállított felhasználónevére, és írja be a password-t, amikor a rendszer kéri. Ha a bejelentkezési adatok helyesek, akkor a MySQL-ben<. kéri a szempillantására.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. 
Other names may be trademarks of their respective owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Most nagyon tanulságos és szórakoztató a lekérdezések ezen a felszólításnál.

Hozzon létre egy tecmint adatbázist
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Megjegyzés: Azt jelenti, hogy a lekérdezés helyes volt, ami azt jelenti, hogy létrejött az adatbázis. Az újonnan létrehozott adatbázist a következőképpen ellenőrizheti.

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

Megjegyzés: Figyelje meg adatbázisát a fenti kimenetben.

Válassza az Adatbázis lehetőséget

Most ki kell választania az adatbázist, hogy dolgozzon rajta.

mysql> use tecmint;
Database changed
mysql>
Hozzon létre táblákat a MySQL-ben

Itt létrehozunk egy „minttec” táblázatot, három mezővel:

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

Megjegyzés: A fenti lekérdezés szerint az OK, ami azt jelenti, hogy a táblázat hiba nélkül jött létre. A táblázat ellenőrzéséhez futtassa az alábbi lekérdezést.

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

Eddig jól mennek a dolgok. Aha! A „minttec” táblázatban létrehozott oszlopokat a következőképpen tekintheti meg:

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

Nem volt kevesebb, mint varázslat. Mindenesetre elmondom a nyilatkozatok típusait és jelentésüket.

  1. Az Int egész szám
  2. A Varchar változó hosszúságú karakter. A Type utáni érték annak a mezőnek a hossza, ameddig adatokat tárolhat.

OK, a „first_name” oszlop után fel kell adnunk egy „last_name” oszlopot.

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

Most ellenőrizze a táblázatban.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>
Oszlop hozzáadása a MySQL-ben

Most hozzáadunk egy oszlopot a jobb oldalra, mondjuk az „ország” oszlopot az e-mail jobb oldalán.

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

Ellenőrizze a fenti oszlopbeillesztési lekérdezést.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>
Írja be az értékeket a mezőbe

Mi a helyzet az értékek beszúrásával a mezőbe?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

Mit szólnál, ha egyszerre több mint 1 értéket szúrnál be a fenti táblázatba.

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

Ellenőrizze a fenti beillesztést.

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
Értékek törlése a mezőben

Tegyük fel, hogy a fenti kimenet harmadik bejegyzése érvénytelen, és törölnünk kell a harmadik bejegyzést.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Ellenőrizze a fenti műveletet.

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
Értékek frissítése a mezőben

Az azonosítót (=4) szerkeszteni kell.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Ellenőrizze a fenti lekérdezést.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Megjegyzés: A fenti lekérdezés végrehajtása szerint nem jó ötlet. Az azonosítót „4”-re módosítja, ha a keresztnév „tecmint”. Mindig jó ötlet egynél több oszlopot használni a where záradékkal a minimális hiba érdekében, például:

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>
Törölje az oszlopot a MySQL-ben

El kell ejtenünk (törölnünk) egy olyan oszlopot, amelyről úgy gondoljuk, hogy nincs jelentősége, mondjuk ide: „ország”.

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

Ellenőrizze a táblázatot.

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
A tábla átnevezése a MySQL-ben

Nem gondolja, hogy táblázatunk neve „minttec” nem túl releváns? Mit szólnál, ha módosítanád a tecmint_table-ra.

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
Sorolja fel az összes táblázatot

Tekintse meg az összes táblát az aktuális adatbázis alatt.

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

A táblázatot átnevezték. Most készítsen biztonsági másolatot a fenti MySQL adatbázisról egyetlen parancssorban, minden kifinomult eszköz nélkül. Futtassa az alábbi kódot a terminálján, és ne a mysql prompton.

mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

Mindig célszerű biztonsági másolatot készíteni a MySQL adatbázisokról. Az elmentett MySQL adatok visszaállítása ismét egy egyszerű kódsor, amelyet a terminál promptján kell futtatni, nem pedig a mysql promptnál.

De várjon, először töröljük az adatbázist, hogy ellenőrizzük, hogy a visszaállításunk tökéletes-e.

Adatbázis törlése
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Ellenőrizze a „tecmint” adatbázist az adatbázis-kiszolgálón.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

Nagy! Az adatbázis elveszett, de nem kell aggódnunk, megvan a biztonsági mentés.

Adatbázis visszaállítása

Az elveszett adatbázis visszaállításához futtassa a következő parancsot.

mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

HOPPÁ! Hiba, nem hoztuk létre a tecmint adatbázist. Tehát lépjen a mysql parancssorba, és hozzon létre egy adatbázist „tecmint”.

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

Itt az ideje, hogy futtasd a visszaállítás parancsot a shell promptján (szigorúan).

mysql -u root -p tecmint < tecmint.sql 
Enter password:

Ellenőrizze az adatbázist.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

Ellenőrizze az adatbázis tartalmát.

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

Ellenőrizze a visszaállított táblázat tartalmát.

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

Ezzel még nem értünk véget, kitérünk az elsődleges kulcs, az idegen kulcs, a több tábla és a futó lekérdezések fogalmára. egyszerű PHP szkriptet használva a cikk következő részében.

Ne felejtsd el mondani nekünk, mit éreztél a cikk elolvasása közben. Észrevételeit nagyra értékeljük. Maradjon egészséges és hangolt, maradjon kapcsolatban a Tecmint szolgáltatással.