- 博客(18)
- 资源 (1)
- 收藏
- 关注

原创 left join详解
left join详解1.不考虑where条件下,left join 会把左表所有数据查询出来,on及其后面的条件仅仅会影响右表的数据(符合就显示,不符合全部为null)2.在匹配阶段,where子句的条件都不会被使用,仅在匹配阶段完成以后,where子句条件才会被使用,它将从匹配阶段产生的数据中检索过滤3.所以左连接关注的是左边的主表数据,不应该把on后面的从表中的条件加到where后,这样会影响原有主表中的数据4.where后面:是先连接然生成临时查询结果,然后再筛选on后面:先根据条件过滤筛
2021-06-03 17:33:56
61535
6

原创 数据库面试题汇总(60题)
1. 什么是三范式?**第一范式(1NF):**数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。**第二范式(2NF):**数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。**第三范式(3NF...
2020-04-20 22:17:01
4903
原创 内部表(管理表)和外部表
内部表也称为管理表,数据是存放在表中的,删除表后 表中数据会同步删除。常见于明细层表 应用层表等。如DM层 APP层,一般是通过SQL语句从其他表中抽取的数据。外部表,建表时有external关键字,数据是从外部以文件的形式加载进表中,删除表后 数据文件依然存在,只是删除了该表的元数据信息。常见于贴源层表,如ODS层, 一般是直接加载上游系统推送过来的的数据文件。查看一个表是内部表或外部表,可用describe extended tablename(表名),若tableType后显示managed_t
2022-06-07 09:17:44
1507
原创 Hive优化参考
1、开启负载均衡set hive.map.aggr=true; set hive.groupby.skewindata=true;2、join优化join时,将最大的表放在join语句的最右边使用map join让小的维度表(1000条以下的记录条数)先进内存,在map端完成reduce。3、严格模式,设置严格模式可以禁止3种查询类型strict场景:表中数据及分区个数都非常大,执行一个包含所有分区的查询会触发巨大的MapReduce任务,非常耗时耗资源。此时,将hive设置为“strict”模
2021-08-17 10:08:06
228
原创 cast和convert用法和区别
1、cast语法:cast(字段a as 类型b)释义:把字段a的类型转换成类型b,as不可省略举例:order by cast (id as integer ) descid为字符串型,则需要转换为整数进行排序2、convent语法:convent(字段a 类型b)释义:把字段a的类型转换成类型b举例:order by convent (id integer ) desc总结:函数cast和convent作用相同,只是语法稍有区别。...
2021-07-05 17:22:43
3035
原创 left semi join
左半连接left semi join会返回左边表的记录,前提是其记录对于右边表满足on语句中的判断条件。对于常见的内连接(inner join)来说,这是一种特殊的、优化了的情况。大多数的SQL方言会通过in …exists结构来处理这种情况。但需要注意的是,select 和where语句不能引用到右边表中的字段。 hive不支持右半连接。...
2021-06-25 09:02:21
482
原创 Sublime Text编辑器自己常用快捷键
1、大小写转换Ctrl + K + U: 转换大写Ctrl + K + L: 转换小写2、列编辑方法一:鼠标中键方法二:Shift + 鼠标右键3、复制当前行并插入到下一行Ctrl+Shift+D4、选中当前行Ctrl+L 选中光标所在整行5、删除当前行方法一:Ctrl+shift+k方法二:Shift+Delete6、跳至行首Ctrl + Home7、跳至行末Ctrl + End...
2021-06-11 10:13:57
1282
1
原创 sql语句执行顺序详解
sql语句定义的顺序(1) SELECT (2)DISTINCT<select_list>(3) FROM <left_table>(4) <join_type> JOIN <right_table>(5) ON <join_condition>(6) WHERE <where_condition>(7) GROUP BY <group_by_list>(8) WITH {CUBE|ROLLUP
2021-06-03 17:29:01
468
原创 HQL解析json字符串
函数:get_json_object(jsonStr,path)json字符串格式如下:大字段名 big_string 表名:table1{ "bankId" : "003285689100", "bangName" : "交通银行", "creDate" : "2020-06-04", "name" : "张三疯"}想要解析出对应key的value,可以使用如上函数select get_json_object(big_string,'$.bankI
2021-06-03 17:23:33
1095
原创 hive strict 严格模式禁止的3种查询类型
strict 严格模式strict场景:表中数据及分区个数都非常大,执行一个包含所有分区的查询会触发巨大的MapReduce任务,非常耗时耗资源。此时,将hive设置为“strict”模式,若查询未指定分区否则执行sql会报错。语法:set hive.mapred.mode=strict;查看表中所有分区可用 show partitions table 命令...
2021-05-28 15:23:58
537
原创 数据库的优化思路总结大全
1、什么是三范式?第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。第三范式(3NF):在第二范式的基础上,数据表...
2020-04-20 21:49:06
423
转载 数据库设计需要考虑的问题
(1)原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表...
2020-04-20 21:27:55
3157
原创 oracle和mysql各自的分页查询语句
1、Oracle的分页查询:使用rownum,两种如下:第一种: select * from (select t.,rownum row_num from mytable t) b where b.row_num between 1 and 10第二种: select * from ( select a., rownum rn from mytable a where rownum <...
2020-04-20 21:18:19
513
原创 mysql基础命令集和单表查询(非常详细!!!)
Navicat–运行选中的行的快捷键 ctrl+shift+r1、查询当前所有的数据库语法:show databases;2、查看当前数据库的创建方式:查看数据库的编码表语法:show create database 库名;3、创建一个数据库语法:create database 数据库名 ;由于创建数据库时没有指定编码表,因此会使用安装数据库时默认的编码表4、创建一个使用utf8...
2020-04-20 21:02:10
487
原创 给某个表中的某一列添加外键约束
给某个表中的某一列添加外键约束:语法:foreign key( 当前表中的列名 ) references 被引用表名(被引用表的列名);语法:alter table 表名 add foreign key( 当前表中的列名 ) references 被引用表名(被引用表的列名);注意:一般在开发中,被引用表的列名都是被引用表中的主键。举例: foreign key(co...
2020-04-15 00:03:59
5053
原创 MySQL多表查询(很全)
1)交叉连接查询交叉连接:查询到的是两个表的笛卡尔积语法:select * from a,b;2)内连接查询内连接查询的结果:两表的交集(公共部分)隐式内连接查询:语法:select * from a,b where a.列名 = b.列名显式内连接查询:语法:select * from 表名1 inner join 表名2 on 条件;3)外连接查询(1)左外连接左外连接...
2020-04-14 23:55:59
1171
原创 数据库多表的设计思路
1、先从需求中抽象出具体的实体对象,构建E(Entity)-R(Relation)图 ,即实体-关系 图2、分析实体具备哪些属性3、考虑实体和实体之间的关系问题4、创建实体表、中间表注意:实体表创建若有先后顺序,则先创建后者用到的前者,然后再创建中间表...
2020-04-14 23:48:53
200
原创 什么是Phoenix?
Phoenix,中文译为“凤凰”,很美的名字。Phoenix是由saleforce.com开源的一个项目,后又捐 给了Apache基金会。它相当于一个Java中间件,提供jdbc连接,操作HBase数据表。Phoenix 是一个HBase的开源SQL引擎。可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。Phoenix的团队用了一句话概括:Pho...
2020-04-06 11:34:54
2955
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人