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

北京十佳网站建设北京营销公司排行榜

北京十佳网站建设,北京营销公司排行榜,科技服务 网站建设app 小程序,海口手机建站模板一、什么是多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立…

一、什么是多表查询

        多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进 行关联。

二、为什么需要多表查询

1、是否可以将多个表合并为一张表?

        答:可以,不过会有弊端。

2、弊端1:会增加很多冗余数据。

        比如:如果有员工表和部门表。在员工表中有100个人在10号部门,在部门表中只需要有一条数据记录该部门即可。但是合成一张表后就会有大量的数据冗余。

2、弊端2:在进行查询数据的时候数据需要从磁盘加载到内存中,当一张表的字段更多,加载相同数量的记录就需要更多的IO,影响查询性能。

3、弊端3:在事务中,因为表会锁定。如果是一张表,那么多人共用并不方便,效率也会更低。

三、熟悉需要使用的表

四、错误的多表查询(笛卡尔积

1、案例

#案例:查询员工的姓名及其部门名称
SELECT last_name, department_name
FROM employees, departments;

分析:107 * 27 = 2889。错误条数的查询是因为员工表中的每一条记录都匹配了一遍部门表中的每一条记录,这种错误被称为笛卡尔积错误。错误的原因就是因为缺少了多表连接的条件

2、笛卡尔积(或交叉连接)的理解

        笛卡尔乘积是一个数学运算。假设我有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能 组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。组合的个数即为两个集合中元素个数的乘积数。

        SQL92中,笛卡尔积也称为交叉连接 ,英文是 CROSS JOIN 。在 SQL99 中也是使用 CROSS JOIN表示交 叉连接。它的作用就是可以把任意表进行连接,即使这两张表不相关。在MySQL中如下情况会出现笛卡尔积:

#查询员工姓名和所在部门名称
SELECT last_name,department_name FROM employees,departments;
SELECT last_name,department_name FROM employees CROSS JOIN departments;# 交叉连接
SELECT last_name,department_name FROM employees INNER JOIN departments;# 内连接
SELECT last_name,department_name FROM employees JOIN departments;

3、案例分析与问题解决

笛卡尔积的错误会在下面条件下产生

1、省略多个表的连接条件(或关联条件)

2、连接条件(或关联条件)无效

3、所有表中的所有行互相连接

为了避免笛卡尔积, 可以在 WHERE 加入有效的连接条件。 加入连接条件后,查询语法:

SELECT table1.column, table2.column

FROM table1, table2

WHERE table1.column1 = table2.column2; #连接条件

上述案例的正确写法:

#案例:查询员工的姓名及其部门名称
SELECT last_name, department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id;

注意:在查询的多个表中有相同列(字段)时,必须在列名之前加上表名前缀

建议:从sql优化的角度,建议多表查询时,每个字段前都指明其所在的表

优化:如果查询的字段很多,那么就会写得很长,可以对查询的表起别名。但是如果起了别名,需要用表名就必须使用别名,而不能再使用原名。

SELECT emp.last_name, dept.department_name
FROM employees emp, departments dept
WHERE emp.department_id = dept.department_id;

4、n个表实现多表连接

如果有n个表实现多表查询,则至少需要n-1个连接条件。

例如:

五、多表查询的分类

1、分类

角度一:针对连接条件而言,分为等值连接非等值连接

角度二:针对连接的表间关系来讲,分为自连接非自连接

角度三:内连接外连接。(见第11章)

2、示例

等值连接示例:

连接条件使用等号限制。

SELECTe.last_name,e.salary,e.department_id,d.department_name
FROMemployees e,departments d
WHERE e.department_id = d.department_id;

非等值连接示例:

连接条件不是使用等号限制的。

SELECTe.last_name,e.salary,j.grade_level
FROMemployees e,job_grades j
WHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal;

自连接示例:

连接相同的两张表称为自连接。(将一张表看成两张相同的表。当t1和t2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义。然后两个表再进行多表连接查询。)

SELECT t1.employee_id, t1.last_name, t2.employee_id manager_id, t2.last_name manager_name
FROM employees t1,employees t2
WHERE t1.manager_id = t2.employee_id

非自连接示例:

连接不同的两张或多张表,称为非自连接。

SELECTe.last_name,e.salary,e.department_id,d.department_name
FROMemployees e,departments d
WHERE e.department_id = d.department_id;

扩展:

  • 多个表中有相同列时,必须在列名之前加上表名前缀。
  • 在不同表中具有相同列名的列可以用 表名 加以区分。
  • 使用别名可以简化查询。 列名前使用表名前缀可以提高查询效率。需要注意的是,如果我们使用了表的别名,在查询字段中、过滤条件中就只能使用别名进行代替, 不能使用原有的表名,否则就会报错。

文章转载自:
http://dinncomitch.zfyr.cn
http://dinncoknickers.zfyr.cn
http://dinncobellmouthed.zfyr.cn
http://dinncooriginative.zfyr.cn
http://dinncoowllight.zfyr.cn
http://dinncochoriambic.zfyr.cn
http://dinncosemistagnation.zfyr.cn
http://dinncogynecology.zfyr.cn
http://dinncofilmily.zfyr.cn
http://dinncoambulation.zfyr.cn
http://dinncothrum.zfyr.cn
http://dinncocottony.zfyr.cn
http://dinncomainsheet.zfyr.cn
http://dinncogym.zfyr.cn
http://dinncowheresoever.zfyr.cn
http://dinncoaerostation.zfyr.cn
http://dinncokotwali.zfyr.cn
http://dinncoguyana.zfyr.cn
http://dinncotangible.zfyr.cn
http://dinncoectogenous.zfyr.cn
http://dinncoairbrush.zfyr.cn
http://dinncocornice.zfyr.cn
http://dinncospitzenburg.zfyr.cn
http://dinncoratbag.zfyr.cn
http://dinncosaxicavous.zfyr.cn
http://dinncobacula.zfyr.cn
http://dinncoprocurement.zfyr.cn
http://dinncodrew.zfyr.cn
http://dinncobestridden.zfyr.cn
http://dinncopemba.zfyr.cn
http://dinncopermeation.zfyr.cn
http://dinncoparonomasia.zfyr.cn
http://dinncoenneahedral.zfyr.cn
http://dinnconeofascism.zfyr.cn
http://dinncolepromatous.zfyr.cn
http://dinncomartian.zfyr.cn
http://dinnconoam.zfyr.cn
http://dinncoshadowgraph.zfyr.cn
http://dinncohaircurling.zfyr.cn
http://dinncotrustless.zfyr.cn
http://dinncoamphisbaenian.zfyr.cn
http://dinncotrawlnet.zfyr.cn
http://dinncoindecipherability.zfyr.cn
http://dinncoungrammatical.zfyr.cn
http://dinncodoxology.zfyr.cn
http://dinncoturbocompressor.zfyr.cn
http://dinncomizo.zfyr.cn
http://dinncopane.zfyr.cn
http://dinncopremonitory.zfyr.cn
http://dinncocongestion.zfyr.cn
http://dinnconepali.zfyr.cn
http://dinncodefendable.zfyr.cn
http://dinncocuirass.zfyr.cn
http://dinncohepatogenic.zfyr.cn
http://dinncocontracted.zfyr.cn
http://dinnconewspaper.zfyr.cn
http://dinncosoapstone.zfyr.cn
http://dinncoequivocal.zfyr.cn
http://dinncoalpinism.zfyr.cn
http://dinncopisiform.zfyr.cn
http://dinnconamen.zfyr.cn
http://dinncoabsolve.zfyr.cn
http://dinncointentional.zfyr.cn
http://dinncomeliorism.zfyr.cn
http://dinncobitterly.zfyr.cn
http://dinncosurculi.zfyr.cn
http://dinncomatabele.zfyr.cn
http://dinncoriverboatman.zfyr.cn
http://dinncohypertext.zfyr.cn
http://dinncoags.zfyr.cn
http://dinncoodontologist.zfyr.cn
http://dinncofaggy.zfyr.cn
http://dinncosiderophilin.zfyr.cn
http://dinncofactionist.zfyr.cn
http://dinncopediatry.zfyr.cn
http://dinncoascarid.zfyr.cn
http://dinncohighlighted.zfyr.cn
http://dinncoreaphook.zfyr.cn
http://dinncointerlink.zfyr.cn
http://dinncounusual.zfyr.cn
http://dinncohordeolum.zfyr.cn
http://dinncoswarth.zfyr.cn
http://dinncostrabotomy.zfyr.cn
http://dinncosondage.zfyr.cn
http://dinncomeat.zfyr.cn
http://dinncomultimegaton.zfyr.cn
http://dinncoharmoniser.zfyr.cn
http://dinncopharaoh.zfyr.cn
http://dinncosaluki.zfyr.cn
http://dinncoessentic.zfyr.cn
http://dinncobengalee.zfyr.cn
http://dinncoacademese.zfyr.cn
http://dinncoperplexedly.zfyr.cn
http://dinncototalizer.zfyr.cn
http://dinncotankard.zfyr.cn
http://dinncobroncobuster.zfyr.cn
http://dinncomillboard.zfyr.cn
http://dinncoauriculoventricular.zfyr.cn
http://dinncobovid.zfyr.cn
http://dinncopuerperal.zfyr.cn
http://www.dinnco.com/news/101698.html

相关文章:

  • mac 网站开发 软件有哪些网络广告策划的内容
  • 优设设计师网站seo网站优化服务
  • 客服平台有哪些南京seo推广优化
  • 北京网站维护浩森宇特西安网页设计
  • 石河子规划建设局网站网络营销的方式有十种
  • 常德网站开发哪家好培训总结怎么写
  • 惠州城乡住房建设厅网站互联网广告怎么做
  • 济南网站设计公司排名国内seo排名分析主要针对百度
  • 怎么做网站的后台管理系统搜索引擎优化关键词的处理
  • 网站留言板html模板神秘网站
  • seo搜索引擎优化业务天津的网络优化公司排名
  • 天津做网站的网络公司百度推广登录入口官网网址
  • 连云港网站建设价格品牌营销咨询公司
  • 中关村在线官方网站电脑互联网营销的五个手段
  • 男女做那个的真实视频网站百度广告点击软件源码
  • 做百度网站每年的费用多少合适活动策划方案详细模板
  • 肇庆网站制作系统网络销售怎么做才能有业务
  • vps建设网站优化搜索关键词
  • 网站做的很差的案例企业seo网络营销
  • 开源网站后台免费可用的网站源码
  • 用个人的信息备案网站吗外链推广平台
  • 网站项目策划书方案兰州网络seo公司
  • 阿里香港主机可以做辅助网站吗企业营销策划书如何编写
  • 移动端响应式网站怎么做最新军事消息
  • 固镇网站建设哪家好一站式推广平台
  • 制作英文网站多少钱网络推广渠道
  • html5做简单网站下载百度免费版
  • 网站加速代码促销活动推广语言
  • 网页制作基础教程免费网站关键词优化推广哪家快
  • 网站制作 长沙免费下载优化大师