jdbc查mysql_mysql的查询及连接JDBC数据库

查询记录

查询表达式

每个表达式表示想要的一列,必须至少一个。

多个类之间以英文逗号分隔。

“*”号表示所有列

例如

只查询id和name两列

SELECT id,name FROM student;

WHERE

条件表达式

对记录进行过滤,如果没有指定WHERE自居,则显示所有记录。

在WHERE表达式中,可以使用MySQL支持的杉树或运算符。

例如:

查询id为偶数的记录

SELECT * FROM student WHERE id%2=0;

GROUP BY

查询结果分组

例如

按照分数分组,并且降序排列

SELECT * FROM student GROUP BY score DESC;

HAVING

分组条件

例如:

按照分数分组,并且只显示大于60分的

SELECT * FROM student GROUP BY score HAVINGscore > 60;

ORDER BY

对查询结果进行排序

例如:

按照id降序排列

SELECT * FROM student ORDER BY id DESC;

LIMIT

限制查询结果返回的数量

例如:

返回查询结果中的第二条记录

SELECT * FROM student LIMIT2;

返回2条记录,从第一条记录开始(记录从0开始编号);

SELECT * FROM student LIMIT 1,2;

输出分数最高的3名学生记录

SELECT * FROM student WHERE name LIKE ‘L%’;

子查询

概念

子查询(Subquery)是指出现在其他SQL语句内的Select子句。

例如:

SELECT * FROM T1 WHERE col1=(SELECT col2FROM t2);

其中SELECT * FROM t1,称为OuterQuery/Out

SELECT col2 FROM t2,称为SubQuery

注意

子查询指嵌套在查询内部,且必须始终出现在圆括号内。

子查询可以包含多个关键字或条件,如果GROUP BY,ORDER BY,LIMIT,函数等。

子查询的外层查询可以是:SELECT,INSERT,UPDATE,SET 或DO.

子查询返回值

子查询可以返回标量,一行,一列,或子查询。

使用比较运算符的子查询

=,>,=,<=,!=

例如:查询高于班级平均分的学生

方法一先求平均值,然后查询

SELECT AVG(score) FROM student;

SELECT * FROM student WHEREscore>=(SELECT AVG(score) FROM student);

多表连接查询

使用on关键字来设定连接条件,使用WHERE关键字进行结果集记录的过滤。

INNER JOIN 内连接

多个表的交集

LEFT(OUTER)JOIN 左外连接

左表和多个表的交集

RIGHT(OUTER)JOIN 右外连接

右表和多个表的交集

例:

SELECT * FROM user RIGHT JOIN province ONprovince id=user.pid;

常用函数

字符函数

[NOT]LIKE

模式匹配

例:

SELECT * FROM student WHERE name LIKE ’L%’;

查找名字以L开头的学生信息

%表示匹配任意个字符_表示匹配任意一个字符

比较函数

IS [NOT]NULL

是否为空

例:

SELECT * FROM student WHERE name IS NULL;

查找名字为null的学生信息

聚合函数

AVG()平均值

MAX()最大值

MIN()最小值

SUM()求和

COUNT()求数量

JDBC

概念

JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它是由一组用Java语言编写的类和接口组成。

使用JDBC连接数据库步骤

1加载JDBC驱动程序,不同的数据库加载的驱动不一样

Class.forName("com.mysql.jdbc.Driver");

2建立连接。通过DriverManager类的getConnection方法建立连接时,需要注意getConnection会抛出SQLException异常,需要在try/catch块中捕获。

String url = "jdbc:mysql://localhost/bookshop";

String user = "root";

String password = "123456";

Connection con = DriverManager.getConnection(url, user, password);

3.创建Statement对象 用来向数据库发送查询和命令 大部分数据库驱动程序允许在同一个连接中打开多个并行的Statement对象,创建好Statement对象之后,就可以使用它来进行数据库的操作了。

Statement state = con.createStatement();

4.结果集处理。

//查询数据

ResultSet set = state.executeQuery("SELECT * FROM user");

while(set.next()){

String name = set.getString("name");

System.out.println(name);

}

//更新记录

state.executeUpdate("UPDATE user SET pass = '000' WHERE id = 1");

//插入记录

state.executeUpdate("INSERT user (name, pass)VALUES('Herry', '124')");

//删除记录

state.executeUpdate("DELETE FROM user WHERE id = 1");

5.关闭连接。关闭连接的同时,还要关闭对应的Statement和ResultSet对象。

set.close();

state.close();

con.close();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值