Introdução ao MySQL
No fórum do Viva o Linux tenho percebido diversas perguntas sobre o MySQL, dúvidas sobre conexão, direitos de usuários, dentre outros detalhes básicos. Se você não conhece nada ou quase nada sobre o MySQL, chegou a hora de aprender um pouco mais sobre ele!
Parte 3: Criando tabela e inserindo, atualizando e excluindo dados
Particularmente eu considero a linha de comando do MySQL um pouco chatinha, prefiro uma interface gráfica. Pesquisando encontrei algumas, mas a que mais me agradou foi o MySQL Query Browser, que pode ser baixado no site do MySQL.
Já que criamos nossa base e compreendemos um pouco mais sobre o MySQL, vamos criar algumas tabelas:
Carregue a base:
mysql> USE minha_base;
Vamos criar uma tabela com os campos NOME, EMAIL, DATA:
mysql> create table tabela1 (nome VARCHAR(20), email VARCHAR(20), data DATE);
Vejamos se a mesma foi criada:
mysql> SHOW TABLES;
mysql> DESC tabela1;
mysql> INSERT INTO tabela1 VALUES ('Marcos Miras' , 'marcosmiras@atmsystem.com.br' , '2008-09-19');
mysql> SELECT * FROM tabela1;
mysql> UPDATE tabela1 SET email='marcos@atmsystem.com';
mysql> SELECT * FROM tabela1;
mysql> DELETE FROM tabela1;
mysql> SELECT * FROM tabela1;
Empty set (0.00 sec)
Porém, percebe-se que o comando insert atualiza o campo determinado de todos os registros da tabela e o comando "delete" exclui todos os dados da tabela, para resolver esse problema conheceremos a cláusula "where". Para testar vamos fazer várias inserções na tabela:
mysql> INSERT INTO tabela1 VALUES ('Joao Silva' , 'joao@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Jose Pereira' , 'ze@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Maria' , 'maria@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Pedro' , 'pedro@dominio' , '2008-09-19');
mysql> SELECT * FROM tabela1;
mysql> SELECT * FROM tabela1 WHERE nome="Pedro";
mysql> UPDATE tabela1 SET email='pd@dominio2' where nome="Pedro";
mysql> UPDATE tabela1 SET nome='Maria Souza' where nome='Maria';
mysql> DELETE FROM tabela1 where nome='Joao Silva';
Verifique suas alterações com o "select".
O "delete" exclui os dados da tabela, agora se você deseja excluir a tabela você pode usar o "drop", assim como na exclusão do base (vista na página anterior).
mysql> DROP TABLE tabela1;
Já que criamos nossa base e compreendemos um pouco mais sobre o MySQL, vamos criar algumas tabelas:
Carregue a base:
mysql> USE minha_base;
Vamos criar uma tabela com os campos NOME, EMAIL, DATA:
mysql> create table tabela1 (nome VARCHAR(20), email VARCHAR(20), data DATE);
Vejamos se a mesma foi criada:
mysql> SHOW TABLES;
+-------------------------------+ | Tables_in_minha_base | +-------------------------------+ | tabela1 | +-------------------------------+E vejamos os campos que ela possui:
mysql> DESC tabela1;
+-------+----------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------+------+-----+---------+-------+ | nome | varchar(20) | YES | | NULL | | | email | varchar(20) | YES | | NULL | | | data | date | YES | | NULL | | +-------+----------------+------+-----+---------+-------+E vamos inserir dados nessa tabela:
mysql> INSERT INTO tabela1 VALUES ('Marcos Miras' , 'marcosmiras@atmsystem.com.br' , '2008-09-19');
mysql> SELECT * FROM tabela1;
+-----------------+-------------------------------------+---------------+ | nome | email | data | +-----------------+-------------------------------------+----------------+ | Marcos Miras | marcosmiras@atmsyste | 2008-09-19 | +-----------------+-------------------------------------+----------------+Vamos atualizar esse valor do campo "email":
mysql> UPDATE tabela1 SET email='marcos@atmsystem.com';
mysql> SELECT * FROM tabela1;
+-----------------+------------------------------------+----------------+ | nome | email | data | +-----------------+------------------------------------+----------------+ | Marcos Miras | marcos@atmsystem.com | 2008-09-19 | +-----------------+------------------------------------+----------------+Excluindo a entrada de registro:
mysql> DELETE FROM tabela1;
mysql> SELECT * FROM tabela1;
Empty set (0.00 sec)
Porém, percebe-se que o comando insert atualiza o campo determinado de todos os registros da tabela e o comando "delete" exclui todos os dados da tabela, para resolver esse problema conheceremos a cláusula "where". Para testar vamos fazer várias inserções na tabela:
mysql> INSERT INTO tabela1 VALUES ('Joao Silva' , 'joao@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Jose Pereira' , 'ze@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Maria' , 'maria@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Pedro' , 'pedro@dominio' , '2008-09-19');
mysql> SELECT * FROM tabela1;
+---------------+----------------------+----------------+ | nome | email | data | +---------------+----------------------+----------------+ | Joao Silva | joao@dominio | 2008-09-19 | | Jose Pereira | ze@dominio | 2008-09-19 | | Maria | maria@dominio | 2008-09-19 | | Pedro | pedro@dominio | 2008-09-19 | +---------------+----------------------+----------------+Utilizando o "where" vamos selecionar os registros da tabela1 que contenham "Pedro":
mysql> SELECT * FROM tabela1 WHERE nome="Pedro";
+--------+----------------------+----------------+ | nome | email | data | +--------+----------------------+----------------+ | Pedro | pedro@dominio | 2008-09-19 | +--------+----------------------+----------------+Sendo assim podemos excluir e atualizar os dados que queremos:
mysql> UPDATE tabela1 SET email='pd@dominio2' where nome="Pedro";
mysql> UPDATE tabela1 SET nome='Maria Souza' where nome='Maria';
mysql> DELETE FROM tabela1 where nome='Joao Silva';
Verifique suas alterações com o "select".
O "delete" exclui os dados da tabela, agora se você deseja excluir a tabela você pode usar o "drop", assim como na exclusão do base (vista na página anterior).
mysql> DROP TABLE tabela1;
Ainda não li tudo, porém, estou ancioso para poder chegar em casa e ler com calma, já esta impresso :)
Show de bola velinho, não conheço nada de Banco de Dados, e isso ai, já irá ser uma bela porta de entrada,
Parabéns, é isso ae, 10!
Abraços