MySQL datu bāzes administrēšanas pamata komandas - I daļa


Datu bāze ir strukturēts datu kopums, kas tiek glabāts elektroniski. Datu bāzes jēdziens mūsu senčiem bija zināms pat tad, kad nebija datoru, tomēr šādas datu bāzes izveide un uzturēšana bija ļoti garlaicīgs darbs. Manuālajā datu bāzē, piemēram, par 100 lappusēm, ja jums ir jāmeklē visi darbinieki, kuru alga bija mazāka par 10 000, vienkārši padomājiet, cik grūti tas būtu bijis.

Mūsdienu pasaulē jūs vienkārši nevarat izvairīties no datu bāzes. Šobrīd miljoniem datu bāzu strādā visā pasaulē, lai glabātu un iegūtu visu veidu datus, vai tie būtu stratēģiskie dati, darbinieku ieraksti vai tīmekļa tehnoloģijas.

Datu bāzi bieži sauc par aizmugures procesu, jo tas nav redzams ne galalietotājam, ne galalietotājs tieši mijiedarbojas ar datu bāzi. Viņi strādā pie priekšējā procesa procesa, ti, PHP, VB, ASP.NET utt., Un lūdz priekšējam galam tikt galā ar datu bāzi aizmugurē.

Ir pieejami vairāki datu bāzes serveri un klienti, piemēram, Oracle, MySQL, MySQLi, MongoDB utt. Visu to sintakse ir aptuveni vienāda. Apgūt vienu nozīmē iegūt kontroli pār lielāko daļu no tiem un uzzināt datu bāzes vaicājumus ir ļoti viegli un jautri.

Sāksim ar vienkāršiem vaicājumiem datu bāzē. Mēs pēc noklusējuma izmantosim MySQL, kas pēc noklusējuma ir komplektā ar lielāko daļu Linux izplatījumu. Jūs to varētu instalēt manuāli no repozitorija, ja tas jūsu gadījumā nav instalēts pēc noklusējuma.

Nu, datu bāzes vaicājums ir vienkāršs koda gabals, kas tiek nosūtīts uz datu bāzi, lai pēc vajadzības iegūtu pielāgotu un izsmalcinātu rezultātu.

Instalējiet MySQL datu bāzi

Izmantojiet pakotņu pārvaldnieku “yum” vai “apt”, lai instalētu MySQL datu bāzi.

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

# apt-get install mysql mysql-client mysql-server (on Apt based Systems)

Startējiet MySQL datu bāzes pakalpojumu kā:

# service mysqld start
or
# service mysql start

Veicot MySQL datu bāzes instalēšanu, jūs nokļūsit konfigurācijā, kurā jums tiks lūgts iestatīt administratora paroli utt. Kad servera instalēšana un palaišana ir pabeigta, dodieties uz MySQL uzvedni.

# mysql -u root -p

Nomainiet sakni ar konfigurēto lietotājvārdu un, kad tiek prasīts, ievadiet paroli. Ja pieteikšanās akreditācijas dati ir pareizi, acu mirgot būs jūsu MySQL uzvedne.

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>

Tagad vaicājumu izpildīšana šajā uzvednē ir ļoti izglītojoša un jautra.

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

mysql>

Piezīme. Tas ziņo, ka vaicājums bija pareizs, tas nozīmē, ka ir izveidota datu bāze. Jūs varat pārbaudīt savu jaunizveidoto datu bāzi kā.

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

Piezīme: Ievērojiet savu datu bāzi iepriekš minētajā izvadē.

Tagad jums jāizvēlas datu bāze, lai ar to strādātu.

mysql> use tecmint;
Database changed
mysql>

Šeit mēs izveidosim tabulu, kurā teikts “minttec” ar trim laukiem:

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

Piezīme. Iepriekš minētajā vaicājumā teikts OK, kas nozīmē, ka tabula tika izveidota bez kļūdām. Lai pārbaudītu tabulu, izpildiet zemāk esošo vaicājumu.

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

1 row in set (0.00 sec) 

mysql>

Līdz šim viss norit labi. Jā! Tabulā “minttec” izveidotās kolonnas varat apskatīt kā:

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>

