HSQLDB - Clause LIKE

Il existe une clause WHERE dans la structure du SGBDR. Vous pouvez utiliser la clause WHERE avec un signe égal à (=) où nous voulons faire une correspondance exacte. Mais il peut y avoir une exigence où nous voulons filtrer tous les résultats où le nom de l'auteur doit contenir "john". Cela peut être géré à l'aide de la clause SQL LIKE avec la clause WHERE.

Si la clause SQL LIKE est utilisée avec% caractères, elle fonctionnera comme un métacaractère (*) sous UNIX tout en listant tous les fichiers ou répertoires à l'invite de commande.

Syntaxe

Voici la syntaxe SQL générique de la clause LIKE.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Vous pouvez spécifier n'importe quelle condition à l'aide de la clause WHERE.

  • Vous pouvez utiliser la clause LIKE avec la clause WHERE.

  • Vous pouvez utiliser la clause LIKE à la place du signe égal à.

  • Lorsque la clause LIKE est utilisée avec le signe%, cela fonctionnera comme une recherche de métacaractères.

  • Vous pouvez spécifier plusieurs conditions à l'aide des opérateurs AND ou OR.

  • Une clause WHERE ... LIKE peut être utilisée avec la commande DELETE ou UPDATE SQL pour spécifier une condition.

Exemple

Prenons un exemple qui récupère la liste des données des tutoriels où le nom de l'auteur commence par John. Voici la requête HSQLDB pour l'exemple donné.

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

Après l'exécution de la requête ci-dessus, vous recevrez la sortie suivante.

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

HSQLDB - Programme JDBC

Voici le programme JDBC qui récupère la liste des données des didacticiels où le nom de l'auteur commence par John. Enregistrez le code dansLikeClause.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);
      }
   }
}

Vous pouvez démarrer la base de données à l'aide de la commande suivante.

\>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

Compilez et exécutez le code ci-dessus à l'aide de la commande suivante.

\>javac LikeClause.java
\>java LikeClause

Après l'exécution de la commande suivante, vous recevrez la sortie suivante.

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