首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL—内连接和外连接区别

区别 内连接(inner join):取出两张匹配到的数据,匹配不到的不保留 外连接(outer join):取出连接匹配到的数据,匹配不到的也会保留,其值为NULL 示例 users mysql...3 | Lucy | | 4 | Jack | | 5 | James | +----+-------+ 5 rows in set (0.00 sec) topics mysql> select...---------------------+---------+ 2 rows in set (0.00 sec) 外连接(outer join) 左外连接(left outer join):以左边的主表...右外连接(right outer join):以右边的主表 以某一个主表,进行关联查询,不管能不能关联的上,主表数据都会保留,关联不上的以NULL显示 通俗解释就是:先拿出主表的所有数据,然后到关联的那张去找有没有符合关联条件的数据...,如果有,正常显示,如果没有,显示为NULL 示例 mysql> select * from users as u left join topics as t on u.id=t.user_id; +-

1.2K20

mysql学习总结04 — SQL数据操作

; 1.4 SELECT操作 命令:select database(); mysql SELECT 命令类似于其他编程语言的 print 或 write,可用来显示字符串、数字、数学表达式的结果等...'); 4.3 蠕虫复制 从已有数据获取数据插入到数据 基本语法:insert into () select */ from ; mysql> insert...,使用联合查询数据存放到一起显示 例如:男生身高升序排序,女生身高降序排序 例如:QQ1获取在线数据、QQ2获取在线数据 … >>>> 将所有在线的数据显示出来 基本语法: select 语句...永远只保留第一个select语句对应的字段名 联合查询,如果要使用order by,那么对应的select语句必须使用括号括起来 order by 联合查询若要生效,必须配合使用 limit +...where查询查询出现的位置where条件(标量、列、行查询) from查询查询出现的位置from数据,做数据源(查询) 11.1 标量子查询 标量子查询查询结果是一个数据

5.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

laravel5.6框架操作数据curd写法(查询构建器)实例分析

本文实例讲述了laravel5.6框架操作数据curd写法(查询构建器)。分享给大家供大家参考,具体如下: laravel5.6 数据库操作-查询构建器 <?...//注意:目前使用 groupBy 的分页操作不能被Laravel有效执行 $data = DB::table('users')- paginate(2); //前台分页链接附加参数实现分页 $getName...' = $result]); } } groupBy 对查询结果进行分组出现问题 当select和groupBy列表不一致时候会报错。...操作数据ORM 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程...》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

2.2K30

学会Mysql第三天