Tas nebija nekas cits kā maģija. Jebkurā gadījumā es jums pastāstīšu par deklarēšanas veidiem un to nozīmi.

  1. Int ir vesels skaitlis
  2. Varchar ir char ar mainīgu garumu, kā noteikts. Vērtība pēc Type ir lauka garums, līdz kuram tā var saglabāt datus.

Labi, tagad mums jāpievieno kolonna, kurā teikts ‘last_name’ pēc slejas ‘first_name’.

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

Tagad pārbaudiet to savā tabulā.

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>

Tagad labajā pusē pievienosim kolonnu, teiksim kolonnu ‘valsts’ pa labi no e-pasta.

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>

Pārbaudiet iepriekš norādīto slejas ievietošanas vaicājumu.

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>

Kā ir ar vērtību ievietošanu laukā?

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

mysql>

Kā būtu, ja iepriekš tabulā vienlaikus ievietotu vairāk nekā 1 vērtību.

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

Pārbaudiet iepriekš minēto ievietošanu.

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>

Pieņemsim, ka trešais ieraksts iepriekšminētajā izvadā nav derīgs, un mums ir jāizdzēš trešais ieraksts.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Pārbaudiet iepriekš minēto darbību.

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)

Id (= 4) ir jārediģē.

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>

Pārbaudiet iepriekš minēto vaicājumu.

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>

Piezīme. Iepriekš veiktais vaicājums nav piemērots. Tas mainīs ID uz “4”, ja vienmēr vārds ir “tecmint”. Lai iegūtu minimālu kļūdu, vienmēr ir ieteicams izmantot vairāk nekā vienu kolonnu ar kur klauzulu:

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>

Ļaujiet mums nomest (izdzēst) kolonnu, kas, mūsuprāt, nav svarīga, te sakot “valsts”.

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

mysql>

Pārbaudiet tabulu.

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>

Vai jūs nedomājat, ka mūsu galda nosaukums “minttec” nav īpaši svarīgs. Kā būtu, ja mainītu to uz tecmint_table.

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

mysql>

Skatīt visas pašreizējās datu bāzes tabulas.

mysql> show tables; 

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

mysql>

Tabula ir pārdēvēta. Tagad paņemiet iepriekš minētās MySQL datu bāzes dublējumu vienā komandrindā bez sarežģīta rīka. Palaidiet zemāk esošo kodu savā terminālā, nevis mysql uzvednē.

# 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

Vienmēr ir ieteicams uzturēt MySQL datu bāzu dublēšanu. Dublēto MySQL datu atjaunošana atkal ir vienkārša koda rindiņa, kas jums jāpalaiž termināla uzvednē, nevis MySQL uzvednē.

Bet, pagaidiet, pirms mēs izdzēsīsim datu bāzi, lai pārbaudītu, vai atjaunošana ir perfekta.

mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Pārbaudiet, vai datu bāzes serverī nav datu bāzes ‘tecmint’.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Lieliski! Datu bāze ir zaudēta, taču mums nav jāuztraucas, mums ir dublējums.

Lai atjaunotu zaudēto datu bāzi, palaidiet šādu komandu.

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

OOPS! Kļūda, hei, mēs neesam izveidojuši datu bāzes tecmint. Tāpēc dodieties uz savu mysql uzvedni un izveidojiet datu bāzi ‘tecmint’.

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

mysql>

Tagad laiks izpildīt atjaunošanas komandu jūsu čaulas uzvednē (stingri).

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

Pārbaudiet savu datu bāzi.

mysql> show databases; 

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

Pārbaudiet datu bāzes saturu.

mysql> show tables from tecmint;

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

mysql>

Pārbaudiet atjaunotās tabulas saturu.

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)

Tas noteikti nav beigas, raksta nākamajā daļā mēs apskatīsim primārās atslēgas, ārējās atslēgas, vairāku tabulu un vaicājumu izpildes jēdzienu, izmantojot vienkāršu PHP skriptu.

Neaizmirstiet pastāstīt mums, kā jūs jutāties, iepazīstoties ar rakstu. Jūsu komentāri tiek augstu novērtēti. Esiet vesels un noskaņots, palieciet savienots ar Tecmint.