• Conjunto de informações relacionadas entre si; • Armazenamento organizado facilitando SCRUD; • Agiliza processo de desenvolvimento de sistemas; • Conjunto de Tabelas onde cada linha é um vetor de dados específico; • Sistema Gerenciador de Bancos de Dados (SGBD); • Servidor multitarefa, multiusuário, rápido, confiável e fácil de usar; • Conectividade, velocidade e segurança (bom para Web); • Funciona a base da linguagem padrão SQL; • Open Source, assim como o PHP; • Suporta uma ampla variedade de tipos de dados; • Linguagem para manipulação de dados em Bancos de Dados; • Linguagem com simplicidade e facilidade de uso; • Uma consulta SQL especifica a forma do resultado (consulta); • Possui uma série de comandos específicos para manipulação; Manipulação de bancos: • CREATE DATABASE <nome_banco> Cria banco de dados; mysql> CREATE DATABASE my_first_database; • DROP DATABASE <nome_banco> Apaga banco de dados; mysql> DROP DATABASE my_first_database; Manipulação de tabelas: • CREATE TABLE <nome_tabela> (<col1> tipo, <col2> tipo ... ) Cria tabela; mysql> CREATE TABLE usuarios ( id UNSIGNED INT(10), nome VARCHAR(50), email VARCHAR(50), PRIMARY KEY (id)); Manipulação de tabelas: • ALTER TABLE <nome_tabela> ADD/DROP (<col1> tipo, ... ); Altera propriedades da tabela (adicionar colunas...); mysql> ALTER TABLE usuarios ADD ( senha VARCHAR(25)); • DROP TABLE <nome_tabela> Apaga uma tabela. mysql> DROP TABLE usuarios; Manipulação de linhas: • INSERT INTO <nome_tabela> (<col1>, <col2>, ... ) VALUES ( <expressao1> , <expressao2> ...); mysql> INSERT INTO usuarios (nome, email) VALUES (‘João’, ‘[email protected]’); • UPDATE <nome_tabela> SET (<col1> = <exp1> , <col2> = <exp2>) WHERE condições; mysql> UPDATE usuarios SET recEmail = 1 WHERE recEmail=0; Manipulação de linhas: • DELETE FROM <nome_tabela> WHERE condições; mysql> DELETE FROM usuarios WHERE sexo = ‘m’ && recEmail = 0; Manipulação de linhas (pesquisa): • SELECT (<col1>, <col2>, <col3> , ...) [ * ] “all” FROM <tabela> WHERE condições (opcional) ORDER BY <coluna> ASC/DESC (opcional) LIMIT <n_registros> (opcional) OFFSET <a_partir_de> (opcional) mysql> SELECT * FROM usuarios; // retorna todos registros da tabela. mysql> SELECT * FROM usuarios WHERE name=‘João’; mysql> SELECT (nome, email) FROM usuarios WHERE recEmail = 1 ORDER BY nome ASC; mysql> SELECT * FROM usuarios WHERE nome LIKE ‘João’; // João Pedro, João Antônio .... • PHP fornece todo suporte ao uso do MySQL; • Vamos passar aqui os comandos principais (não todos); • mysql_connect(); Inicia conexão com servidor MySQL; • Indispensável antes de qualquer operação com banco de dados; • Sintaxe: • mysql_connect( <host> , <loginname> , <password> ); Host: nome do computador que possui o servidor (ou IP); Login: nome do usuário do banco de dados; Password: senha do usuário; $conexao = mysql_connect(“localhost”, “root”, “123456”); $conexao = mysql_connect(“gabriela”, “php”, “password”); • mysql_close() fecha conexão; • mysql_select_db(); Seleciona um banco de dados; • É necessário especificar em qual banco de dados trabalhar; • Sintaxe: • mysql_select_db( <nome_db> , <conexao> ); Nome_db: Nome do banco de dados; Conexao: Identificador da conexão (mysql_connect); $banco = mysql_select_db(“sistema”, $conexao); $banco2 = mysql_select_db(“bancotestes”, $conexao); • mysql_query(); Envia um comando SQL para o servidor; • Sintaxe: • mysql_query( <SQL> , <banco> ); SQL: String contendo o comando SQL Banco: Identificador do banco (mysql_select_db); $SQL = “DROP TABLE usuarios”; $query = mysql_query($SQL , $banco); • mysql_num_rows(); Retorna o numero de linhas de uma SQL; • Sintaxe: • mysql_query( <query>); Query: Identificador da query (msql_query); $SQL = “SELECT * FROM usuarios”; $query = mysql_query($SQL , $banco); $num_registros = mysql_num_rows($query); • mysql_fetch_array(); Retorna array contendo resultado da SQL; • Sintaxe: • mysql_fetch_array( <query>); Query: Identificador da query (msql_query); $SQL = “SELECT * FROM usuarios”; $query = mysql_query($SQL , $banco); $num_registros = mysql_num_rows($query); If($num_registros) $resultados = mysql_fetch_array($query); • Outras funções interessantes: • mysql_affected_rows retorna numero de mudanças na ultima sql • mysql_change_user muda o usuario logado • mysql_create_db cria novo banco • mysql_error retorna o erro ocorrido na última sql • mysql_free_result flush na sql • mysql_ping pinga server ou reconecta caso caia a conexão • mysql_stat retorna status da conexão • mysql_num_fields retorna número de campos do resultado • E muito mais em php.net • Interface desenvolvida em PHP para uso facilitado do banco de dados MySQL • Intuitivo e amigável; • Usuários que ainda estão aprendendo SQL podem criar suas tabelas e bancos por lá, verificar comandos SQL, exportar/importar bancos... • Verificar usuários do banco e permissões;