本文处理的场景如下,hive表中的数据,对其中的多列进行判重deduplicate。...1、先解决依赖,spark相关的所有包,pom.xml spark-hive是我们进行hive表spark处理的关键。
: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列) # 子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或内查询...,行子查询) EXISTS 后面(表子查询) 按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般多行多列...行子查询(多行多列) 特点: 子查询放在小括号内 子查询一般放在条件右侧 标量子查询一般搭配单行操作符使用(>,=,等等) 列子查询一般搭配多行操作符使用(in,any/some...=50 ); # 以上语句会报错,因为子查询语句的结果不为一行一列,所以不能用标量子查询(多行多列或0行0列都不可以) # 列子查询(多行子查询,因为子查询结果是一列多行) /* 多行操作符: IN...WHERE location_id IN(1400,1700) ); # 行子查询(一行多列或多行多列) # 查询员工编号最小并且工资最高的员工信息(不一定存在同时满足两个条件的员工)
从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留....基本语法:左表 [inner] join 右表 on 左表.字段 = 右表.字段; on表示连接条件: 条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id) 字段别名以及表别名的使用...子查询分类 子查询有两种分类方式: 按位置分类;和按结果分类 按位置分类: 子查询(select语句)在外部查询(select语句)中出现的位置 From子查询: 子查询跟在from之后 Where...子查询: 子查询出现where条件中 Exists子查询: 子查询出现在exists里面 按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表) 标量子查询...: 子查询得到的结果是一行一列 列子查询: 子查询得到的结果是一列多行 行子查询: 子查询得到的结果是多列一行(多行多列) (1,2,3出现的位置都是在where之后) 表子查询: 子查询得到的结果是多行多列
1、快速求和对多行多列的单元格数据求和,可以直接选取单元格区域,按组合键【Alt、+、=】即可快速求和。...11、一次插入多行或多列在表格内同时选择多行或多列,在选取区域内点击右键,选择【插入】则在选取区域的左侧或上方会插入与选中行数或列数相同的区域。...21、设置页眉页脚点击菜单栏中的【页面设置】-【打印页眉和页脚】在对话框中对页脚进行设置格式就可以了。22、一键新建表格文件快速新建 Excel 文件可以直接按组合键【Ctrl+N】新建表格。...45、快速生成带方框的 √ 和 × 号在目标单元格内输入大写的 R 或 S(注:R 为对号 √,S 为错号 ×),然后点击菜单栏中的字体样式,选择设置字体为:Wingding2 即可一键生成带方框的 √...64、输入带方框或圈的对号和错号选中需要输入的区域,设置字体为【Windings2】,分别输入大写的O、P、R、S、U就是对应的对号和错号。
#7-将条件应用于多列 假设我们要确定哪些喜欢巴赫的植物也需要充足的阳光,因此我们可以将它们放在温室中。...函数sunny_shelf接受两个参数作为其输入-用于检查“full sun”的列和用于检查“ bach”的列。函数输出这两个条件是否都成立。...#6 —分解一长行代码 顺便说一句,您可以在多行中将括号,方括号或大括号内的任何语句分开,以免单行运行时间过长。...根据 PEP8,Python样式指南: 包装长行的首选方法是在括号,方括号和花括号内使用Python的隐含行连续性。...#1 —按多列排序 最后,让我们对DataFrame进行排序,以使兰花位于顶部,而植物则按降序排列。
❑ 如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。...一对一关系 (夫妻关系) 从表的主键即是外键 一对多关系(部门和职员的关系) 从表有一个键作为外键 多对多(学生老师关系) 需要一个中间表, 然后指定两个外键 一般主表的记录数会少...., where 改成 on select xxx列 from 表A inner join 表b on 条件1=xxx 自然版 sql 的一对一, 多对多关系 子查询 有多个 select 关键字 可以出现的位置...表名2 别名2 where 条件) 单行多列 select * from 表1 别名1 where (列1, 列2) in (select 列1, 列2 from 表2 别名2 where 条件)...很少见, 看上去像对象 多行多列 select * from 表1 别名1 , (select ... ) 别名2 where 条件 所谓的连接是有针对性的找出关联关系 全文搜索 用基于文本的搜索作为正则表达式匹配列值的更进一步的介绍
内在逻辑在于:领导,也同样是员工,也处于员工表中。所以我们使用自连接,对第一次使用到的emp表用别名e来代替员工表,对第二次使用到的emp表用别名m来代替领导表。...(2)按结果集的行列 标量子查询(单行子查询):结果集为一行一列 列子查询(多行子查询):结果集为多行一列 行子查询:结果集为多行多列 表子查询:结果集为多行多列 【注】:子查询的分类较多,在使用的时候...二、where或having后面 1、主要分类 (1)标量子查询(单行子查询) (2)列子查询(多行子查询) (3)行子查询(多行多列) 2、特点 (1)子查询放在小括号内 (2)子查询一般放在条件的右侧...3、示例 我们根据上面的分类,对每一类给出一个典型案列,结合其语法和结果一起分析 #1、标量子查询 #案例:查询最低工资大于1号部门最低工资的部门id和其最低工资 select MIN(salary)...FROM emp WHERE salary 1; #3、行子查询(结果集一行多列或多行多列
二.多表设计与实现(外键约束) 系统设计中,实体之间的关系有三种:一对一,一对多,多对多 也就是说,数据库开发中表与表之间的关系有三种,而表与表之间关系是通过外键来维护的。...,那么我们怎样在表中描述它们的对应关系我们一般在多的一方表中简称(多表),添加一个外键字段,与一方表中的主键字段对应就可以描述其一对多的关系。...开发中,一般新建一张中间表,这个中间表只放双方的id,然后就拆成了两个一对多的关系.然后一般将两个id设成联合主键,然后对每个id添加外键约束.如下图....内连接基于连接谓词将两张表(如 A 和 B)的列组合在一起,产生新的结果表。查询会将 A 表的每一行和 B 表的每一行进行比较,并找出满足连接谓词的组合。...当连接谓词被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。
列(column) 表中的一个字段,所有表都是有一个和 多个列组成 行(row) 表中的一个记录(record) 主键(primary key) 一列(或一组列),其值能够唯一标识表中每一行 关键字(...SQL 不区分大小写,但一般习惯关键字用大写,列名和表名使用小写。 处理 SQL 语句时,所有空格都会被忽略。一般认为写成多行更容易维护。 选择多个列时,一定要在列名之间加上逗号,但最后一个列名不加。...按多列排序 SELECT prod_id, prod_name, prod_price FROM Products; ORDER BY prod_price, prod_name; 上面的语句,首先按照价格...SELECT prod_id, prod_name, prod_name FROM Products ORDER BY 2,3; --,2,3表示清单中的列;表示先按prod_price,再按prod_name...如果想在多个列上降序排序,必须对每一列指定 DESC 关键字。
05:24) 4-11 [Oracle] 单行子查询和多行子查询 (16:18) 4-12 [Oracle] 子查询中的空值问题 (08:24) 第5章 案例集锦 本章通过4个案例的介绍,巩固了所学知识...注意:在select列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中;包含在GROUP BY子句中的列不必包含在SELECT列表中。...左外连接:当条件不成立的时候,等号左边的表仍然被包含。右外连接:当条件不成立的时候,等号右边的表仍然被包含。 特别注意左外连接和右外连接的写法,位置与名字相反,符号用‘(+)’表示。 ...rownum<=8) e2 where r>=5 排序后rownum为乱序 rownum不能用大于号,重新赋予伪列rownum 通过嵌套子查询,再把排序后的伪列变成“实列” 不进行嵌套子查询的结果是错误的...(cols)函数对学生姓名用逗号拼接 使用列转行函数listagg拼接:https://www.cnblogs.com/ivictor/p/4654267.html select A.ci_id CI_ID
数据模型分类(按模型应用的不同目的的划分) 概念模型(也称语义模型) 常用E-R模型 学生和课程是实体,菱形中对应的是实体之间的关系,椭圆中是对应的属性。...查看已创建的表:show tables; 查看表结构:describe语句、show create table语句 修改数据库表,语法格式如下: 1)在student表的Email列后面增加一列...使用set子句插入数据 可以不按顺序插入数据,对允许空值的列可以不插入 利用set子句向se_course表插入数据。...by子句对score表数据分组,显示每个学生的学号和其所学各课程的平均期末成绩,并将结果按平均期末成绩的升序排列 group by和having子句一起使用 查询选课在2门以上且各门课程期末成绩均高于...多表连接 查询选修课程号为c05103的学生的学号、姓名和期末成绩 内连接inner join:通过比较数据源表键共享列的值,从多个源表检索符合条件的行 左外连接Left Outer Join
当获得一个查询的答案需要多个步骤的操作,首先必须创建一个查询来确定用户不知道但包含在数据库中的值,将一个查询块嵌套在另一个查询块的 WHERE 字句或 HAVING 短语的条件中查询块称为子查询或内层查询...按结果集的行列数不同子查询可以分为 4 种 ♞ 标量子查询(结果集只有一行一列) ♞ 列子查询(结果集只有一列多行) ♞ 行子查询(结果集有一行多列) ♞ 表子查询(结果集一般为多行多列...② 标量子查询,一般搭配着单行操作符使用,列子查询,一般搭配着多行操作符使用。 ③ 子查询的执行优先于主查询执行,因为主查询的条件用到了子查询的结果。 ...④ select 后面的子查询,仅仅支持标量子查询,即结果集只有一行一列。 ⑤ from 后面的子查询是将子查询的结果集充当一张临时表,要求必须起别名,否者这个表找不到。...然后将真实的表和子查询结果表进行连接查询。 ⑥ where 或 having 后面可以有:标量子查询、 列子查询(一般搭配着多行操作符使用 in、any、some、all 等)、行子查询。
对并发友好,支持行锁和表锁,行锁的形成要看查询条件。有共享空间结构和独立空间结构,保存的格式有frm和ibddata1(共享结构),ibd(独立结构)。2.1.1.共享空间结构。 ...独立空间结构就是每个对应的表保存对应的数据源和索引在一个后缀为ibd的文件中,表结构同样也保存在frm中。...RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。2. LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。3....KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。具体介绍可以搜索以下"mysql表分区的分区类型"。三....存在的表添加分区 将原来的数据以当前的分区规则对原来数据进行规整,以下是对ztest表添加range类型的3个分区,以id字段为分区字段。
图形化界面备份与还原 数据库表的约束 数据库约束的概述 主键约束 唯一约束 非空约束 默认值 外键约束 表与表之间的关系 表关系的概念 一对多 多对多 一对一 数据库设计 数据规范化 1NF 2NF...表与表之间的三种关系 一对多:最常用的关系 部门和员工 多对多:学生选课表 和 学生表, 一门课程可以有多个学生选择,一个学生选择多门课程 一对一:相对使用比较少。...员工表 简历表, 公民表 护照表 一对多 一对多(1:n) 例如:班级和学生,部门和员工,客户和订单,分类和商品 一对多建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键....多对多 多对多(m:n) 例如:老师和学生,学生和课程,用户和角色 多对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。...id FROM dept WHERE NAME = '财务部' OR NAME = '市场部'); 子查询的结果是多行多列的: 子查询可以作为一张虚拟表参与查询 -- 查询员工入职日期是2011-11
查询语句N 注意: 1.所有查询语句的返回结果的列数必须相等 2.每列的数据类型必须一致,【查询语句1中字段列表的类型必须和查询语句2中的字段列表类型对应且一致】 代码实例: SELECT user_id...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...FROM b_user WHERE name='李四'); 关键字 代码实例: IN子句 查询平台购买过商品的用户(查询用户表,只要用户的user_id在b_order表中,满足条件) SELECT...WHERE user_id NOT IN(SELECT user_id FROM b_order); ANY|SOME t1中有5条记录,每一行的s1去和(select s1 from t2)每一行...t1中有5条记录,每一行的s1去和(select s1 from t2)每一行s1去比较,必须t1中的s1大于t2中的所有的s1,那么当前行满足查询条件 SELECT s1 FROM t1 WHERE
表与表之间的三种关系 一对多关系:最常见的关系:学生对班级 , 员工对部门 多对多关系:学生与课程 , 用户与角色 一对一关系:使用较少,因为一对一关系可以合成为一张表 一对一 一个学生对应一个身份证号码...一对多 一个部门可以有多名员工,但一个员工只能归于一个部门 在多的一方建立外外键指向一的一方 多对多 下表为多对多关系,由下表可知多对多关系的中间表至少需要2个外键...MySQL外键约束 创建外键 格式: constraint foreign key 字段名[,字段名2,…] references 主键列1 [,主键列2,…] 方式一 创建表时添加外键...返回的数据类型 单行单列:返回的是一个具体列的内容,可以理解为一个单值数据; 单行多列:返回一行数据中多个列的内容; 多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围; 多行多列:查询返回的结果是一张临时表...•表示制定列中的值要大于子查询中的任意一个值,即必须要大于子查询集中的最小值。同理可以推出其它的比较运算符的情况。
目录MySQL多表关系一对一一对多多对多MySQL外键约束创建外键数据插入删除多表联合查询交叉连接查询内连接查询外连接查询子查询关键字自关联MySQL多表关系MySQL表与表之间的三种关系一对多关系...:最常见的关系:学生对班级 , 员工对部门多对多关系:学生与课程 , 用户与角色一对一关系:使用较少,因为一对一关系可以合成为一张表一对一 一个学生对应一个身份证号码 一对多一个部门可以有多名员工,但一个员工只能归于一个部门...在多的一方建立外外键指向一的一方编辑多对多 下表为多对多关系,由下表可知多对多关系的中间表至少需要2个外键编辑 MySQL外键约束创建外键 格式: constraint foreign...返回的数据类型单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;单行多列:返回一行数据中多个列的内容;多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;多行多列:查询返回的结果是一张临时表...•表示制定列中的值要大于子查询中的任意一个值,即必须要大于子查询集中的最小值。同理可以推出其它的比较运算符的情况。
后面 特点 标量子查询(单行子查询) 注意 列子查询(多行子查询) 行子查询(结果集一行多列或者多行多列) select后面---仅仅支持一行一列 from后面----表子查询 将子查询结果充当一张表...后面(相关子查询):支持表子查询 按结果集的行列数不同: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集可以有一行多列) 表子查询(结果集一般为多行多列) ----...where或having后面 标量子查询(单行子查询) 列子查询(多行子查询) 行子查询(多行多列) 特点 子查询放在小括号内 子查询一般放在条件的右侧 标量子查询一般搭配着单行操作符使用...注意非法子查询,即标量子查询的结果必须是一行一列,不然对于表量子查询来说就属于非法子查询 在使用子查询时,子查询的查询条件的值由外部查询来提供 ---- 列子查询(多行子查询) 多行比较操作符...salary<( SELECT MIN(salary) FROM salary WHERE workerID IN(102,103,104) ); ---- 行子查询(结果集一行多列或者多行多列
,每张表具有唯一的表名用来标识自己 3、表中有一个或多个列,列又称为“字段”,相当于java中“属性” 4、表中的每一行数据,相当于java中“对象” 四、常见的数据库管理系统 mysql、oracle...列子查询 行子查询 表子查询 按结果集的行列 标量子查询(单行子查询):结果集为一行一列 列子查询(多行子查询):结果集为多行一列 行子查询:结果集为多行多列 表子查询:结果集为多行多列 代码示例...( SELECT salary FROM employees WHERE employee_id = 143 ); 多行子查询:返回 location_id 是 1400 或 1700 的部门中的所有员工姓名...三、意义 将一条比较复杂的查询语句拆分成为多条语句 适用于查询多个表的时候,查询的列表是一致 四、特点 要求多查询列数必须一致 要求多条查询语句的查询的各列类型、顺序最好一致 union 去重,union... 2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致 但必须保证值和字段一一对应 3、假如表中有可以为 null 的字段,注意可以通过以下两种方式插入 null 值 ① 字段和值都省略
领取专属 10元无门槛券
手把手带您无忧上云