Mostrando postagens com marcador query. Mostrar todas as postagens
Mostrando postagens com marcador query. Mostrar todas as postagens

quarta-feira, 27 de janeiro de 2021

Verificar se uma tabela existe no sql lite

 


 

Para verificar se uma tabela existe no sqlLite basta utilizar a query abaixo:


SELECT count(*) FROM sqlite_master WHERE type='table' AND name='nome_tabela'; 

 

Onde

  • nome_tabela - Nome da tabela que você deseja ver se existe.

 

 Caso exista a tabela será retornado o valor 1(um), caso contrário será retornado 0 (zero).

 

Exemplo

SELECT count(*) FROM sqlite_master WHERE type='table' AND name='usuarios';

sábado, 12 de janeiro de 2019

Como saber a quantidade de linhas retornada em uma query sql

Resumo

SELECT count(*) FROM nome_tabela


Para descobrir quantas linhas tem em uma determinada tabela podemos utilizar o palavar chave count.

Sintaxe:

SELECT count(*) FROM nome_tabela


Onde:

nome_tabela - É o nome da tabela da qual terá as linhas contadas.




Exemplo 1:

SELECT count(*) FROM Pessoas


Nesse exemplo seria retornado o total de linhas que existe na tabela Pessoa




Caso seja necessário é possivel adicionar filtros para contar o total de itens de acordo com o mesmo.


Exemplo 2:

SELECT count(*) FROM Pessoas WHERE sexo='m'


Nesse caso seria retornado o total de acordo com o filtro.


terça-feira, 8 de janeiro de 2019

Como limitar a quantidade de resultados de um SELECT


Resumo:


SELECT  CAMPOS  FROM   TABELA WHERE   FILTRO LIMIT QUANTIDADE


Há momentos que precisamos limitar a quantidade de linhas que é retornado em uma consulta SQL, para isso utilizamos a palavra chave LIMIT na consulta em questão.


Sintaxe:


SELECT  
  CAMPOS 
 FROM
  TABELA 
WHERE
  FILTRO 
LIMIT QUANTIDADE

Onde:



LIMIT - Palavra chave
QUANTIDADE - Quantidade de linhas a ser retornada


Exemplo:

SELECT nome, rg FROM Pessoas WHERE id>30 LIMIT 10


Na consulta acima será retornado somente os dez primeiros itens de acordo com o filtro.

sexta-feira, 14 de junho de 2013

Manipulando retorno de queries SQL: REPLACE

Introdução


O principal objetivo deste post é explicar como se pode manipular o resultado de um select utilizando o comando REPLACE.
A finalidade do REPLACE é alterar o resultado de um determinada query para um devido fim.
Neste exemplo foi utilizado o banco de dados firebird.

Sintaxe:

...
REPLACE(STRING,'OLD_STRING','NEW_STRING');
...

Onde:


  • STRING - String a ser alterada.
  • OLD_STRING - Trecho da STRING contida no STRING a ser alterada ou substituida.
  • NEW_STRING - Trecho que substituirá o valor do OLD_STRING

Montando ambiente de teste

Para testarmos neste post iremos criar uma tela simples chamada PESSOA que guarda algumas informações
pertinentes a uma determinada pessoa (DATA_NASCIMENTO, nome, numero de filhos)

CREATE TABLE PESSOAS
(
    PES_ID INTEGER PRIMARY KEY,
    PES_DATA_NASCIMENTO DATE,
    PES_NUMERO_FILHOS INT,
    PES_NOME VARCHAR(48)
);



Após criar uma tabela será necessário popula-la.

INSERT INTO PESSOAS VALUES(1,'1988-12-31',3,'MARCOS');
INSERT INTO PESSOAS VALUES(2,'1982-03-31',5,'MARIO');
INSERT INTO PESSOAS VALUES(3,'1997-10-3',4,'JULHO');
INSERT INTO PESSOAS VALUES(4,'1991-11-12',2,'ROBERTO');
INSERT INTO PESSOAS VALUES(5,'1989-12-15',1,'FERNANDO');



Agora podemos iniciar o post de vez.


