(da linha de comandos MySQL).

Propaganda
Nas edições anteriores mostramos como criar uma tabela, efetuar inclusões, alterações,
exclusões e até mesmo backups.
Hoje vamos falar sobre um assunto prático, porém, que pode facilitar a todos os programadores
que lêem estas matérias!
Não sei se você já passou por isso, mas… eu já passei por situações que apesar de saber
programar, não sabia qual comando usar e quando encontrava em algum tutorial, não sabia
porque usava (apenas copiava e colava).
Hoje vamos dar alguns exemplos de comandos MySQL, criando exemplos práticos de suas
definições!
Para facilitar sua busca, vamos disponibilizar em ordem alfabética, ok?
- mysql_affect_rows:
Este comando tem o objetivo de retornar o número de linhas afetadas por uma consulta.
Exemplo:
$resultado = mysql_query($query);
if ($resultado && mysql_affect_rows() > 0){
OBS.: O mysql_affect_rows só será válido quando usado em “querys” que alterem o conteúdo
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 conexão com o banco de dados MySQL.
Exemplo:
$conexao = mysql_connect('servidor', 'usuariohost', 'senhahost');
if (!$conexao){ die 'Não pude conectar' . mysql_error()); }else { echo 'conexão ok'; }
mysql_close($conexao);<code>
OBS.: O comando mysql_close não irá fechar conexões persistentes criadas por
mysql_pconnect().
- mysql_connect:
Este comando tem o objetivo de abrir a conexão com um banco de dados MySQL.
Exemplo: Está disponível 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 'Não 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 invés de utilizar o mysql_create_db, usar o mysql_query, para fazer o
comando CREATE DATABASE. Para compatibilidade com versões anteriores, o
mysql_create_db também 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 “Não 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 função mysql_data_seek() pode ser usada somente em conjunto com o mysql_query e
não 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 função está obsoleta desde o PHP 4.0.6. Ao invés 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 'Não pude conectar' . mysql_error()); }
else { if(mysql_drop_db(“basededados”)){ echo “base de dados excluída com sucesso”;
}// fecha if(mysql_drop_db(“basededados”)){
}// fecha if (!$conexao){
OBS.: Esta função também está obsoleta. Ao invés dela, é aconselhável utilizar o comando
mysql_query.
- mysql_errno:
Este comando tem por finalidade retornar o número do erro da última chamada MySQL.
Exemplo:
$conexao = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!mysql_select_db("base de dados não existente", $conexao)) {
echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";
}
O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados não
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 não existente", $conexao)) {
echo mysql_errno($conexao) . ": " . mysql_error($conexao). "n";
}
O exemplo acima vai imprimir algo assim: 1049: Unknown database 'base de dados não
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 informações sobre um campo da consulta (objeto).
Exemplo:
mysql_connect('localhost:3306', $user, $password) or die ("Não 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 "Informação para a coluna $i:
n";
$meta = mysql_fetch_field($result,$i);
if (!$meta) { echo "Informação não disponivel
n"; }
echo "
blob:
$meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name:
$meta->name
not_null:
$meta->not_null
numeric:
$meta->numeric
primary_key: $meta->primary_key
table:
$meta->table
type:
$meta->type
unique_key: $meta->unique_key
unsigned:
$meta->unsigned
zerofill:
$meta->zerofill
";
$i++;
}
mysql_free_result($result);
- mysql_fetch_lengths:
Este comando tem por finalidade retornar o tamanho máximo 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->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 específico 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:
Através 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á possível 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 memória 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 cláusula INSERT executada.
Exemplo:
$query = "INSERT INTO TABELA (produto) VALUES ('valor');
$resultado = mysql_query($query);
printf("A última inserção 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 invés deste comando utilizar a função SQL
interna do MySQL LAST_INSERT_ID() em uma consulta SQL.
- mysql_list_fields:
Através deste comando será possível retornar a relação 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:
Através deste comando será possível listar os bancos de dados disponíveis 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:
Através deste comando será possível listar as tabelas existentes em um banco de dados MySQL.
Exemplo:
$nomedobd = 'nomedabasededados';
if (!mysql_connect('servidor', 'usuariodoservidor', 'senhadoservidor')){
echo 'Não foi possível conectar com o MySQL';
exit;
}
$resultado = mysql_list_tables($nomedobd);
- mysql_num_fields:
Através deste comando será possível retornar o número de campos de uma consulta.
Exemplo:
$query = "SELECT * FROM TABELA";
$resultado = ($query);
$campos = mysql_num_fields($resultado);
echo $campos;
- mysql_num_rows:
Através deste comando será possível retornar o número 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 conexão persistente com o banco de
dados.
Exemplo:
$conexao = mysql_pconnect('servidor', 'usuariohost', 'senhahost');
- mysql_query:
Um dos comandos mais utilizados do MySQL. Através deste comando você poderá enviar uma
consulta SQL ao banco de dados MySQL.
Exemplo:
$query = “SELECT * FROM DATABASE”;
$resultado = mysql_query ($query);
- mysql_result:
Através 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('Não conectado : ' . mysql_error()); }
$db_selected = mysql_select_db('tabela', $conexao);
if (!$db_selected) { die ('Não 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 matéria.
No início como Programador apanhei bastante, por não saber como estes comandos eram
utilizados e o que eles faziam exatamente.
Creio que alguns dos exemplos acima certamente lhe serão úteis no dia a dia!
Envie-nos suas dúvidas e dê sugestões para as próximas matérias! 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 diferenças 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 condições para filtrar os dados retornados na consulta
GROUP BY Agrupa dados na consulta.
HAVING Limita o resulta em uma condição estabelecida.
ORDER BY Especifica a coluna ou as colunas que serão ordenadas na consulta
Usando o Select na forma básica
Select * FROM empregados
No exemplo acima, usamos as cláusulas Select e From. O * (asterisco) indica que todas as colunas da tabela
devem ser retornadas.
Em muitos casos é recomendável selecionar algumas colunas apenas e não todas como no exemplo acima, isto
deve ser considerado pois quando o tamanho do banco aumentar as consultas poderão ficar lentas em função do
grande volume de informações contida nas tabelas.
Selecionando colunas específicas para a consulta
SELECT nome,salario, cidade
FROM empregados
Para retornar apenas as colunas desejadas, basta indicar os seus nomes na instrução select como no exemplo a
seguir, onde selecionamos o nome, salário 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 não houve alteração 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 concatenação de forma diferente do SQL Server e do Access, enquanto que no Mysql usamos a
função concat(), no SQL Server e no Access fazemos pelo sinal de adição.
Exemplo de concatenação no Mysql:
SELECT concat(nome, ' mora em ', cidade, '/', estado
FROM empregados
Exemplo de concatenação em SQL Server ou Access
SELECT nome + ' mora em ' + cidade + '/' + estado
FROM empregados
O sinal + (mais) indica concatenação e deve ser usado para concatenar colunas ou uma coluna com um texto.
Só poderá ser concatenado colunas do tipo texto, caso for necessário concatenar colunas do tipo data ou
numérico, é necessário fazer a conversão dessas colunas para texto.
A função CONVERT() do SQL Server é usada para fazer a conversão 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 salário 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 função, isto é necessário 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 cláusula SELECT.
SELECT distinct cidade
FROM empregados
No exemplo acima, usamos a palavra-chave distinct na coluna cidade, mas é possível relacionar mais de uma
coluna, por exemplo, cidade e estado. Neste caso a combinação das duas colunas deve ser distinta.
Limitando o nº de linhas em uma consulta
Limitar o número de linhas é usado quando não queremos listar todas as linhas de uma tabela, seja pelo volume
de linhas ou por não haver necessidade. O Mysql trata esta questão 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, porém 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 administração 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 cabeçalho normal do bash foi substituído 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 instalação do phpBB, que
veremos a seguir. Um detalhe importante é que todos os comandos dados dentro do prompt do MySQL devem
terminar com ponto-e-vírgula:
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 além da base "phpbb" que criamos, existem mais três bases de dados, criadas durante a instalação. As
bases "mysql" e "information_schema" são para uso interno do MySQL, incluindo o armazenamento das
configurações (sendo um banco de dados, o MySQL usa a sí mesmo para armazenar suas configurações :),
enquanto a base "test" é uma DB vazia, que pode ser usada para fins de teste.
Temos em seguida a questão das permissões 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 vários scripts e aplicativos no mesmo servidor, ou se as bases de dados
serão acessadas por vários usuários.
O ideal é que cada base de dados tenha um usuário próprio e seja acessível apenas por ele. Se você vai instalar
o phpBB (fórum) e o WordPress (gerenciador de conteúdo), por exemplo, crie duas bases de dados ("phpbb" e
"wordpress", por exemplo) e dois usuários separados, cada um com permissão para acessar uma das duas bases.
Na configuração de cada um dos gestores, informe a base de dados que será usada e o usuário e senha
correspondente. Isso evita que eventuais problemas de segurança em um coloquem em risco também os dados
referentes ao outro.
Outra situação comum é ao configurar um servidor com vários 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 próprio, com
acesso apenas às suas próprias bases de dados.
Para criar um usuário "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 usuário phpbb, identificado pela senha nDPIcqq9)
mysql> FLUSH PRIVILEGES;
O comando "FLUSH PRIVILEGES" faz com que o servidor MySQL atualize as tabelas de permissões, fazendo
com que a alteração entre em vigor automaticamente, em vez de apenas da próxima vez que o servidor for
reinicializado. Na verdade, ele não é necessário ao adicionar usuários usando o comando "GRANT" (como no
nosso caso) mas é saudável se acostumar a utilizá-lo sempre que usar comandos que modifiquem as permissões
de acesso. Você vai notar que a maioria dos tutoriais inclui o comando depois das operações relacionadas a
alterações nas permissões de acesso.
Continuando, para trocar a senha posteriormente, use o comando:
mysql> SET PASSWORD FOR phpbb = PASSWORD('JSAm950A');
(defina senha para o usuário 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 permissões de acesso de um usuário anteriormente criado (em um site
com vários 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 usuário phpbb)
mysql> FLUSH PRIVILEGES;
Com isso, o usuário 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 usuário, usamos o
comando "DROP USER", como em:
mysql> DROP USER phpbb
O comando "DROP USER" é suportado apenas pelas versões recentes do MySQL. Caso você esteja usando
uma versão antiga, onde ele ainda não 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
inglês. Quem tem uma boa familiaridade com a língua tem bem mais facilidade em dominar os comandos.
Outra observação é que os comandos não são case sensitive. Tanto faz escrever "CREATE DATABASE
phpbb;" ou "create database phpbb;". Escrever os comandos em maiúsculas é apenas uma forma de dar mais
destaque a eles.
1 comentário
Segue uma lista dos comandos mais comuns que são utilizados de tempos a tempos.
Para fazer login (de uma shell Unix) utilize -h apenas de necessário.
[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 informação de uma tabela.
SELECT * FROM [table name];
Retornar a informação 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 número 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 ‘joão’ e pelo telefone ‘3444444′.
SELECT * FROM [table name] WHERE name like “joão%” AND phone_number = ‘3444444′;
Utilizar uma expressão regular para encontrar entradas. Utilizar “REGEXP BINARY” para forçar casesensitivity. Neste caso procura qualquer entrada começada 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 número 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 previlégios 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 informação 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 premissões e previlégios 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 Declarações 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
Funções 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
Funções 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
Funções matemáticas e de agregação
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
Funções de controlo de fluxo
CASE
IF
IFNULL
NULLIF
Utilitários 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 funções 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 funções 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
Download