Ricerca nel sito web

Comandi di amministrazione del database MySQL Basic - Parte I


Il database è un insieme strutturato di dati archiviati elettronicamente. Il concetto di database era noto ai nostri antenati anche quando non esistevano i computer, tuttavia creare e mantenere tale database era un lavoro molto noioso. In un database manuale diciamo di 100 pagine, se dovessi cercare tutti i dipendenti il cui stipendio fosse inferiore a 10k, pensa solo a quanto sarebbe stato difficile, allora .

Nel mondo di oggi non puoi proprio sfuggire al Database. In questo momento milioni di database stanno lavorando in tutto il mondo per archiviare e recuperare dati di ogni tipo, siano essi dati strategici, record dei dipendenti o tecnologie web.

Il database viene spesso definito processo back-end, poiché non è né visibile all'utente finale né l'utente finale interagisce direttamente con il database. Funzionano sul processo front-end, ad esempio PHP, VB, ASP.NET, ecc. e chiedono al front-end di gestire il database nel back-end.

Sono disponibili diversi server e client di database come Oracle, MySQL, MySQLi, MariaDB, MongoDB ecc. La sintassi di tutti questi è più o meno meno lo stesso. Padroneggiarne uno significa acquisire il controllo sulla maggior parte di essi e apprendere le query di un database è molto facile e divertente.

Iniziamo con semplici query sul database. Utilizzeremo MySQL che viene fornito in bundle con la maggior parte delle distribuzioni Linux per impostazione predefinita, potresti installarlo manualmente dal repository, se non è installato per impostazione predefinita nel tuo caso.

Bene, una query sul database è un semplice pezzo di codice che viene inviato al database per ottenere risultati personalizzati e raffinati, come richiesto.

Installa il database MySQL

Utilizza il gestore pacchetti "yum" o "apt" per installare il database MySQL.

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

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

Avvia il servizio database MySQL come:

service mysqld start
or
service mysql start

Bene, l'installazione di un database MySQL ti porterà alla configurazione in cui ti verrà chiesto di impostare la password amministratore, ecc. Una volta terminata l'installazione e l'avvio del server, vai al tuo MySQL richiesta.

mysql -u root -p

Sostituisci root con il tuo nome utente configurato e inserisci la password quando richiesto, se le credenziali di accesso sono corrette, sarai nel tuo MySQL< richiede in un batter d'occhio.

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>

Ora, effettuare domande a questo punto è molto istruttivo e divertente.

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

mysql>

Nota: segnala che la query era corretta, significa che il database è stato creato. Puoi verificare il database appena creato come.

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

Nota: nota il tuo database nell'output sopra.

Seleziona Banca dati

Ora devi selezionare il database su cui lavorare.

mysql> use tecmint;
Database changed
mysql>
Crea tabelle in MySQL

Qui creeremo una tabella, ad esempio "minttec", con tre campi come:

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

Nota: la query precedente dice OK, il che significa che la tabella è stata creata senza errori. Per verificare la tabella eseguire la query seguente.

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

1 row in set (0.00 sec) 

mysql>

Le cose stanno andando bene fino ad ora. Sì! Puoi visualizzare le colonne create nella tabella “minttec” come:

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>

Non era altro che una magia. Comunque ti parlerò delle tipologie di dichiarazione e del loro significato.

  1. Int è un numero intero
  2. Varchar è un carattere di lunghezza variabile come definito. Il valore dopo Type è la lunghezza del campo fino al quale può memorizzare i dati.

OK, ora dobbiamo aggiungere una colonna, ad esempio "cognome", dopo la colonna "nome".

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

Ora verificalo nella tua tabella.

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>
Aggiungi colonna in MySQL

Ora aggiungeremo una colonna a destra, ad esempio una colonna "paese" a destra di email.

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>

Verificare la query di inserimento della colonna precedente.

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>
Inserisci valori nel campo

Che ne dici di inserire valori nel campo?

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

mysql>

Che ne dici di inserire più di 1 valore alla volta nella tabella sopra.

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

Verificare l'inserimento sopra.

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>
Elimina valori nel campo

Diciamo che la terza voce nell'output precedente non è valida e dobbiamo eliminare la terza voce.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Verificare l'operazione di cui sopra.

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)
Aggiorna valori nel campo

L'ID (=4) deve essere modificato.

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>

Verifica la query precedente.

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>

Nota: la query precedente, così come eseguita, non è una buona idea. Cambierà l'ID in "4" ovunque il nome sia "tecmint". È sempre una buona idea utilizzare più di una colonna con clausola where per ottenere un errore minimo, come:

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>
Elimina colonna in MySQL

Se dovessimo eliminare (eliminare) una colonna che riteniamo non abbia alcuna importanza, pronunciare "paese" qui.

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

mysql>

Verificare la tabella.

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>
Rinominare la tabella in MySQL

Non pensi che il nome della nostra tabella “minttec” non sia molto rilevante. Che ne dici di cambiarlo in tecmint_table.

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

mysql>
Elenca tutte le tabelle

Vedi tutte le tabelle nel database corrente.

mysql> show tables; 

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

mysql>

La tabella è stata rinominata. Ora esegui un backup del database MySQL di cui sopra, in un'unica riga di comando senza alcuno strumento sofisticato. Esegui il codice seguente sul tuo terminale e non sul prompt di 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

È sempre una buona idea mantenere il backup dei database MySQL. Il ripristino dei dati MySQL di cui è stato eseguito il backup è ancora una volta una semplice riga di codice che è necessario eseguire al prompt del terminale e non al prompt di MySQL.

Ma aspetta prima, elimineremo il database per verificare se il nostro ripristino è perfetto.

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

Controlla la presenza del database "tecmint" sul tuo server database.

mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Grande! Il database è perso, ma non dobbiamo preoccuparci, stiamo avendo il backup.

Ripristinare un database

Per ripristinare il database perduto, eseguire il comando seguente.

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

Ops! Un errore, ehi, non abbiamo creato il database tecmint. Quindi vai al prompt di MySQL e crea un database "tecmint".

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

mysql>

Ora è il momento di eseguire il comando di ripristino al prompt della shell (rigorosamente).

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

Verifica il tuo database.

mysql> show databases; 

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

Verificare il contenuto del database.

mysql> show tables from tecmint;

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

mysql>

Verifica il contenuto della tabella ripristinata.

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)

Questa non è sicuramente la fine, tratteremo il concetto di chiave primaria, chiave esterna, tabelle multiple e query in esecuzione utilizzando un semplice script PHP nella parte successiva dell'articolo.

Non dimenticare di raccontarci come ti sei sentito durante la lettura dell'articolo. I tuoi commenti sono molto apprezzati. Rimani sano e sintonizzato, rimani connesso a Tecmint.