<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[XIAOTWOB的博客]]></title><description><![CDATA[今天你向上了吗？]]></description><link>https://blog.youkuaiyun.com/XIAOTWOB</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; XIAOTWOB]]></copyright><item><title><![CDATA[2021-02-08 mysql（回溯统计、聚合函数、正则表达式）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/113754939</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/113754939</guid><author>XIAOTWOB</author><pubDate>Mon, 08 Feb 2021 13:03:57 +0800</pubDate><description><![CDATA[以下内容均基于MySQL 5.7
1、回溯统计
可以简单理解为在根据指定字段分组后，系统又自动对分组的字段向上进行了一次新的统计并产生一个新的统计数据，
且该数据对应的分组字段值为NULL。值得注意的是，在同一个查询语句中，with rollup 与order by 仅能出现一个。基本格式如下：

select column from table_name where ...
group by column1 asc|desc,column2 asc|desc with rollup;

2、聚合函数

c]]></description><category></category></item><item><title><![CDATA[2021-02-08 mysql（复制表、临时表、主键冲突、truncate与delete的区别、有限更新或删除）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/113754179</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/113754179</guid><author>XIAOTWOB</author><pubDate>Mon, 08 Feb 2021 12:06:47 +0800</pubDate><description><![CDATA[以下内容均基于mysql 5.7
1、复制表
# 仅仅复制表结构
create table if not exists table_name like old_table_name;
# 复制表结构及数据
create table if not exists table_name as select columns from old_table_name;

2、临时表
临时表指的是一种仅在当前会话中可见，并在当前会话关闭时自动删除的数据表，主要用于临时存储数据。
# 方式1：创建临时表
create te]]></description><category></category></item><item><title><![CDATA[Kettle核心概念]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108469998</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108469998</guid><author>XIAOTWOB</author><pubDate>Tue, 08 Sep 2020 16:13:32 +0800</pubDate><description><![CDATA[出现小bug的时候，可以尝试以下操作：
工具–数据库–清除缓存
可视化编程
Kettle可以归类为可视化编程语言（Visula Programming Languages，VPL），因为Kettle可以使用图形化的方式定义复杂的ETL程序和工作流。
Kettle里面的图就是转换和作业。
可视化编程一直是Kettle的核心概念，可以让你快速构建复杂的ETL作业和降低维护工作量。隐藏很多技术细节，使得IT领域更接近于商务领域。
转换（transformation）是ETL解决方案中最主要的部分，处理抽取、转换、]]></description><category></category></item><item><title><![CDATA[kettle安装及环境配置]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108469064</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108469064</guid><author>XIAOTWOB</author><pubDate>Tue, 08 Sep 2020 15:17:31 +0800</pubDate><description><![CDATA[安装JDK
因为Kettle是Java语言开发的，该软件的运行需要Java运行环境的依赖。因此需要先安装JDK，准备好Java软件的运行环境。
下一步，下一步，下一步
program_files\Java\jdk1.8.0_101
两次出现的地址是一样的，作为JDK的安装目录
配置环境变量
JAVA_HOME:JDK的安装目录（上面两次出现的那个地址就是安装的目录）
KETTLE_HOME:kettle的解压目录（到解压后的data-intergration下）
电脑右键-属性-高及环境配置-环境
两个变量]]></description><category></category></item><item><title><![CDATA[第五章：循环迭代处理（注意点）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108106793</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108106793</guid><author>XIAOTWOB</author><pubDate>Thu, 20 Aug 2020 17:59:36 +0800</pubDate><description><![CDATA[111

]]></description><category></category></item><item><title><![CDATA[第四章：条件与顺序控制（注意点）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108101057</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108101057</guid><author>XIAOTWOB</author><pubDate>Wed, 19 Aug 2020 17:12:44 +0800</pubDate><description><![CDATA[1、IF语句的语法要点

一个IF永远与一个END IF 相匹配
在END 和 IF 之间必须有个空格
ELSIF关键词
只在END IF 后面放一个分好，THEN 、ELSE、ELSIF后面都不带分号

2、短路估算

存在两个条件判断时，将判断复杂的放在后面

3、CASE语句与表达式
CASE expression
WHEN result1 THEN
	statements1
WHEN result2 THEN
	statements2
...
ELSE
	statements_else
END CA]]></description><category></category></item><item><title><![CDATA[PL/SQL 语言基础（标签的作用）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108071007</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/108071007</guid><author>XIAOTWOB</author><pubDate>Tue, 18 Aug 2020 17:00:15 +0800</pubDate><description><![CDATA[1、规范SQL语句中对变量和列的引用
PACKAGE BODY scope_demo
IS
	PROCEDURE set_global (number_in IN NUMBER)
	IS
		1_salary NUMBER := 10000;
		1_count PLS_INTEGER;
	BEGIN
		&lt;&lt;local_block&gt;&gt;
		DECLARE
			1_inner PLS_INTEGER;
		BEGIN
			SELECT COUNT(*)
			  INTO set]]></description><category></category></item><item><title><![CDATA[python核心编程第三版-第一章--课后习题答案（1-15）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/107638703</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/107638703</guid><author>XIAOTWOB</author><pubDate>Tue, 28 Jul 2020 17:29:00 +0800</pubDate><description><![CDATA[""" 先进行模块导入"""
import re

"""1、识别后续的字符串：“bat”、“bit”、“but”、“hat”、“hit”或者“hut”。"""
re.match('[bh][aiu]t',str)

"""2、匹配由单个空格分隔的任意单词对，也就是姓和名。"""
re.search('(\w)+\s(\w)+','tony ma')
这里不够严谨，应该使用
[a-zA-Z]+\s[a-zA-Z]+    更好

"""3、匹配由单个逗号和单个空白符分隔的任何单词和单个字母，如姓氏的首字母。]]></description><category></category></item><item><title><![CDATA[csv文件删除多余空行]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/106917281</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/106917281</guid><author>XIAOTWOB</author><pubDate>Tue, 23 Jun 2020 10:16:58 +0800</pubDate><description><![CDATA[1、ctrl+g
2、在出现定位小窗口那里，选择定位条件–&gt;空值
3、右键，删除

]]></description><category></category></item><item><title><![CDATA[数据库-开窗函数]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105863098</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105863098</guid><author>XIAOTWOB</author><pubDate>Thu, 30 Apr 2020 15:50:11 +0800</pubDate><description><![CDATA[1、排序
--rank为重复不连续，dense_rank为重复连续，row_number不重复，按顺序下来
row_number () over (partition by ... order by ...)
dense_rank() over (partition by ... order by ...)
rank() over (partition by ... order by ...)

...]]></description><category></category></item><item><title><![CDATA[04-13工作笔记]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105490557</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105490557</guid><author>XIAOTWOB</author><pubDate>Mon, 13 Apr 2020 16:43:02 +0800</pubDate><description><![CDATA[--注意点，要是时间刚好是0时0分0秒的话，就只显示年月日，不显示时分秒
SELECT TO_DATE('2020/1/1 00:00:00','YYYY/MM/DD HH24:MI:SS') AS D FROM DUAL;
&gt;&gt;&gt;
2020/1/1

SELECT TO_DATE('2020/1/1 00:00:01','YYYY/MM/DD HH24:MI:SS') AS D...]]></description><category></category></item><item><title><![CDATA[oracle的字段内容判断]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105124216</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105124216</guid><author>XIAOTWOB</author><pubDate>Thu, 26 Mar 2020 17:50:09 +0800</pubDate><description><![CDATA[关于oralce字符串值的内容的判断
--查询name里面不是justin4的全部字段的内容：
SELECT * FROM EMP WHERE NAME &lt;&gt; 'justin4';
SELECT * FROM EMP WHERE NAME != 'justin4';

&gt;&gt;&gt;注意点:这里不可以使用is not 
&gt;&gt;&gt; is not用于判断是否为空（...]]></description><category></category></item><item><title><![CDATA[关于时间格式数据的保留问题]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105076236</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/105076236</guid><author>XIAOTWOB</author><pubDate>Tue, 24 Mar 2020 17:11:28 +0800</pubDate><description><![CDATA[--保存年月日格式的时间数据
SELECT TRUNC(SYSDATE) FROM DUAL;

--时间格式可以直接进行加减数字
SELECT TRUNC(SYSDATE)-3 FROM DUAL;

--时间相减
SELECT TRUNC(SYSDATE)- TO_DATE('2020/1/1','YYYY/MM/DD') FROM DUAL;

--TO_DATE里面可以放查询的字段
SEL...]]></description><category></category></item><item><title><![CDATA[0318工作备忘（关于python调用sql语句）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104948536</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104948536</guid><author>XIAOTWOB</author><pubDate>Wed, 18 Mar 2020 16:59:13 +0800</pubDate><description><![CDATA[python调用sql语句的过程中，提示ORA-00911:无效字符。
查看python语句，以及sql语句的正确性之后，发现是sql语句的结束符号（；）造成的报错。去掉；之后，执行正常。

...]]></description><category></category></item><item><title><![CDATA[substr和instr]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104904261</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104904261</guid><author>XIAOTWOB</author><pubDate>Wed, 18 Mar 2020 09:53:50 +0800</pubDate><description><![CDATA[1、substr（用于截取字段）
格式：substr（待截取字段，起始位置，截取长度）
注意点：
1、起始位置=0/1的时候，都是从第一位开始截取
2、不进行赋值则截取到最后
3、开始位置也可以是负值，从后往前-1开始计数，但是截取的方向不变，一样是从前往后
4、剩余字符长度小于截取长度时，以剩余字符为准
5、截取结果包括起始位置的字符
例子
select substr('HelloWorld',...]]></description><category></category></item><item><title><![CDATA[备忘]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104815612</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104815612</guid><author>XIAOTWOB</author><pubDate>Thu, 12 Mar 2020 14:10:36 +0800</pubDate><description><![CDATA[1、以'land'结尾的NAME
SELECT NAME FROM TABLE_A WHERE NAME like '%land';

2、含有'x'的NAME
SELECT NAME FROM TABLE_A WHERE NAME LIKE '%x%'; 

3、'X'开头的NAME
SELECT NAME FROM TABLE_A WHERE NAME LIKE 'X%';

4、以'X'开头...]]></description><category></category></item><item><title><![CDATA[oracle的空值处理函数]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104064405</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/104064405</guid><author>XIAOTWOB</author><pubDate>Tue, 21 Jan 2020 18:06:35 +0800</pubDate><description><![CDATA[1、NVL
NVL(expr1,expr2)

如果expr1为空，则显示expr2;否则显示expr1

2、NVL2
NVL(expr1,expr2,expr3)

如果expr1不为空，则显示expr2;否则显示expr3

3、NULLIF
NULLIF(exp1,expr2)

如果exp1和exp2相等则返回空(NULL)，否则返回第一个值。

4、COALESCE
Coalesce(...]]></description><category></category></item><item><title><![CDATA[Oracle 表三种连接方式使用介绍(sql优化)]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103800735</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103800735</guid><author>XIAOTWOB</author><pubDate>Thu, 02 Jan 2020 14:25:11 +0800</pubDate><description><![CDATA[1、nested loop（嵌套循环）
对于被连接的数据子集较小的情况，nested loop连接就是较好的选择。nested loop就是扫描一个表，每读到一条记录，就根据索引去另外一个表里面查找，没有索引一般就不会是nested loops。
一般在nested loop中，驱动表满足条件结果集不大，被驱动表的连接字段要有索引，这样就走nested loop。
如果驱动表返回记录太多，就不适合...]]></description><category></category></item><item><title><![CDATA[序列+触发器实现oracle自增列（sequence+trigger）]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103736852</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103736852</guid><author>XIAOTWOB</author><pubDate>Tue, 31 Dec 2019 11:51:27 +0800</pubDate><description><![CDATA[SELECT date_time,ROWID FROM shuzhi.t_case_holiday_base WHERE ROWID&lt;10000 ORDER BY date_time
https://blog.youkuaiyun.com/zoucui/article/details/79347286

]]></description><category></category></item><item><title><![CDATA[oracle的date类型及其操作]]></title><link>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103736056</link><guid>https://blog.youkuaiyun.com/XIAOTWOB/article/details/103736056</guid><author>XIAOTWOB</author><pubDate>Tue, 31 Dec 2019 10:24:13 +0800</pubDate><description><![CDATA[1、date里面只是存储对应时间的内容，并不能指定以什么样的格式进行存储；但是可以指定存储到哪些时间段
在这里插入代码片

2、plsql可以指定显示形式，就是能修改select查询出来的date数据的形式
这里只是对查询的数据进行展示格式的修改，并不影响存储
3、trunc能对date类型的数据进行截取操作，
4、to_date是对字符串格式转换成date格式，是不是都需要格式一模一样？
好像也...]]></description><category></category></item></channel></rss>