首页 > 其他分享 >2023.3.9每日总结

2023.3.9每日总结

时间:2023-03-09 20:46:58浏览次数:46  
标签:总结 每日 girls 查询 2023.3 boys WHERE 连接 SELECT

多表操作

一、多表连接

将多张表连在一起进行查询。通过两个表共有的列去进行拼接。多表连接,首先要在表之间建立连接。
连接查询一共分为以下几类:

  1. 交叉连接
  2. 内连接
  3. 外连接
  4. 自然连接

(一)交叉连接

将一张表的数据与另外一张表中的数据彼此交叉。也就是说把一张表中的每一行逐个与另一张表去进行匹配。没有任何连接条件,所有的记录都会被保留。

SELECT 字段1,字段2 FROM 表1 JOIN 表2
  • 1

交叉连接产生的结果是笛卡尔积,没有实际应用。

(二)内连接

使用比较运算符设置连接条件,将一个表中的所有行与另外一张表中的行进行匹配,只返回满足条件的行。

SELECT 字段1,字段2 FROM 表1 JOIN 表2 WHERE 连接(检索条件)
  • 1

注:内连接一次可以连接很多张表,只需要在在建立连接的时候连接多张表,在设置检索条件的时候把需要检索的信息都设置好就可以。

(三)外连接

在查询时所有的表有主从之分。把作为主表的表的行与从表中的行一一进行匹配,如果匹配成功返回到主表中,如果匹配不成功,则仍然保留主表中的行,相应的从表中的行也被填上null值。
左外连接:LEFT JOIN ON
把左表作为主表去连接右表

SELECT * FROM 表1 LEFT JOIN 表2
ON条件表达式
  • 1
  • 2

右外连接:RIGHT JOIN ON
把右表作为主表去连接左边的表

SELECT * FROM 表1 RIGHT JOIN 表2 ON 条件表达式
  • 1

MYSQL不支持全外连接
全外连接:即都为主表。左表中未匹配的行仍保留,同时赋给右表NULL值,右表的未匹配的行仍然保留同时赋给左表值NULL。

SELECT * FROM  表1 FULL JOIN 表2 ON 条件表达式
  • 1

(四)自连接

自连接,就是两个表的两个副本进行连接,为了区别,对表设置别名

二、多表连接查询

子查询是指嵌套到其它查询里的SELECT语句,也称为嵌套查询。字查询一般不使用ORDER BY 语句
当子查询的返回值只有一个时,可以使用比较运算符等将父查询和子查询连接起来。
如果子查询的返回结果不止一个,是有很多个时不能直接使用比较运算符进行连接,可以在比较运算符和子查询之间插入ANY,SOME,ALL。其中等值关系可以用IN操作。

普通子查询

SELECT boys.`boyName` FROM boys 
WHERE boys.id
= (SELECT girls.boyfriend_id FROM girls WHERE girls.id<2);
  • 1
  • 2
  • 3

带有ANY,ALL 谓词的子查询

父查询和子查询需要使用比较运算符进行连接
ANY只要有一个为TRUE则结果为TRUE
ALL如果一系列的比较都为TRUE,结果才为true

SELECT boys.`boyName` FROM boys 
WHERE boys.boysAGE
 >(SELECT girls.age FROM girls WHERE girls.`id`<2);
  • 1
  • 2
  • 3

带有IN谓词的子查询

IN关键字的子查询用于判断父查询的表达式是否在子查询返回的多个值的列表中。

SELECT boys.`boyName` FROM boys WHERE boys.id
IN (SELECT girls.boyfriend_id FROM girls WHERE girls.id<4); 
  • 1
  • 2

带有EXISTS 谓词的子查询

判断是有存在有或者只要有有个。EXISTS和后边的查询语句共同构成一个EXISTS语句,只要在EXISTS语句中查询到有一个满足条件,返回结果为TRUE。否则返回结果为FALSE。

SELECT  * FROM boys 
WHERE EXISTS  (SELECT * FROM girls WHERE girls.id=4);
  • 1
  • 2

联合查询UNION

把多个查询语句的查询结果结合在一起。使用UNION 关键字

SELECT * FROM 表1
UNION * FROM 表2

  • 1
  • 2
  • 3

UNION 联合查询的返回结果会自动去除重复项,如果不需要去除重复项需要使用 UNION ALL

标签:总结,每日,girls,查询,2023.3,boys,WHERE,连接,SELECT
From: https://www.cnblogs.com/fuchuchu/p/17201318.html

相关文章

  • 2023.3.9——软件工程日报
    所花时间(包括上课):4h代码量(行):0行博客量(篇):1篇今天,上午学习工程数学,下午体育锻炼。我了解到的知识点:1.如何反手发球;2.校园网太卡,迫使我学习一些网络知识;......
  • 每日总结2023/3/9
    今天学习了数据在Activity之间的传播:向下一级传播这是第一个页面Java代码publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{......
  • 每日总结3.7
    安卓开发菜单栏首先在想xml文件里引入Toobar控件,他的作用就是制作一个顶部菜单,但是想要对这个菜单有操作需要以下代码myToolbar=findViewById(R.id.myToolbar);setSu......
  • 2023.3.9软件工程日报
    所花时间:1小时 代码量:50行 博客量:1今天进行修改的是自己的闹钟功能,试图加入更多的内容,例如让用户自己设定文字,通过findview的形式获取到一个全局变量中,再在提示的Re......
  • 每日总结3.8
    对菜单栏里添加更多按钮首先新建一个menu布局文件    调用以下函数实现删除publicbooleanonOptionsItemSelected(@NonNullMenuItemitem){switc......
  • 每日总结
    今日就浅浅的记录一下时间androidstudio个控件可以以一个时钟的方式显示计数,也可以是日历形式<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="......
  • 每日总结3.6
    求数组里最长子数组和问题importjava.util.List;importjava.util.Scanner;publicclassPAR{publicstaticvoidmain(String[]args){intmax=0......
  • 3.9每日总结
      今天学习用androidstudio实现增删改查。一个class用来创建数据库,建表,一个activity用来执行增删改查操作//今天只实现界面,还不能完全运行布局表信息(csdn上的)<?xml......
  • 指针总结
    这篇博客是我在学习了一段时间的指针后,做的一些总结,如有错误请严厉指正。首先是我写的一篇关于指针的思维导图。当然除了这些之外还有一个不是指针但是和指针有关的就是函数......
  • 3月09日课后总结
    3/09课后总结贪婪匹配与非贪婪匹配""" 正则表达式都是默认贪婪匹配 如:字符串<abc>123<abc> 正则表达式<.*> 则会匹配到<abc>123<abc> 非贪婪匹配则是<.*?> 匹配到<......