quarta-feira, 4 de dezembro de 2013

Conectando em uma base MySQL através do Linux



Conectando em uma base MySQL no Linux


Verificar se está rodando o MySQL.


root@srv:/# ps -A | grep mysql
1505 ?        00:00:00 mysqld_safe
1660 ?        00:05:33 mysqld
8683 pts/1    00:00:00 mysql


Através do comando abaixo, está sendo conectado no banco de dados ‘MySQL’


root@srv:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11015
Server version: 5.1.49-3 (Debian)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>


Aqui estamos exibindo os ‘Bancos’ criados dentro do MySQL;


mysql> show databases;
+--------------------+
| Database        |
+--------------------+
| information_schema |
| agenda_unialco |
| ajcenter_rh     |
| mysql           |
| phpmyadmin      |
| unialco_jobs    |
+--------------------+
6 rows in set (0.00 sec)




Aqui iremos escolher o banco a ser utilizado.


mysql> use unialco_jobs;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed


Agora iremos exibir as tabelas, existentes no Banco de Dados (unialco_jobs);


mysql> show tables;
+------------------------+
| Tables_in_unialco_jobs |
+------------------------+
| jobs                |
| jobs_users          |
| resume              |
| users               |
+------------------------+
4 rows in set (0.00 sec)


Através do comando ‘desc’ é feito um describe na tabela, mostrando em detalhes as estruturas de campo, tipo, chaves etc...


mysql> desc users;
+----------------------------+-------------+------+-----+---------+----------------+
| Field                   | Type     | Null | Key | Default | Extra       |
+----------------------------+-------------+------+-----+---------+----------------+
| id                     | int(11) | NO   | PRI | NULL | auto_increment |
| email                   | varchar(60) | YES  | | NULL    |             |
| password                | varchar(32) | YES  | | NULL    |             |
| f_name                 | varchar(50) | YES  | | NULL |             |
| l_name                  | varchar(50) | YES  | | NULL    |             |
| gender                  | char(1) | YES  | | NULL |             |
| birthdate              | date     | YES  | | NULL |             |
| civil_state             | int(1)   | YES  | | NULL |             |
| birth_country           | varchar(20) | YES  | | NULL    |             |
| sons                   | char(1)     | YES  | | NULL    |             |
| city                    | varchar(30) | YES  | | NULL |             |
| state                   | int(2)   | YES  | | NULL |             |
| phone                  | varchar(15) | YES  | | NULL |             |
| mobile                  | varchar(15) | YES  | | NULL    |             |
| first_login             | datetime | YES  | | NULL |             |
| last_login              | datetime | YES  | | NULL |             |
| level                   | int(3)   | YES  | | NULL |             |
| new_job_notification    | int(1)   | YES  | | NULL |             |
| new_candidate_notification | int(1)      | YES  | | NULL    |             |
+----------------------------+-------------+------+-----+---------+----------------+
19 rows in set (0.00 sec)


Abaixo, estamos fazendo uma select ‘simples’ filtrando o campo e-mail com a palavra ‘%ti@unialco.com.br%'


mysql> select id, f_name, l_name, email, level from users where email like '%ti@unialco.com.br%';
+------+------------+--------------+-------------------+-------+
| id   | f_name     | l_name    | email          | level |
+------+------------+--------------+-------------------+-------+
| 8807 | Tecnologia | Informação | ti@unialco.com.br | 1 |
+------+------------+--------------+-------------------+-------+
1 row in set (0.01 sec)


Abaixo, estamos fazendo um update, onde setaremos na coluna ‘level’ o valor =2 onde o id for =8807.


mysql> update users set level=2 where id='8807';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


Como podemos constar na select abaixo, o valor level foi alterado para 2.


mysql> select id, f_name, l_name, email, level from users where email like '%ti@unialco.com.br%';
+------+------------+--------------+-------------------+-------+
| id   | f_name     | l_name    | email          | level |
+------+------------+--------------+-------------------+-------+
| 8807 | Tecnologia | Informação | ti@unialco.com.br | 2 |
+------+------------+--------------+-------------------+-------+
1 row in set (0.02 sec)








(Exportando o resultado SQL para um arquivo TXT)


Com a SQL abaixo iremos exportar o resultado, para um arquivo ‘.txt’ que ficará gravado em /tmp/result1.txt


mysql> select users.id,
-> users.f_name,
-> users.l_name,
-> users.email,
-> users.city,
-> users.last_login,
-> resume.area,
-> resume.prof_level,
-> resume.job_type,
-> resume.course INTO OUTFILE "/tmp/result1.txt"
->            FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
->            LINES TERMINATED BY "\n"
->      from users,
->      resume
->      where users.id = resume.user_id
->      and users.city='Guararapes';
Query OK, 831 rows affected (0.17 sec)
mysql>
root@srv:/tmp# ls -l
total 268
-rw-rw-rw- 1 mysql mysql 111489 Out  5 15:31 result1.txt
-rw-rw-rw- 1 mysql mysql 146537 Out  5 15:02 result.txt
drwx------ 2 root  root 4096 Set 21 18:31 vmware-root


Visualizando o conteudo do arquivo gerado através da Select.


root@srv:/tmp# more result1.txt
2,"Wagner","Joao","wjoao@usina.com.br","Guararapes","2008-10-18 22:34:41",\N,\N,\N,\N

24,"Fernando","Ourst de Sousa","xyzxyzxyz@yahoo.com.br","Guararapes","2008-03-04 12:41:34","Informatica ou Adiministrativo",4,2,"Processamento de Dados"

Nenhum comentário:

Postar um comentário