找到 6705 篇文章 关于数据库
449 次浏览
存储过程是子程序,存储在 SQL 目录中的 SQL 语句片段。所有可以访问关系数据库(Java、Python、PHP 等)的应用程序都可以访问这些过程。存储过程包含输入和输出参数,或两者兼有。如果使用 SELECT 语句,它们可能会返回结果集,它们可以返回多个结果集。示例假设我们在 MySQL 数据库中有一个名为 Dispatches 的表,其中包含以下数据:+--------------+------------------+------------------+------------------+ | Product_Name | Date_Of_Dispatch | Time_Of_Dispatch | Location | +--------------+------------------+------------------+------------------+ | KeyBoard | 1970-01-19 | 08:51:36 | Hyderabad ... 阅读更多
2K+ 次浏览
以下是预处理语句的优点:通过避免多次编译和执行语句,预处理语句执行速度更快。使用预处理语句,我们可以借助 PreparedStatement 接口提供的 setter 方法轻松地将值插入到高级数据类型(如 BLOB、CLOB、OBJECT)中。通过提供 setter 方法来设置值,预处理语句避免了在查询中使用引号和其他特殊字符,从而避免了 SQL 注入攻击。以下是预处理语句的局限性:由于 PreparedStatement 对象一次只能表示一个 SQL 语句,因此我们只能由一个... 阅读更多
534 次浏览
使用 Statement 对象执行语句时,特别是插入语句,每次执行查询时都会重新编译和执行整个语句,而这些语句之间唯一的区别是语句的值。而预处理语句是预编译语句,即查询会被编译并存储在数据库中,使用占位符(?)代替值,稍后会向这些占位符提供值。因此,避免了不必要地反复编译和执行语句。示例假设我们在数据库中有一个名为 Dataset 的表,其中包含 mobile_brand 和 unit_sale 列,如果我们想... 阅读更多
3K+ 次浏览
在 JDBC 程序结束时,需要显式关闭与数据库的所有连接以结束每个数据库会话。但是,如果您忘记了,Java 的垃圾回收器将在清理旧对象时关闭连接。在数据库编程中,依赖垃圾回收是一种非常糟糕的编程实践。您应该养成始终使用与连接对象关联的 close() 方法关闭连接的习惯。为了确保连接已关闭,您可以在代码中提供一个“finally”块。“finally”块始终执行,无论是否发生异常。要... 阅读更多
4K+ 次浏览
您可以使用 CallableStatement 接口调用 SQL 存储过程。Callable 语句可以具有输入参数、输出参数或两者兼有。您可以使用 Connection 接口的 prepareCall() 方法创建 CallableStatement(接口)的对象。此方法接受一个表示调用存储过程的查询的字符串变量,并返回一个 CallableStatement 对象。假设您在数据库中有一个名为 myProcedure 的过程,您可以准备一个可调用语句,如下所示://准备一个 CallableStatement CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");然后,您可以使用 CallableStatement 接口的 setter 方法将值设置为占位符并执行... 阅读更多
19K+ 次浏览
创建语句对象后,您可以使用 Statement 接口的 execute 方法之一来执行它,即 execute()、executeUpdate() 和 executeQuery()。execute() 方法:此方法用于执行 SQL DDL 语句,它返回一个布尔值,指定是否可以检索 ResultSet 对象。示例import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class Example { public static void main(String args[]) throws SQLException { //注册驱动程序 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //获取连接 String mysqlUrl = "jdbc:mysql://127.0.0.1/sampleDB"; Connection con = ... 阅读更多
287 次浏览
您可以为此使用聚合函数 count 以及 if()。为了理解这个概念,让我们创建一个表。创建表的查询如下mysql> create table CountOccurrencesDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> TechnicalSubject varchar(100) -> ); Query OK, 0 rows affected (0.68 sec)现在,您可以使用 insert 命令在表中插入一些记录。查询如下mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('Java'); Query OK, 1 row affected (0.14 sec) mysql> insert into CountOccurrencesDemo(TechnicalSubject) values('MongoDB'); Query OK, 1 row affected (0.13 sec) mysql> insert into ... 阅读更多
1K+ 次浏览
您需要为此使用 REGEXP。语法如下SELECT *FROM yourTableName WHERE yourColumnName REGEXP '[a-zA-Z]';为了理解这个概念,让我们创建一个表。创建表的查询如下mysql> create table SelectNonNumericValue -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserId varchar(100) -> ); Query OK, 0 rows affected (0.58 sec)使用 insert 命令在表中插入一些记录。查询如下mysql> insert into SelectNonNumericValue(UserId) values('123John'); Query OK, 1 row affected (0.12 sec) mysql> insert into SelectNonNumericValue(UserId) values('58475Carol98457Taylor24'); Query OK, 1 row affected (0.52 sec) ... 阅读更多
3K+ 次浏览
在 MySQL 8 中,需要使用 CREATE 命令来创建一个带有密码的新用户。让我们检查一下版本mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.14 sec)创建带有密码的新用户的语法如下CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';以下语法用于授予创建的用户所有权限GRANT ALL ON *.* TO 'yourUserName'@'localhost';现在使用 flush 命令刷新权限flush privileges;让我们使用上述语法创建一个新用户。查询如下mysql> use MySQL; Database ... 阅读更多