Continuando com meu estudo de PHP, comecei a estudar MySQL para manipular database. Segui pelo guia de PHP do w3schools, que tem uma seção de Database que explica o básico de MySQL. O site tem um tutorial voltado completamente para SQL, mas deixarei para outro momento.
O PHP tem a capacidade de manipular databases, e MySQL é um sistema de database frequentemente usada em conjunto com PHP para se manipular databases na web. O MySQL roda no servidor, é rádpido e confiável, compilável em várias plataformas, e é gratuito.
O MySQL guarda dados em tabelas, de forma a ser muito útil na hora de classificar os dados. Ele usa queries para fazer pedidos de dados.
No meu caso, o WAMP já instalou o MySQL no servidor PHP.
Conexão com servidor MySQL
A primeira coisa a se fazer antes de qualquer acesso ao database é estabelecer uma conexão ao servidor MySQL através da função:
mysqli_connect([<servidor>],[<username>],[<senha>],[<db_name>]).
A conexão é interrompida automaticamente ao final do script, mas para fechar a conexão antes, há a função:
mysqli_close(<conexão>).
<?php
$conection = mysqli_connect("example.com","peter","abc123","my_db");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_close($conection); ?>
OBS: SQL não é case-sensitive, ou seja, não diferencia letras maiúsculas de minúsculas.
Criando Database, Tabelas, Chaves Primárias e Registros
Antes de tudo, qualquer comando em SQL é feita em PHP através do comando:
mysqli_query(<conection>, <sql_statement>);
Novo database
O comando para se criar um novo database é:
CREATE DATABASE <db_name>
Nova tabela
Ao se criar uma nova tabela, já se define os nomes das colunas (campos) e os tipos de dados que cada uma irá conter. O comando para se criar uma nova tabela é:
CREATE TABLE <table_name>(<col_name> <type>, ...)
Dentro do parênteses se define as colunas da tabela. Confira os tipos dos dados aqui. Os principais tipos são:
- String de tamanho fixo (até 255): CHAR(<max_length>)
- String grande: TEXT
- Inteiro: INT[(<max_digits>)]
- Ponto flutuante: FLOAT[(<max_digits>, <max_decimal_digits)]
- Data (formato YYYY-MM-DD): DATE()
- Hora (formato HH:MM:SS): TIME()
- Data e Hora (formato YYYY-MM-DD HH:MM:SS): DATETIME()
Chave Primária
Toda linha da tabela deve ter um campo "Chave Primária", usada para identificar de modo único e exclusivo cada linha da tabela. Portanto cada valor de Chave Primária deve ser único, não pode repetir e nem ser null. Normalmente a "chave primária" é um número ID (de identificação), cujo valor é criado automaticamente, e incrementado automaticamente ao se criar um novo registro, tudo isso adicionando AUTO_INCREMENT depois de definir o tipo de dado da coluna. E para garantir que o valor do campo não é nulo com NOT NULL. Essas declarações podem ser usadas para qualquer campo, não só para o campo da Chave Primária. Para definir um campo como Chave Primária, utiliza-se a declaração PRIMARY KEY(<coluna>).
$sql_statement = "CREATE TABLE Persons (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name CHAR(30),
age INT )";
Novo Registro
Um registro corresponde a uma linha da tabela de database, contendo valores para os campos (colunas). Para se inserir um novo registro, utiliza-se o comando:
INSERT INTO <table> [(<column>,...)] VALUES (<value>)
Manipulando dados
Selecionar Registros
Para se selecionar dados do database, utiliza-se o comando:
SELECT <colunas> FROM <table>
as colunas do comando determinam quais dados de cada registro é necessária (se forem todas as colunas, pode-se usar o asterisco '*'). Após obter a seleção de dados, pode-se usar a função mysqli_fetch_array(<sql_selection>) para obter uma linha como uma array, usando o nome da coluna como chave. Note o exemplo:
$selection = mysqli_query($conection,"SELECT * FROM Persons");
while($row = mysqli_fetch_array($selection)){
echo $row['name'] . " is " . $row['age'] . &quto;years old.";
echo "<br>";
}
Para filtrar uma seleção, limitando-a para apenas registros que cumpram um determinado critério, utiliza-se o termo WHERE na seleção. Por exemplo:
SELECT * FROM Persons WHERE age=20
O termo ORDER BY <coluna> ASC/DESC ordena os registros selecionados de forma ascendente (default) ou descendente pelo campo determinado. É possível ordenar por mais de uma coluna - neste caso, a segunda coluna é usada apenas se os valores da primeira coluna forem iguais.
Atualizar Registros
Para se editar um dado em um registro, utiliza-se o comando:
UPDATE <table> SET col1=val1, col2=val2, ... [WHERE colX=valX AND/OR colY=valY]
o termo WHERE especifica quais registros devem ser editados. Se o termo for omitido, todos os registros serão modificados.
Deletar Registros
Para deletar registros, há o comando:
DELETE FROM <table> WHERE col=value
onde o WHERE especifica os registroa a serem deletados. Se o termo for omitido, todos os registros serão deletados.
Postar um comentário