Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Comandos básicos de administração do banco de dados MySQL - Parte I


Banco de dados é um conjunto estruturado de dados armazenados eletronicamente. O conceito de banco de dados era conhecido por nossos ancestrais mesmo quando não havia computadores, porém criar e manter tal banco de dados era um trabalho muito tedioso. Em um banco de dados manual, digamos 100 páginas, se você precisar pesquisar todos os funcionários cujo salário era inferior a 10 mil , basta pensar o quão difícil teria sido, então.

No mundo de hoje, você simplesmente não pode escapar do Banco de dados . No momento, milhões de bancos de dados estão trabalhando em todo o mundo para armazenar e buscar dados de todos os tipos, sejam dados estratégicos, registros de funcionários ou tecnologias da web.

O banco de dados é frequentemente denominado como processo de back-end, pois não é visível para o usuário final nem para o Usuário final interage diretamente com o banco de dados. Eles funcionam no processo de front-end, a saber, PHP , VB , ASP.NET , etc. e peça ao front-end para lidar com o banco de dados no back-end.

Existem vários servidores de banco de dados e clientes disponíveis como Oracle , MySQL , MySQL , MariaDB, MongoDB etc. A sintaxe de todos eles é mais ou menos a mesma. Dominar um significa ganhar controle sobre a maioria deles e aprender as consultas de um banco de dados é muito fácil e divertido.

Vamos começar com consultas simples no banco de dados. Usaremos MySQL que vem junto com a maioria do Linux distribuições por padrão, você pode instalá-lo manualmente do repositório, se não estiver instalado por padrão no seu caso.

Bem, uma consulta de banco de dados é um simples pedaço de código que é enviado ao banco de dados para obter resultados personalizados e refinados, conforme necessário.

Instalar banco de dados MySQL


Use “sim ” ou “apto ” gerenciador de pacotes para instalar o MySQL Base de dados.
# yum install mysql mysql-client mysql-server  (on Yum based Systems)

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

Inicie o MySQL serviço de banco de dados como:
# service mysqld start
or
# service mysql start

Bem, instalando um MySQL banco de dados irá levá-lo para a configuração onde você será solicitado a configurar o admin senha, etc. Depois de instalar e iniciar o servidor, vá para o seu MySQL incitar.
# mysql -u root -p

Substituir raiz com seu nome de usuário configurado e digite senha quando solicitado, se a credencial de login estiver correta, você estará em seu MySQL alerta em um piscar de olhos.
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>

Agora, realizar consultas neste prompt é muito educativo e divertido.
Criar um banco de dados tecmint
mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Observação :Informa que a consulta estava correta, significa que o banco de dados foi criado. Você pode verificar seu banco de dados recém-criado como.
mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

Observação :Observe seu banco de dados na saída acima.
Selecionar banco de dados

Agora você precisa selecionar o banco de dados para trabalhar nele.
mysql> use tecmint;
Database changed
mysql>
Criar tabelas no MySQL

Aqui estaremos criando uma tabela dizendo “minttec ” com três campos como:
mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

Observação :A consulta acima diz OK o que significa que a tabela foi criada sem nenhum erro. Para verificar a tabela execute a consulta abaixo.
mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

As coisas estão indo bem até agora. Sim! Você pode visualizar as colunas que criou na tabela “minttec " como:
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>

Não era nada menos que uma mágica. De qualquer forma vou falar sobre os tipos de declaração e seu significado.
  1. Int é inteiro
  2. Varchar é char tendo comprimento variável conforme definido. O valor após Tipo é o comprimento do campo até o qual ele pode armazenar dados.

OK, agora precisamos adicionar uma coluna, digamos 'last_name ' depois da coluna '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

Agora, verifique-o em sua tabela.
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>
Adicionar coluna no MySQL

Agora vamos adicionar uma coluna à direita, digamos uma coluna 'país ‘ à direita de 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>

Verifique a consulta de inserção de coluna acima.
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>
Inserir valores no campo

Que tal inserir valores no campo?
mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email protected]' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

Que tal inserir mais de 1 valor de cada vez na tabela acima.
mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email protected]' , 'India' ), ('3' , 'user' , 'singh' , '[email protected]' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email protected]' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

Verifique a inserção acima.
mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    3 | user       | singh     | [email protected]      | Aus     | 
|    4 | tecmint    | [dot]com  | [email protected] | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>
Excluir valores no campo

Digamos que a terceira entrada na saída acima é inválida e precisamos excluir a terceira entrada.
mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Verifique a operação acima.
mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    4 | tecmint    | [dot]com  | [email protected] | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)
Atualizar valores no campo

O id (=4) precisa ser editado.
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>

Verifique a consulta acima.
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>

Observação :A consulta acima, conforme realizada, não é uma boa ideia. Ele mudará o id para '4 ' sempre que o primeiro nome for 'tecmint' . É sempre uma boa ideia usar mais de uma coluna com cláusula where para obter o mínimo de erro, como:
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>
Excluir coluna no MySQL

Vamos precisar descartar (excluir) uma coluna que achamos que não tem importância, digamos 'país ' aqui.
mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

Verifique a tabela.
mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>
Renomear tabela no MySQL

Você não acha que nosso nome de tabela “minttec ” não é muito relevante. Que tal alterá-lo para tecmint_table .
mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>
Listar todas as Tabelas

Veja todas as tabelas no banco de dados atual.
mysql> show tables; 

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

mysql>

A tabela foi renomeada. Agora faça um backup do MySQL acima banco de dados, em uma única linha de comando sem nenhuma ferramenta sofisticada. Execute o código abaixo no seu terminal e não no prompt do 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 uma boa ideia manter o Backup dos bancos de dados MySQL. Restaurando o MySQL com backup Data é novamente uma linha simples de código que você precisa executar no prompt do terminal e não no prompt do mysql.

Mas, espere primeiro vamos deletar o banco de dados para verificar se nossa restauração está perfeita.
Excluir um banco de dados
mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Verifique o banco de dados 'tecmint' em seu servidor de banco de dados.
mysql> show databases; 

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

7 rows in set (0.00 sec) 
mysql>

Excelente! O banco de dados está perdido, mas não precisamos nos preocupar, estamos tendo o backup.
Restaurar um banco de dados

Para restaurar o banco de dados perdido, execute o seguinte comando.
# mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

OOPS ! Um erro, ei, não criamos o banco de dados tecmint . Então vá para o prompt do mysql e crie um banco de dados ‘tecmint '.
mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

Agora é hora de executar o comando de restauração no prompt do shell (estritamente).
# mysql -u root -p tecmint < tecmint.sql 
Enter password:

Verifique seu banco de dados.
mysql> show databases; 

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

Verifique o conteúdo do banco de dados.
mysql> show tables from tecmint;

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

mysql>

Verifique o conteúdo de sua tabela restaurada.
mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

Este não é o fim definitivamente, abordaremos o conceito de chave primária , chave estrangeira , várias tabelas e executar consultas usando PHP simples script na próxima parte do artigo.

Não se esqueça de nos dizer , como você se sentiu ao ler o artigo. Seus comentários são muito apreciados. Mantenha-se Saudável e Ajustado , permaneça conectado à Tecmint .