SELECT 
  
REPLACE(PES_DATA_NASCIMENTO,'-','/') AS DATA_NOVO_FORMATO,
PES_DATA_NASCIMENTO AS DATA_FORMATO_NORMAL

FROM
  PESSOAS



Como poderá ser visto no resultado desta query no item DATA_NOVO_FORMATO os locais onde existe o simbolo - será substituido por /.



Figura 1: Resultado da execução da query.



Conclusão


Como foi visto ao longo do do post a utilização do comando REPLACE é muito simples e pode ajudar muito quando é necessário formatar o resultado de uma query.

segunda-feira, 3 de junho de 2013

Concatenando Strings ao resultado de uma Query (SELECT) (Firebird)




Introdução

O principal objetivo deste post é explica de maneira simples e rápida como se pode
manipular o resultado da execução de uma determinada query no banco de dados Firebird.


Montando ambiente de teste

Para testarmos neste post iremos criar uma tela simples chamada PESSOA que guarda algumas informações
pertinentes a uma determinada pessoa (DATA_NASCIMENTO, nome, numero de filhos)

CREATE TABLE PESSOAS
(
    PES_ID INTEGER PRIMARY KEY,
    PES_DATA_NASCIMENTO DATE,
    PES_NUMERO_FILHOS INT,
    PES_NOME VARCHAR(48)
);



Após criar uma tabela será necessário popula-la.

INSERT INTO PESSOAS VALUES(1,'1988-12-31',3,'MARCOS');
INSERT INTO PESSOAS VALUES(2,'1982-03-31',5,'MARIO');
INSERT INTO PESSOAS VALUES(3,'1997-10-03',4,'JULHO');
INSERT INTO PESSOAS VALUES(4,'1991-11-12',2,'ROBERTO');
INSERT INTO PESSOAS VALUES(5,'1989-12-15',1,'FERNANDO');



Agora podemos iniciar o post de vez.


Concatenando o resultado com String já definidas

Para concatenar o resultado de um query com uma string já definida basta colocar string entre aspas simples
e depois colocar dois paipes | após a ultima aspas simples, vide exemplo abaixo:

SELECT 'Bom dia '|| PES_NOME ||', tudo bem ?' FROM PESSOAS;

Neste exemplo o resultado será:

'Bom dia MARCOS, tudo bem ?'
'Bom dia MARIO, tudo bem ?'
'Bom dia JULHO, tudo bem ?'
'Bom dia ROBERTO, tudo bem ?'
'Bom dia FERNANDO, tudo bem ?'

quarta-feira, 20 de março de 2013

Como descobrir o total de linhas de uma tabela


Essa é uma dica rápida e simples que pode lhe ajudar algum dia.
Caso você deseje saber o total de linhas em uma tabela basta executar o seguinte comando.

Sintaxe:

SELECT COUNT(*) FROM NOME_TABELA


Onde:

COUNT(*) - Trecho que faz a contagem de elementos da tabela indicada em NOME_TABELA.

NOME_TABELA - Nome da tabela ser pesquisada.


Exemplo:

SELECT COUNT(*) FROM CIDADES


Neste exemplo será exibido o total de linhas da tabela CIDADES.

terça-feira, 16 de outubro de 2012

Conectando em um banco de dados com java

 

 

Introdução


O banco de dados hoje em dia é a principal fonte de informação de qualquer impresa hoje em dia.
Hoje vamos ver de maneira simples como se faz um programa java para conectar à um banco de dados (postgresql) e utilizar os dados requiridos pelo mesmo.
Para manipular dados de um banco de dados é necessário seguir alguns passo:


1º Obter conexão

Para efetivar  uma conexão ao banco de dados é necessário utilizar a classe DriverManeger e utilizar seu método getConnection e informar a url para conectar ao banco de dados, abaixo é possível ver um exemplo de método que obtenção de conexão em um banco de dados postgresql:


public Connection getConnection() throws SQLException {
        Connection con = null;
        con = DriverManager
                .getConnection("jdbc:postgresql://localhost/agenda_telefone?user=postgres&password=postgres");

        return con;
}



