MySql数据库连接种类

查询分析器中执行:

建表table1,table2:

create table table1(id int,name varchar(10))
create table table2(id int,score int)
insert into table1 select 1,‘lli’
insert into table1 select 2,‘zhang’
insert into table1 select 4,‘wang’
insert into table2 select 1,90
insert into table2 select 2,100
insert into table2 select 3,70

如表

table1 | table2 |
id name |id score |
1 li |1 90|
2 zhang| 2 100|
4 wang| 3 70|

table1table2
id nameid score
1 li1 90
2 zhang2 100
4 wang3 70

以下均在查询分析器中执行

一、外连接
1.概念:包括左向外联接、右向外联接或完整外部联接

2.左连接:left join 或 left outer join

(1)左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
(2)sql 语句

select * from table1 left join table2 on table1.id=table2.id

-------------结果-------------
id nameid id score

1 li 1 90
2 zhang 2 100
4 wang NULL NULL

注释:包含table1的所有子句,根据指定条件返回table2相应的字段,不符合的以null显示

3.右连接:right join 或 right outer join

(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

(2)sql 语句

select * from table1 right join table2 on table1.id=table2.id

-------------结果-------------
id name id score

1 li 1 90
2 zhang 2 100
NULL NULL 3 70

注释:包含table2的所有子句,根据指定条件返回table1相应的字段,不符合的以null显示

4.完整外部联接:full join 或 full outer join
(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

(2)sql 语句

select * from table1 full join table2 on table1.id=table2.id

-------------结果-------------
id name id score

1 li 1 90
2 zhang 2 100
4 wang NULL NULL
NULLNULL 3 70

注释:返回左右连接的和(见上左、右连接)

二、内连接
1.概念:内联接是用比较运算符比较要联接列的值的联接

2.内连接:join 或 inner join

3.sql 语句

select * from table1 join table2 on table1.id=table2.id

-------------结果-------------
id name id score

1 li 1 90
2 zhang 2 100

注释:只返回符合条件的table1和table2的列

4.等价(与下列执行效果相同)

select a.*,b.* from table1 a,table2 b where a.id=b.idselect * from table1 cross join table2 where table1.id=table2.id (注:cross join后加条件只能用where,不能用on)

三、交叉连接(完全)

1.概念:没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生3*3=9条记录)

2.交叉连接:cross join (不带条件where…)

3.sql语句

select * from table1 cross join table2

-------------结果-------------
id name id score

1 li 1 90
2 zhang 1 90
4 wang 1 90
1 li 2 100
2 zhang 2 100
4 wang 2 100
1 li 3 70
2 zhang 3 70
4 wang 3 70

注释:返回3*3=9条记录,即笛卡尔积

4.等价(与下列执行效果相同)

select * from table1,table2

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 删除集合中指定的元素

使用 Collection 类的 collection.remove() 方法来删除集合中的指定的元素 完整代码 import java.util.*;public class Main {public static void main(String [] args) { System.out.println( "集合实例!\n" ); int size;HashSet collection new HashSet ();St…

Java 查询IP

用 InetAddress 类的 InetAddress.getByName() 方法来获取指定主机(网址)的IP地址 完整代码 import java.net.InetAddress; import java.net.UnknownHostException;public class GetIP {public static void main(String[] args) {InetAddress address …

Java 端口宝典

在我们运行一些项目的时候经常会出现端口占用的情况,那么我们如何检测当前的端口是否已经被占用了呢? 代码如下 import java.net.*; import java.io.*;public class Main {public static void main(String[] args) {Socket Skt;String host "loc…

Java 获取远程文件的大小

我们应该如何获取远程文件的大小的呢? 代码如下 import java.net.URL; import java.net.URLConnection;public class Main {public static void main(String[] args) throws Exception {int size;URL url new URL("http://a3.att.hudong.com/14/75/01300000…

Java 爬取网页

我们使用 net.URL 类的 URL() 构造函数来抓取网页 代码如下 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.InputStreamReader; import java.net.URL;public class Main {public static void main(String[] arg…

Java 获取 URL响应头的日期信息

我们用 HttpURLConnection 的 httpCon.getDate() 方法来获取 URL响应头的日期信息 代码如下 import java.net.HttpURLConnection; import java.net.URL; import java.util.Date;public class Main{public static void main(String args[]) throws Exception {URL url new UR…

Java 获取 URL 响应头信息

我们如何获取指定 URL 的响应头信息呢? 代码如下 import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.util.Map; import java.util.Set;public class Main {public static void main(String[] args) throws IOExcepti…

Java 解析URL

使用 net.URL 类的 url.getProtocol() ,url.getFile() 等方法来解析 URL 地址 完整代码 import java.net.URL;public class Main {public static void main(String[] args) throws Exception {URL url new URL("http://www.baidu.com/html/html-tutorial.html");S…

MySql 服务名无效

当我们安装好MySql之后进行启动的时候,我们会发现提示我们服务名无效,那么我们应该如何解决这个问题呢? 如果出现了服务名无效我们要知道这是因为我们的MySql服务没有安装。 错误提示: 解决办法 1 . 进入MySql的安装目录的bin…

Navicat 连接Mysql 报错1251

我们在使用navicat链接mysql的时候有时会出现错误1251-Client does not support authentication protocol requested by server; 错误显示 解决办法 1 . 管理员方式打开cmd。 2.以root用户登录MySQL。命令:mysql -u root -p ( 注意&…

Git安装详细步骤

下载安装Git 1 . 下载Git, 官方下载地址:https://git-scm.com/download/win 根据自己的电脑选择32位或者64位操作系统进行下载。 2 . 等待下载完毕,双击进行安装。 3 . 选择软件安装目录,可以使用默认目录也可以指定安装目录。…

Git clone的使用方法

使用Git clone项目 1 . 首先我们要确保我们的电脑上已经安装Git。 桌面点击右键出现如下图所示的两个Git即Git已经安装。 2 . 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹。 3 . 在码云上面打开我们要clone的项目。 4 . 点击克隆/下载按钮出现项目…

remote: Incorrect username or password ( access token )

remote: Incorrect username or password ( access token ) 在使用Git进行项目的clone的时候最后一步出现了这个错误,错误的意思是用户名或者密码不正确。 错误截图 解决办法 1 . 打开控制面板 ,点击用户账户。 2 . 点击管理 Windows 凭据 3 . 找到…

Connection to @localhost failed. [08001] Could not create connection to database server. Attempt

Connection to localhost failed. [08001] Could not create connection to database server. Attempt 当我们使用IDEA的database连接Mysql数据库的时候会出现这个错误。 解决办法 首先要保证我们的路径账户密码啥的都没有问题。 在数据库路径后面添加 ?serverTimezoneGM…

IDEA通过Database连接MySql数据库

我们如何使用IDEA通过里面的Database连接MySQL数据库的呢? 详细步骤 1 . 打开我们的IDEA,右边的侧边栏有Database,点击Database。 2 . 点击 --> Data Source --> MySql。 3 . 填写MySql数据库的用户名和密码以及要链接的数据库名称…

PyCharm 设置背景图片

好看的编译器能使我们愉快的完成编码工作,那么我们能不能给我们的编译器设置一个背景图片的呢??? 详细步骤 1 . 打开我们的PyCharm, File --> Settings。 2 . Apperence --> Background Image …。 3 . 选择背景图片的路…

PyCharm 安装插件

PyCharm安装插件详细教程 1 . 首先打开我们的PyCharm,File --> Setting。 2 . 选择plugins。 3 . 在搜索栏里搜索插件,点击右边的绿色Instail进项插件的下载安装。 4 . 选择Accept。 5 . 点击右边的绿色Restart IDE。 6 . Restart(重…

nginx的启动和关闭

Nginx的启动和关闭 nginx -h 查看帮助信息 nginx -v 查看Nginnx的版本号 nginx -V 显示Nginx的版本号和编译信息 start nginx 启动Nginx nginx -s stop 快速停止和关闭Nginx nginx -s quit 正常停止或关闭Nginx nginx -s reload 配置文件修改重新加载 nginx -t 测试Nginx配置文…

IDEA 乱码

对于新手来说,当我们使用IDEA的时候我们常常会遇到乱码的问题,那么我们应该如何解决IDEA里面的乱码的呢? 乱码解决办法 1 . 首先打开我们的IDEA,File --> Settings。 2 . Editor --> File Encodings, 右边的G…

IDEA配置GIT

在IDEA进行GIT的配置之前我们一定是安装好GIT的 IDEA配置GIT详细步骤 1 . 打开我们的IDEA进入设置界面,点击File --> Setting进入或按快捷键( Ctrl Alt S ) 2 . 找到GIT,点击Version Control --> Git或者直接在搜索栏搜…