11月28日——培训第8天
又是一路顺风,早早的就到了,大家的意思是以后晚点起,没必要每天
都这么早,当时总是担心堵车会很严重,但是没想到一点都不严重,还能
这么早到,可是问题是,如果要是晚起的话等车的问题会不会很严重呢?
要知道307有时候可是会20分钟不来车啊……
本来商量好是今天回去搬宿舍的,因为昨天认为隔壁308的人已经搬走了
,今天一看才知道,原来那最后一个人是打算12月6日才走人,看来一时半
会儿我们也甭着急了……
------------------------------------------------------------------
上午课程开始:
首先是兰献斌讲解昨天的alter table中的set unused来令一条记录不显示
的问题,unused确实不能反向操作,这在参考手册的839页有详细的说明,
而且不难理解,可以到时好好看看。
然后是刘栋的有关事务锁的讲解
1.DML锁
2 DDK锁
3 内部锁(oracle内部使用的锁)
dml锁分为共享锁、独占锁和共享更新锁,
lock table emp in exclusive mode;
如果执行了上面语句后,
再在另一个窗口中执行lock table emp in share mode nowait
的话,由于不能加共享锁故不会等待,直接返回资源正忙的信息
如果不加nowait的话则会等待另一个命令行窗口释放独占锁。
共享更新锁:
select * from emp where empno = 999 for update;
这样满足条件的在emp表中的记录就被锁定了,这就锁定了empno是999的行,
这时候其他行是可以修改的,但是满足上述语句的那些行是不可以更新的。
也就是行级的锁定。
刘栋的资料发给了我们,其实网上这些东西有关锁的太多了,大多数都是原理
性的东东,参考手册中也向我们提供了锁的使用例子。
在17章节的lock table里面有详细的介绍
------------------------
呵呵,田老师的目的已经很清楚了,虽然把一些问题布置给我们名义上好像
是锻炼我们的讲解知识点能力以及解决问题的能力,其实实质上是为了自己的
写教材方便啊,众所周知,以自己的能力写一本书要想写好是很困难的,正所谓
众人拾柴火焰高,把oracle的细节问题分发给学员,让他们每一个人专攻一个
小细节,然后把这些小细节写的很明白,然后老师再集齐这些细节,这样写起
教材来多方便啊……呵呵,这可真是巧妙的利用了资源啊,某培训机构这里果然
不一般,在别的地方有没有类似的现象我不清楚,但是至少张孝祥以前用学员
写书引发矛盾的事情可能也是类似的情况吧,虽然没有指名让我作,而是兰
献斌和刘栋,但是总觉得有种被利用的感觉,看来作为第二期学员的我们,仍然
还是试验品呢。
-------------------------
下面是视图的讲解,视图就是一张虚表,复杂视图不可以进行dml操作,但是
简单视图可以进行dml操作。
create view(列名……) as subquery
[with check option 约束]
[with read only 约束]
subquery可以包含复杂的select语法。
with check option 的作用:检查你插入的新记录是否符合子查询的条件,
其实也就是保证你插入的记录可以用子查询查出来,当然只有符合子查询
的条件才可以被查出来……
以hr登陆,
create view emp_v
as select * from employees where department_id=50;
这样视图就建立起来了
可以用desc emp_v;查看视图。
insert into emp_v values(909,'a','a','2',sysdate,'IT_PROG',5000,
0.09,100,80);
注意上面的department_id是80而不是创建子查询中的条件中的50,这样一来
虽然插入成功了,但是由于department_id不是50而是80,
如果执行 select * from emp_v where employee_id=909;的话,是查不出任何
结果的。
如果执行 select employee_id from employees where employee_id=909
的话,就可以查出结果了,所以呢,很明显,所谓的向视图里面插入记录
其实并不是真的插入视图里面去了,而是插入视图背后的真正的表employees
中,所以呢,在视图中由于插入的记录的department_id不是50,所以呢,
自然在视图中显示不出来了。
drop view emp_v;删除视图。
create view emp_v(employee_id,first_name,department_id)
as select employee_id,first_name,department_id from employees
where department_id = 50 with check option;
视图创建后,
执行insert into emp_v values(908,'a',80);
提示‘无法将NULL插入("hr","employees","last_name")’,
因为插入的实质是插到employees表中而不是视图中,em
11月28日——培训第8天相关推荐
- 关于2021年11月28日PMI认证考试的报名通知
尊敬的各位考生: 经PMI和中国国际人才交流基金会研究决定,中国大陆地区2021年全国第二期PMI认证考试于11月28日举办,相关事项通知如下. 一.时间安排和举办地区 (一)考试时间:2021年11 ...
- IT168 CIO频道11月28日至12月01日文章精选
IT168 CIO频道11月28日至12月01日文章精选 IT168 CIO频道11月28日至12月01日文章精选 美国大众汽车的IT治理之道 栏目:制造业信息化 内容摘要:[IT168 专稿]大众汽 ...
- 11月28日(本周六)免费PHP技术讲座+《细说PHP》签售
[活动主题] 从草根到巨人 --互联网时代的LAMP开源架构 [活动时间] 11月28日上午10:30-12:00 [活动地点] 北京 海淀 ...
- C#与Javascript变量、函数之间的相互调用2008年11月28日 星期五 05:28 P.M.1.如何在JavaScript访问C#函数?
C#与Javascript变量.函数之间的相互调用 2008年11月28日 星期五 05:28 P.M. 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3 ...
- 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日) 本周Silverlight学习资源更新 Silverlight HttpUtil 封 ...
- 舰r4月28服务器维护,崩坏3 11月28日版本更新维护通知
亲爱的舰长: 为了给舰长更好的游戏体验,休伯利安号将在11月28日进行版本更新维护,维护完成后战舰将更新为3.6版本--「绯夜霞隐」. ======维护时间====== 安卓国服.iOS服和各渠道服: ...
- python编程入门与案例详解-quot;Python小屋”免费资源汇总(截至2018年11月28日)...
原标题:"Python小屋"免费资源汇总(截至2018年11月28日) 为方便广大Python爱好者查阅和学习,特整理汇总微信公众号"Python小屋"开通29 ...
- 关于11月28日CSDN遭受网络攻击的情况说明
各位CSDN网友: 2014年11月28日,CSDN网站因遭受网络攻击导致用户无法正常登陆或访问,对此,许多网友通过微博.微信.邮件.QQ等多种方式,对我们表示了极大的关注.经过技术人员的努力,在遭受 ...
- 1128d_日式迷宫探索DRPG《灵魂潮汐》预计11月28日开测
提到RPG,相信小伙伴们一定不陌生,这一古老的游戏类型在游戏历史长河中历经风雨后经久不衰,至今仍然是很多玩家的最爱,甚至有些小伙伴还能一口气说出不少款自己心中最佳的RPG游戏. 但是若说到其子类型DR ...
最新文章
- 编程之美2.17 数组循环移位
- PaddleHub 口罩检测
- C语言模拟实现(一)----- 优先权抢占式时间片调度算法
- harbor 2.0.1安装部署
- java如何显示当天世界_Java学习笔记——显示当前日期的三种方式
- 慕学在线网0.4_xadmin后台管理
- 一起来用Websocket(二):Websocket协议详细分析
- 知乎热榜:如何看待华为天才少年年薪201万?
- [CLR团队公告]CLR基础研究团队纲领
- java 约瑟夫环_java中约瑟夫环代码实现
- Excel设置(单行或多行)固定表头的方法
- 基于C++和opengl实现太阳系动画演示系统 课程论文+项目源码
- android闹钟报告分析,Android AlarmClock 闹钟应用 简单分析
- CSS网页布局中易犯的30个小错误
- 提前还贷怎样才划算 多还本金减少期限最划算
- 港联证券|基金和股票的区别是什么?谁更适合做短线?
- 育润多维发力慈善领域,勇抗企业公益大旗
- Unity中空气墙的制作
- 社群团购平台物流模块整体解决方案-快递鸟
- 第十四届蓝桥杯三月真题刷题训练——第 9 天