Você está na página 1de 32

Nas edies anteriores mostramos como criar uma tabela, efetuar incluses, alteraes,

excluses e at mesmo backups.


Hoje vamos falar sobre um assunto prtico, porm, que pode facilitar a todos os programadores
que lem estas matrias!
No sei se voc j passou por isso, mas eu j passei por situaes que apesar de saber
programar, no sabia qual comando usar e quando encontrava em algum tutorial, no sabia
porque usava (apenas copiava e colava).
Hoje vamos dar alguns exemplos de comandos MySQL, criando exemplos prticos de suas
definies!
Para facilitar sua busca, vamos disponibilizar em ordem alfabtica, ok?
- mysql_affect_rows:
Este comando tem o objetivo de retornar o nmero de linhas afetadas por uma consulta.
Exemplo:

$resultado = mysql_query($query);
if ($resultado && mysql_affect_rows() > 0){
OBS.: O mysql_affect_rows s ser vlido quando usado em querys que alterem o contedo
da tabela (exemplo: insert ou update).
Para se efetuar consulta simples, indicamos os comandos select ou show, utilizando junto a
estes o comando mysql_num_rows.
- mysql_close:
Este comando tem o objetivo de fechar a conexo com o banco de dados MySQL.
Exemplo:
$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');
if (!$conexao){ die 'No pude conectar' . mysql_error()); }else { echo 'conexo ok'; }
mysql_close($conexao);<code>
OBS.: O comando mysql_close no ir fechar conexes persistentes criadas por
mysql_pconnect().
- mysql_connect:
Este comando tem o objetivo de abrir a conexo com um banco de dados MySQL.
Exemplo: Est disponvel no exemplo acima ( mysql_close ).

- mysql_create_db:
Este comando tem por objetivo criar um banco de dados MySQL.
Exemplo:

$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');


if (!$conexao){ die 'No pude conectar' . mysql_error()); }
else {
if(mysql_create_db('basededados')){ echo base de dados criada com sucesso; }
else{ echo 'Error creating database: ' . mysql_error() . n;
} // fecha else {
OBS.: Indicamos ao invs de utilizar o mysql_create_db, usar o mysql_query, para fazer o
comando CREATE DATABASE. Para compatibilidade com verses anteriores, o
mysql_create_db tambm poder ser utilizado, em todo caso, ela est obsoleta.
- mysql_data_seek:
Este comando tem por objetivo mover o ponteiro interno de uma consulta.
Exemplo:

$resultado = mysql_query($query);
for ($i = mysql_num_rows($resultado) 1; $i >= 0; $i --){
if (!mysql_data_seek($resultado, $i)){
echo No pude mover para a linha $i . mysql_error() . n;
continue;
} // fecha if (!mysql_data_seek($resultado, $i)){
xxx outros comandos xxx
}// fecha for ($i = mysql_num_rows($resultado) 1; $i >= 0; $i --){
OBS.: A funo mysql_data_seek() pode ser usada somente em conjunto com o mysql_query e
no com o mysql_unbuffered_query().
- mysql_db_query:
Este comando tem por objetivo enviar uma consulta MySQL para a base de dados.
Exemplo:

$resultado = mysql_db_query($database, $query);


OBS.: Esta funo est obsoleta desde o PHP 4.0.6. Ao invs dela, aconselhamos utilizar os
comandos mysql_select_db() e mysql_query().
- mysql_drop_db:
Utilizando este comando, voc poder excluir um banco de dados MySQL.
Exemplo:

$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');


if (!$conexao){ die 'No pude conectar' . mysql_error()); }
else { if(mysql_drop_db(basededados)){ echo base de dados excluda com sucesso;
}// fecha if(mysql_drop_db(basededados)){
}// fecha if (!$conexao){
OBS.: Esta funo tambm est obsoleta. Ao invs dela, aconselhvel utilizar o comando
mysql_query.
- mysql_errno:
Este comando tem por finalidade retornar o nmero do erro da ltima chamada MySQL.
Exemplo:

$conexao = mysql_connect("localhost", "mysql_user", "mysql_password");


if (!mysql_select_db("base de dados no existente", $conexao)) {
echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";
}
O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados no
existente'
- mysql_error:
Este comando tem por finalidade retornar a mensagem de erro da ltima chamada MySQL.
Exemplo:

