自学内容网 自学内容网

MySQL操作基础--增删改查

1. 增(Create):插入数据

插入数据是向数据库表中添加新记录的过程。在SQL中,使用INSERT INTO语句来实现。

SQL语句示例:

INSERT INTO users (username, email, created_at) VALUES ('john_doe', 'john@example.com', NOW());

 Java语句示例:

String sql = "INSERT INTO users (username, email, created_at) VALUES (?, ?, NOW())";
try (Connection conn = DriverManager.getConnection(url, username, password);
     PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "john_doe");
    pstmt.setString(2, "john@example.com");
    int affectedRows = pstmt.executeUpdate();
    if (affectedRows > 0) {
        System.out.println("A new user was inserted successfully!");
    }
}

2. 删(Delete):删除数据

删除数据是从数据库表中移除记录的过程。在SQL中,使用DELETE FROM语句来实现。

SQL语句示例:

DELETE FROM users WHERE username = 'john_doe';

Java代码示例:

String sql = "DELETE FROM users WHERE username = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
     PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "john_doe");
    int affectedRows = pstmt.executeUpdate();
    if (affectedRows > 0) {
        System.out.println("A user was deleted successfully!");
    }
}

3. 改(Update):更新数据

更新数据是修改数据库表中现有记录的过程。在SQL中,使用UPDATE语句来实现。

SQL语句示例:

UPDATE users SET email = 'new_email@example.com' WHERE username = 'john_doe';

Java代码示例:

String sql = "UPDATE users SET email = ? WHERE username = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
     PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "new_email@example.com");
    pstmt.setString(2, "john_doe");
    int affectedRows = pstmt.executeUpdate();
    if (affectedRows > 0) {
        System.out.println("A user was updated successfully!");
    }
}

4. 查(Query):查询数据

查询数据是从数据库表中检索记录的过程。在SQL中,使用SELECT语句来实现。

SQL语句示例:

-- 使用 AND 运算符和通配符
SELECT * FROM users WHERE username LIKE 'j%' AND is_active = TRUE;

-- 使用 OR 运算符
SELECT * FROM users WHERE is_active = TRUE OR birthdate < '1990-01-01';

-- 使用 IN 子句
SELECT * FROM users WHERE birthdate IN ('1990-01-01', '1992-03-15', '1993-05-03');

Java代码示例:

String sql = "SELECT * FROM users WHERE username = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
     PreparedStatement pstmt = conn.prepareStatement(sql)) {
    pstmt.setString(1, "john_doe");
    ResultSet rs = pstmt.executeQuery();
    while (rs.next()) {
        System.out.println("User ID: " + rs.getInt("id"));
        System.out.println("Username: " + rs.getString("username"));
        System.out.println("Email: " + rs.getString("email"));
    }
}

5. WHERE 子句查询

操作符描述实例
=等号,检测两个值是否相等,如果相等返回true(A = B) 返回false。
<>, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) 返回 true。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) 返回false。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) 返回 true。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) 返回false。
<=小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) 返回 true。

6. LIKE 子句(模糊查询)

1. 百分号通配符 %:

% 通配符表示零个或多个字符。例如,'a%' 匹配以字母 'a' 开头的任何字符串。(%a%则指无论a在哪)

SELECT * FROM customers WHERE last_name LIKE 'S%';

以上 SQL 语句将选择所有姓氏以 'S' 开头的客户。

2. 下划线通配符 _:

_ 通配符表示一个字符。例如,'_r%' 匹配第二个字母为 'r' 的任何字符串。

SELECT * FROM products WHERE product_name LIKE '_a%';

以上 SQL 语句将选择产品名称的第二个字符为 'a' 的所有产品。

3. 组合使用 % 和 _:

SELECT * FROM users WHERE username LIKE 'a%o_';

以上 SQL 语句将匹配以字母 'a' 开头,然后是零个或多个字符,接着是 'o',最后是一个任意字符的字符串,如 'aaron'、'apol'。

4. 不区分大小写的匹配:

SELECT * FROM employees WHERE last_name LIKE 'smi%' COLLATE utf8mb4_general_ci;

以上 SQL 语句将选择姓氏以 'smi' 开头的所有员工,不区分大小写。

LIKE 子句提供了强大的模糊搜索能力,可以根据不同的模式和需求进行定制。在使用时,请确保理解通配符的含义,并根据实际情况进行匹配。


原文地址:https://blog.csdn.net/2302_81621310/article/details/142882043

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!