Dicas rápidas MySQL (atualizando…)
- ViNaWeb
14 de jun, 2009
Separei diversos comando que usamos no dia a dia e aqueles que usamos, não anotamos e quando precisamos novamente não econtramos com facilidade. Assim, se você quiser adicionar algum cmd é só enviar um contato que atualizo o post.
São comandos de manipulação de estrutura, dados e instaladores.
Comandos para manipulação de estrutura
Criando data bases
CREATE DATABASE nomedadb;
Selecionar a data base a ser usada
USE nomedadb;
Criando tabelas
CREATE TABLE `nomedatabela` (
`campo1` int(11) NOT NULL, /*campo do tipo inteiro onde not null = não nulo tornando-o obrigatório*/
`campo2` varchar(200) default NULL, /*texto, e por ae vai, é só pegar os tipos como float, datetime para data e hora, lembrando que o padrao americano é aaaa-mm-dd*/
PRIMARY KEY (`id`) /*chave primaria*/
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Mostrando tabelas criadas na db
SHOW TABLES;
Mostrando db criadas
SHOW DATABASES;
Mostrando detalhes da tabela
DESCRIBE tabela;
Mostrando somente as colunas
SHOW COLUMNS FROM tabela;
Alterar a estrutura da tabela
Adicionando uma coluna
ALTER TABLE tabela ADD COLUMN nomeDoCampoNovo CHAR(1) AFTER nomeDoCampoQueFicaraAntesDoCampoNovo;
Alterado um campo
ALTER TABLE `tabela` MODIFY COLUMN `campo` INTEGER(5);
No caso acima nos modificamos o campo para inteiro, para funcionar atente ao formato anterior para não perder nenhum dado.
Estrutura de tabela com chave estrangeira
CREATE TABLE `tabela` (
`campo` int(11) NOT NULL,
FOREIGN KEY (`campo`) REFERENCES `tabelaAssociada` (`campoAssociado`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Vale notar que o que vc quiser tratar como chave estrangeira use:
FOREIGN KEY (`campo`) REFERENCES `tabelaAssociada` (`campoAssociado`)
Excluir tabela
DROP TABLE tabela;
Comandos para manipulação de dados
Inserindo informações na tabela
INSERT INTO tabela (`campo1TipoNumero`,`campo2TipoTexto`) VALUES
(1,’João’),
(5,’Maria’);
Repare que ao inserir numero não se usa ” e para texto usa.
Atualizando
UPDATE SET campo = novaInformacao WHERE campo = informacaoBuscada;
WHERE significa quando, usado em tudo quanto é canto, busca, delete, etc.
EX.: quero todos alunos com idade abaixo de 10
WHERE aluno < 10
Excluindo
DELETE FROM tabela WHERE campo = algumaCoisa;
Consultas
Para retornar tudo da tabela
SELECT * FROM tabela;
Para retorna somente campos selecionados
SELECT campo1,campo2 FROM tabela;
Para consultar com condição
SELECT * FROM tabela WHERE campo = algumValor;
Lembrando que vc pode usar várias condições, acrescentando AND ou OR nas comparações;
SELECT * FROM tabela WHERE campo = algumValor AND campo < x;
Consultas ligando tabelas
SELECT * FROM tabela INNER JOIN tabelaLigada ON tabelaLigada.campo = tabela.campo;
pode fazer vários… INNER JOIN tabelaLigada ON tabelaLigada.campo = tabela .campo INNER JOIN tabelaLigada ON tabelaLigada.campo = tabela .campo, etc.
você poderá usar tabém o LEFT ALTER JOIN e o RIGHT ALTER JOIN, etc.
Ordenando a consulta
De forma crescente
SELECT * FROM showsvistos ORDER BY campo;
De forma decrescente (de z para a, de 9 para 0)
SELECT * FROM showsvistos ORDER BY campo DESC;
OPERAÇÕES
Soma = SUM(campo)
Média = AVG(campo)
Contar registros da tabela = COUNT(*)
Selecionar infomações distintas = DISTINCT(campo)
Limitar resultados em sua consulta = LIMIT x /* Insira no final do SELECT e substitua x pelo numero de registros que vc quer retornar*/
Atribuir novo nome ao campo buscado = AS nomeNovo (EX. SELECT nome AS nomeQualquer FROM tabela)
Converter string para data = STR_TO_DATE(’06/02/1985′,’%d/%m/%Y’) /* Este recurso é muito útil quando pegamos tabelas onde as datas estão armazenadas como varchar, e quando precisamos ordenar a pesquisa dá erro. Basta você converter a string para data e ordenar, a saída será a data no padrão americano, usado pelo banco de dados. Aonde está %d/, a ‘/’ significa a separação, se a sua data estiver separada por ‘,’ coloque %d, */
Comandos para manutenção
Limpar tabela
TRUNCATE table tabela;
Otimizar tabela
OPTIMIZE table tabela;
Reparar tabela
REPAIR table tabela;
Dar permissão a USUÁRIO
GRANT ALL PRIVILEGES ON nomedabase.* to usuario@ip_de_onde_vai_acessar IDENTIFIED by ‘senha_do_caboco’;
Você pode ser mais cuidadoso e falar o que e onde o cara vai poder mexer:
GRANT insert,delete ON nomedabase.tabela to usuario@ip_de_onde_vai_acessar IDENTIFIED by ‘senha_do_caboco’;
****** LEMBRETES QUE UM DIA PODE SERVIR PARA ALGUMA COISA ******
>> O MySQL funciona por padrão na porta: 3306
>> Manual de referências online: Clique aqui
>> A versão pdf do manual é: http://downloads.mysql.com/docs/refman-4.1-pt.pdf
>> Instalação e programas de gerenciamento (SGBD) como: MySQL Administrator, MySQL Query Browser, MySQL Workbench, CONECTORES, etc… estão disponíveis aqui: http://dev.mysql.com/downloads/
—> O Query Browser é usado para manipular as tabelas, procedures, etc.. O Administrator, para criar usuários, permissões, enfim, como o próprio nome diz Administrar e o Worbench para criar estruturas visuais e afins.
Um bom recurso para usar quando trabalhamos como MySQl é o MySQL System Tray Monitor, ele fica na barra ao lado do relógio e com isso facilmente você gerencia conexões, chama o Query Browser, Administrator e outros.
João Gabriel
joaodosite.com
Parabéns pelo site.
Obrigado pela dica.
Sou estudante de MySQL pela ADV informática, http://www.cursoadv.com.br
Estou treinando em casa e criando meus bancos de dados e seu site tem me ajudado basntante.
Como se faz uma query de uma tabela?
Realmente muito útil!!! 😀