Category Archives: Banco de Dados

MongoDB – Primeiros Comandos – Linux

Introdução

Este post tem o objetivo de iniciar a utilização do MongoDB, usando comandos.

Pré-requisitos

Para começarmos, é necessário ter executado o procedimento do post Instalar MongoDB no Ubuntu.

Console do MongoDB

Para abrir o console do MongoDB, utilize o comando

$ mongo

Listando bancos

> show dbs

admin 0.000GB
escola 0.000GB
local 0.000GB

Criando ou entrando no banco

Para entrar ou criar um banco, utilize o comando “use”. Se o banco não existir, será criado automaticamente.

> use escola

switched to db escola

Criando tabela e inserindo dado

Podemos criar uma tabela e inserir o dado ao mesmo tempo. Para isso, utilizamos o comando db.[[TABELA]].insert.

> db.aluno.insert({‘nome’:’Luis Fernando Chaim’,’dataNasc’:new Date(‘1972-05-22’)})

WriteResult({ “nInserted” : 1 })

Listando tabelas

> show collections

aluno

Pesquisando dado

Para pesquisar os dados de uma tabela, utilizar db.[[TABELA]].find().

> db.aluno.find()

{ “_id” : ObjectId(“5a02e14ef52458010bddaf80”), “nome” : “Luis Fernando Chaim”, “dataNasc” : ISODate(“1972-05-22T00:00:00Z”) }

> db.aluno.find({nome: ‘Luis Fernando Chaim’})

Exemplos

db.professores.insert({nome: ‘Jean’, idade:26, disciplinas:[‘Tecnicas de Programacao’, ‘Topicos Avancados’], sexo: ‘m’})

db.professores.insert({nome: ‘John’, idade:46, disciplinas:[‘Tecnicas de Programacao’, ‘Topicos Avancados’], sexo: ‘m’})

db.professores.insert({nome: ‘Joseph’, idade:53, disciplinas:[‘Tecnicas de Programacao’, ‘Topicos Avancados’], sexo: ‘m’})

db.professores.find()
Então nosso comando find() nos retornará a lista de todos os registros. Se eu quiser passar alguma cláusula para a busca, posso fazer da seguinte forma:

db.professores.find({nome: ‘Jean’})
//db.professores.find({nome: ‘Jean’, idade:26})
Lembrando que se nossa consulta for falsa, ele não escreverá nenhum resultado, como podemos ver na tela abaixo:

Para fazermos comparações entre valores, usaremos uma sintaxe um pouco diferente. Vamos ter como exemplo a busca por professores com idade acima de 30 anos.

db.professores.find({idade: {$gt:30}})
Como podemos notar com o exemplo, utilizamos um operador condicional o $gt que significa great than, ou maior que, em português.

Também podemos usar os seguintes operadores condicionais: $gte, $lt, $lte, $all, $in, $nin, $ne, $exists, $mod

Ou seja podemos ver que na função find() podemos passar 1 paramêtro que vai fazer a comparacao de valores para delimitar a busca. Tendo em vista que se utilizarmos operadores de comparação como >, >=, <, <= e outros, teremos que usar a seguinte regra:

db.collection.find({campo: {$operador: valor}})

Podemos passar um paramêtro para a comparação de valores, mas também posso passar outro parâmetro, informando quais campos eu quero que retornem na busca; neste caso, nosso exemplo ficará:

db.collection.find({campo: {$operador: valor}}, {campo1: 1, campo2: 1, campoN: 1})
Como visto no exemplo acima ele sempre retorna o _id de cada registro, para que isto não ocorra podemos repassar no paramêtro dos campos _id:0

Porém, caso eu não queira comparar nenhum valor, terei que passar null no primeiro paramêtro, podendo ficar da seguinte maneira:

db.collection.find(null, {campo1: 1, campo2: 1, campoN: 1})

Uma outra função bem útil é a ordenação da busca, que se assemelha ao ORDER BY do SQL. No MongoDB temos a função sort() que recebe um paramêtro para ordernar.

