Arquivo da categoria: Banco de Dados

Criando Triggers no MySQL

Triggers ou gatilhos é um recurso bastante interessante presente na maioria dos SGBDs pois permite que comandos SQL sejam executados antes ou depois de operações como INSERT, UPDATE e DELETE.

No exemplo de hoje, vamos imaginar que possuímos uma tabela chamada registros, cujos campos serão: id, nome, alteracoes.

O campo alteracoes irá conter o número de edições que o registro sofreu, ou seja, será incrementado a cada UPDATE. Para criar um gatilho que faça a atualização do campo alteracoes será necessário executar o seguinte comando:

Continue lendo

Excluindo registros duplicados no MySQL

Vamos supor que você possua uma tabela e por algum motivo os registros da tabela foram duplicados. Agora imagine que são milhares de registros e que você não pode ficar procurando os registros repetidos um a um.

Para isto, temos um comando SQL mágico, que irá remover os registros duplicados, mantendo apenas uma cópia de cada.

Continue lendo

Utilizando migrations no CakePHP 3

cakephp_logoMigrations é um recurso que permite ao desenvolvedor, controlar as alterações realizadas na estrutura da sua base de dados, permitindo assim, um versionamento melhor do banco de dados. No final das contas são arquivos PHP que estendem a classe AbstractMigration e através da API disponibilizada pelo CakePHP, constroem e modificam a base de dados.

Neste pequeno post, vou mostrar como instalar o plugin Migrations e executar uma migração básica. Para isto, assumo que você tenha familiaridade com o Composer e com o CakePHP.

Para instalar o plugin, o jeito mais fácil é utilizar o Composer:

Continue lendo

Analisando e Otimizando Tabelas no MySQL

No MySQL, quando uma tabela sofre constantes inserções e remoções, podem haver certos problemas relacionados a performance.

Para solucionar estes problemas, os comandos analyze e optimize podem ser utilizados. Basicamente eles analisam e otimizam as tabelas respectivamente. Seria como uma espécie de “desfragmentação” das tabelas.

Para fazer o procedimento de análise e otimização, basta executar os comandos:

Continue lendo

Copiando dados de uma coluna para outra no MySQL

Uma dica simples e rápida para uma tarefa trivial em banco de dados: copiar os dados de uma coluna para outra.

Vamos supor que queremos copiar o valor do campo preco_promocao para o campo preco_venda na tabela produtos. Para isto, basta utilizar:

UPDATE produtos SET preco_venda = preco_promocao

Até a próxima 😉

Criando views no MySQL

A criação de views é um recurso presente na maioria dos SGBDs. Views são parecidas com tabelas virtuais, ou seja, encapsulamos uma consulta complexa em uma view e após isto consultamos nossa view como se esta fosse uma tabela.

Um exemplo de criação de view seria:

CREATE VIEW view_teste AS SELECT * FROM produtos

No exemplo acima, criamos uma view que consulta os dados da tabela produtos. Para consultar os dados de nossa view, poderíamos utilizar o comando:

Continue lendo

Expressões Regulares no MySQL

Expressões regulares são ferramentas extremamente poderosas para realizar buscas com strings. O MySQL por sua vez, possui um comando fantástico, onde é possível buscar registros com o auxílio de expressões regulares. Este comando é o REGEXP, ou, RLIKE.

Ele é bastante semelhante ao LIKE, porém sem o uso dos caracteres _%. Exemplo:

Continue lendo

Utilizando LIMIT no Firebird

Bom, na verdade o Firebird não possui o comando LIMIT. Porém, nem tudo está perdido, entra em cena então, os comandos FIRST e SKIP. Estes dois possuem um comportamento semelhante ao LIMIT do MySQL, permitindo selecionar uma determinada faixa de registro de uma consulta.

No MySQL por exemplo, quando precisamos selecionar os 10 primeiros registros de uma consulta, utilizamos:

Continue lendo

Convertendo uma tabela do MySQL para UTF-8

Em algumas ocasiões, é preciso converter uma tabela do MySQL e seus campos para UTF-8. Para realizar este procedimento, basta utilizar o comando ALTER TABLE juntamente com o comando CONVERT TO:

ALTER TABLE usuarios CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

No exemplo acima, a tabela usuarios e seus campos de texto foram convertidos para UTF-8.

Até a próxima 😉

Criando índices no MySQL

A criação de índices em tabelas do MySQL é um recurso indispensável na otimização de consultas. Através da criação de índices, o MySQL consegue encontrar os dados mais facilmente, evitando o trabalho de ter que percorrer cada registro da tabela. Em tabelas com muitos registros, o ganho de desempenho é monstruoso.

Continue lendo