Para criar uma conexão em banco de dados postgresql é necessário que se adicione ao seu projeto o arquivo .jar ao projeto:
Abaixo é possível ver o trecho responsável por conectar a um banco de dados postgresql:

con = DriverManager    .getConnection("jdbc:postgresql://localhost/agenda_telefone?user=postgres&password=postgres");

A sintaxe básica para utilizar a linha acima é:

jdbc://nome_banco://host/banco_dados?user=usuario&password=password


Onde:

•    nome_banco – Tipo de banco de dados que está sendo utilizado (postgresql/mysql/oracle).

•    banco_dados – Banco de dados que iremos utilizar.

•    user -  Usuário utilizado para conectar ao banco e dados.

•    password – Senha do usuário para conectar ao banco de dados.


Caso sua aplicação deseja-se conecatar ao mysql um exemplo seria:

jdbc:mysql://localhost/agenda_telefone?user=postgres&password=postgres


2º Executar a query

Para executar uma query em java é utilizar a clausula PrepareStatement e a mesma será explicada através do método removePessoa.


Abaixo é possível ver o método removePessoa

    public boolean removePessoa(Pessoa pessoa) throws SQLException {
        Connection con = null;
      String DELETE_PESSOA = "DELETE FROM telefones WHERE pes_id = ?;DELETE     FROM pessoas WHERE pes_id = ?;";
       try {
            con = getConnection();
            PreparedStatement prepared = con.prepareStatement(DELETE_PESSOA);
            prepared.setLong(1, pessoa.getId());
            prepared.setLong(2, pessoa.getId());

            retorno = prepared.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnnection(con);
        }
        return retorno;

    }


Neste metodo logo que é adquirida uma conexão é instanciado um objeto do tipo PreparedStatement , esse objeto tem como principal objetivo adquirir a query e os parametros caso algum for necessário bem como executar a query e dar um retorno, no caso desta classe é apenas retornado um  boolean informado se query foi executado com sucesso.

A query é passada ao objeto através da linha:

PreparedStatement prepared = con.prepareStatement(DELETE_PESSOA);

Os paramtros são passados através das linhas:

prepared.setLong(1, pessoa.getId());
prepared.setLong(2, pessoa.getId());


Vale salientar que para cada tipo de parametro passado é utilizado um tipo de set dentro do PreparedStatement , caso fosse String por exemplo seria utilizado um prepared.setString.

A sintaxe para passagem de parametro é a seguinte:

    objeto_prepared.set_Tipo_OBJETO(posical_query, objeto);

Onde:

•    objeto_prepared – Objeto do tipo PreparedStatement.

•    set_Tipo_OBJETO -  Tipo de objeto a ser inserido como parametro.

•  posicao_query – Posição do parametro na query, sendo que é dado inicio no parametro 1.

•    objeto – Objeto a ser adicionado como parametro


Exemplo de passagem de paramtro

String query =” SELECT * FROM PESSOAS WHERE PES_ID= ? AND PES_NOME = ?”
...
prepared.setLong(1, pessoa.getId()) ;  //Passando um long como parametro
prepared.setString(2, pessoa.getNome()); // Passando uma String como parametro.

Neste exemplo o primeiro interrogação (?) será substituido pelo valor de pessoa.getId() e o segundo pelo valor de pessoa.getNome().


Para obter parametros de uma consulta feita no banco de dados além do objeto do tipo PreparedStatement é necessário utiliar um  do tipo ResultSet que pode ser encontrado no método selectTelefones.

