0

Imagens no MySQL

logo_mysql_gr

Trabalhando com Imagens no MySQL

Nesta postagem veremos uma forma de se trabalha com o armazenamento de imagens no MySQL. Para isso devemos conhecer um pouco o tipo de dado BLOB.

Tipos de Campo Blob (Binary Large Object)

Os campos de tipo blob são campos criados para armazenar qualquer tipo de informação em formato binário dentro de uma tabela no banco de dados. Os campos BLOBs na verdade são campos do tipo TEXT sendo que o BLOB não são case-sensitive como os campos de tipo TEXT.

Restrições dos campos BLOB

  • Não podem ser chaves primárias (excluindo Tinyblob);
  • Não é possível usar os comandos GROUP e SORT com campos blob;
  • São reconhecidos como um LONGVARCHAR para drivers ODBC.

No MySQL existem 4 definições de campos BLOBs, seguem elas:

  • TINYBLOB - armazena 255 caracteres (8 bits) mais 1 de controle;
  • BLOB - armazena até 16535 caracteres (16 bits) mais 2 de controle;
  • MEDIUMBLOB - armazena até 16777216 caracteres (24 bits) mais 3 de controle;
  • LONGBLOB - armazena até 4294967295 caracteres (32 bits) mais 4 de controle.

Criando uma tabela para armazenar imagens

 Inserindo uma imagem na tabela

Note que utilizo o LOAD_FILE para buscar um arquivo no diretório c:/tmpfotos, ao executar o insert é salvo na base o binário da foto.

Selecionando e salvando em um Diretório

Para buscar e salvar a foto em um diretório verifique se o usuário tem permissão para gravar no mesmo, além de verificar senão existe um arquivo com o mesmo nome. Nos próximos posts uma demonstração com o php.

 

0

Tipos de Tabelas no Mysql

logo_mysqlTipos de Tabelas no Mysql

No MySQL podemos definir vários tipos de tabelas, sendo que um banco de dados pode conter diferentes tipos de tabelas. Quando criamos uma nova tabela, você pode dizer ao MySQL que tipo de tabela criar. O tipo padrão é o MyISAM.

Abaixo segue um descrição rápida dos tipos de tabelas suportados pelo MySQL:

  • MyISAM: MyISAM é o tipo de tabela padrão no MySQL baseada no código ISAM possuindo várias extensões úteis, onde o índice é armazenado em um arquivo com extensão .MYI (MYIndex), e os dados são armazenados em um arquivo com a extensão .MYD (MYData). Você pode verificar/reparar tabelas MyISAM com o utilitário myisamchk.
  • Merge: Uma tabela MERGE (também conhecida como tabela MRG_MyISAM) é uma coleção de tabelas MyISAM idênticas. Você só pode fazer SELECT, DELETE, e UPDATE da coleção de tabelas. Se você fizer um DROP na tabela MERGE, você só está apagando a especificação de MERGE.
  • HEAP: As tabelas HEAP do MySQL utilizam hashing 100% dinâmico sem áreas em excesso. Não há espaços extras necessários para listas livres. Tabelas HEAP também não têm problemas com deleção + inserção, o que normalmente é comum em tabelas com hash:
  • InnoDB: O InnoDB provê o MySQL com um mecanismo de armazenamento seguro com transações (compatível com ACID) com commit, rollback, e recuperação em caso de falhas. InnoDB faz bloqueio a nível de registro e também fornece uma leitura sem bloqueio em SELECT em um estilo consistente com Oracle. Estes recursos aumentam a performance e a concorrência de multi-usuários. InnoDB é o primeiro gerenciador de armazenamento no MySQL que suportam restrições FOREIGN KEY.
  • BerkeleyDB ou BDB: Tem favorecido o MySQL com um mecanismo de armazenamento transacional. Tabelas BDB podem ter maior chance de sobrevivência a falhas e também são capazes de realizar operações COMMIT e ROLLBACK em transações.
0

Consulta Full-Text com MySQL

logo_mysql_gr

 

Consulta FULL-TEXT com MySQL

Uma consulta Full-Text provê ao usuário uma busca de texto com uma maior precisão. Grande parte das aplicações que precisam realizar consultas em um grande conteúdo de texto fazem uso de índices full-text para otimizar as suas buscas.

Para criar um mecanismo de busca eficiente usamos um índice full-text.

Segue um breve exemplo de como funciona:

  • Criar a tabela a ser adicionado o índice FULL-TEXT.

  • Alterar o motor de armazenamento da tabela para MyISAM.

  • Incluir os índices FULL-TEXT.

ou

  • Popular a tabela tb_produtos. 

  • Consultas utilizando o índice FULL-TEXT. 

consulta1

 

0

COMANDOS DDL

logo_mysql_grCOMANDOS DDL (DATA  DEFINITION LANGUAGE)

Na postagem a seguir veremos as sintaxes dos comandos de definição de dados.

Os comandos de definições de dados são:

  • CREATE
  • ALTER
  • DROP

Como vimos no post anterior os comando de definições de dados são utilizados para criar, alterar ou excluir a estrutura de uma tabela ou banco de dados. 