语句的结果集 select 字段 from 1 union select 字段 from 2; union 和union all 的区别: union all 显示所有的查询结果 union 显示删除重复后的结果...行查询用于where条件判断:where查询 查询是用于from数据源:from 查询 基本语法: select 字段 from (查询)as 别名 [where/group by/having...as temp group by class_id; 查询特定关键字的使用 in 主查询 where 条件 in (列子查询); select * from my_student where class_id...常见的三个查询: 标量子查询、列子查询和行查询:都属于where查询 select语句中,如果from子句引用了多个源或试图,则可以用join关键字连接 1、内连接 内连接:inner join...从 On 连接条件; 左连接对应的主表数据左边;右连接对应的主表数据右边; select * from my_stydent as s lefy join my_clas c on s.class_id

72120

【腾讯云的1001种玩法】CRUD生成器DBuilder介绍与腾讯云部署

第一部分 说明 1.意义 Dbuilder是基于laravel4开发的一套快速实现数据CRUD(增删改查)操作的工具,核心思想是做到针对数据的每个字段做到精确配置,通过生成字段配置通过修改配置的方式来实现增删改查功能...beforeView(data): 该接口View请求,View 查询查询之后调用,传递的是视图参数的引用。用来对视图显示做预处理。...比如使用select控件,那么应该将category.id作为option的value,将category.name作为option的text。这样做也是为了方便用户输入。...Form 定义为select,radio,checkbox控件的字段,List中都将使用select控件作为输入控件; List 排序:以Module Configuration定义了form.sort...模块的配置文件未定义某些参数时,将使用admin.php的默认参数; app/views/admin/core/list.blade.php:CoreCRUD模块的列表视图文件,用来呈现数据列表;

4.6K00

MySQL系列专题(2)-MySQL的SQL语句和高级特性

BY department_id; #error 注:分组查询select显示的列只能是分组依据列,或者聚合函数列,不能出现其他列。...WHERE DEPARTMENT_ID=60); 注意:当查询结果集形式为多行单列时可以使用 ANY 或 ALL 关键字 2.14 查询(作为一张SELECT 列名 FROM(查询的结果集...更新从主表不变 3.3.2 Trigger 触发器是与有关的数据库对象,满足定义条件时触发,执行触发器定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。...同真实的一样,视图包含一系列带有名称的列和行数据使用视图时动态生成。...不使用索引 1.查询很少使用到的列 不应该创建索引,如果建立了索引然而还会降低mysql的性能和增大了空间需求. 2.很少数据的列也不应该建立索引,比如 一个性别字段 0或者1,查询,结果集的数据占了数据行的比例比较大

3.7K10

高级查询、内外连接

1.EXISTS查询 语法: select .......from 名 where exists(查询) 查询有返回结果: EXISTS查询结果为TRUE,则执行外层查询 查询无返回结果:...EXISTS查询结果为FALSE,外层查询不执行 当数据量大的时候使用exists,如数据量于一万以上使用数据量少时可以使用in 示例: /*1.检查‘logic java’ 课程最近一次考试成绩*...可以采用NOT EXISTS检测是否全部未通过考试,即不存在“成绩>=60分”的记录 3.查询注意事项 (1)任何允许使用表达式的地方都可以使用查询 (2)嵌套在父查询SELECT语句的查询可包括...: SELECT子句 FROM子句 WHERE子句 GROUP BY子句 HAVING子句 (3)只出现在IN查询而没有出现在父查询的列不能包含在输出列 4.分组查询用法 SELECT列表只能包含...student数据逐条匹配result数据 1.匹配,返回到结果集 2.无匹配,NULL值返回到结果集 示例: /*左外连接 left join 前面的主表,以主表里的字段为依据,把从表里的数据填充给主表

61520

【MySQL】多表查询

首先,为了方便说明问题,创建两个emp(雇员信息)和dept(雇员部门信息),其数据如下: 之前的博客,我们分享了单查询的方法,但是实际应用,我们要查的数据很可能不在同一个...自连接 自连接是指在同一张连接查询 显示员工FORD的上级领导的名字 查询 查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。...3.显示每个部门的信息(部门名、编号、地址)和人员数量 这里有两种方法可以使用,但是经验证,当数据非常多的时候from查询的效率是高于多表查询的。...tt; 合并查询   实际应用,为了合并多个select的执行结果,可以使用union,union all集合操作符 union操作符用于取得两个结果的集,并再自动去掉重复行 查找工资大于2500...例如:创建一个主表class,从stu   由上图,我们可以知道主键不能为null,但是外键可以为null,同时不能存在外键有的数据主表不存在。

3.1K30

Python 高级笔记第二部分:数据库的概述和MySQL数据操作

子句 where子句sql语句中扮演了重要角色,主要通过一定的运算条件进行数据的筛选,查询,删除,修改中都有使用。...where score>80 order by score; 查询 定义 : 当一个语句中包含另一个select 查询语句,则称之为有查询的语句 查询使用位置 from 之后 ,此时查询的内容作为一个新的内容...注:约束是一种限制,它通过对表的行或列的数据做出限制,来确保数据的完整性、关联性 外键约束分主表和从:若同一个数据,B的外键与A的主键相对应,则A主表,B为从。...select 字段列表 from 1 inner join 2 on 1.字段 = 2.字段; 左连接 左全部显示显示与左匹配的项 select 字段列表 from 1...left join 2 on 1.字段 = 2.字段; 右连接 右全部显示显示与右匹配的项 select 字段列表 from 1 left join 2 on 1

1.8K20

MySQL基础(快速复习版)

,然后再放到库 2、一个库可以有多张,每张具有唯一的名用来标识自己 3、中有一个或多个列,列又称为“字段”,相当于java“属性” 4、的每一行数据,相当于java“对象” 四、常见的数据库管理系统...by的前面 分组后筛选 having 分组后的结果 group by 的后面 2.6、连接查询 一、含义 当查询涉及到了多个的字段,需要使用多表连接 select 字段1,字段2 from 1...,如果从没有匹配的则显示null ②left join 左边的就是主表,right join 右边的就是主表 full join 两边都是主表 ③一般用于查询除了交集部分的剩余的不匹配的行 3、交叉连接...语法: select 查询列表from 1 别名cross join 2 别名; 特点: 类似于笛卡尔乘积 2.7、查询 一、含义 嵌套在其他语句内部的select语句称为查询或内查询, 外面的语句可以是...by、distinct、having、union、 ②join ③常量视图 ④where后的查询用到了from ⑤用到了不可更新的视图 七、视图和的对比 关键字 是否占用物理空间 使用 视图

4.5K20

浅谈laravel的关联查询with的问题

结构 主表结构: Create Table CREATE TABLE `user` ( `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,...options_key` (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=114001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 使用...seed插入随机数据10W条 测试 分别建立User,Options模型,并且建立一对一的关系, 代码如下: User::with(['options'= function($query){...$query- where('sex','=','1'); }])- paginate(15); laravel的debug监控到的SQL运行如下: select count(*) as aggregate...使用with的的意思,确定主信息的时候,罗列符合条件的附表信息,适合单条或者少量主表信息或者主表信息筛选 以上这篇浅谈laravel的关联查询with的问题就是小编分享给大家的全部内容了,希望能给大家一个参考

2.3K21

2-SQL语言中的函数

分组函数(也叫统计函数,聚合函数,组函数),做统计使用 */ # 单行函数又分为:字符函数,数学函数,日期函数,其他函数,流程控制函数 # 字符函数 # LENGTH(str)函数返回字节长度,...where语句筛选,位置group_by字句的前面 分组后的筛选:分组后的筛选是利用已经重新分配的组内的信息进行筛选,这些信息不直接存储于数据。...`department_id`; # 外连接 /* 用于查询一个中有,另一个没有的记录 特点: 外连接的查询结果为主表的所有记录 如果中有和它匹配,则显示匹配的值 如果没有匹配值...: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行查询(结果集有一行多列) 查询(结果集一般多行多列) # 查询 /* 含义: 出现在其他语句中的select语句,称为查询或内查询...分页查询 应用场景: 当要显示数据,一夜显示不全,需要分页提交sql请求 LIMIT 语句放在查询语句的最后 # 分页查询 /* 应用场景: 当要显示数据,一夜显示不全,需要分页提交sql请求

2.8K10

MySQL常用基础 - 小白必看

定义:外键约束是的一个特殊字段,经常和主键约束一起使用,对于两个具有关联关系的来说,相关字段主所在就是主表(父),外键所在就是从(子表) 特点(定义一个外键时,需要遵守的规则): 主表必须已经存在于数据...,那么这个列或列的组合必须是主表的主键或候选键 外键列的数目必须和主表的主键的列的数目相同 外键列的数据类型必须和主表的主键的列的数据类型相同 方式一:创建的时候设置外键约束 语法: constraint...,因为有时候用户查看数据的时候,需要显示数据来自于多张 多表查询的分类: 1,交叉连接查询select * from A,B; 2,内连接查询:关键字(inner join) 隐式内连接:select...* from a,b where 条件; 显示内连接:select * from A inner join B on 条件;(MySQL,inner可以省略) 3,外连接查询:关键字(outer...,并且使用一个关键字段进行连接 join 使用别名 嵌套连接 查询查询语句当中再嵌套查询语句 select嵌套select

1.2K30

通过 Laravel 查询构建器实现复杂的查询语句

你一定有过这样的经历,从数据库获取指定查询结果后,以主键 ID 值为键,以某个字段值为值构建关联数组,以前,你可能不得不遍历查询结果构建数组才能解决这样的问题, Laravel ,我们只需查询构建器上调用...查询 有时候,我们会通过查询关联不同的进行查询,考虑下面这个 SQL 语句: select * from posts where user_id in (select id from users...$users)->get(); 除了 IN 查询外,普通的 WHERE 查询也可以使用查询,对应的方法是 whereSub,但是查询的效率不如连接查询高,所以我们下面来探讨连接查询查询构建器使用...创建填充 posts 为了方便下面的演示,我们新建一个 posts 数据,首先创建对应迁移文件: php artisan make:migration create_posts_table --...: php artisan make:seeder PostsTableSeeder database/seeds 目录下新生成的填充类 PostsTableSeeder ,调用模型工厂填充数据

29.9K20

MySQL基础

例: -- 根据性别分组,统计男性和女性数量(只显示分组数量,不显示哪个是男哪个是女) select count(*) from employee group by gender; -- 根据性别分组,...一致) CASCADE 当在父删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则也删除/更新外键子表的记录 SET NULL 当在父删除/更新对应记录时,首先检查该记录是否有对应外键...; 一对一 案例:用户与用户详情 关系:一对一关系,多用于单拆分,将一张的基础字段放在一张其他详情字段放在另一张,以提升操作效率 实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的...注意: UNION ALL 会有重复结果,UNION 不会 联合查询使用or效率高,不会使索引失效 查询 SQL语句中嵌套SELECT语句,称谓嵌套查询,又称查询。...常用操作符: 操作符 描述 IN 指定的集合范围内,多选一 NOT IN 不在指定的集合范围内 ANY 查询返回列表,有任意一个满足即可 SOME 与ANY等同,使用SOME的地方都可以使用ANY

1.9K10

MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)

