java输出50次语句_一个项目涉及到的50个Sql语句 弄懂后做项目没压力了

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

--1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数

--1.1、查询同时存在"01"课程和"02"课程的情况

select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]

from Student a , SC b , SC c

where a.Sno = b.Sno and a.Sno = c.Sno and b.Cno =

'01'

and c.Cno =

'02'

and b.score > c.score

--1.2、查询同时存在"01"课程和"02"课程的情况和存在"01"课程但可能不存在"02"课程的情况(不存在时显示为null)(以下存在相同内容时不再解释)

select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]

from Student a

left

join SC b on a.Sno = b.Sno and b.Cno =

'01'

left

join SC c on a.Sno = c.Sno and c.Cno =

'02'

where b.score >

isnull(c.score,0)

--2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数

--2.1、查询同时存在"01"课程和"02"课程的情况

select a.* , b.score [课程'01'的分数],c.score [课程'02'的分数]

from Student a , SC b , SC c

where a.Sno = b.Sno and a.Sno = c.Sno and b.Cno =

'01'

and c.Cno =

'02'

and b.score < c.score

--2.2、查询同时存在"01"课程和"02"课程的情况和不存在"01"课程但存在"02"课程的情况

select a.* , b.score [课程"01"的分数],c.score [课程"02"的分数]

from Student a

left

join SC b on a.Sno = b.Sno and b.Cno =

'01'

left

join SC c on a.Sno = c.Sno and c.Cno =

'02'

where

isnull(b.score,0) < c.score

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java项目中一执行多个SQL语句,可以使用JDBC的批量处理(Batch Processing)功能。 JDBC提供了三种批量处理方式:Statement的批量处理、PreparedStatement的批量处理和CallableStatement的批量处理。 其中,Statement的批量处理是通过Statement的addBatch()方法来实现的,PreparedStatement的批量处理是通过PreparedStatement的addBatch()方法来实现的,而CallableStatement的批量处理是通过CallableStatement的addBatch()方法来实现的。 在进行批量处理之前,需要在数据库连接上进行配置,以告知数据库驱动程序我们要使用批量处理功能。具体来说,需要在创建Connection对象时,通过调用其setAutoCommit(false)方法来关闭自动提交事务的功能,然后通过调用createStatement()、prepareStatement()、prepareCall()方法来创建Statement、PreparedStatement、CallableStatement对象,并在这些对象上调用setFetchSize()方法来设置每从数据库中获取的行数,最后在处理完所有批量操作之后,需要调用Connection对象的commit()方法来提交事务,并将自动提交事务的功能重新打开。 下面是一个示例代码,演示了如何在Java项目中一执行多个SQL语句: ```java Connection conn = DriverManager.getConnection(url, username, password); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); stmt.setFetchSize(100); stmt.addBatch("INSERT INTO table1(column1, column2) VALUES(1, 'value1')"); stmt.addBatch("UPDATE table2 SET column3 = 'value2' WHERE column4 = 2"); stmt.addBatch("DELETE FROM table3 WHERE column5 > 3"); int[] results = stmt.executeBatch(); conn.commit(); conn.setAutoCommit(true); ``` 在这个示例代码中,首先通过DriverManager.getConnection()方法创建了一个数据库连接对象conn,并调用其setAutoCommit(false)方法关闭自动提交事务的功能。然后调用conn.createStatement()方法创建了一个Statement对象stmt,并调用其setFetchSize()方法设置每从数据库中获取的行数为100。接下来,调用stmt.addBatch()方法向批处理队列中添加了三个SQL语句一个INSERT语句一个UPDATE语句一个DELETE语句。然后调用stmt.executeBatch()方法一性执行了所有SQL语句,并返回了每个SQL语句执行结果的数组。最后,调用conn.commit()方法提交事务,并将自动提交事务的功能重新打开。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值