Navegando na internet encontrei este artigo que mostra como otimizar o armazenamento do IP como inteiro, e alertar para o uso inadequado de tipos de dados.
O artigo é bem simples e fácil de entender.

====== post original ======
Neste artigo explicarei qual a principal vantagem de armazenarmos endereços IP com o tipo de dados “inteiro” ao invés do tradicional “char/varchar”. E isto pode servir de exemplo para outros campos/colunas. Para que você possa entender melhor vamos criar uma tabela simples de forma que possamos armazenar algum endereço IP utilizando o tipo CHAR.

mysql> CREATE DATABASE exemplo;
mysql> USE exemplo;
 
mysql> CREATE TABLE log
           (
            id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
            usuario CHAR(30),
            visitas INT,
            ip CHAR(15)
           );

Vamos inserir alguns registros nesta tabela.

mysql> INSERT INTO log VALUES(null, 'douglas', 10, '192.168.10.10');
mysql> INSERT INTO log VALUES(null, 'luciana', 10, '200.213.162.161');
mysql> INSERT INTO log VALUES(null, 'alberto', 10, '213.187.0.1');

Bem, por enquanto temos três registros em nossa tabela, começaremos nossa primeira análise.

[Leia Mais]

Read More →

MariaDB é um servidor de banco de dados que oferece a funcionalidade de substituição drop-in para o MySQL. MariaDB é construído por alguns dos autores originais do MySQL, com a ajuda da grande comunidade de desenvolvedores de software livre e open source. Além das funcionalidades básicas do MySQL, MariaDB oferece um rico conjunto de aprimoramentos de recursos, incluindo mecanismos de armazenamento alternativo, otimizações de servidores e patches.

MariaDB é impulsionada principalmente pelos desenvolvedores de Monty Program, uma empresa fundada por Michael “Monty” Widenius, o autor original do MySQL, mas isso não é toda a história sobre MariaDB. Em “Sobre MariaDB” página você vai encontrar mais informações sobre todos os participantes da comunidade MariaDB, incluindo o armazenamento e motores XtraDB PBXT.

MariaDB.com é organizado pela Open Database Alliance, um consórcio independente de fornecedor de desenvolvedores de código aberto do banco de dados e provedores de solução. O Open Database Alliance garante que você vai encontrar produtos, suporte e serviços para MariaDB que são os melhores da indústria do software tem para oferecer.

Obrigado pelo seu interesse em MariaDB. Estamos ansiosos para fornecê-lo com um produto e projeto que se adapte às suas necessidades, seja na implantação de um blog ou um hobby datacenter da empresa-classe!

Tradução Google,  http://mariadb.org/

Continuação do artigo Funções básicas do MySQL – Iniciantes

Hoje vou falar um pouco sobre funções lógicas e strings.

Funções Lógicas

Podemos usar algumas funções logicas dentro do MySQL, como exemplo a comparação entre duas colunas COL1, COL2; se col1 for maior que col2, enfim vamos ao que interessa.

SSELECT IF (COL1 > COL2, )

http://dev.mysql.com/doc/refman/4.1/pt/logical-operators.html

Funções de String

As funções de string server para manipulação de texto, como remoção de espaços em branco, maiusculas e minusculas entre outros recursos, que ajuda no desenvolvimento de sites e sistemas

Antes de começarmos crie uma tabela chamada clientes conforme abaixo;

MySQL Trigger(Gatilho)

O que é um trigger ?

Trigger ou gatilho é uma função implementada a partir da versão 5.0.2 do MySQL.
Ele funciona associado a um evento do banco de dados, sempre que for executado uma instrução SQL, insert, delete ou update em determinada tabela o gatilho é disparado.

Criando um trigger

Sintaxe para criação de um trigger

CREATE TRIGGER nome_gatilho
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON tabela
FOR EACH ROW
triggered_statement

Tradução da sintaxe

Criar um gatilho com_esse_nome
BEFORE (antes) ou AFTER (depois) da ação na tabela
INSERT(sempre que uma nova linha é inserida) ou UPDATE (sempre que uma nova linha é atualizada) ou DELETE(sempre que uma linha é deletada)
ON tabela
FOR EACH ROW
INSERT tabela_arquivo (ID, data) VALUES (tab.ID, tab.DATA);

Observações:
Se você usar multiplas instrução dentro do seu trigger é necessário usar BEGIN e END para indicar o inicio e fim da instrução do trigger.
Lembrando que é necessário alterar o delimitador antes da execução do trigger pelo comando DELIMITER || e voltando para ;(ponto e virgula) usando DELIMITER ;

Para visualizar os triggers use o comando.

mysql> SHOW TRIGGERS;

Este post é um resumo sobre trigger, para saber mais visite a documentção oficial no link(inglês): http://dev.mysql.com/doc/refman/5.0/en/triggers.html

As funções do MySQL podem ser divididas nos seguintes tipos: numericas, lógica, manipulação string, e funções de data e hora.

Funções numéricas

Iniciando hoje vou falar sobre funções numéricas que são compostas de operações matemáticas, e deve chamar a função dentro da instrução SQL.

Estou acrescentando esta parte da criação da tabela pela dica do meu xará.. crie uma tabela com o nome precos e insira as linhas conforme SQL abaixo.

CREATE TABLE `precos` (
`col1` INT( 3 ) NOT NULL ,
`col2` INT( 3 ) NOT NULL
) ENGINE =  MYISAM;

INSERT INTO `precos` (`col1` ,`col2`)
VALUES ('2', '4'), ('4', '6'),('5', '9');

Adição

SELECT(col1 + col2) as Resultado FROM precos

Suponhamos que na tabela precos você tenha 3 linhas, conforme abaixo;

col1 col2
2 4
4 6
5 9

Apos fazer a consulta o resultado seria:

Resultado
6
10
14

A consulta somou as linhas separadas, para somar o total das colunas em cada linha, ficaria assim:

SELECT (SUM(col1) + SUM(col2)) as Resultado FROM precos
Resultado
30

Subtração

SELECT(col1 - col2) as Resultado FROM precos

Resultado
-2
-2
-4

Multiplicação


O operador utilizado para mutiplicação é o ( * asterisco).

SELECT(col1 * col2) as Resultado FROM precos

Resultado
8
24
45

Divisão


O operador utilizado para divisão é a ( / barra).

SELECT(col1 / col2) as Resultado FROM precos

Resultado
0.5000
0.6667
0.5556

Se tentar dividir por zero será retornado o valor NULL

Multiplicação


O operador utilizado para mutiplicação é o ( * asterisco).

SELECT(col1 * col2) as Resultado FROM precos

Resultado
8
24
45

Módulo ou MOD


Esta função retorna o restante de dois numeros. Exemplo: 21 / 5 (vinte e um dividido por 5), o resto seria 1

SELECT MOD(21, 5) AS Resultado

Resultado
1

Olá pessoal, hoje vou escrever bem resumido para explicar O que é normalização ?

Normalização é um conjunto de regras que ajuda minimizar problemas de logica.
Ex.. não armazenar os dados de compra junto com os dados dos clientes, pois o mesmo cliente poderá fazer mais de uma compra certo!
A normalização ajuda a tornar o banco de dados mais facil de se entender, basicamente devemos passar por três passos de normalização.
1FN – primeira forma normal, 2NF – segunda forma normal, 3FN – terceira forma normal, e cada formato tem seu proprio conjunto de regras.

Se você tem interesse em banco de dados, é essencial estudar sobre normalização, um abraço a todos.

Olá pessoal, resolvi fazer uma pequena lista de alguns comandos que poderá ajudar quem não tem muito costume de usar prompt.

Apos ter instalado o MySQL em seu computador precisamos iniciar o servidor

No linux acesse a pasta do mysql

> cd mysql
> bin/safe_mysqld &

Vai aparecer uma mensagem pedindo o password

> Enter password:

Para entrar no shel do mysql

>mysql -u root -p senha

acima estamos abrindo conexão com o -usuário root e -password senha

//Lista dos comandos básicos
mysql> show databases; //mostra todos banco de dados