Método selectTelefones


    public List selectTelefones(Telefone telefone)
            throws SQLException {
        Connection con = null;
        List listTelefone = new ArrayList();
        try {
            con = getConnection();
            PreparedStatement prepared = con.prepareStatement(SELECT_TELEFONE);
            prepared.setString(1, telefone.getNumero());
            ResultSet resultSet = prepared.executeQuery();

            while (resultSet.next()) {
                Telefone telefoneTmp = new Telefone();
                telefoneTmp.setId(resultSet.getLong("TEL_ID"));
                telefoneTmp.setNumero(resultSet.getString("TEL_NUMERO"));
                listTelefone.add(telefoneTmp);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnnection(con);
        }
        return listTelefone;

    }


O objeto do tipo ResultSet é obtido na linha:

ResultSet resultSet = prepared.executeQuery();
Para obter os valores contidos no ResultSet é necessário utilizar a seguinte sintaxe:

Sintaxe:

            while (resultSet.next()) {
                variavel = resultSet.get_Tipo_OBJETO("NOME_COLUNA"));
            }

Onde:

•    variavel – Variavel que guardará o valor obtetido através do resultSet.

•    get_Tipo_OBJETO – Tipo de objeto a ser obtido da coluna da tabela.

•    NOME_COLUNA – Nom da coluna que será adquirido o valor que será guardado na variavel.


Abaixo é possíve ver um exemplo contido no próprio programa.


...
            ResultSet resultSet = prepared.executeQuery();

            while (resultSet.next()) {
                Telefone telefoneTmp = new Telefone();
                telefoneTmp.setId(resultSet.getLong("TEL_ID"));
                telefoneTmp.setNumero(resultSet.getString("TEL_NUMERO"));
                listTelefone.add(telefoneTmp);
            }


Observação: O nome das colunas foram definidos no momento que fora criada as tabelas do banco de dados.

3º Fechar a conexão


Assim com um arquivo aberto deve ser fechado, uma conexão aberta também deve ser fachada, para isso é necessári o utilizar o método close.

Abaixo é possível ver um método utilzado para fechar uma conexão do tipo Connection.

public void closeConnnection(Connection con) {
        try {
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }




Conclusão

Como foi possível ver ao longo do post, a aquisição e utilização de dados de um banco de dados pode vir a ser bem simples.




quarta-feira, 9 de fevereiro de 2011

Versão nova do querymodificator

Finalmente atualizei o querymodificator corrigindo as bugs que existia na versão anterior.
Dentre as melhorias desta nova versão está o fato de todos comando SQL serem alterados para caracteres maiusculos e assim facilitar a visualização do próprio código SQL.


Para instala-lo é necessário, descompactar o arquivo em algum lugar de sua preferência e executra o arquivo install.sh.


DOWNLOAD

quarta-feira, 3 de novembro de 2010

Oracle: Criando sequence




Quando comecei a criar tabelas e guardar informações em banco de dados comecei pelo Oracle e depois usei durante um tempo o Msql, mas logo voltei para o Oracle.
No Msql existe uma função chamada AUTO_INCREMENT que pode ser utilizada para incrementar um id de uma tabela sozinho, que precisemos nos preocupar com isso. Porém no Oracle não existe esta função o que me levou durante um tempo a pesquisar sobre o assunto, uma solução que encontrei para tal problema foi a criação de SEQUENCE, que funciona quase da mesma maneira.

Criando uma SEQUENCE

Sintaxe:

CREATE SEQUENCE nome_sequence MINVALUE valor_minimo MAXVALUE valor_maximo INCREMENT BY valor_incremento START WITH valor_inicial CACHE valor_cache NOORDER NOCYLE

nome_sequencia = Nome que será dado a sequence.
valor_minimo = Valor mínimo da sequencie.
valor_maximo = Valor máximo que a sequence atingirá.
valor_incremento = Valor que será incrementado cada vez que uma sequence for requerida
valor_inicial  = Valor inicial da sequence, valor que iniciará a mesma.
valor_cache = Valor que informa o número de valores que o cache poderá conter, para uma consulta rápida.

Exemplo:

CREATE SEQUENCE SEQ_ID MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;


Utilizando a sequence


Agora que sequence foi criada para utiliza-la, pendo seu próximo valor:

Sintaxe:
        nome_sequence.nextVal

Exemplo:
Existe uma tabela com as colunas id e nome, chama LISTA_CHAMADA:
Para inserir dados na mesma utilizando a sequence faremos o seguinte:

INSERT INTO LISTA_CHAMADA VALUES(seq_id.nextVal, 'Maria')