3、主表发生变化时应注意主表与从数据一致性问题 六、数据插入数据 MySQL通过INSERT语句向数据插入数据。...1.1、count() 统计数据的行数或者统计指定列其值不为NULL的数据个数 查询有多少该中有多少人 MySQL命令: select count(*) from student; 运行效果展示...3、虽然左PHP班没有学生,但是任然显示PHP的信息;但是,它对应的学生名字为NULL 3.2 右(外)连接查询 右(外)连接的结果包括RIGHT JOIN子句中指定的右的所有记录,以及所有满足连接条件的记录...班不满足查询条件故其没有出现在查询结果 3、虽然右的jack没有对应班级,但是任然显示王跃跃的信息;但是,它对应的班级以及班级编号均为NULL 十五、查询 查询是指一个查询语句嵌套在另一个查询语句内部的查询...执行查询时,首先会执行查询的语句,再将返回的结果作为外层查询的过滤条件。査询通常可以使用比较运算符和IN、EXISTS、ANY、ALL等关键字。

2.6K20

【MySQL数据库】多表关系与多表联合查询

添加主表数据 -- 注意必须先给主表添加数据 添加从数据 -- 注意给从添加数据时,外键列的值不能随便写,必须依赖主表的主键列 删除 主表数据被从依赖时,不能删除,否则可以删除 从数据可以随便删除...• 假如 A 有 m 行数据, B 有 n 行数据,则返回 m*n 行数据 • 笛卡尔积会产生很多冗余的数据,后期的其他查询可以该集合的基础上进行条件筛选...select * from 1,2,3….; 内连接查询 隐式内连接(SQL92标准):select * from A,B where 条件; 显示内连接(SQL99标准):select...IN IN关键字,用于判断某个记录的值,是否指定的集合 IN关键字前边加上not可以将条件反过来 select …from …where c > in(查询语句) --等价于: select...“false”,外层查询不执行 EXISTS后面的查询不返回任何实际数据,只返回真或假,当返回真时 where条件成立 注意,EXISTS关键字,比IN关键字的运算效率高,因此,实际开发,特别是大数据量时

