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