Banco de Dados MySQL e SQL Instalando MySQL no Windows • Carregar o arquivo da web – www.mysql.com • Descompactar o arquivo .zip • Executar o arquivo de instalação setup.exe 1 Servidores do Windows • Servidores de transações do banco, para interagir com aplicações (ex. PHP) • Escutam em uma determinada porta requisições de comunicação com o banco • Os mecanismo de comunicação são tubos e TCP/IP, este é o mais utilizado Iniciando o servidor • O servidor deve ser disparado por linha de comando C:\mysql\bin>mysqld --console • Neste caso os logs serão exibidos no console • O servidor é parado com: C:\mysql\bin\mysqladmin -u root shutdown 2 Listando os bancos existentes • O comando abaixo lista todos os bancos existentes C:\mysql\bin>mysqlshow Entrando no MySQL • A execução da linha de comando abaixo inicia o MySQL, para ser manipulado por linha de comando C:\mysql\bin>mysql 3 Comandos • O console do MySQL não é “case-sensitve” • O comando só termina com o ; ou com \c, neste último caso ocorre o abandono do comando mysql> SELECT VERSION(), -> CURRENT_DATE; Criação e remoção de um banco • A criação de um novo banco é feita com duas palavras reservadas mysql> CREATE DATABASE escola; • A remoção destrói o banco e seus dados mysql> drop database escola; 4 Uso do banco • Para manipular um banco é preciso selecioná-lo mysql> USE escola Database changed • Ou entrar diretamente no banco C:\mysql\bin>mysql escola Criação de Tabelas • As tabelas podem são criadas, e destruídas como os bancos (DROP TABLE) CREATE TABLE aluno ( matricula INT PRIMARY KEY, nome VARCHAR(40), endereco VARCHAR(50), telefone VARCHAR(15), nascimento DATE, email VARCHAR(50)); 5 Listando as tabelas do banco • O comando show tables mostra todas as tabelas do banco mysql>SHOW TABLES; Carregando dados de um arquivo • Cada linha representa um registro e os valores de uma linha (representando um célula) devem estar separados por tabulação • A ultima linha só é utilizada se o arquivo for editado com um editor que separa as linha com \r\n mysql> LOAD DATA LOCAL INFILE -> “alunos.txt" INTO TABLE aluno -> LINES TERMINATED BY '\r\n'; 6 Inserindo dados por comando • O Comando INSERT INTO permite a inserção de registros (linhas) em uma tabela em um ou mais campos (colunas) mysql>INSERT INTO aluno (matricula,nome,...) ->VALUES (2003277272, “mario lago”, ...); ... Recuperando dados • O comando de seleção de dados é simples, mas pode ser utilizado para combinar dados de diferentes maneiras • Existem três cláusulas básicas SELECT o_que_selecionar FROM de_quais_tabelas WHERE condições; 7 Recuperando tudo • A seleção de todos as colunas da(s) tabela(s) é feitas com o uso de * • A seleção de todos os registros de uma tabela é feita com a omissão da cláusula WHERE mysql> SELECT * FROM aluno; Calculando dados • Alguns dados podem ser gerados a partir de outros que estão armazenados mysql> SELECT nome, -> (YEAR(CURDATE())-YEAR(birth)) -> -(RIGHT(CURDATE(),5)<RIGHT(birth,5)) -> AS idade -> FROM aluno; 8 Dados aproximados • Os dados podem ser recuperados com uma aproximação de string mysql> SELECT * FROM aluno -> WHERE nome LIKE "%antonio%"; Removendo registro • O registros podem ser removidos da (FROM) tabela de acordo com algumas circunstancias (WHERE) DELETE FROM aluno WHERE telefone=NULL; 9 Alterando Registros • A alteração de registro é uma operação que evita a remoção seguida de inserção mysql> UPDATE aluno SET telefone= “222-2222" -> WHERE telefone = NULL; Contagem dos registros • O números de registros de uma tabela podem ser recuperados com a função ROW SELECT COUNT(*) FROM aluno; 10 Agrupando os resultados • Os resultados de uma consulta podem ser agrupados de acordo com um campos das tabelas mysql->SELECT nome, area -> FROM professor GROUP BY area 11