db.collection.find(null, {nome:1, idade:1, _id:0}).sort({idade:1})
Onde passaremos o 1 paras ASC ou seja, do menor para o maior, ou -1 que é o DESC, do maior para menor.

Além de ordenar, também podemos limitar a busca, parecido com o LIMIT do SQL, passando um valor inteiro para a função limit().

db.collection.find(null, {nome:1}).sort({idade:1, nome:-1}).limit(2)

Outra função que auxilia ao limit() é a skip(), que receberá um valor inteiro para pular até aquele registro. Até agora, nossas funções convertidas em SQL ficam assim:

select nome, idade from professores ORDER BY idade ASC LIMIT1,2
Bom, já aprendemos como inserir dados e listá-los esta na hora de modificarmos os registros. Para isto, utilizamos a função update({busca}, {atualizacao}).

Assim como temos o modificador $set, também temos o $unset, que elimina a chave.

db.professores.update({nome: ‘Jean’}, {$unset: {disicplinas: 1}})
Também podemos apenas incrementar ou decrementar um valor inteiro utilizando o modificador $inc

db.professores.update({nome: ‘Jean’}, {$inc: {idade: 5}})
//incrementa em 5 a idade do professor Jean
db.professores.update({nome: ‘Jean’}, {$inc: {idade: -5}})
//incrementa em 5 a idade do professor Jean

Agora para removermos documentos, utilizamos a função remove(json). Onde passamos como parâmetro a clausula de comparação.

Porém, caso queiramos limpar toda a collection, é mais rapido usando drop()

 

 

Instalar MongoDB no Ubuntu

Introdução

Este post demonstra a instalação do MongoDB no Ubuntu.

Procedimento

  1. Importar a chave oficial do MongoDB
    1. sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 0C49F3730359A14518585931BC711F9BA15703C6
  2. Atualizar a lista de atualizações
    1. sudo apt-get update
  3. Instalando MongoDB
    1. sudo apt-get install mongodb-org
    2. O item 3 não funcionou no meu Ubuntu 17, então substitui o comando para
      1. sudo apt-get install mongodb
  4. Criar pasta /data/db e fornecer permissão de escrita
    1. sudo chmod 775 -R /data
  5. Subindo servidor
    1. sudo mongod
  6. Baixando servidor
    1. sudo mongod stop
  7. Verificando serviço
    1. ps -ef|grep mongo

Instalando MongoDB no Windows

Introdução

Este artigo demonstra a instalação do banco de dados MongoDB.

Procedimento

  1. Acesse a página de download do MongoDB
  2. Na aba Windows, baixar “Windows Server 2008 R2 64-bit and later, without SSL support x64”
  3. Execute a instação do arquivo .msi
  4. Criar a pasta “c:\data\db”
  5. Adicionar a pasta “bin” da instalação do MongoDB no “Path” (Variáveis de Ambiente)
  6. Para subir o servidor, digitar no prompt de comando “mongod”

Configurando como serviço do Windows

  1. Podemos adicionar o servidor no serviços do Windows
  2. Abra o prompt de comando e digite

mongod –dbpath=C:\data\db –logpath=C:\data\db\log.txt —install

Para verificar, chame o “executar” e digite “services.msc”

  • dbpath – Pasta de destino do banco
  • logpath – Arquivo destino de log

 

HSQLDB – Banco de Dados em Java

Introdução

O HSQLDB, também conhecido como HyperSQL, é um gerenciador de base de dados relacional open source escrito em Java. Possui poucos recursos, é simples e bastante eficiente.

Instalação

Para instalar, basta acessar o site http://sourceforge.net/projects/hsqldb/files/ e baixar o arquivo hsqldb-2.3.4.zip.

Gerenciador Gráfico

Para executar a ferramenta de acesso à base de dados, é só acessar a pasta lib do projeto e executar o seguinte comando:

java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

Tipos de Banco de dados

