2017-6-29

来源:互联网 发布:俄罗斯军粮淘宝 编辑:程序博客网 时间:2024/06/05 09:31




连接查询


1.左连接查询(table1 left join table2)
以左表为准,去右表找数据,如果没有匹配的数据,则以null补空位,所以输出结果数>=左表原数据数
2.右连接查询(table1 right join table2)
反之
3.内连接(table1 inner join table2或者table1,table2(省略inner join 写为、,))
查询结果是左右连接的交际(即左右连接的结果去除null项后的并集(去除了重复项))
4.外连接(mysql暂不支持)
即左右连接结果的并集,不去除null项
PS:每次比较都是用一项去与另一个表的所有记录做比较


SELECT dept.deptno 部门编号,sum(emp.sal) 总工资,count(emp.empno) 部门人数,dept.dname 部门名称 
from emp right JOIN dept on emp.deptno = dept.deptno GROUP BY dept.deptno 


PS:表名后面也可以跟AS+新表名


SELECT *,dept.dname 部门名称 FROM (select deptno,sum(sal),count(empno) from emp GROUP BY deptno) a INNER JOIN dept on a.deptno = dept.deptno 


BETWEEN A AND B 大于A小于B


PS:查询的结果就是一个表,可以当做表来操作
例:SELECT a.deptno 部门编号,a.ss 总和,a.ce 人数,dept.dname 部门名称 FROM (select deptno,sum(sal) ss,count(empno) ce
from emp GROUP BY deptno) a INNER JOIN dept on a.deptno = dept.deptno


分页查询
SELECT * FROM TABLENAME LIMIT start,num;//充第start(从0开始)行开始,一共num行
如:limit 0,1就是差第一行








JAVA:连接数据库
String url = "jdbc:mysql://localhost:3306/jdbctest";
String user = "root";
String password = "123456";
Class.forName(driver);
Connection con = DriverManager.getConnection(url,user,password);
if(!con.isClosed){
System.out.println("连接成功");
}
原创粉丝点击