mysql > use nome_banco; //seleciona um banco de dados para trabalhar

mysql> show tables; //mostra todas as tabelas do banco selecionado

mysql> desc ou describe // mostra detalhes da tabela, colunas e tipo de dados

mysql> SELECT @ @datadir; //mostra o diretório de dados do mysql
cada banco de dados é separado por uma pasta com o nome do banco

mysql> select count(*) from tabela; //conta quantidade de registros(linhas) da tabela selecionada

mysql> CREATE DATABASE modelo; //cria um banco de dados chamado modelo

mysql > DROP DATABASE modelo; // Exclui o banco de dados chamado modelo e todos os dados dentro dele


Basicamente é isso pessoal, ate a proxima.

Bom dia a todos… hoje vou mostrar como conectar no banco de dados firebird usando PHP.
em alguns passos você podera conectar no firebird.

1° Passo – Instale o servidor do firebird
acesse o site http://www.firebirdsql.org/ e faça download do firebird, fiz testes usando o firebird 1.5, 2.0, e 2.5 e todos funcionaram normalmente.
Após instalar o firebird reinicie o computador.

2° Passo – O segundo passo é configurar o PHP. A biblioteca para conexão com o firebird

Localize o arquivo php.ini dentro do diretório de instalação do servidor web (apache), e em seguida abra usando um editor de texto(notepad, edit plus…).

Encontre a linha ;extension=php_interbase.dll e remova o ponto e vírgula no inicio, salve, feche e reinicie o serviço do servidor web.

Caso não encontre a linha, insira no final do arquivo.

3° Passo – Criar a conexão com o FireBird

//ibase_connect — Abre uma conexão com um banco de dados InterBase
//pode ser colocado o IP, ou nome do computador onde esta o banco de dados

$servidor = '127.0.0.1:C:/diretorio/banco.FDB';

//conexão com o banco, se der erro mostrara uma mensagem.
if (!($dbh=ibase_connect($servidor, 'SYSDBA', 'masterkey')))
		die('Erro ao conectar: ' .  ibase_errmsg());

Fazer uma consulta no banco.

//Instruções SQL
$sql = 'SELECT COLUNA1, COLUNA2 FROM TABELA';

//Executa a instrução SQL
$query= ibase_query ($dbh, $sql);

//gera um loop com as linhas encontradas
while ($row = ibase_fetch_object ($query)) {

    //imprimi as linhas na tela
    echo $row->COLUNA1 . "n";

}

//Libera a memoria usada
ibase_free_result($query);

//fecha conexão com o firebird
ibase_close($dbh);

Um erro muito comum ao tentar fazer a conexão com o firebird é a seguinte mensagem de erro;

“Warning: ibase_connect() [function.ibase-connect]: Unable to complete network request to host “127.0.0.1”. Failed to locate host machine. The specified name was not found in the hosts file or Domain Name Services.”

Para resolver é bem simples, basta inserir 2 linhas no arquivo de configuração de serviços.
Vá ate o diretorio C:WindowsSystem32driversetc e abra o arquivo services, insira no final do arquivo as seguintes linhas

gds_db    		3050/tcp    						#firebird Database
gds_db    		3050/udp    						#firebird Database

Pronto sua conexão podera ser feita com sucesso.

Para saber mais sobre os comandos que podem ser usados acesse:

http://www.php.net/manual/pt_BR/ref.ibase.php

Continuação do artigo sobre conexão com Oracle usando PHP. Vou mostrar como fazer consultas em tabelas, criar variaveis, e usar OCI_NO_AUTO_COMMIT.

//conexão com o Oracle
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
$erro = oci_error();
trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

//bloco da consulta SQL
$consulta = "select * from cep_localidade";
$stid = oci_parse($conexao, $consulta) or die ("erro");

//Executa os comandos SQL
$exec= oci_execute($stid);

//defini váriaveis
oci_define_by_name($stid, 'COLUNA1', $VAR1);
oci_define_by_name($stid, 'COLUNA2', $VAR2);
oci_define_by_name($stid, 'COLUNA3', $VAR3);

