左连接:返回包括左表中的所有记录和右表中联结字段相等的记录;
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了临潭免费建站欢迎大家使用!
右连接:返回包括右表中的所有记录和左表中联结字段相等的记录;
全连接:返回两个连接表的所有记录;mysql没有全连接
内连接:返回两个连接表连接字段相同的记录;
union:对两个结果集进行并集,并去重,当交换两个select语句顺序后,最终结果与不交换时无区别;
union all:对两个结果集进行并集,不去重,当交换两个select语句顺序后,最终结果与不交换时有区别;
举个例子 有一个学生表 班级 姓名 一个成绩表 姓名 成绩 我们需要返回X班的所有学生的成绩,但是班上有人缺考,也就是成绩表里没有姓名,我们先用on得到的就是有考试成绩的名字,通过外连接,我们就可以得到全班人的名字以及成绩。
连接方法如下:
1.建立一个web项目
2.把数据库驱动复制到lib目录下。数据库驱动有:mysql,sqlserver,oracle等 是什么样类型的数据导入相应驱动。
3.编写一个连接数据库的工具类,获取一个连接。下面以mysql数据库为例。
核心代码:
public class DataUtils {
/**
* 从数据中获取一个连接
* @return
*/
public static Connection getConn(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//表为test,用户名root,密码admin。
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "admin");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
4.获取到与相应数据库的连接后,就可以做增删改查操作了。记得做完操作后,关闭连接,释放资源。
SQL中的 join 可以根据相应条件把指定的表给结合起来并将数据返回。
内连接是基于连接谓词将俩张表(如A和B)的列组合到一起产生新的结果表,在表中存在至少一个匹配时,INNER JOIN 关键字返回行
左外连接Left join关键字会从左表那里返回所有的行,即使是在右表中没有匹配到的行
右外连接关键字Right join会从右表那里返回所有的行,即使是在左表中没有匹配到的行
全连接的关键字Full join,只要其中某个表中存在匹配,Full join 就会返回行
交叉连接一般使用的比较少,交叉连接又称笛卡尔连接或者叉乘连接,如果,A和B是俩个集合,他们的交叉连接就是A*B
今天介绍的是eclipse如何与MySQL相连,相信很多小伙伴和我一样,对路径啊,什么包放在那里啊很是头疼,今天一下午才弄好就赶来分享啦,超详细哦!
准备工作:下载MySQL和jdbc,这里就不讲了,注意的是你可能已经下载了MySQL,但是没有下载jdbc,它们的下载是分开的,所以你可以先看看本文后面的一些步骤,先确定自己有没有下载jdbc,没下载的去官网下载一下,只有几兆,非常快。
1、首先打开eclipse,新建一个工程“My”,具体操作为:
点击“File”----点击“new”----点击“java project”,得到下图页面,在project name填工程名字,比如“My”,然后点击“finish”
2、这个时候在左边我们可以看到工程已经被创建出来了
右键“My”——“build path”——“configure build path”
在libraries这里点击邮编第二个“add external jars”,找到你当时下载jdbc后把它解压缩存的位置,找到MySQL jar打开
3、点击apply和apply and close即可
4、点击My,点击rreferenced libraries界面如下,你看到那个jar包就行了
5、打开MySQL客户端,输入你自己的密码,show databases;查看自己的数据库有哪些
6、接下来用程序测试一下src——右键new——class——填写name:jdbc,把最下面的第一个也打钩,然后finish
7、代码如下
import java.sql.*;
public class Jdbc {
public static void main(String args[]) {
try {
Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序
//Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("Success loading Mysql Driver!");
}
catch (Exception e) {
System.out.print("Error loading Mysql Driver!");
e.printStackTrace();
}
try {
Connection connect = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","java");//java这个空填写的是你自己设的密码
System.out.println("Success connect Mysql server!");
Statement stmt = connect.createStatement();
ResultSet rs = stmt.executeQuery("select * from user");
//user 为你表的名称,可以在MySQL命令行用show tables;显示
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
catch (Exception e) {
System.out.print("get data error!");
e.printStackTrace();
}
}
}
8、正常这样是不会出错的,但是由于版本问题可能会出错
如果出现这种错误,则:(1)
(2) "jdbc:mysql://localhost:3306/test?serverTimezone=CTTuseUnicode=truecharacterEncoding=utf-8allowMultiQueries=true","root","java");//java这个空填写的是你自己设的密码改这两处就行了,希望对大家有帮助呀!
————————————————
版权声明:本文为CSDN博主「资本主义向茶葵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接: