|
DQL-----语句的补充 排序查询 ORDER BY 例如:SELECT *FROM 表名 ORDER BY 列名 [DES降序 ASC升序查询排序始终放于语句最后面 聚合函数 1 count :统计制定类不为null的记录素.如果是整张表格,则统计有多条数据 例如:SELECT COUNT(列名 或者 *(查询全表)) FROM 表名; 2 sum:求和 对列的数据进行求和 例如:SELECT SUM(列名) AS `SUM` FROM 表格名 ; 3 MAX 列的最大值 4 MIN 列的最小值 5 AVG 平均值 例如:SELECT AVG(列名) FROM 表名 分组查询 GROUP BY a: 使用格式 分组查询是指使用group by字句对查询信息进行分组, l SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件; 分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。 b: having与where的区别 having是在分组后对数据进行过滤. where是在分组前对数据进行过滤 having后面可以使用分组函数(统计函数) where后面不可以使用分组函数。 JDBC 1 JDBC就是一套API,由sun定义的类或者接口 提供商提供驱动例如 MySQL驱动 Oracle驱动 2 JDBC操作步骤 A. 注册驱动 固定格式 Class.forName(“com.mysql.jdbc.Driver”); B.获得连接:需要记忆单词 获取connection String url =”jdbc:mysql://localhost:3306/mybase”; (jdbc:mysql://主机连接名:端口号/数据库名) String user = “root”;//数据库用户名 String pass =”root”;//数据库密码 利用DriverManager.getConnection(url,user,pass);方法得出connection连接 Connection con = DriverManager.getConnection(url,user,pass); C.获得执行语句对象 Statement stat = con.createStatement(); D.执行sql语句 Int executeUpdate(String sql);返回为成功了几条.只能用于insert , delete ,update 功能 ResultSet executeQuery(String sql):返回是一个结果集,对表格进行查询操作 E.处理结果 如果是做查询功能的时候 需要有以下操作 ResultSet rs = con.executeQuery(sql); While(rs.next()){ System.out.println(rs.getObject(“列名”)); } 在输入sql语句的时候,建议使用编辑器编好后复制到sql语句中 F.释放资源 针对输入攻击的解决方法 public class ZhuRuGongJi { public static void main(String[] args) throws Exception { // 注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取连接 // url :数据库地址 jdbc:mysql://连接主机:端口号/数据库名字 String url = "jdbc:mysql://localhost:3306/mybase"; String user = "root"; String pass = "root"; Connection con = DriverManager.getConnection(url,user,pass); Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String username = sc.nextLine(); System.out.println("请输入密码:"); String password = sc.nextLine(); //执行sql语句数据查询,存在登录成功 String sql = "SELECT *FROM users WHERE username=? AND PASSWORD=?"; PreparedStatement pst = con.prepareStatement(sql); //System.out.println(pst); //调用pst对象set方法设置问号站位付 pst.setObject(1, username); pst.setObject(2, password); //调用方法执行sql获取结果 ResultSet rs = pst.executeQuery(); while(rs.next()){ System.out.println("登录成功"); System.out.println(rs.getString("username")+"\t"+rs.getString("password")); } rs.close(); pst.close(); con.close(); } } 利用PreparedStatement进行对表格的操作 public class UpdateDemo {
|