Wyszukiwanie w witrynie

Podstawowe polecenia administracyjne MySQL – część I


Baza danych to uporządkowany zbiór danych przechowywanych elektronicznie. Pojęcie bazy danych było znane naszym przodkom nawet wtedy, gdy nie było komputerów, jednak tworzenie i utrzymywanie takiej bazy danych było bardzo żmudnym zajęciem. W ręcznej bazie danych, powiedzmy na 100 stronach, jeśli musisz wyszukać wszystkich pracowników, których pensja była mniejsza niż 10 tys., pomyśl tylko, jak bardzo byłoby to trudne, to .

W dzisiejszym świecie nie da się uciec przed bazą danych. Obecnie na całym świecie działają miliony baz danych, które przechowują i pobierają wszelkiego rodzaju dane, niezależnie od tego, czy są to dane strategiczne, dane pracowników czy technologie internetowe.

Baza danych jest często określana jako proces zaplecza, ponieważ nie jest widoczna dla użytkownika końcowego, a Użytkownik końcowy nie wchodzi w bezpośrednią interakcję z bazą danych. Pracują nad procesami front-endowymi, mianowicie PHP, VB, ASP.NET itp. i proszą frontend o zajęcie się bazą danych w zapleczu.

Dostępnych jest kilka serwerów i klientów baz danych, takich jak Oracle, MySQL, MySQLi, MariaDB, MongoDB itp. Składnia ich wszystkich jest mniej więcej mniej to samo. Opanowanie jednego oznacza przejęcie kontroli nad większością z nich, a nauka zapytań do bazy danych jest bardzo łatwa i przyjemna.

Zacznijmy od prostych zapytań do bazy danych. Będziemy używać MySQL, który jest domyślnie dostarczany w pakiecie z większością dystrybucji Linuksa. Możesz go zainstalować ręcznie z repozytorium, jeśli nie jest on zainstalowany domyślnie w Twoim przypadku.

Cóż, zapytanie do bazy danych to prosty fragment kodu wysyłany do bazy danych w celu uzyskania niestandardowego i dopracowanego wyniku, zgodnie z wymaganiami.

Zainstaluj bazę danych MySQL

Użyj menedżera pakietów „yum” lub „apt”, aby zainstalować bazę danych MySQL.

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

apt-get install mysql mysql-client mysql-server (on Apt based Systems)
Uruchom MySQL'a

Uruchom usługę bazy danych MySQL jako:

service mysqld start
or
service mysql start

Jeśli zainstalujesz bazę danych MySQL, przeniesiesz się do konfiguracji, w której zostaniesz poproszony o ustawienie hasła administratora itp. Po zakończeniu instalacji i uruchomieniu serwera przejdź do swojego MySQL monit.

mysql -u root -p

Zamień root na skonfigurowaną nazwę użytkownika i wprowadź hasło po wyświetleniu monitu. Jeśli dane logowania są prawidłowe, znajdziesz się w swoim MySQL< monit w mgnieniu oka.

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>

Wykonywanie zapytań w tym wierszu jest bardzo pouczające i przyjemne.

Utwórz bazę danych tecmint
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Uwaga: zgłasza, że zapytanie było poprawne, co oznacza, że baza danych została utworzona. Nowo utworzoną bazę danych możesz zweryfikować jako.

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

Uwaga: zwróć uwagę na swoją bazę danych w powyższych wynikach.

Wybierz opcję Baza danych

Teraz musisz wybrać bazę danych, aby nad nią pracować.

mysql> use tecmint;
Database changed
mysql>
Tworzenie tabel w MySQL

Tutaj utworzymy tabelę z napisem „minttec” z trzema polami:

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

Uwaga: powyższe zapytanie mówi OK, co oznacza, że tabela została utworzona bez żadnego błędu. Aby zweryfikować tabelę, uruchom poniższe zapytanie.

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

1 row in set (0.00 sec) 

mysql>

Wszystko idzie dobrze aż do teraz. Tak! Możesz wyświetlić kolumny, które utworzyłeś w tabeli „minttec” jako:

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>