$conexao = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("base de dados no existente", $conexao)) {


echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";
}
O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados no
existente'
- mysql_fetch_array:
Este comando tem por finalidade retornar o resultado de uma consulta como array.
Exemplo:

$resultado = mysql_query ($query);


$campo = mysql_fetch_array($resultado);
$variavel = $campo['campo'];
- mysql_fetch_field:
Este comando tem por finalidade retornar informaes sobre um campo da consulta (objeto).
Exemplo:

mysql_connect('localhost:3306', $user, $password) or die ("No pude conectar: " .


mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table") or die("A query falhou: " . mysql_error());
$i = 0;
while ($i < mysql_num_fields($result)) { echo "Informao para a coluna $i:
n";
$meta = mysql_fetch_field($result,$i);
if (!$meta) { echo "Informao no disponivel
n"; }
echo "
blob:

$meta-&gt;blob

max_length:

$meta-&gt;max_length

multiple_key: $meta-&gt;multiple_key
name:

$meta-&gt;name

not_null:

$meta-&gt;not_null

numeric:

$meta-&gt;numeric

primary_key: $meta-&gt;primary_key
table:

$meta-&gt;table

type:

$meta-&gt;type

unique_key: $meta-&gt;unique_key
unsigned:

$meta-&gt;unsigned

zerofill:

$meta-&gt;zerofill

";
$i++;
}
mysql_free_result($result);
- mysql_fetch_lengths:
Este comando tem por finalidade retornar o tamanho mximo de cada campo em uma consulta.
Exemplo:

$campo

= mysql_fetch_assoc($resultado);

$lengths = mysql_fetch_lengths($resultado);
print_r($campo);
print_r($lengths);
- mysql_fetch_object:
Este comando tem por finalidade retornar uma linha da consulta como um objeto.
Exemplo:

while($campo = mysql_fetch_object($resultado)){
echo $campo-&gt;Database . n;
}
- mysql_fetch_row:
Este comando tem por finalidade retornar uma linha da consulta como um array.
Exemplo:

$resultado = mysql_query ($query);


while($campo = mysql_fetch_row($resultado)){
$variavel = $campo ['campodatabela'];
}
- mysql_field_name:
Este comando tem por finalidade retornar o nome de um campo no consulta.
Exemplo:

$query = "select * from usuarios";


$resultado = mysql_query($query);
echo mysql_field_name($resultado, 0) . "n";
echo mysql_field_name($resultado, 2);
O exemplo acima retornar algo assim:
id_usuario
password
- mysql_field_seek:
Este comando posiciona o ponteiro para um campo especfico da consulta.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = mysql_query($query);
mysql_field_seek($resultado,3);
print_r(mysql_fetch_field($resultado));
mysql_close($conexao);
- mysql_field_table:
Este comando tem por finalidade retornar o nome da tabela qual o campo pertence.
Exemplo:

$query = "SELECT * FROM TABELA";

$resultado = mysql_query($query);
$tabela = mysql_field_table($resultado, 0);
echo $tabela;
- mysql_field_type:
Este comando similar ao mysql_field_name(). Quando executado, ele te possibilitar retornar o
tipo de dado do campo.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = ($query);
$fields = mysql_num_fields($resultado);
$table = mysql_field_table($resultado, 0);
echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";
for ($i=0; $i < $fields; $i++) {
$type = mysql_field_type($resultado, $i);
echo $type;
}
- mysql_field_flags:
Atravs deste comando voc poder retornar os flags associados a um campo da consulta.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = ($query);
$fields = mysql_num_fields($resultado);
$table = mysql_field_table($resultado, 0);
echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";
for ($i=0; $i < $fields; $i++) {
$flags = mysql_field_flags($resultado, $i);
echo $flags . "n";
}
- mysql_field_len:
Utilizando este comando ser possvel retornar o tamanho de um campo da consulta.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = ($query);
$fields = mysql_num_fields($resultado);
$table = mysql_field_table($resultado, 0);
echo "Sua '" . $table . "' tabela tem " . $fields . " campo(s)n";
for ($i=0; $i < $fields; $i++) {
$len = mysql_field_len($resultado, $i);
echo $len;
}
- mysql_free_result:
Utilizando este comando, voc poder liberar os recursos alocados a uma consulta.
deve ser chamado somente se voc est preocupado em quanto da memria esta sendo usada na
query num grande conjunto de resultados.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = mysql_query($query);
while($campo = mysql_fetch_array($resultado)) {
$id_campo = $campo["id_campo"];
$nome = $campo["nome"];
$senha = $campo["senha"];
}
mysql_free_result($resultado);
- mysql_insert_id:
Utilizando este comando voc poder retornar o ID da ltima clusula INSERT executada.
Exemplo:

$query = "INSERT INTO TABELA (produto) VALUES ('valor');


$resultado = mysql_query($query);
printf("A ltima insero foi o id %dn", mysql_insert_id());
OBS.:
O comando mysql_insert_id() converte o tipo de retorno nativo da API em C do MySQL
mysql_insert_id() para um tipo long (chamado int no PHP).

Se a sua coluna AUTO_INCREMENT for uma coluna do tipo BIGINT, o valor retornado por
mysql_insert_id() ser incorreto. Recomendo ao invs deste comando utilizar a funo SQL
interna do MySQL LAST_INSERT_ID() em uma consulta SQL.
- mysql_list_fields:
Atravs deste comando ser possvel retornar a relao de campos de uma consulta.
Exemplo:

$conexao = mysql_connect('localhost', 'usuariodomysql', 'senhadomysql');


$fields = mysql_list_fields("database", "tabela", $conexao);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {
echo mysql_field_name($fields, $i) . "n";
}
- mysql_list_dbs:
Atravs deste comando ser possvel listar os bancos de dados disponveis no Servidor.
Exemplo:

$conexao = mysql_connect ('servidor', 'usuariodoservidor', 'senhadoservidor');


$resultado = mysql_list_dbs($conexao);
while($campo = mysql_fetch_object($resultado)){
echo $campo->Database . n;
}
- mysql_list_tables:
Atravs deste comando ser possvel listar as tabelas existentes em um banco de dados MySQL.
Exemplo:

$nomedobd = 'nomedabasededados';
if (!mysql_connect('servidor', 'usuariodoservidor', 'senhadoservidor')){
echo 'No foi possvel conectar com o MySQL';
exit;
}
$resultado = mysql_list_tables($nomedobd);
- mysql_num_fields:
Atravs deste comando ser possvel retornar o nmero de campos de uma consulta.

Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = ($query);
$campos = mysql_num_fields($resultado);
echo $campos;
- mysql_num_rows:
Atravs deste comando ser possvel retornar o nmero de linhas de uma consulta.
Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = ($query);
$linhas = mysql_num_rows($resultado);
echo $linhas;
- mysql_pconnect:
Utilizando este comando voc poder estabelecer uma conexo persistente com o banco de
dados.
Exemplo:

$conexao = mysql_pconnect('servidor', 'usuariohost', 'senhahost');


- mysql_query:
Um dos comandos mais utilizados do MySQL. Atravs deste comando voc poder enviar uma
consulta SQL ao banco de dados MySQL.
Exemplo:

$query = SELECT * FROM DATABASE;


$resultado = mysql_query ($query);
- mysql_result:
Atravs deste comando voc poder retornar os dados de uma consulta.

Exemplo:

$query = "SELECT * FROM TABELA";


$resultado = mysql_query($query);
$dominio = mysql_result($resultado, 0, "nome");
- mysql_select_db:
Utilizando este comando, voc poder selecionar um banco de dados MySQL.
Exemplo:

$conexao = mysql_connect('localhost', 'usuariomysql', 'senhamysql');


if (!$conexao) { die('No conectado : ' . mysql_error()); }
$db_selected = mysql_select_db('tabela', $conexao);
if (!$db_selected) { die ('No pode usar a tabela : ' . mysql_error()); }
- mysql_tablename:
Este comando tem por finalidade retornar o nome da Tabela de um campo.
Exemplo:

mysql_connect (servidor, usuariodoservidor, senhadoservidor);


$resultado = mysql_list_tables(basededados);
for ($i = 0; $i < mysql_num_rows($resultado); $i++)
printf (Tabela: %sn, mysql_tablename($resultado, $i));
mysql_free_result($resultado);
Espero ter lhe ajudado em algo com esta matria.

No incio como Programador apanhei bastante, por no saber como estes comandos eram
utilizados e o que eles faziam exatamente.
Creio que alguns dos exemplos acima certamente lhe sero teis no dia a dia!
Envie-nos suas dvidas e d sugestes para as prximas matrias! Nosso compromisso lhe
ajudar!
Tutorial Seguinte > M

O comando select do SQL usado para efetuar consultas no banco de dados. Neste post veremos como usar
este comando nos bancos de dados Mysql, SQL Server e Access. Estes bancos por sua vez apresentam algumas
diferenas na maneira de entender o select. Vamos l?
Estrutura do comando select:

SELECT - Seleciona as colunas da consulta


FROM - Seleciona a(s) tabela(s)

WHERE - Permite criar condies para filtrar os dados retornados na consulta

GROUP BY Agrupa dados na consulta.

HAVING Limita o resulta em uma condio estabelecida.

ORDER BY Especifica a coluna ou as colunas que sero ordenadas na consulta

Usando o Select na forma bsica


Select * FROM empregados

No exemplo acima, usamos as clusulas Select e From. O * (asterisco) indica que todas as colunas da tabela
devem ser retornadas.
Em muitos casos recomendvel selecionar algumas colunas apenas e no todas como no exemplo acima, isto
deve ser considerado pois quando o tamanho do banco aumentar as consultas podero ficar lentas em funo do
grande volume de informaes contida nas tabelas.

Selecionando colunas especficas para a consulta


SELECT nome,salario, cidade
FROM empregados

Para retornar apenas as colunas desejadas, basta indicar os seus nomes na instruo select como no exemplo a
seguir, onde selecionamos o nome, salrio e cidade.

Renomeando colunas
SELECT nome, data_nascimento As Aniversario, cidade As residencia
FROM empregados

importante observar que a coluna foi renomeada apenas nesta consulta, mas no houve alterao no nome da
coluna no banco de dados.

Concatenando colunas em uma consulta.


Concatenamos colunas quando queremos unir o resultado de dois campos em um s. Imagine que numa
determinada tabela exista o campo nome, sobrenome, rua e numero da casa, neste caso ao fazermos uma
consulta seria interessante concatenat o nome com o sobrenome e a rua com o numero da casa.
O Mysql trata concatenao de forma diferente do SQL Server e do Access, enquanto que no Mysql usamos a
funo concat(), no SQL Server e no Access fazemos pelo sinal de adio.
Exemplo de concatenao no Mysql:
SELECT concat(nome, ' mora em ', cidade, '/', estado
FROM empregados

Exemplo de concatenao em SQL Server ou Access


SELECT nome + ' mora em ' + cidade + '/' + estado
FROM empregados

O sinal + (mais) indica concatenao e deve ser usado para concatenar colunas ou uma coluna com um texto.
S poder ser concatenado colunas do tipo texto, caso for necessrio concatenar colunas do tipo data ou
numrico, necessrio fazer a converso dessas colunas para texto.
A funo CONVERT() do SQL Server usada para fazer a converso de valores de uma coluna.

Exemplo 1:
SELECT nome + ' ganha ' + convert(varchar, salario)
FROM empregados

Exemplo 2:
SELECT nome + ' nasceu em ' + Convert(VarChar, data_nascimento, 103)
FROM empregados

No primeiro caso, estamos convertendo o valor da coluna salrio para texto, j que esta coluna do tipo
Decimal.
No segundo exemplo, estamos convertendo o valor de uma coluna do tipo data para texto. Perceba que neste
caso usamos o 103 na funo, isto necessrio para informarmos que queremos que a data seja convertida no
formato dd/mm/aaaa.

Selecionando valores distintos


Para eliminar linhas duplicadas, usamos a palavra-chave DISTINCT na clusula SELECT.
SELECT distinct cidade
FROM empregados

No exemplo acima, usamos a palavra-chave distinct na coluna cidade, mas possvel relacionar mais de uma
coluna, por exemplo, cidade e estado. Neste caso a combinao das duas colunas deve ser distinta.

Limitando o n de linhas em uma consulta


Limitar o nmero de linhas usado quando no queremos listar todas as linhas de uma tabela, seja pelo volume
de linhas ou por no haver necessidade. O Mysql trata esta questo de forma diferente do SQL Server e do
Access.
Em SQL Server e Access use o Top para indicar o limite de linhas desejado na consulta.
SELECT top 7 *
FROM empregados

Em Mysql use o Limit para indicar o limite de linhas desejado na consulta.


SELECT *
FROM empregados limit 0,7

O resultado ser o mesmo, porm a leitura pode ser um pouco diferente, j que o top vai pegar as sete primeiras
linhas e o limit vai pegar a partir de 0 at 7.

Existem muitas interfaces de administrao para o MySQL, mas a forma mais elementar usar o prompt de
comando. Para acessar o prompt do MySQL, use o comando :
# mysql -u root -p <enter>
Enter password: <senha>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43 to server version: 4.0.15-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Veja que o cabealho normal do bash foi substitudo por um "mysql>", que lembra onde voc est ;). Para sair,
pressione "Ctrl+C" ou execute o comando "Bye".
Dentro do prompt do MySQL, use o comando "CREATE DATABASE" (criar base de dados), seguido pelo
nome desejado. Neste exemplo, estou criando uma base de dados para usar na instalao do phpBB, que
veremos a seguir. Um detalhe importante que todos os comandos dados dentro do prompt do MySQL devem
terminar com ponto-e-vrgula:
mysql> CREATE DATABASE phpbb;
Query OK, 1 row affected (0.04 sec)

Para confirmar, use o comando "SHOW DATABASES;", que lista as bases de dados criadas no servidor, como
em:
mysql> SHOW DATABASES
+--------+
| Database |
+--------+
| information_schema |
| mysql |
| phpbb |
| test |
+--------+

Note que alm da base "phpbb" que criamos, existem mais trs bases de dados, criadas durante a instalao. As
bases "mysql" e "information_schema" so para uso interno do MySQL, incluindo o armazenamento das
configuraes (sendo um banco de dados, o MySQL usa a s mesmo para armazenar suas configuraes :),
enquanto a base "test" uma DB vazia, que pode ser usada para fins de teste.
Temos em seguida a questo das permisses de acesso. Nada impede que voc sempre utilize a conta "root" do
MySQL e inclusive configure os scripts instalados para o utilizarem. Entretanto, isso extremamente inseguro,
principalmente se voc pretende instalar vrios scripts e aplicativos no mesmo servidor, ou se as bases de dados
sero acessadas por vrios usurios.
O ideal que cada base de dados tenha um usurio prprio e seja acessvel apenas por ele. Se voc vai instalar
o phpBB (frum) e o WordPress (gerenciador de contedo), por exemplo, crie duas bases de dados ("phpbb" e
"wordpress", por exemplo) e dois usurios separados, cada um com permisso para acessar uma das duas bases.
Na configurao de cada um dos gestores, informe a base de dados que ser usada e o usurio e senha
correspondente. Isso evita que eventuais problemas de segurana em um coloquem em risco tambm os dados
referentes ao outro.
Outra situao comum ao configurar um servidor com vrios virtual hosts. Nesse caso, o webmaster de cada
site vai precisar de uma ou mais bases de dados e, naturalmente, cada um vai precisar de um login prprio, com
acesso apenas s suas prprias bases de dados.
Para criar um usurio "phpbb", com senha "nDPIcqq9" e dar a ele acesso base de dados "phpbb" que criamos,
use (dentro do prompt do MySQL) o comando:
mysql> GRANT ALL ON phpbb.* TO phpbb IDENTIFIED BY 'nDPIcqq9';

(permita tudo na base phpbb para o usurio phpbb, identificado pela senha nDPIcqq9)
mysql> FLUSH PRIVILEGES;

O comando "FLUSH PRIVILEGES" faz com que o servidor MySQL atualize as tabelas de permisses, fazendo
com que a alterao entre em vigor automaticamente, em vez de apenas da prxima vez que o servidor for

reinicializado. Na verdade, ele no necessrio ao adicionar usurios usando o comando "GRANT" (como no
nosso caso) mas saudvel se acostumar a utiliz-lo sempre que usar comandos que modifiquem as permisses
de acesso. Voc vai notar que a maioria dos tutoriais inclui o comando depois das operaes relacionadas a
alteraes nas permisses de acesso.
Continuando, para trocar a senha posteriormente, use o comando:
mysql> SET PASSWORD FOR phpbb = PASSWORD('JSAm950A');

(defina senha para o usurio phpbb, onde a senha JSAm950A)


Este mesmo comando pode ser usado para trocar a senha do root, como em:
mysql> SET PASSWORD FOR root = PASSWORD('V5LQSxqL');

Se mais tarde voc precisar remover as permisses de acesso de um usurio anteriormente criado (em um site
com vrios webmasters, onde um se desligou da equipe, por exemplo) use o comando:
mysql> REVOKE ALL ON phpbb.* FROM phpbb;

(remova todos os direitos para a base phpbb, para o usurio phpbb)


mysql> FLUSH PRIVILEGES;

Com isso, o usurio deixar de ter acesso base de dados especificada, mas ainda continuar existindo no
sistema e poder acessar outras bases de dados a que tenha acesso. Para realmente remover o usurio, usamos o
comando "DROP USER", como em:
mysql> DROP USER phpbb

O comando "DROP USER" suportado apenas pelas verses recentes do MySQL. Caso voc esteja usando
uma verso antiga, onde ele ainda no seja suportado, voc pode usar o comando "DELETE FROM mysql.user
WHERE User=", como em:
mysql> DELETE FROM mysql.user WHERE User='phpbb';

Para remover uma base de dados, use o comando "DROP DATABASE", como em:
mysql> DROP DATABASE phpbb;

Todos estes comandos devem ser dado dentro da base de dados "mysql", a base de dados interna usada pelo
MySQL, acessada por default ao abrir a interface. Se por acaso voc tiver mudado a base de dados de trabalho
anteriormente (usando o comando USE) use o comando abaixo para voltar base administrativa:
mysql> USE mysql;

Veja que os comandos usados dentro do prompt do MySQL seguem uma linguagem literal, usando palavras do
ingls. Quem tem uma boa familiaridade com a lngua tem bem mais facilidade em dominar os comandos.
Outra observao que os comandos no so case sensitive. Tanto faz escrever "CREATE DATABASE
phpbb;" ou "create database phpbb;". Escrever os comandos em maisculas apenas uma forma de dar mais
destaque a eles.
1 comentrio

Segue uma lista dos comandos mais comuns que so utilizados de tempos a tempos.
Para fazer login (de uma shell Unix) utilize -h apenas de necessrio.

[mysql dir]/bin/mysql -h hostname -u root -p


Criar uma base de dados em num servidor sql.

create database [databasename];

Listar todas as bases de dados no servidor sql.

show databases;
Mudar de base de dados.

use [db name];


Para ver todas as tabelas da Base de Dados.

show tables;
Para ver os formatos dos campos.

describe [table name];


Para apagar uma base de dados.

drop database [database name];


Para apagar uma tabela.

drop table [table name];


Para ver toda a informao de uma tabela.

SELECT * FROM [table name];


Retornar a informao das colunas e as respectivas colunas da tabela especificada.

show columns from [table name];


Ver campos especificos com o valor qualquer coisa.

SELECT * FROM [table name] WHERE [field name] = qualquer coisa;


Ver todas as entradas que contenham o nome Manuel e o Numero de telefone
3444444.

SELECT * FROM [table name] WHERE name = Manuel AND phone_number = 3444444;
Ver todas as entradas que contenham o nome Jos e o nmero de telefone
3444444 ordenadas pelo campo do telefone.

SELECT * FROM [table name] WHERE name != Jos AND phone_number = 3444444 order by
phone_number;
Ver todas as entradas que comecem pelas letras joo e pelo telefone 3444444.

SELECT * FROM [table name] WHERE name like joo% AND phone_number = 3444444;
Utilizar uma expresso regular para encontrar entradas. Utilizar REGEXP BINARY
para forar case-sensitivity. Neste caso procura qualquer entrada comeada
por a.

SELECT * FROM [table name] WHERE rec RLIKE ^a$;

Mostrar entradas nicas.

SELECT DISTINCT [column name] FROM [table name];


Mostrar entradas seleccionadas por ordem ascendente (asc) ou descentente (desc).

SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;


Retorna o nmero de colunas.

SELECT COUNT(*) FROM [table name];


Soma as colunas.

SELECT SUM(*) FROM [table name];


Juntar as tabelas em colunas comuns.

select lookup.illustrationid, lookup.personid,person.birthday from lookup


left join person on lookup.personid=person.personid=statement to join birthday in person table with primary
illustration id;
Mudar para a mysql db. Criar um novo utilizador.

INSERT INTO [table name] (Host,User,Password) VALUES(%,user,PASSWORD(password));


Mudar a password. (de uma consola unix).

[mysql dir]/bin/mysqladmin -u root -h hostname.blah.org -p password new-password


Mudar uma password de um utilizador.(da linha de comandos MySQL).

SET PASSWORD FOR user@hostname = PASSWORD(passwordhere);


Autorizar o utilizador z a ligar-se ao servidor do host local utilizando a password
passwd

grant usage on *.* to z@localhost identified by passwd;


Mudar para uma mysql db.Dar previlgios a um utilizador sobre uma db.

INSERT INTO [table name]


(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES
(%,databasename,username,Y,Y,Y,Y,Y,N);
or
grant all privileges on databasename.* to username@localhost;
Para actualizar a informao de uma tabela.

UPDATE [table name] SET Select_priv = Y,Insert_priv = Y,Update_priv = Y where [field name] = user;
Apagar linhas de uma tabela.

DELETE from [table name] where [field name] = whatever;

Actualizar premisses e previlgios de uma base de dados.

FLUSH PRIVILEGES;
Apagar uma Coluna.

alter table [table name] drop column [column name];


Adicionar uma coluna a uma Base de Dados.

alter table [table name] add column [new column name] varchar (20);
Mudar o nome de uma tabela.

alter table [table name] change [old column name] [new column name] varchar (50);
Criar uma nica coluna.

alter table [table name] add unique ([column name]);


Criar uma coluna maior.

alter table [table name] modify [column name] VARCHAR(3);


Apagar unica de uma tabela.

alter table [table name] drop index [colmn name];


Carregar um ficheiro CSV para uma tabela.

LOAD DATA INFILE /tmp/filename.csv replace INTO TABLE [table name] FIELDS TERMINATED BY ,
LINES TERMINATED BY \n (field1,field2,field3);
Fazer um backup de todas as bases de dados.

[mysql dir]/bin/mysqldump -u root -ppassword opt >/tmp/alldatabases.sql


Fazer um backup de apenas uma base de dados.

[mysql dir]/bin/mysqldump -u username -ppassword databases databasename >/tmp/databasename.sql


Fazer o backup de uma tabela de uma base de dados.

[mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename >


/tmp/databasename.tablename.sql
Restaurar uma base de dados (ou tabela) de um backup.

[mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql


Criar Tabela Exemplo 1.

CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname


VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username
VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups
VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));

Criar Tabela Exemplo 2.

create table [table name] (personid int(50) not null auto_increment primary key,firstname
varchar(35),middlename varchar(50),lastnamevarchar(50) default bato);
Clausulas e Declaraes MYSQL
ALTER DATABASE
ALTER TABLE
ALTER VIEW
ANALYZE TABLE
BACKUP TABLE
CACHE INDEX
CHANGE MASTER TO
CHECK TABLE
CHECKSUM TABLE
COMMIT
CREATE DATABASE
CREATE INDEX
CREATE TABLE
CREATE VIEW
DELETE
DESCRIBE
DO
DROP DATABASE
DROP INDEX
DROP TABLE
DROP USER
DROP VIEW
EXPLAIN
FLUSH
GRANT
HANDLER
INSERT
JOIN
KILL
LOAD DATA FROM MASTER
LOAD DATA INFILE

LOAD INDEX INTO CACHE


LOAD TABLE...FROM MASTER
LOCK TABLES
OPTIMIZE TABLE
PURGE MASTER LOGS
RENAME TABLE
REPAIR TABLE
REPLACE
RESET
RESET MASTER
RESET SLAVE
RESTORE TABLE
REVOKE
ROLLBACK
ROLLBACK TO SAVEPOINT
SAVEPOINT
SELECT
SET
SET PASSWORD
SET SQL_LOG_BIN
SET TRANSACTION
SHOW BINLOG EVENTS
SHOW CHARACTER SET
SHOW COLLATION
SHOW COLUMNS
SHOW CREATE DATABASE
SHOW CREATE TABLE
SHOW CREATE VIEW
SHOW DATABASES
SHOW ENGINES
SHOW ERRORS
SHOW GRANTS
SHOW INDEX
SHOW INNODB STATUS
SHOW LOGS
SHOW MASTER LOGS

SHOW MASTER STATUS


SHOW PRIVILEGES
SHOW PROCESSLIST
SHOW SLAVE HOSTS
SHOW SLAVE STATUS
SHOW STATUS
SHOW TABLE STATUS
SHOW TABLES
SHOW VARIABLES
SHOW WARNINGS
START SLAVE
START TRANSACTION
STOP SLAVE
TRUNCATE TABLE
UNION
UNLOCK TABLES
USE

Funes das Strings


AES_ENCRYPT
ASCII
BIN
BINARY
BIT_LENGTH
CHAR
CHAR_LENGTH
CHARACTER_LENGTH
COMPRESS
CONCAT
CONCAT_WS
CONV
DECODE
DES_DECRYPT
DES_ENCRYPT
ELT
ENCODE

ENCRYPT
EXPORT_SET
FIELD
FIND_IN_SET
HEX
INET_ATON
INET_NTOA
INSERT
INSTR
LCASE
LEFT
LENGTH
LOAD_FILE
LOCATE
LOWER
LPAD
LTRIM
MAKE_SET
MATCH

AGAINST
MD5
MID
OCT

OCTET_LENGTH
OLD_PASSWORD
ORD
PASSWORD
POSITION
QUOTE
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SHA

SHA1
SOUNDEX
SPACE
STRCMP
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UNCOMPRESS
UNCOMPRESSED_LENGTH
UNHEX
UPPER

Funes da data e da hora


ADDDATE
ADDTIME
CONVERT_TZ
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATE_ADD
DATE_FORMAT
DATE_SUB
DATEDIFF
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
FROM_UNIXTIME
GET_FORMAT

HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SEC_TO_TIME
SECOND
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIMEDIFF
TIMESTAMP
TIMESTAMPDIFF
TIMESTAMPADD
TIME_FORMAT
TIME_TO_SEC
TO_DAYS
UNIX_TIMESTAMP
UTC_DATE
UTC_TIME
UTC_TIMESTAMP
WEEK
WEEKDAY
WEEKOFYEAR
YEAR

YEARWEEK

Funes matemticas e de agregao


ABS
ACOS
ASIN
ATAN
ATAN2
AVG
BIT_AND
BIT_OR
BIT_XOR
CEIL
CEILING
COS
COT
COUNT
CRC32
DEGREES
EXP
FLOOR
FORMAT
GREATEST
GROUP_CONCAT
LEAST
LN
LOG
LOG2
LOG10
MAX
MIN
MOD
PI
POW
POWER
RADIANS

RAND
ROUND
SIGN
SIN
SQRT
STD
STDDEV
SUM
TAN
TRUNCATE
VARIANCE

Funes de controlo de fluxo


CASE
IF
IFNULL
NULLIF

Utilitrios da linha de comando


comp_err
isamchk
make_binary_distribution
msql2mysql
my_print_defaults
myisamchk
myisamlog
myisampack
mysqlaccess
mysqladmin
mysqlbinlog
mysqlbug
mysqlcheck
mysqldump
mysqldumpslow
mysqlhotcopy
mysqlimport

mysqlshow
perror

Perl API Utilizando funes e metodos construidos em Perl DBI com MySQL
available_drivers
begin_work
bind_col
bind_columns
bind_param
bind_param_array
bind_param_inout
can
clone
column_info
commit
connect
connect_cached
data_sources
disconnect
do
dump_results
err
errstr
execute
execute_array
execute_for_fetch
fetch
fetchall_arrayref
fetchall_hashref
fetchrow_array
fetchrow_arrayref
fetchrow_hashref
finish
foreign_key_info
func
get_info

installed_versions
last_insert_id
looks_like_number
neat
neat_list
parse_dsn
parse_trace_flag
parse_trace_flags
ping
prepare
prepare_cached
primary_key
primary_key_info
quote
quote_identifier
rollback
rows
selectall_arrayref
selectall_hashref
selectcol_arrayref
selectrow_array
selectrow_arrayref
selectrow_hashref
set_err
state
table_info
table_info_all
tables
trace
trace_msg
type_info
type_info_all
Atributos para gerir

PHP API Utilizando funes construidas em PHP com MySQL


mysql_affected_rows

mysql_change_user
mysql_client_encoding
mysql_close
mysql_connect
mysql_create_db
mysql_data_seek
mysql_db_name
mysql_db_query
mysql_drop_db
mysql_errno
mysql_error
mysql_escape_string
mysql_fetch_array
mysql_fetch_assoc
mysql_fetch_field
mysql_fetch_lengths
mysql_fetch_object
mysql_fetch_row
mysql_field_flags
mysql_field_len
mysql_field_name
mysql_field_seek
mysql_field_table
mysql_field_type
mysql_free_result
mysql_get_client_info
mysql_get_host_info
mysql_get_proto_info
mysql_get_server_info
mysql_info
mysql_insert_id
mysql_list_dbs
mysql_list_fields
mysql_list_processes
mysql_list_tables
mysql_num_fields

mysql_num_rows
mysql_pconnect
mysql_ping
mysql_query
mysql_real_escape_string
mysql_result
mysql_select_db
mysql_stat
mysql_tablename
mysql_thread_id
mysql_unbuffered_query