//Abaixo conta a quantidade de linhas retornada da consulta.
echo $nrows = oci_fetch_all($stid, $results);

oci_free_statement($stid);
//fecha a conexão atual
oci_close($conexao);

Pessoal espero que ajude e tire as duvidas de quem vai começar a usar PHP+ORACLE, é um exemplo bem simples de como fazer uma consulta no banco de dados.

Para usar INSERT, UPDATE OU DELETE use a função OCI_NO_AUTO_COMMIT e valide em seguida.

$exec= oci_execute($stid, OCI_NO_AUTO_COMMIT);
//se encontrar algum erro da um rollback NÃO efetiva a query
if (!$exec) {
    $e = oci_error($stid);
    oci_rollback($conexao);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// COMITA a query
$exec = oci_commit($conexao);
if (!r) {
    $e = oci_error($conexao);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

Hoje vou mostrar como fazer conexão no oracle usando o PHP.

Atualizado em:09/01/2018

Caso não tenha configurado o PHP para suporte com a conexão veja o link abaixo antes de continuar;

Linux:

http://blog.fabianobento.com.br/2012/10/configurando-php-para-suporte-com-oracle-usando-centos-6-3-red-hat-6-3/

Windows:

Para permitir a biblioteca PHP conectar com o Oracle no windows, é necessário instalar o client do Oracle no computador e configurar o arquivo TNSNAMES.ora.

 

1° passo – O primeiro passo é configurar o PHP. As bibliotecas para conexão com o Oracle.

Localize o arquivo php.ini dentro do diretório de instalação do apache, e em seguida abra usando um editor de texto.

Encontre a linha ;extension=php_oci8.dll e remova o ponto e vírgula no inicio.
Encontre a linha ;extension=php_oracle.dll e remova o ponto e vírgula no inicio.

Caso não encontre as linhas insira no final do arquivo.

2° passo – Agora vamos criar a conexão com o Oracle.

Para conectar no oracle usava-se OCILogon que foi substituido por oci_connect a partir da versão 5.1.2 do PHP.
Vou mostrar como usar as 2 maneiras.

//metodo para se conectar usando versão 4 ou anterior do PHP
//depende da instalação do client do oracle e configuração do arquivo TNS
$conexao_antiga = OCILogon("usuario", "senha", "servico");

//metodo usado a partir do PHP 5.1.2
$conexao = oci_connect('usuario', 'senha', '127.0.0.1/nome_servico');

if (!$conexao) {
    $erro = oci_error();
    trigger_error(htmlentities($erro['message'], ENT_QUOTES), E_USER_ERROR);
exit;
}

Modelo de configuração do arquivo TNS.ORA
O arquivo TNSNAMES.ORA armazena as configurações do servidor e nome da instancia do oracle. Abaixo postei um arquivo com duas configurações base produção e base teste.
Lembrando que ao instalar o oracle client em seu computador é criado um arquivo vazio caso seu arquivo TNS esteja em algum endereço da rede é necessário alterar o caminho no registro do windows.
Diretório padrão do arquivo: C:oracleproduct10.2.0client_1networkADMINtnsnames.ora

# TNSNAMES.ORA Network Configuration File: c:oracleora92networkadmintnsnames.ora
# Generated by Oracle configuration tools.

producao =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )

teste =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = teste)
    )
  )

Modelo de configuração do arquivo de registro “REGEDIT” indicando o diretorio onde esta o arquivo TNS.
Caso seu arquivo de TNS seja armazenado em outro local é necessário atualizar o registro, alterando o TNS_ADMIN para o novo caminho.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraClient10g_home1]
"TNS_ADMIN"="C:\oracle\product\10.2.0\client_1\network\ADMIN"

[HKEY_LOCAL_MACHINESOFTWAREORACLE]
"TNS_ADMIN"="C:\oracle\product\10.2.0\client_1\network\ADMIN"

Bem pessoal, basicamente é isto espero que ajude. No próximo artigo vou mostrar como fazer uma consulta no DB Oracle.
Um abraço a todos.