MySQL pagrindinės duomenų bazės administravimo komandos – I dalis


Duomenų bazė yra struktūrinis duomenų rinkinys, saugomas elektroniniu būdu. Duomenų bazės sąvoką mūsų protėviai žinojo dar tada, kai kompiuterių nebuvo, tačiau tokios duomenų bazės kūrimas ir priežiūra buvo labai varginantis darbas. Neautomatinėje duomenų bazėje pasakykite apie 100 puslapių, jei turite ieškoti visų darbuotojų, kurių atlyginimas buvo mažesnis nei 10 tūkst., pagalvokite, kaip tai būtų buvę sunku, tada .

Šiandieniniame pasaulyje tiesiog negalite pabėgti nuo duomenų bazės. Šiuo metu milijonai duomenų bazių dirba visame pasaulyje, kad saugotų ir gautų visų rūšių duomenis, nesvarbu, ar tai būtų strateginiai duomenys, darbuotojų įrašai ar žiniatinklio technologijos.

Duomenų bazė dažnai vadinama vidiniu procesu, nes jos nemato galutinis vartotojas ir galutinis vartotojas tiesiogiai sąveikauja su duomenų baze. Jie dirba su priekiniais procesais, ty PHP, VB, ASP.NET ir kt., ir prašo priekinės dalies tvarkyti duomenų bazę užpakalinėje dalyje.

Yra keletas duomenų bazių serverių ir klientų, pvz., Oracle, MySQL, MySQLi, MariaDB, MongoDB ir kt. Visų šių sintaksė yra daugiau arba mažiau tas pats. Įvaldyti vieną reiškia valdyti daugumą jų, o mokytis duomenų bazės užklausų yra labai lengva ir smagu.

Pradėkime nuo paprastų užklausų duomenų bazėje. Naudosime MySQL, kuris pagal numatytuosius nustatymus pateikiamas su dauguma Linux platinimų. Galite jį įdiegti rankiniu būdu iš saugyklos, jei jūsų atveju jis nėra įdiegtas pagal numatytuosius nustatymus.

Na, duomenų bazės užklausa yra paprastas kodo fragmentas, kuris siunčiamas į duomenų bazę, kad pagal poreikį būtų gautas pasirinktinis ir patobulintas rezultatas.

Įdiekite MySQL duomenų bazę

Norėdami įdiegti MySQL duomenų bazę, naudokite „yum“ arba „apt“ paketų tvarkyklę.

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

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

Paleiskite MySQL duomenų bazės paslaugą kaip:

service mysqld start
or
service mysql start

Įdiegę MySQL duomenų bazę pateksite į konfigūraciją, kurioje būsite paprašyti nustatyti administratoriaus slaptažodį ir pan. Baigę diegti ir paleidę serverį eikite į savo MySQL raginimą.

mysql -u root -p

Pakeiskite root savo sukonfigūruotu naudotojo vardu ir įveskite slaptažodį, kai būsite paraginti. Jei prisijungimo kredencialas yra teisingas, būsite savo MySQL< paraginti akimis mirktelėjus.

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>

Dabar užklausų vykdymas pagal šį raginimą yra labai lavinantis ir smagus.

Sukurkite duomenų bazę tecmint
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Pastaba: pranešama, kad užklausa buvo teisinga, vadinasi, sukurta duomenų bazė. Galite patikrinti savo naujai sukurtą duomenų bazę kaip.

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

Pastaba: aukščiau pateiktoje išvestyje atkreipkite dėmesį į savo duomenų bazę.

Pasirinkite Duomenų bazė

Dabar turite pasirinkti duomenų bazę, kad su ja dirbtumėte.

mysql> use tecmint;
Database changed
mysql>
Sukurkite lenteles „MySQL“.

Čia mes sukursime lentelę su „minttec“ su trimis laukais:

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

Pastaba: aukščiau pateikta užklausa sako Gerai, o tai reiškia, kad lentelė buvo sukurta be klaidų. Norėdami patikrinti lentelę, paleiskite toliau pateiktą užklausą.

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

1 row in set (0.00 sec) 

mysql>

Viskas vyksta gerai iki šiol. Taip! Lentelėje „minttec“ sukurtus stulpelius galite peržiūrėti kaip:

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>