To było nic innego jak magia. W każdym razie opowiem o rodzajach deklaracji i ich znaczeniu.

  1. Int to liczba całkowita
  2. Varchar to znak o zmiennej długości, zgodnie z definicją. Wartość po Type to długość pola, do którego może przechowywać dane.

OK, teraz musimy dodać kolumnę z napisem „nazwisko” po kolumnie „imię”.

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

Teraz sprawdź to w swojej tabeli.

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>
Dodaj kolumnę w MySQL

Teraz dodamy kolumnę po prawej stronie, powiedzmy kolumnę „kraj” po prawej stronie e-mail.

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>

Sprawdź powyższe zapytanie o wstawienie kolumny.

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>
Wstaw wartości w polu

A co z wstawianiem wartości do pola?

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

mysql>

A gdyby tak wstawić więcej niż 1 wartość naraz do powyższej tabeli?

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

Sprawdź powyższy wpis.

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>
Usuń wartości w polu

Załóżmy, że trzeci wpis w powyższych wynikach jest nieprawidłowy i musimy go usunąć.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Sprawdź powyższą operację.

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)
Zaktualizuj wartości w polu

Identyfikator (=4) wymaga edycji.

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>

Zweryfikuj powyższe zapytanie.

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>

Uwaga: powyższe zapytanie w jego wykonaniu nie jest dobrym pomysłem. Zmieni identyfikator na „4”, gdziekolwiek imię brzmi „tecmint”. Zawsze dobrym pomysłem jest użycie więcej niż jednej kolumny z klauzulą Where, aby uzyskać minimalny błąd, ponieważ:

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>
Usuń kolumnę w MySQL

Musimy usunąć (usunąć) kolumnę, która naszym zdaniem nie ma znaczenia, powiedzmy „kraj”.

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

mysql>

Sprawdź tabelę.

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>
Zmień nazwę tabeli w MySQL

Czy nie sądzisz, że nazwa naszej tabeli „minttec” nie jest zbyt istotna. A może zmienisz go na tecmint_table.

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

mysql>
Lista wszystkich tabel

Zobacz wszystkie tabele w bieżącej bazie danych.

mysql> show tables; 

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

mysql>

Nazwa tabeli została zmieniona. Teraz wykonaj kopię zapasową powyższej bazy danych MySQL za pomocą jednego wiersza poleceń, bez żadnego zaawansowanego narzędzia. Uruchom poniższy kod na swoim terminalu, a nie w wierszu poleceń mysql.

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

Zawsze dobrze jest utrzymywać kopię zapasową baz danych MySQL. Przywracanie danych MySQL z kopii zapasowej to znowu prosty wiersz kodu, który należy uruchomić w wierszu terminala, a nie w wierszu polecenia mysql.

Ale najpierw poczekaj, usuniemy bazę danych, aby sprawdzić, czy nasze przywracanie jest idealne.

Usuń bazę danych
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Sprawdź bazę danych „tecmint” na serwerze bazy danych.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Świetnie! Baza danych została utracona, ale nie musimy się martwić, mamy kopię zapasową.

Przywróć bazę danych

Aby przywrócić utraconą bazę danych, uruchom następujące polecenie.

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

UPS! Wystąpił błąd, hej, nie utworzyliśmy bazy danych tecmint. Przejdź więc do zachęty mysql i utwórz bazę danych „tecmint”.

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

mysql>

Teraz czas na uruchomienie polecenia przywracania w wierszu poleceń powłoki (ściśle).

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

Zweryfikuj swoją bazę danych.

mysql> show databases; 

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

Sprawdź zawartość bazy danych.

mysql> show tables from tecmint;

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

mysql>

Sprawdź zawartość przywróconej tabeli.

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)

To na pewno nie koniec, omówimy pojęcie klucza podstawowego, klucza obcego, wielu tabel i uruchamiania zapytań za pomocą prostego skryptu PHP w dalszej części artykułu.

Nie zapomnij powiedzieć nam, jak się czułeś, przeglądając ten artykuł. Twoje komentarze są bardzo cenne. Zachowaj zdrowie i na bieżąco, pozostań w kontakcie z Tecmint.