HSQLDB - предложение LIKE

В структуре СУБД есть предложение WHERE. Вы можете использовать предложение WHERE со знаком равенства (=) там, где мы хотим получить точное соответствие. Но может быть требование, когда мы хотим отфильтровать все результаты, в которых имя автора должно содержать «john». Это можно сделать с помощью предложения SQL LIKE вместе с предложением WHERE.

Если предложение SQL LIKE используется вместе с символами%, тогда оно будет работать как метасимвол (*) в UNIX при выводе всех файлов или каталогов в командной строке.

Синтаксис

Ниже приводится общий синтаксис SQL предложения LIKE.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Вы можете указать любое условие с помощью предложения WHERE.

  • Вы можете использовать предложение LIKE вместе с предложением WHERE.

  • Вы можете использовать предложение LIKE вместо знака равенства.

  • Когда предложение LIKE используется вместе со знаком%, оно будет работать как поиск по метасимволам.

  • Вы можете указать более одного условия, используя операторы AND или OR.

  • Предложение WHERE ... LIKE можно использовать вместе с SQL-командой DELETE или UPDATE, чтобы указать условие.

пример

Давайте рассмотрим пример, который извлекает список данных учебных пособий, где имя автора начинается с John. Ниже приведен запрос HSQLDB для данного примера.

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

После выполнения вышеуказанного запроса вы получите следующий результат.

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

HSQLDB - Программа JDBC

Ниже приводится программа JDBC, которая извлекает список данных учебных пособий, в которых имя автора начинается с John. Сохраните код вLikeClause.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);
      }
   }
}

Вы можете запустить базу данных с помощью следующей команды.

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

Скомпилируйте и выполните приведенный выше код, используя следующую команду.

\>javac LikeClause.java
\>java LikeClause

После выполнения следующей команды вы получите следующий результат.

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