![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
ZenPower
This is a place for redemption.
展开
-
多表联合查询时的连接方式
Hash Join(散列连接)使用场景:在两个表数据量差异较大的情况,优化器通常会使用两个表中较小的表在内存中建立散列表,然后扫描较大的表,找出与散列表匹配的行可通过 use_hash(table1, table2) 强制使用散列连接Sort Merge Join(排序合并连接)使用场景:将关联表的关联列各自做排序,然后从各自排序表中抽取数据,到另一个排序表中做匹配,通常来讲,能够使用Sort Merge Join的地方,Hash Join都可以发挥更好的性能,即散列连接效果优于排序合并连.原创 2020-07-16 19:24:04 · 498 阅读 · 0 评论 -
LEFT JOIN、RIGHT JOIN、INNER JOIN和FULL JOIN关联查询浅析
连接查询区别LEFT JOIN ON(只返回左表和右表完全匹配的内容) RIGHT JOIN ON(返回左表全部内容) INNER JOIN ON(返回右表全部内容) FULL JOIN ON(返回左表和右表全部内容,即使没有匹配)...原创 2020-01-13 18:05:39 · 201 阅读 · 0 评论 -
LEFT JOIN关联查询中ON条件和WHERE条件浅析
首先,需要注意的是,使用LEFT JOIN进行连接查询时,不论ON条件是否为真,都会返回左表的所有记录ON条件是生成临时表时使用的条件(仅在关联右表查询时对右表筛选起作用,无论条件是否为真都会返回左表所有记录) WHERE条件是生成临时表后使用的条件(对生成的临时表再次进行条件过滤,此时条件筛选对全表有效,条件不为真就会过滤掉)假设我们有class表和achieve表,分别是...原创 2019-12-31 17:21:23 · 1553 阅读 · 1 评论 -
ORACLE存储过程使用execute immediate执行动态SQL
使用execute immediate动态sql拼接a.intorgcode = '''||para_intorg1(l)||'''a.item = '||para_item(j)||' max(x.'||para_sub_item(k)||')其他使用动态游标参考:https://www.cnblogs.com/hanruyue/p/5974036.html...原创 2020-11-16 15:36:14 · 1646 阅读 · 0 评论 -
ORACLE存储过程自定义数组与数组赋值
自定义数组声明数组类型 arr_typetype arr_type is table of NUMBER(20);声明数组变量 arr_valarr_val arr_type;数组赋值数组赋值(bulk collect into关键字是将查询结果封装成集合)select a bulk collect into arr_val from mytable;数组取值数...原创 2019-10-07 19:19:14 · 3311 阅读 · 0 评论 -
oracle误操作某表回滚操作
查询误操作表的历史数据信息(此步用于查看可回滚的日期,可选择最近的正确数据日期进行回滚)select * from 表名 as of timestamp to_timestamp('2019-08-23 17:15:00', 'yyyy-mm-dd hh24:mi:ss');开启表行移动功能alter table 表名 enable row movement;查看数据闪回功能是否开...原创 2019-08-23 18:43:49 · 1395 阅读 · 0 评论 -
通过SQL语句,将特定数据行置顶或置底显示
最近项目中涉及一个需求:显示某个表数据时,希望把其中某个字段为特定值的行置顶或置底显示,以便区分假如我们有一个职级表userlevel其中职级字段rank有0原级、1初级、2中级、3高级、4资深,一共五个枚举值,我希望每次查询的时候将3高级置顶显示贫穷限制了我的思维,以下SQL解决方法来自网络:1.通过case when+排序select (case when a.rank='3' then 0 ...原创 2017-12-27 16:41:39 · 12001 阅读 · 0 评论 -
常用SQL语句
--更新字段名 alter table TABLE_NAME rename column column_old to column_new;--添加字段 alter table TABLE_NAME add COLUMN_NAME varchar(10);--删除字段 alter table TABLE_NAME drop column COLUMN_NAME;--添加字段并附值 alter原创 2017-06-30 16:57:30 · 213 阅读 · 0 评论