添加数据
我们使用了Java的JDBC API来连接MySQL数据库,并执行了一次插入操作。具体来说,我们首先通过Class.forName()
方法加载MySQL的JDBC驱动,然后使用DriverManager.getConnection()
方法建立与MySQL数据库的连接。接着,我们创建了一个预编译SQL语句对象,并通过setString()
方法设置了预编译SQL语句中的参数值。最后,我们调用了executeUpdate()
方法执行插入操作,并在控制台输出了一条成功信息。
// 导入Java SQL包
import java.sql.*;
public class Example {
public static void main(String[] args) {
Connection conn = null; // 声明数据库连接对象
PreparedStatement pstmt = null; // 声明预编译语句对象
ResultSet rs = null; // 声明结果集对象
try {
// 加载MySQL JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立与MySQL数据库的连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 创建预编译SQL语句对象
pstmt = conn.prepareStatement("INSERT INTO student (name, sex, age, achievement, ranking, id) VALUES (?, ?, ?, ?, ?, ?)");
// 设置预编译SQL语句中的参数值
pstmt.setString(1, "小明");
pstmt.setString(2, "男");
pstmt.setInt(3, 20);
pstmt.setInt(4, 70);
pstmt.setInt(5, 20);
pstmt.setString(6, ""); // id为自增长字段,可以设置为空字符串
// 执行插入操作
pstmt.executeUpdate();
System.out.println("数据插入成功!");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
简单查询
-
查询表中所有数据:
SELECT * FROM 表名称;
-
查询指定列数据:
SELECT code, name FROM 表名称;
-
给列指定别名:
SELECT code AS '代号', name AS '姓名' FROM 表名称;
a2: 条件查询
-
查某一行
SELECT * FROM 表名 WHERE code = '指定代码';
-
表示并列的多条件查询:
SELECT * FROM 表名 WHERE sex = 'true' AND nation = '指定值';
-
多条件或的关系查询:
SELECT * FROM 表名 WHERE sex = 'true' OR nation = '指定值';
a3: 范围查询
-
查询指定范围内的数据:
SELECT * FROM 表名 WHERE 列名 > 40 AND 列名 < 50;
-
查询指定范围内的数据(专用于范围查询):
SELECT * FROM 表名 WHERE 列名 BETWEEN 40 AND 50;
a4: 离散查询
-
查询包含指定值的数据:
SELECT * FROM 表名 WHERE 列名 IN ('值1', '值2', '值3');
-
查询不包含指定值的数据:
SELECT * FROM 表名 WHERE 列名 NOT IN ('值1', '值2', '值3');
a5: 模糊查询
-
查询以指定字符串开头的数据:
SELECT * FROM 表名 WHERE 列名 LIKE '%值%';
-
查询以指定字符串结尾的数据:
SELECT * FROM 表名 WHERE 列名 LIKE '值%';
-
查询以指定字符串结尾的数据:
SELECT * FROM 表名 WHERE 列名 LIKE '%值';
-
查询等于指定字符串的数据:
SELECT * FROM 表名 WHERE 列名 LIKE '值';
-
查询第三个字符是指定字符的数据:
SELECT * FROM 表名 WHERE 列名 LIKE '--E';
a6: 排序查询
-
默认升序排序:
SELECT * FROM 表名 ORDER BY 列名;
-
降序排列:
SELECT * FROM 表名 ORDER BY 列名 DESC;
-
多个条件排序:
SELECT * FROM 表名 ORDER BY 列名 DESC, 列名 ASC;
a7: 分页查询
-
查询前5条数据:
SELECT * FROM 表名 LIMIT 5;
- 查询前5条数据(去重):
SELECT DISTINCT * FROM 表名 LIMIT 5;
a8: 去重查询(去掉重复的)
-
查询去重后的数据:
SELECT DISTINCT 列名 FROM 表名;
a9: 分组查询
-
根据某一列分组,并统计每一组的数量:
SELECT Brand, COUNT(*) FROM 表名 GROUP BY Brand HAVING COUNT(*) > 2;
a10: 聚合函数(统计查询)
-
查询所有数据条数(每一列的):
SELECT COUNT(*) FROM 表名;
-
查询指定列的所有数据条数(执行快):
SELECT COUNT(列名主键) FROM 表名;
-
求和:
SELECT SUM(列名) FROM 表名;
-
求平均值:
SELECT AVG(列名) FROM 表名;
-
求最大值:
SELECT MAX(列名) FROM 表名;
-
求最小值:
SELECT MIN(列名) FROM 表名;
注意:'这个是单引号', `这个是~符号`