当前位置: 首页 > news >正文

收录查询代码湖南优化电商服务有限公司

收录查询代码,湖南优化电商服务有限公司,注册网站需要怎么办理,大气企业网站源码简介 在数据开发过程中,常常需要判断几个表直接的数据包含关系,便需要使用到一些特定的关键词进行处理。在数据库中常见的几种关联关系,本文以oracle、mysql、postgresql三种做演示 创建测试数据 oracle -- 创建表 p1 CREATE TABLE p1 (tx…

简介

在数据开发过程中,常常需要判断几个表直接的数据包含关系,便需要使用到一些特定的关键词进行处理。在数据库中常见的几种关联关系,本文以oracle、mysql、postgresql三种做演示

创建测试数据

oracle

-- 创建表 p1
CREATE TABLE p1 (txt VARCHAR2(100),id VARCHAR2(100)
);-- 插入数据到表 p1
INSERT INTO p1 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p1 (txt, id) VALUES ('交通项目', '12'); 
INSERT INTO p1 (txt, id) VALUES ('城建项目', '34'); 
INSERT INTO p1 (txt, id) VALUES ('城建项目', '34');
INSERT INTO p1 (txt, id) VALUES ('工业区项目', '50');
INSERT INTO p1 (txt, id) VALUES ('经济适用房项目', '60');-- 创建表 p2
CREATE TABLE p2 (txt VARCHAR2(100),id VARCHAR2(100)
);-- 插入数据到表 p2
INSERT INTO p2 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p2 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p2 (txt, id) VALUES ('交通项目', '12');
INSERT INTO p2 (txt, id) VALUES ('农业水利项目', '33');
INSERT INTO p2 (txt, id) VALUES ('城建项目', '34'); 
INSERT INTO p2 (txt, id) VALUES ('经济适用房项目', '60');

postgresql/mysql

-- 创建表 p1
CREATE TABLE p1 (txt VARCHAR(100),id VARCHAR(100)
);-- 插入数据到表 p1
INSERT INTO p1 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p1 (txt, id) VALUES ('交通项目', '12'); 
INSERT INTO p1 (txt, id) VALUES ('城建项目', '34'); 
INSERT INTO p1 (txt, id) VALUES ('城建项目', '34');
INSERT INTO p1 (txt, id) VALUES ('工业区项目', '50');
INSERT INTO p1 (txt, id) VALUES ('经济适用房项目', '60');-- 创建表 p2
CREATE TABLE p2 (txt VARCHAR(100),id VARCHAR(100)
);-- 插入数据到表 p2
INSERT INTO p2 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p2 (txt, id) VALUES ('社会事业项目', '11');
INSERT INTO p2 (txt, id) VALUES ('交通项目', '12');
INSERT INTO p2 (txt, id) VALUES ('农业水利项目', '33');
INSERT INTO p2 (txt, id) VALUES ('城建项目', '34'); 
INSERT INTO p2 (txt, id) VALUES ('经济适用房项目', '60');

语法

左关联

 

在使用left join语法时,可以看到,如果关联字段并不是唯一字段,数据并不会去重

 重复数据:“社会事业项目” 两条数据行会出现数据重复

右关联

 

 

 

 在使用right join语法时,可以看到,如果关联字段并不是唯一字段,数据并不会去重

 重复数据:“社会事业项目”,“工业区项目”  两条数据行会出现数据重复

 在使用right join语法时,可以看到,如果关联字段并不是唯一字段,数据并不会去重

 重复数据:“社会事业项目” 两条数据行会出现数据重复

内关联(交集)

 

select   *  from p1 inner join p2 on p1.id =p2.id --等效于
select   *  from p1  join p2 on p1.id =p2.id 

 在使用inner join语法时,可以看到,如果关联字段并不是唯一字段,数据并不会去重

 重复数据:“社会事业项目”   两条数据行会出现数据重复

inner是一个可选关键字

 

 

 内链接的去重写法(此时exists 替换成not exists 便是补集结果)

select   *  from p1 where exists (select 1 from p2 where p1.id = p2.id )

--使用此写法不会因为匹配表有重复匹配记录而发生笛卡尔交叉,产生重复项,但是主表的重复项不会进行去重 

 

--oracle、postgresql、mysqlselect  id ,txt  from p1 
intersectselect  id ,txt from p2

--使用此写法不会因为匹配表有重复匹配记录而发生笛卡尔交叉,产生重复项,但是主表的重复项也会进行去重,此写法适用于mysql、postgresql、oracle  

 

补集

此时再加入一条数据,查看不同语法下的去重效果

对p1表增加一条测试数据


INSERT INTO p1 (txt, id) VALUES ('工业区项目', '50');

 

此时p1表的数据状态 

 补集可以使用上文提到的eixsts 写法

select   *  from p1 where not exists (select 1 from p2 where p1.id = p2.id )

 

 可以使用minus

--oracle select  id ,txt  from p1 minus select  id ,txt from p2--postgresql,mysqlselect  id ,txt  from p1 except select  id ,txt from p2

使用exits 不会对主表的重复数据进行去重,使用minus 会对结果进行去重后再展示。

并集

 并集主要使用union  、union all 的语法,两者语法的区别主要在于对结果的去重处理 

--oracle/postgresql/mysql 
--结果去重
select  id ,txt  from p1 
unionselect  id ,txt from p2
--结果不去重select  id ,txt  from p1 
union  allselect  id ,txt from p2

union  结果去重效果

union all结果不去重效果

 

http://www.ritt.cn/news/16523.html

相关文章:

  • 网站诊断及优化方案电商自学网
  • 90自己做网站seo概念的理解
  • 网站设置仅某浏览器武汉seo计费管理
  • 网站做app用什么语言百度搜索推广的定义
  • 校园类网站模板宁波seo教程行业推广
  • 自己怎么做直播网站武汉seo软件
  • 辽宁建设厅投诉网站免费的网站域名查询565wcc
  • 三河建设厅公示网站十八未成年禁用免费app
  • 北京高端定制网站建设手机百度经验首页登录官网
  • 做网站微信支付多少钱安卓手机优化软件排名
  • 网站建设数据安全分析公司企业网站建设
  • 网站建设多少钱明细网络广告策划案例
  • 做网站能赚能去什么公司厦门seo专业培训学校
  • 免费观看视频的软件哪个好百度优化服务
  • 创业网站平台排名腾讯企点怎么注册
  • 东莞微信网站建设北京推广服务
  • 湖南省金力电力建设有限公司 网站网络营销以什么为中心
  • 做网站用什么格式的图片中国十大网络销售公司
  • 青岛电商网站制作南京seo优化培训
  • 做网站的大骗子网站优化公司上海
  • asp语言网站建设网站关键词查询网址
  • 用phython做网站seo推广方案怎么做
  • 海南中小企业网站建设今日头条普通版
  • 前端做一个页面多少钱seo网站优化培训找哪些
  • 从哪里设置网站关键词独立站怎么建站
  • 自己用钢管做里闪弹枪视频和照网站河南优化网站
  • 做网站字体要求搜索引擎优化原理
  • 建站网站知乎广州营销型网站
  • 如何制作局域网站百度网盘seo优化
  • cad dwt模板做网站模版站长工具关键词查询