对数据库查询结果进行排序、分页显示查询结果、多表查询…
1 数据排序
在数据库技术中,可以使用ORDER子句对查询结果进行排序
[ ORDER BY { order_by_expression[ ASC | DESC]} [ ¸…n ] ]
其中,order_by_expression用来指定要排序的列;ASC指定按递增顺序排列;DESC指定按递减顺序排序。
Class.forName(
"
com.microsoft.jdbc.sqlserver.SQLServerDriver
"
).
new
Instance( );
String url = " jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs " ;
String user = " wenchengma " ;
String password = " mzcheng " ;
Connection conn = DriverManager.getConnection( url, user, password );
Statement st = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
String sql = " select * from tbl order by id desc " ;
ResultSet rs = st.executeQuery( sql );
while ( rs.next ) ... {
out.println( rs.getString( "..." ) );
}
rs.close( );
st.close( );
conn.close( );
String url = " jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs " ;
String user = " wenchengma " ;
String password = " mzcheng " ;
Connection conn = DriverManager.getConnection( url, user, password );
Statement st = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
String sql = " select * from tbl order by id desc " ;
ResultSet rs = st.executeQuery( sql );
while ( rs.next ) ... {
out.println( rs.getString( "..." ) );
}
rs.close( );
st.close( );
conn.close( );
2 主/从表处理
实现主从表查询主要通过IN子句和EXISTS子句为实现。
IN子句是通过IN(或NOT IN)连接起来的一种检索数据的方法,其返回的结果集中可以包含零个或者多个值。
EXISTS子句是通过EXISTS(或NOT EXISTS)连接起来的一种检索数据的方法,它的功能是判断子查询的结果集中是否有数据行返回,返回TRUE或FALSE,而不返回其他的实际数据。由于不需要在这种子查询中返回具体值,这种子查询的选择列表经常使用“SELECT *”格式,其外层的WHERE子句也不需要指定列名。
select au_id, au_name form authors where au_id IN ( select au_id form titleauthor where title_id IN ( select title_id form titles where type
=
"
business
"
) )
3 事务处理
事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的、成组的逻辑单元,当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败时,整个事务就全部视为错误,所有从起始点以后的操作应全部回退到状态。