2.7K20

MySQL复习笔记(2)-约束

'名'; AVG(math):查询数学成绩平均分 SELECT AVG(math) FROM '名'; 分组查询 分组查询是指使用 GROUP BY语句对查询信息进行分组 SELECT 字段名 FROM...分组的目的就是为了统计,一般分组会跟聚合函数一起使用。 分组后聚合函数的作用?不是操作所有数据,而是分别操作每组数据。...=起始值; 唯一约束 字段的值不能重复 字段名 字段类型 UNIQUE 非空约束 字段的值不能为NULL 字段名 字段类型 NOT NULL 默认值约束 不指定这个字段的数据,就使用默认值 字段名...字段类型 default 值 外键约束 一个的字段引用另一个的主键 主表: 主键所在的,约束别人的,将数据给别人用 副/从: 外键所在的,被约束的,使用别人的数据 创建外键 CREATE...一对一 实际的开发应用不多.因为一对一可以创建成一张

87620

【MySQL数据库】多表关系与多表联合查询

-- 注意必须先给主表添加数据添加从数据 -- 注意给从添加数据时,外键列的值不能随便写,必须依赖主表的主键列删除主表数据被从依赖时,不能删除,否则可以删除从数据可以随便删除多表联合查询​编辑...,后期的其他查询可以该集合的基础上进行条件筛选 select * from 1,2,3….; 内连接查询隐式内连接(SQL92标准):select * from A,B where 条件...join B on 条件;查询关键字查询就是指的一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,通俗一点就是包含select嵌套的查询。...•表示制定列的值要大于查询的任意一个值,即必须要大于查询集中的最小值。同理可以推出其它的比较运算符的情况。...后面的查询不返回任何实际数据,只返回真或假,当返回真时 where条件成立注意,EXISTS关键字,比IN关键字的运算效率高,因此,实际开发,特别是大数据量时,推荐使用EXISTS关键字select

2.9K30
领券