MySQL-tietokannan perushallintakomennot - Osa I


Tietokanta on jäsennelty joukko tietoja, jotka tallennetaan sähköisesti. Tietokannan käsite tunsi esi-isämme myös silloin, kun tietokoneita ei ollut, mutta tietokannan luominen ja ylläpito oli erittäin työlästä työtä. Manuaalisessa tietokannassa sanotaan 100 sivua, jos sinun täytyy etsiä kaikki työntekijät, joiden palkka oli alle 10 000, ajattele kuinka vaikeaa se olisi ollut, .

Nykymaailmassa et vain voi paeta tietokantaa. Tällä hetkellä miljoonat tietokannat työskentelevät ympäri maailmaa kaikenlaisten tietojen tallentamiseksi ja hakemiseksi, olipa kyse sitten strategisista tiedoista, työntekijärekisteristä tai verkkotekniikoista.

Tietokantaa kutsutaan usein taustaprosessiksi, koska se ei ole loppukäyttäjän nähtävissä eikä Loppukäyttäjä ole suoraan vuorovaikutuksessa tietokannan kanssa. He työskentelevät käyttöliittymäprosesseissa, kuten PHP, VB, ASP.NET jne. ja pyytävät käyttöliittymää käsittelemään tietokantaa takapäässä.

Saatavilla on useita tietokantapalvelimia ja -asiakkaita, kuten Oracle, MySQL, MySQLi, MariaDB, MongoDB jne. Näiden kaikkien syntaksi on enemmän tai vähemmän sama. Yhden hallitseminen tarkoittaa useimpien niistä hallitsemista, ja tietokannan kyselyiden oppiminen on erittäin helppoa ja hauskaa.

Aloitetaan yksinkertaisilla tietokannan kyselyillä. Käytämme MySQL:ä, joka tulee oletuksena useimpien Linux-jakelujen mukana. Voit asentaa sen manuaalisesti arkistosta, jos sitä ei ole asennettu oletuksena sinun tapauksessasi.

Tietokantakysely on yksinkertainen koodinpätkä, joka lähetetään tietokantaan saadakseen mukautetun ja tarkennetun tuloksen tarpeen mukaan.

Asenna MySQL-tietokanta

Käytä yum- tai apt-pakettienhallintaa MySQL-tietokannan asentamiseen.

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

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Käynnistä MySQL

Käynnistä MySQL-tietokantapalvelu nimellä:

service mysqld start
or
service mysql start

MySQL-tietokannan asentaminen vie sinut kokoonpanoon, jossa sinua pyydetään määrittämään järjestelmänvalvojan salasana jne. Kun olet asentanut ja käynnistänyt palvelimen, siirry MySQL-tiliisi. kehote.

mysql -u root -p

Korvaa root määritetyllä käyttäjänimelläsi ja kirjoita pyydettäessä salasana. Jos kirjautumistiedot ovat oikein, olet MySQL-tilassa< kehottaa sinua silmänräpäyksessä.

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>

Nyt kyselyiden tekeminen tällä kehotuksella on erittäin opettavaista ja hauskaa.

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

mysql>

Huomaa: se ilmoittaa, että kysely oli oikein, mikä tarkoittaa, että tietokanta on luotu. Voit vahvistaa juuri luomasi tietokanta nimellä.

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

Huomaa: Huomaa tietokantasi yllä olevassa tulosteessa.

Valitse Tietokanta

Nyt sinun on valittava tietokanta käsitelläksesi sitä.

mysql> use tecmint;
Database changed
mysql>
Luo taulukoita MySQL:ssä

Tässä luomme taulukon, jossa lukee "minttec", jossa on kolme kenttää:

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

Huomaa: Yllä oleva kysely sanoo OK, mikä tarkoittaa, että taulukko luotiin ilman virheitä. Tarkista taulukko suorittamalla alla oleva kysely.

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

1 row in set (0.00 sec) 

mysql>

Asiat menevät hyvin tähän asti. Jep! Voit tarkastella minttec-taulukossa luomiasi sarakkeita seuraavasti:

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>

