HSQLDB - Clausola LIKE

C'è una clausola WHERE nella struttura RDBMS. Puoi usare la clausola WHERE con un segno di uguale a (=) dove vogliamo fare una corrispondenza esatta. Ma potrebbe esserci un requisito in cui si desidera filtrare tutti i risultati in cui il nome dell'autore deve contenere "john". Questo può essere gestito utilizzando la clausola SQL LIKE insieme alla clausola WHERE.

Se la clausola SQL LIKE viene utilizzata insieme ai caratteri%, funzionerà come un metacarattere (*) in UNIX mentre elenca tutti i file o le directory al prompt dei comandi.

Sintassi

Di seguito è riportata la sintassi SQL generica della clausola LIKE.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • È possibile specificare qualsiasi condizione utilizzando la clausola WHERE.

  • È possibile utilizzare la clausola LIKE insieme alla clausola WHERE.

  • È possibile utilizzare la clausola LIKE al posto del segno di uguale a.

  • Quando la clausola LIKE viene utilizzata insieme al segno%, funzionerà come una ricerca di metacaratteri.

  • È possibile specificare più di una condizione utilizzando gli operatori AND o OR.

  • Una clausola WHERE ... LIKE può essere utilizzata insieme al comando DELETE o UPDATE SQL per specificare una condizione.

Esempio

Consideriamo un esempio che recupera l'elenco dei dati dei tutorial con cui inizia il nome dell'autore John. Di seguito è riportata la query HSQLDB per l'esempio fornito.

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

Dopo l'esecuzione della query precedente, riceverai il seguente output.

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

HSQLDB - Programma JDBC

Di seguito è riportato il programma JDBC che recupera l'elenco dei dati delle esercitazioni con cui inizia il nome dell'autore John. Salva il codice inLikeClause.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);
      }
   }
}

È possibile avviare il database utilizzando il seguente 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

Compila ed esegui il codice precedente utilizzando il seguente comando.

\>javac LikeClause.java
\>java LikeClause

Dopo l'esecuzione del seguente comando, riceverai il seguente output.

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