Tai buvo ne kas kita, kaip magija. Bet kokiu atveju aš jums papasakosiu apie deklaracijų rūšis ir jų reikšmę.

  1. Int yra sveikasis skaičius
  2. Varchar yra kintamo ilgio simbolis, kaip apibrėžta. Reikšmė po tipo yra lauko, iki kurio galima saugoti duomenis, ilgis.

Gerai, dabar turime pridėti stulpelį „pavardė“ po stulpelio „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

Dabar patikrinkite tai savo lentelėje.

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>
Pridėti stulpelį „MySQL“.

Dabar pridėsime stulpelį dešinėje, tarkime, stulpelį „šalisel. pašto dešinėje.

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>

Patikrinkite aukščiau pateiktą stulpelio įterpimo užklausą.

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>
Į lauką įterpkite reikšmes

Ką daryti su verčių įterpimu į lauką?

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

mysql>

Kaip į anksčiau pateiktą lentelę vienu metu įterpti daugiau nei 1 reikšmę.

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

Patikrinkite aukščiau pateiktą įterpimą.

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>
Ištrinkite reikšmes lauke

Tarkime, kad trečiasis įrašas aukščiau pateiktoje išvestyje yra neteisingas ir turime ištrinti trečiąjį įrašą.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Patikrinkite aukščiau pateiktą operaciją.

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)
Atnaujinkite reikšmes lauke

ID (=4) reikia redaguoti.

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>

Patvirtinkite aukščiau pateiktą užklausą.

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>

Pastaba: anksčiau pateikta užklausa nėra gera idėja. Tai pakeis ID į „4“, kai vardas bus „tecmint“. Visada yra gera idėja naudoti daugiau nei vieną stulpelį su kur sąlyga, kad būtų padaryta minimali klaida, pavyzdžiui:

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>
Ištrinti stulpelį MySQL

Leiskite mums išmesti (ištrinti) stulpelį, kuris, mūsų manymu, nėra svarbus, pasakykite čia „šalis“.

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

mysql>

Patikrinkite lentelę.

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>
Pervardykite lentelę „MySQL“.

Ar nemanote, kad mūsų lentelės pavadinimas „minttec“ nėra labai aktualus. Kaip pakeisti jį į tecmint_table.

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

mysql>
Išvardykite visas lenteles

Peržiūrėkite visas lenteles pagal dabartinę duomenų bazę.

mysql> show tables; 

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

mysql>

Lentelė buvo pervadinta. Dabar sukurkite pirmiau nurodytos MySQL duomenų bazės atsarginę kopiją vienoje komandų eilutėje be jokio sudėtingo įrankio. Vykdykite toliau pateiktą kodą savo terminale, o ne mysql raginimu.

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

Visada yra gera idėja išlaikyti atsargines MySQL duomenų bazių kopijas. Atsarginės MySQL duomenų kopijos atkūrimas vėlgi yra paprasta kodo eilutė, kurią reikia paleisti terminalo raginimu, o ne mysql raginimu.

Bet pirmiausia palaukite, mes ištrinsime duomenų bazę, kad patikrintume, ar atkūrimas yra tobulas.

Ištrinkite duomenų bazę
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Patikrinkite, ar duomenų bazės serveryje nėra duomenų bazės „tecmint“.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Puiku! Duomenų bazė prarasta, bet mes neturime jaudintis, turime atsarginę kopiją.

Atkurti duomenų bazę

Norėdami atkurti prarastą duomenų bazę, paleiskite šią komandą.

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

Oi! Klaida, mes nesukūrėme duomenų bazės tecmint. Taigi eikite į mysql raginimą ir sukurkite duomenų bazę „tecmint“.

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

mysql>

Dabar laikas paleisti atkūrimo komandą jūsų apvalkalo eilutėje (griežtai).

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

Patikrinkite savo duomenų bazę.

mysql> show databases; 

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

Patikrinkite duomenų bazės turinį.

mysql> show tables from tecmint;

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

mysql>

Patikrinkite atkurtos lentelės turinį.

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)

Tai tikrai ne pabaiga, apžvelgsime pirminio rakto, svetimo rakto, kelių lentelių ir vykdomų užklausų sąvokas. naudodami paprastą PHP scenarijų kitoje straipsnio dalyje.

Nepamirškite papasakoti, kaip jautėtės skaitydami straipsnį. Jūsų komentarai yra labai vertinami. Likite Sveikas ir Sveikas, palaikykite ryšį su Tecmint.