暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
杨廷琨的DBA工作手记.pdf
462
26页
2次
2021-02-21
50墨值下载
杨廷琨(网名 Yangtingkun
现任云和恩墨 CTOITPUB
Oracle 数据库管理版版主。
2004 年曾参与编写Oracle
据库性能优化》一书,2007
Oracle 公司授予 Oracle
ACE 称号,喜欢研究 Oracle
关的技术问题,他的技术博客上
积累了 1500 多篇 Oracle 相关
的原创技术文章。
个人技术博客
http://yangtingkun.itpub.net
Yangtingkun
DBA 工作手记
编者按:老杨在网络上的博客数年来一直维持着频繁更新的记
录,积累了近千篇的技术文章,在本书的组稿过程中,老杨将自
己多年来的积累整理、精炼、讲解出来,与读者们分享他技术上
的结晶。这一章是老杨的 DBA 手记。DBA 的工作可以苦中作乐,
也可以乐在其中,让我们首先来看看老杨如何用 SQL 来为我们
解释一个魔术——
数据驱动,成就未来 www.enmotech.com Yangtingkun DBA 工作手记
·46·
利用 SQL 解释一个魔术
一个偶然的机会在电视上看到一个有关扑克牌的魔术,觉得很有意思。这个魔术明显不是靠手快或者做假
来实现的,奥妙在于魔术中包含了数学原理。
首先描述一下这个魔术,有兴趣的话,可以按照这个方法试一试。
从一副扑克牌中随意抽取 21 张牌。让观众从这些牌中随意选择一张,这张牌就是最后通过魔术需要找到
的目标牌。让观众牢记后将其放回到其余 20 张牌中,然后任意洗牌。
下面开始进行发牌的工作,发牌和普通扑克的发牌规则一样。将牌发成 3 叠,每叠 7 张。将每叠牌依次展
示给观众,要求观众确认目标牌在 3 叠的哪一叠中即可。
之后将 3 叠牌合在一起,将包含目标牌的一叠放在其他两叠牌中间。注意此时不要打乱每叠牌的顺序。
然后再次发牌,和刚才完全一样,还是将牌发成 3 叠。让对方确认目标牌所在的一叠,将这叠牌放到另外
两叠牌的中间。
最后,再次重复上面的发牌、确认此过程,仍然将包含目标牌的那叠牌,放到另外两叠牌的中间。
下面神奇的时刻到来了:从这叠扑克牌的上面每次拿起一张,每拿起一张牌的同时要说一句话“你要相信
魔术你的牌是”。说完这句话,下一张牌就是目标牌了。
看上去这个魔术很神奇,而且最神奇的是,这个魔术任何人都可以来表演。这就说明无论这张牌最初在哪
个位置,只要按照这个规则最后都一定会来到这个指定的位置。
看了这个魔术,不禁有点手痒,既然是 DBA 出身,就用 SQL 来演示一下这个魔术的过程吧,见如下代码:
SQL> WITH A AS
2 (SELECT ROWNUM P FROM DUAL CONNECT BY LEVEL <= 21)
3 SELECT
4 7 + CEIL(
5 (7 + CEIL(
6 (7 + CEIL(P/3))
7 /3))
8 /3)
9 FROM A;
7+CEIL((7+CEIL((7+CEIL(P/3))/3))/3)
-----------------------------------
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
of 26
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