HSQLDB - Mệnh đề LIKE
Có một mệnh đề WHERE trong cấu trúc RDBMS. Bạn có thể sử dụng mệnh đề WHERE với dấu bằng (=) khi chúng ta muốn so khớp chính xác. Nhưng có thể có một yêu cầu mà chúng tôi muốn lọc ra tất cả các kết quả trong đó tên tác giả phải chứa "john". Điều này có thể được xử lý bằng mệnh đề SQL LIKE cùng với mệnh đề WHERE.
Nếu mệnh đề SQL LIKE được sử dụng cùng với các ký tự%, thì nó sẽ hoạt động giống như một ký tự siêu (*) trong UNIX trong khi liệt kê tất cả các tệp hoặc thư mục tại dấu nhắc lệnh.
Cú pháp
Sau đây là cú pháp SQL chung của mệnh đề LIKE.
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
Bạn có thể chỉ định bất kỳ điều kiện nào bằng mệnh đề WHERE.
Bạn có thể sử dụng mệnh đề LIKE cùng với mệnh đề WHERE.
Bạn có thể sử dụng mệnh đề LIKE thay cho dấu bằng.
Khi mệnh đề LIKE được sử dụng cùng với dấu%, thì nó sẽ hoạt động giống như tìm kiếm siêu ký tự.
Bạn có thể chỉ định nhiều điều kiện bằng cách sử dụng toán tử VÀ hoặc HOẶC.
Mệnh đề WHERE ... LIKE có thể được sử dụng cùng với lệnh DELETE hoặc UPDATE SQL để chỉ định một điều kiện.
Thí dụ
Chúng ta hãy xem xét một ví dụ truy xuất danh sách dữ liệu hướng dẫn mà tên tác giả bắt đầu bằng John. Sau đây là truy vấn HSQLDB cho ví dụ đã cho.
SELECT * from tutorials_tbl WHERE author LIKE 'John%';
Sau khi thực hiện truy vấn trên, bạn sẽ nhận được kết quả sau.
+-----+----------------+-----------+-----------------+
| id | title | author | submission_date |
+-----+----------------+-----------+-----------------+
| 100 | Learn PHP | John Poul | 2016-06-20 |
+-----+----------------+-----------+-----------------+
HSQLDB - Chương trình JDBC
Sau đây là chương trình JDBC truy xuất danh sách dữ liệu hướng dẫn mà tên tác giả bắt đầu bằng John. Lưu mã vàoLikeClause.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);
}
}
}
Bạn có thể khởi động cơ sở dữ liệu bằng lệnh sau.
\>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
Biên dịch và thực thi đoạn mã trên bằng lệnh sau.
\>javac LikeClause.java
\>java LikeClause
Sau khi thực hiện lệnh sau, bạn sẽ nhận được kết quả sau.
100 | Learn PHP | John Poul | 2016-06-20