HSQLDB - cláusula LIKE

Existe uma cláusula WHERE na estrutura RDBMS. Você pode usar a cláusula WHERE com um sinal de igual (=) onde queremos fazer uma correspondência exata. Mas pode haver um requisito em que queremos filtrar todos os resultados onde o nome do autor deve conter "john". Isso pode ser tratado usando a cláusula SQL LIKE junto com a cláusula WHERE.

Se a cláusula SQL LIKE for usada junto com os caracteres%, ela funcionará como um metacaractere (*) no UNIX ao listar todos os arquivos ou diretórios no prompt de comando.

Sintaxe

A seguir está a sintaxe SQL genérica da cláusula LIKE.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Você pode especificar qualquer condição usando a cláusula WHERE.

  • Você pode usar a cláusula LIKE junto com a cláusula WHERE.

  • Você pode usar a cláusula LIKE no lugar do sinal de igual.

  • Quando a cláusula LIKE é usada junto com o sinal%, ela funciona como uma pesquisa de metacaracteres.

  • Você pode especificar mais de uma condição usando os operadores AND ou OR.

  • Uma cláusula WHERE ... LIKE pode ser usada junto com o comando DELETE ou UPDATE SQL para especificar uma condição.

Exemplo

Vamos considerar um exemplo que recupera a lista de dados de tutoriais onde o nome do autor começa com John. A seguir está a consulta HSQLDB para o exemplo fornecido.

SELECT * from tutorials_tbl WHERE author LIKE 'John%';

Após a execução da consulta acima, você receberá a seguinte saída.

+-----+----------------+-----------+-----------------+
|  id |      title     |   author  | submission_date |
+-----+----------------+-----------+-----------------+
| 100 |    Learn PHP   | John Poul | 2016-06-20      |
+-----+----------------+-----------+-----------------+

HSQLDB - Programa JDBC

A seguir está o programa JDBC que recupera a lista de dados de tutoriais onde o nome do autor começa com John. Salve o código emLikeClause.java.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class LikeClause {
   
   public static void main(String[] args) {
      Connection con = null;
      Statement stmt = null;
      ResultSet result = null;
      
      try {
         Class.forName("org.hsqldb.jdbc.JDBCDriver");
         con = DriverManager.getConnection(
            "jdbc:hsqldb:hsql://localhost/testdb", "SA", "");
         stmt = con.createStatement();
         result = stmt.executeQuery(
            "SELECT * from tutorials_tbl WHERE author LIKE 'John%';");
         
         while(result.next()){
            System.out.println(result.getInt("id")+" |
               "+result.getString("title")+" |
               "+result.getString("author")+" |
               "+result.getDate("submission_date"));
         }
      } catch (Exception e) {
         e.printStackTrace(System.out);
      }
   }
}

Você pode iniciar o banco de dados usando o seguinte comando.

\>cd C:\hsqldb-2.3.4\hsqldb
hsqldb>java -classpath lib/hsqldb.jar org.hsqldb.server.Server --database.0
file:hsqldb/demodb --dbname.0 testdb

Compile e execute o código acima usando o seguinte comando.

\>javac LikeClause.java
\>java LikeClause

Após a execução do seguinte comando, você receberá a seguinte saída.

100 | Learn PHP | John Poul | 2016-06-20