### JDBC与MySQL知识点详解 #### 一、MySQL基础操作 **1. 数据库的基本操作** - **创建数据库**: 使用 `CREATE DATABASE` 命令来创建一个新的数据库。 - 示例: `CREATE DATABASE mydb CHARACTER SET utf8;` - 这里指定了数据库使用的字符集为 `utf8`。 - **查看支持的字符集**: 可以通过执行 `SHOW CHARACTER SET;` 来查看 MySQL 支持的所有字符集。 - 示例: `SHOW CHARACTER SET;` - **删除数据库**: 如果需要删除一个已经存在的数据库,可以使用 `DROP DATABASE` 命令。 - 示例: `DROP DATABASE mydb;` - **选择数据库**: 使用 `USE` 命令来选择一个数据库进行后续的操作。 - 示例: `USE mydb;` - **查看当前所选数据库**: 可以通过 `SELECT DATABASE();` 或者 `SELECT @@database;` 来查看当前选择的是哪个数据库。 - 示例: `SELECT DATABASE();` **2. 表的基本操作** - **创建表**: 使用 `CREATE TABLE` 命令来创建一个新的表。 - 示例: `CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));` - **查看表**: 创建表之后,可以通过 `SHOW TABLES;` 命令查看当前数据库中的所有表。 - 示例: `SHOW TABLES;` - **查看表结构**: 使用 `DESCRIBE` 命令查看表的结构。 - 示例: `DESCRIBE users;` - **删除表**: 使用 `DROP TABLE` 命令来删除表。 - 示例: `DROP TABLE users;` - **修改表**: 修改表可以通过 `ALTER TABLE` 命令实现。 - 添加列: `ALTER TABLE users ADD age INT;` - 修改列类型或约束: `ALTER TABLE users MODIFY age TINYINT;` - 修改列名: `ALTER TABLE users CHANGE old_name new_name VARCHAR(100);` - 删除列: `ALTER TABLE users DROP COLUMN age;` - 修改表名: `RENAME TABLE users TO users_new;` - 修改表的字符集: `ALTER TABLE users CONVERT TO CHARACTER SET utf8;` **3. 记录的基本操作** - **插入记录**: 使用 `INSERT INTO` 命令向表中插入新的记录。 - 示例: `INSERT INTO users (name, age) VALUES ('John Doe', 30);` - 如果遇到中文乱码问题,可以通过以下方式解决: - 方式一(不建议): 修改 MySQL 的配置文件 `my.ini`。 - 方式二: 执行 `SET NAMES 'gbk';` 或者 `SET NAMES 'utf8';`。 - **更新记录**: 使用 `UPDATE` 命令来更新表中的记录。 - 示例: `UPDATE users SET age = 31 WHERE name = 'John Doe';` - **删除记录**: 使用 `DELETE FROM` 命令来删除表中的记录。 - 示例: `DELETE FROM users WHERE age > 30;` - **TRUNCATE TABLE**: 用于清空表中的所有数据,并重置自增主键的初始值。 - 示例: `TRUNCATE TABLE users;` - **查询操作**: 使用 `SELECT` 命令来检索表中的数据。 - 示例: `SELECT * FROM users WHERE age > 30;` **4. 查询操作详解** - **基本查询** - 示例: `SELECT * FROM users;` - 查询特定列: `SELECT name, age FROM users;` - 使用表别名: `SELECT * FROM users AS u;` - 使用列别名: `SELECT name AS user_name FROM users;` - 去除重复值: `SELECT DISTINCT age FROM users;` - **条件查询** - 示例: `SELECT * FROM users WHERE name LIKE '%John%';` - 比较运算符: `>, <, >=, <=, =, !=, <>` - `LIKE`: 用于模糊匹配。 - `IN`: 匹配一组值中的任意一个。 - `BETWEEN`: 匹配指定区间内的值。 - `AND`: 多个条件同时满足。 - `OR`: 至少满足其中一个条件。 - **排序查询** - 示例: `SELECT * FROM users ORDER BY age DESC;` - **聚合函数** - 示例: `SELECT COUNT(*), AVG(age) FROM users;` - **分组查询** - 示例: `SELECT cid, COUNT(*) FROM product GROUP BY cid;` - 分组后的筛选: `SELECT cid, AVG(price) FROM product GROUP BY cid HAVING AVG(price) > 20000;` #### 二、JDBC基本概念与操作 **1. JDBC简介** - JDBC (Java Database Connectivity) 是 Java 中用来连接数据库的标准 API。 - 它提供了一套标准的接口,允许 Java 应用程序通过这些接口与不同的数据库进行交互。 - JDBC API 定义了一系列接口,这些接口由各个数据库厂商提供具体的实现类。 **2. JDBC连接数据库** - 加载 JDBC 驱动: 通常使用 `Class.forName("com.mysql.jdbc.Driver");`。 - 创建连接: `Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");` - 创建语句: `Statement stmt = conn.createStatement();` - 执行 SQL 语句: `ResultSet rs = stmt.executeQuery("SELECT * FROM users");` **3. JDBC常用操作** - **查询操作**: 使用 `executeQuery()` 方法执行 `SELECT` 语句。 - 示例: `String sql = "SELECT * FROM users"; ResultSet rs = stmt.executeQuery(sql);` - **插入/更新/删除操作**: 使用 `executeUpdate()` 方法执行 `INSERT`, `UPDATE`, 或 `DELETE` 语句。 - 示例: `String sql = "INSERT INTO users (name, age) VALUES ('John Doe', 30)"; int rowsAffected = stmt.executeUpdate(sql);` #### 三、JDBC与MySQL实战案例 - **案例1: 连接MySQL数据库并查询数据** - 步骤1: 加载驱动。 - 步骤2: 获取连接。 - 步骤3: 创建 Statement 对象。 - 步骤4: 执行查询语句。 - 步骤5: 处理结果集。 - 步骤6: 关闭资源。 - **案例2: 向MySQL数据库中插入数据** - 步骤1: 加载驱动。 - 步骤2: 获取连接。 - 步骤3: 创建 PreparedStatement 对象。 - 步骤4: 设置参数值。 - 步骤5: 执行更新操作。 - 步骤6: 关闭资源。 通过以上介绍,我们不仅了解了 MySQL 数据库的基础操作,还学习了如何使用 JDBC 进行数据库连接和操作。这对于开发基于 Java 的数据库应用是非常重要的基础知识。
剩余28页未读,继续阅读
- 粉丝: 159
- 资源: 46
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和WebSocket的毕业设计选题系统.zip
- (源码)基于C++的机器人与船舶管理系统.zip
- (源码)基于WPF和Entity Framework Core的智能货架管理系统.zip
- SAP Note 532932 FAQ Valuation logic with active material ledger
- (源码)基于Spring Boot和Redis的秒杀系统.zip
- (源码)基于C#的计算器系统.zip
- (源码)基于ESP32和ThingSpeak的牛舍环境监测系统.zip
- 西南科技大学数据库实验三
- Web开发全栈入门与进阶指南:从前端到后端
- TSP问题的概述及其在多领域的应用