CRIANDO UM BANCO DE DADOS

Sintaxe:


Exemplo:

EXCLUÍNDO UM BANCO DE DADOS

 Sintaxe:


Exemplo:


Após criar um banco de dados você pode selecionar o mesmo para o uso com o comando a seguir:


CRIANDO UMA TABELA

Quando criamos uma tabela no bando de dados precisamos definir os tipos de dados que cada atributo deverá armazenar os mais comuns são: varchar(n), char(n), date/time, float, double, real. Confira o próximo post sobre tipos de dados do mysql.

Sintaxe:


Exemplo:


ALTERANDO UMA TABELA

Podemos alterar, excluir ou incluir uma nova coluna na tabela.

ADIONANDO UMA NOVA COLUNA

Para adicionar utilizaremos o modificador ADD.

Sintaxe:


Exemplo:


EXCLUINDO UMA COLUNA

Para excluir utilizaremos o modificador DROP.

 Sintaxe:


Exemplo:


MODIFICANDO UMA COLUNA

Para modificar utilizaremos o modificador MODIFY.

 Sintaxe:


Exemplo:

0

Tipos de Comandos do MYSQL

logo_mysql_grTipos de Comandos do MYSQL

DML – Linguagem de Manipulação de Dados

Primeiro há os elementos da DML (Data Manipulation Language – Linguagem de Manipulação de Dados). A DML é um subconjunto da linguagem usada para selecionar, inserir, atualizar e apagar dados. SELECT é o comumente mais usado do DML, comanda e permite ao usuário especificar uma query como uma descrição do resultado desejado. A questão não especifica como os resultados deveriam ser localizados.
  • INSERT é usada para somar uma fila (formalmente uma tupla) a uma tabela existente;
  • UPDATE para mudar os valores de dados em uma fila de tabela existente;
  • DELETE permite remover filas existentes de uma tabela;
  • BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não;
  • COMMIT envia todos os dados das mudanças permanentemente;
  • ROLLBACK faz com que as mudanças nos dados existentes desde que o último COMMIT ou ROLLBACK sejam descartadas.
COMMIT e ROLLBACK interagem com áreas de controle como translação e locação. Ambos terminam qualquer translação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação.

DDL – Linguagem de Definição de Dados

O segundo grupo é a DDL (Data Definition Language – Linguagem de Definição de Dados). Uma DDL permite ao usuário definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL tem extensões proprietárias no DDL.
Os comandos básicos da DDL são:
  • CREATE cria um objeto (uma Tabela, por exemplo) dentro do base de dados;
  • DROP apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente.

DCL – Linguagem de Controle de Dados

O terceiro grupo é o DCL (Data Control Language – Linguagem de Controle de Dados). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.
Duas palavras-chaves da DCL:
  • GRANT - autoriza ao usuário executar ou setar operações;
  • REVOKE - remove ou restringe a capacidade de um usuário de executar operações.
0

INTRODUÇÃO AO MYSQL

logo_mysql_grINTRODUÇÃO AO MYSQL

O MySQL, um dos mais populares sistemas de gerenciamento de banco de dados SQL Open Source, é desenvolvido, distribuído e tem suporte da MySQL AB. A MySQL AB é uma empresa comercial, fundada pelos desenvolvedores do MySQL, cujos negócios é fornecer serviços relacionados ao sistema de gerenciamento de banco de dados MySQL.

banco-de-dados-webUm banco de dados é uma coleção de dados estruturados. Ele pode ser qualquer coisa desde uma simples lista de compras a uma galeria de imagens ou a grande quantidade de informação da sua rede corporativa. Para adicionar, acessar e processar dados armazenados em um banco de dados de um computador, você necessita de um sistema de gerenciamento de bancos de dados como o Servidor MySQL. Como os computadores são muito bons em lidar com grandes quantidades de dados, o gerenciamento de bancos de dados funciona como a engrenagem central na computação, seja como utilitários independentes ou como partes de outras aplicações.
 
O MySQL é um sistema de gerenciamento de bancos de dados relacional. Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar todos os dados num só local. Isso proporciona velocidade e flexibilidade. A parte SQL do “MySQL” atenta pela “Structured Query Language – Linguagem Estrutural de Consultas”. SQL é a linguagem padrão mais comum usada para acessar banco de dados e é definida pelo Padrão ANSI/ISO SQL. O padrão SQL vem evoluindo desde 1986 e existem diversas versões.
 
O MySQL é um software Open Source. Open Source significa que é possível para qualquer um usar e modificar o programa. Qualquer pessoa pode fazer download do MySQL pela Internet e usá-lo sem pagar nada. Se você quiser, você pode estudar o código fonte e alterá-lo para adequá-lo as suas necessidades. O MySQL usa a GPL (GNU General Public License – Licença Pública Geral GNU) , para definir o que você pode e não pode fazer com o software em diferentes situações. Se você sentir desconforto com a GPL ou precisar embutir o MySQL em uma aplicação comercial, você pode adquirir a versão comercial licenciada com a MySQL AB.