O HSQLDB possui 3 tipos de banco de dados:

  • mem: dados inteiramente em memória. Terminou a aplicação os dados são perdidos
    • URL JDBC: jdbc:hsqldb:mem:nomeDoSeuBanco
  • file: armazenados em arquivos
    • URL JDBC: jdbc:hsqldb:file:nomeDoSeuBanco
    • URL JDBC: jdbc:hsqldb:file:/var/db/nomeDoSeuBanco
  • res: armazenados em recursos dentro de um JAR, por exemplo. São somente leitura
    • URL JDBC: jdbc:hsqldb:res:org.seu.pacote.nomeDoSeuBanco

Podemos subir o servidor de banco de dados, através do comando:

java -cp hsqldb.jar org.hsqldb.server.Server –database.0 file:nomeArquivoDoSeuBanco –dbname.0 nomeDoSeuBanco

Assim a URL JDBC fica assim: jdbc:hsqldb:hsql://localhost/nomeDoSeuBanco

Exemplo de obtenção da conexão com HSQLDB

try {
Class.forName(“org.hsqldb.jdbc.JDBCDriver” );
} catch (Exception e) {
System.err.println(“ERRO: falha ao carregar o driver JDBC do HSQLDB!”);
e.printStackTrace();
return;
}
Connection c = DriverManager.getConnection(“jdbc:hsqldb:file:nomeDoSeuBanco”, “SA”, “”);

 

MySQL – Configuração Windows

Instalando MySQL – Arquivo Zip

Quando utiliza-se o MySQL baixado como zip, é necessário:

  1. Baixar o MySQL, por exemplo mysql-5.7.16-winx64.zip
  2. Descompactar no local desejado, no meu caso foi o próprio drive C (C:\mysql-5.7.16-winx64)
  3. Abrir o prompt de comando como administrador
  4. Estando em C:\mysql-5.7.16-winx64\bin, digitar
    1. mysqld –initialize
    2. Após o comando, verifica-se a criação do diretório /data

 

My.ini

Na instalação do MySQL, é apresentado o arquivo my-default.ini. Devemos renomeá-lo para my.ini e editar a linhas:

  1. basedir = C:\\mysql-5.7.16-winx64
  2. datadir = C:\\mysql-5.7.16-winx64\data
  3. port = 3306
  4. server_id = 1

 

MySQL – Alterando a senha root

Caso esteja rodando o MySQL como serviço, parar o serviço.

  1. Criar um arquivo txt (exemplo: C:\mysql-5.7.16-winx64\MySQL.txt)
  2. Criar o seguinte conteúdo no arquivo criado (válido para 5.7.6 ou superior)
    1. ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
  3. Salvar o arquivo
  4. Abrir o prompt de comando
  5. Digitar em C:\mysql-5.7.16-winx64\bin
  6. mysqld –init-file=C:\mysql-5.7.16-winx64\MySQL.txt
  7. O MySQL subirá e alterará a senha. Basta então matar o processo mysqld que foi criado e nos serviços do Windows subir novamente.

 

Instalando MySQL como serviço do Windows

Para instalar o MySQL como serviço, devemos:

  1. Abrir um Prompt de Comando
    1. Windows 10
      1. Clique no botão Iniciar e digite “prompt”
    2. Aparecendo o item “Prompt de Comando”, clique com o botão direito do mouse e escolha “Executar como Administrador” (sem esta opção, não funciona)
  2. Com a tela de Prompt de Comando aberta, vá até o diretório do MySQL
    1. No meu caso, C:\Program Files\MySQL\MySQL Server 5.6\bin
    1. Digite: mysqld –install MySQL
  3. Abra a tela de serviços (services.msc) e verifique que foi criado um item “MySQL”

Como instalar MySQL 5.6 no Windows – Arquivo Zip

Baixando o Arquivo ZIP

Acesse o site de download do MySQL e selecione o arquivo ZIP da versão desejada do MySQL:

Página de download do MySQL

Na página seguinte clique na opção “No thanks, just start my download.” para começar a baixar o arquivo sem fazer o login:

Baixando o arquivo de instalação na página do MySQL.

Instalando o MySQL

Descompacte o arquivo baixado na pasta onde deseja instalar o MySQL. Por padrão a pasta de instalação do MySQL é C:\mysql. Se ele for instalado em outra pasta, é preciso atualizar o diretório de instalação no arquivo de configurações.