Se ei ollut vähempää kuin taikuutta. Joka tapauksessa kerron sinulle ilmoitustyypeistä ja niiden merkityksestä.

  1. Int on kokonaisluku
  2. Varchar on merkki, jonka pituus vaihtelee määritellyn mukaisesti. Tyypin jälkeen oleva arvo on sen kentän pituus, johon asti se voi tallentaa tietoja.

OK nyt meidän on lisättävä sarake "sukunimi" sarakkeen "first_name" perään.

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

Tarkista se nyt taulukostasi.

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>
Lisää sarake MySQL:ään

Nyt lisäämme sarakkeen oikealle, sano sarake "maa" sähköpostin oikealle puolelle.

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>

Tarkista yllä oleva sarakkeen lisäyskysely.

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>
Lisää arvot kenttään

Entä arvojen lisääminen kenttään?

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

mysql>

Mitä jos lisäisit yli 1 arvon kerrallaan yllä olevaan taulukkoon.

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

Tarkista yllä oleva lisäys.

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>
Poista arvot kentästä

Oletetaan, että yllä olevan lähdön kolmas merkintä on virheellinen ja meidän on poistettava kolmas merkintä.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Tarkista yllä oleva toimenpide.

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)
Päivitä arvot kentässä

Tunnus (=4) on muokattava.

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>

Vahvista yllä oleva kysely.

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>

Huomaa: yllä oleva kysely ei sellaisenaan ole hyvä idea. Se muuttaa tunnukseksi 4, jos etunimi on tecmint. On aina hyvä idea käyttää useampaa kuin yhtä saraketta jossa-lausekkeella minimaalisen virheen saamiseksi, kuten:

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>
Poista sarake MySQL:stä

Meidän on pudotettava (poistettava) sarake, jolla ei ole mielestämme merkitystä, sano "maa".

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

mysql>

Tarkista taulukko.

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>
Nimeä taulukko uudelleen MySQL:ssä

Etkö usko, että taulukomme nimi "minttec" ei ole kovin relevantti. Mitä jos muuttaisit sen muotoon tecmint_table.

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

mysql>
Listaa kaikki taulukot

Katso kaikki nykyisen tietokannan taulukot.

mysql> show tables; 

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

mysql>

Taulukko on nimetty uudelleen. Ota nyt varmuuskopio yllä olevasta MySQL-tietokannasta yhdellä komentorivillä ilman kehittyneitä työkaluja. Suorita alla oleva koodi päätteessäsi, älä mysql-kehotteessa.

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

MySQL-tietokantojen varmuuskopiointi on aina hyvä idea. Varmuuskopioitujen MySQL-tietojen palauttaminen on jälleen yksinkertainen koodirivi, joka sinun on suoritettava päätekehotteessasi, ei mysql-kehotteessa.

Mutta odota ensin, poistamme tietokannan varmistaaksemme, onko palautuksemme täydellinen.

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

Tarkista tietokanta "tecmint" tietokantapalvelimeltasi.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Loistava! Tietokanta on kadonnut, mutta meidän ei tarvitse huolehtia, meillä on varmuuskopio.

Palauta tietokanta

Palauta kadonnut tietokanta suorittamalla seuraava komento.

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

HUPS! Virhe, hei, emme ole luoneet tietokantaa tecmint. Joten mene mysql-kehotteeseen ja luo tietokanta "tecmint".

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

mysql>

Nyt on aika suorittaa palautuskomento shell-kehotteessa (tiukasti).

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

Tarkista tietokantasi.

mysql> show databases; 

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

Tarkista tietokannan sisältö.

mysql> show tables from tecmint;

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

mysql>

Tarkista palautetun taulukon sisältö.

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)

Tämä ei todellakaan ole loppu, vaan käsittelemme käsitteitä ensisijainen avain, vieraan avaimen, useita taulukoita ja käytettäviä kyselyitä. käyttämällä yksinkertaista PHP-skriptiä artikkelin seuraavassa osassa.

Älä unohda kertoa meille, miltä sinusta tuntui, kun kävit artikkelin läpi. Kommenttejasi arvostetaan suuresti. Pysy terveenä ja viritettynä, pysy yhteydessä Tecmintiin.