HSQLDB - klauzula LIKE

W strukturze RDBMS znajduje się klauzula WHERE. Możesz użyć klauzuli WHERE ze znakiem równości (=), gdzie chcemy wykonać dokładne dopasowanie. Ale może istnieć wymóg, w którym będziemy chcieli odfiltrować wszystkie wyniki, w których nazwisko autora powinno zawierać „john”. Można to zrobić za pomocą klauzuli SQL LIKE wraz z klauzulą ​​WHERE.

Jeśli klauzula SQL LIKE jest używana wraz ze znakami%, to będzie działać jak metaznak (*) w systemie UNIX, wyświetlając wszystkie pliki lub katalogi w wierszu polecenia.

Składnia

Poniżej przedstawiono ogólną składnię SQL klauzuli LIKE.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Możesz określić dowolny warunek za pomocą klauzuli WHERE.

  • Możesz użyć klauzuli LIKE razem z klauzulą ​​WHERE.

  • Możesz użyć klauzuli LIKE zamiast znaku równości.

  • Gdy klauzula LIKE jest używana wraz ze znakiem%, będzie działać jak wyszukiwanie metaznaków.

  • Za pomocą operatorów AND lub OR można określić więcej niż jeden warunek.

  • Klauzula WHERE ... LIKE może być używana wraz z poleceniem DELETE lub UPDATE SQL w celu określenia warunku.

Przykład

Rozważmy przykład, który pobiera listę danych tutoriali, w których nazwisko autora zaczyna się od John. Poniżej znajduje się zapytanie HSQLDB dla podanego przykładu.

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

Po wykonaniu powyższego zapytania otrzymasz następujące dane wyjściowe.

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

HSQLDB - program JDBC

Poniżej znajduje się program JDBC, który pobiera listę danych samouczków, w których nazwisko autora zaczyna się od John. Zapisz kod wLikeClause.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);
      }
   }
}

Bazę danych można uruchomić za pomocą następującego polecenia.

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

Skompiluj i wykonaj powyższy kod za pomocą następującego polecenia.

\>javac LikeClause.java
\>java LikeClause

Po wykonaniu następującego polecenia otrzymasz następujące dane wyjściowe.

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