Para facilitar o nosso trabalho iremos adicionar a pasta bin do MySQL na variável PATH do Windows. Assim poderemos executar os programas da pasta no prompt de comandos sem ter que acessar a pasta bin diretamente.

Abra o prompt de comando como administrador e execute o comando sysdm.cplpara abrir a janela de configuração do sistema. Acesse a opção Configurações Avançadas do Sistema > Avançado > Variáveis de Ambiente…, selecione a variável PATH na lista e clique em Editar…. Adicione o caminho da pasta bin do MySQL no final do valor da variável usando ; para separá-lo dos outros valores e clique em OK para concluir:

valor-da-variavel-path;<caminho-para-a-pasta-bin-do-mysql>

Para testar se está tudo funcionando corretamente abra o prompt de comando e digite o seguinte comando:

mysqld --version

Se tudo estiver correto, deverá ser exibida uma linha com informações sobre a versão instalada do MySQL.

Criando o Arquivo de Configurações

Caso seja necessário especificar as configurações iniciais antes de rodar o servidor, podemos definir estas configurações através da linha de comando, ou criando um arquivo de configurações que será usado na inicialização do servidor. Isso é necessário quando alteramos alguma configuração, como por exemplo, instalamos o MySQL em um diretório diferente do padrão, ou quando queremos alterar configurações de cache, memória, etc.

Crie uma cópia do arquivo my-default.ini, localizado na pasta de instalação do MySQL e salve-o com o nome my.ini. Abra o arquivo num editor de texto e altere as seguintes opções da seção [mysqld]:

basedir = <caminho/para/a/pasta/de/instalacao>
datadir = <caminho/para/a/pasta/data>
tmpdir = <caminho/para/a/pasta/temp>
port = 3306

NOTA: Os caminhos de diretório no Windows são definidos usando a barra normal (/). Se for usar barras invertidas, elas precisam ser escapadas (\\).

A opção basedir define onde o MySQL está instalado. Já a opção datadir define qual é a pasta de dados raiz, onde são armazenados os arquivos dos bancos de dados. Se for usar uma pasta de dados diferente é necessário copiar todo o conteúdo da pasta data presente no diretório de instalação do MySQL para a nova pasta de dados.

A opção tmpdir define qual a pasta de arquivos temporários do MySQL, sendo o padrão a pasta temp presente no diretório de instalação. Já a opção port define a porta usada pelo servidor MySQL para comunicação, tendo como valor padrão 3306.

Para testar se as configurações estão corretas abra o prompt de comando e digite o seguinte comando para inicializar o servidor:

mysqld --defaults-file=<caminho-para-o-arquivo-de-opcoes>

O parâmetro –defaults-file indica o arquivo de configurações que deve ser utilizado ao iniciar o servidor.

O prompt ficará ocupado até que o servidor seja desligado. Para isso abra outro prompt e digite o seguinte comando para parar o servidor:

mysqladmin -P 3306 -u root shutdown

O parâmetro -P indica o número da porta usada pelo servidor, 3306. O parâmetro -u indica o nome do usuário, root. Como inicialmente o usuário root não possui uma senha nós não precisamos definir o parâmetro -p <senha>. Finalmente, o comando shutdown pára o servidor.

Caso queira evitar o trabalho de iniciar e parar o servidor via linha de comando podemos instalar o MySQL como um serviço do Windows, assim ele será iniciado junto com o sistema.

Instalando o MySQL como um Serviço do Windows

Para instalar o MySQL como um serviço do Windows abra o prompt de comando como administrador e execute o seguinte comando:

mysqld --install <nome-do-servico-do-mysql> --defaults-file=<caminho-para-o-arquivo-de-opcoes>

Se tudo estiver correto será exibida a mensagem Serviço instalado com sucesso. Digite então o seguinte comando para iniciar o serviço:

net start <nome-do-servico-do-mysql>

Se precisar parar o serviço digite o seguinte comando:

net stop <nome-do-servico-do-mysql>

E caso precise remover o serviço digite o comando a seguir após ter parado o serviço:

mysqld --remove <nome-do-servico-do-mysql>