Hsqldb 简明教程
HSQLDB - LIKE Clause
RDBMS 结构中有一个 WHERE 子句。您可以在我们希望进行精确匹配的地方使用带等号 (=) 的 WHERE 子句。但可能需要一个要求,我们想要过滤出所有包含“john”的作者姓名的结果。可以使用 SQL LIKE 子句和 WHERE 子句一起处理此问题。
如果 SQL LIKE 子句与 % 字符一起使用,那么在命令提示符处列出所有文件或目录时,它将像 UNIX 中的元字符 (*) 一样工作。
Syntax
以下是 LIKE 子句的通用 SQL 语法。
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 子句可以与 DELETE 或 UPDATE SQL 命令一起使用来指定条件。
Example
让我们考虑一个例子,其中检索教程数据的列表,其中作者名字以 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 Program
以下是检索教程数据的列表的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