当前位置:首页 > >
《Oracle 12c从零开始学》电子书封面

Oracle 12c从零开始学

  • 发布时间:2019年04月25日 10:19:19
  • 作者:刘增杰
  • 大小:229.1 MB
  • 类别:Oracle数据库电子书
  • 格式:PDF
  • 版本:完整视频版
  • 评分:7.7

    Oracle 12c从零开始学 PDF 完整视频版

      给大家带来的一篇关于Oracle数据库相关的电子书资源,介绍了关于oracle12c、从零开始学方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小229.1 MB,刘增杰编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.4。

      内容介绍

      Oracle 12c从零开始学

      Oracle 12c从零开始学 电子书封面

      读者评价

      比较基础,书上说在是64位的win7系统 上的实验

      内容介绍

      刘增杰、刘玉萍编著的《Oracle12c从零开始学 (视频教学版)》主要内容包括Oracle的安装与配置 、数据库的创建、数据表的创建、数据类型和运算符 、Oracle函数、查询数据、数据表的操作(插入、更 新与删除数据)、游标、存储过程、视图、触发器、 用户管理、数据备份与还原、日志以及性能优化等。*后通过两个综合案例的数据库设计,进一步讲述 Oracle在实际工作中的应用。重点介绍Oracle安装与 配置、数据类型和运算符以及数据表的操作。本书注 重实战操作,帮助读者循序渐进地掌握Oracle中的各项技术。
      本书共有480个实例,还有大量的经典习题。配书压缩包中赠送了近20小时培训班形式的视频教学录像 ,详细讲解了书中每一个知识点和每一个数据库操作 的方法和技巧。同时,配书压缩包中还提供了本书所有例子 的源代码,读者可以直接查看和调用。配书压缩包需要网上下载。
      本书适合Oracle数据库初学者、Oracle数据库开 发人员和Oracle数据库管理员,同时也能作为高等院 校相关专业师生的教学用书。

      内容节选

      查询现有数据库:select name from V$database;
      解锁用户scott:alter user scott account unlock;
      普通用户连接:conn scott
      默认密码:tiger
      普通管理员:system/system
      超级管理员:Sys/sys
      断开连接:disconnect
      当前用户:show user
      查看该用户下的所有对象:select * from tab;
      dual表是oracle内虚拟的一个表,妙用很多

      单行函数
      模糊查询
      %表示零个或多个字符
      _ 表示一个字符
      对于特殊符号可使用ESCAPE标识符来查找
      select * from emp where ename like '%*_%' escape '*'
      上面的escape表示*后面的那个符号不被当成特殊字符处理,就是查找普通的_符号
      Scott用户自带的表结构
      雇员表EMP(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
      部门表dept(deptno,dname,loc)
      工资等级表salgrade(grade,losal,hisal)
      奖金表BONUS(ENAME,JOB,SAL,COMM)

      单表查询example
      选择在部门30中员工的所有信息
      select * from emp where deptno=30;
      列出职位为(manager)的员工的编号,姓名
      select empno,ename from emp where job='MANAGER'
      找出奖金高出工资的员工
      select * from emp where comm>sal;
      找出每个员工奖金和工资的总和
      select ename,comm+sal from emp;
      找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK);
      找出部门10中既不是经理也不少普通员工,而且工资大于2000的员工
      SELECT * FROM EMP WHERE DEPTNO=10 AND JOB NOT IN ('MANAGER','CLERK') AND SAL>=2000;
      找出有奖金的员工的不同工作
      select distinct job from EMP where comm is not null and comm>0;
      找出没有奖金或者奖金低于500的员工
      select * from emp where comm<500 or comm is null;
      显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
      select ename from emp order by hiredate;

      字符函数
      upper,lower(大写,小写)
      initcap(将每个能识别的单词的第一个字母大写,其他小写,中间出息中文,空格都将视为一个单词)
      concat('a','b');  'a'||'b'  连接俩字符串
      length()字符串长度
      substr('abcde',length('abcde')-2,2)   从第三个字符开始取‘abcde’的2个字符,结果为'cd',第三个值可缺省
      replace(ename,'A',a)将ename的所有A换为a
      instr('Hello world','or')第二个字符串在第一个字符串中的位置(结果为8)
      lpad('Smith',10,'*')       *****Smith
      rpad('smith',10,'*')       Smith*****
      trim('    Mr Smith       ')过滤首尾空格
      trim([BOTH|LEADING|TRAILING] '*' from '****ab***')  ab

      数值函数
      round(419,-1) 精确到小数点后多少位,进行四舍五入,-1的结果为420
      round(412.313,2)结果为412.31
      mod(5,4) 取余,1
      trunc类似round,截取时不进行四舍五入

      日期函数
      months_between(date1,date2),返回相差的月数date1-date2
      add_months(to_date('19910522','yyyymmdd'))增加一个月
      next_day(sysdate,'星期一')下一个星期一的日期
      last_day(sysdate)对应月份的最后一天

      转换函数
      //sysdate---2015-03-16
      to_char(sysdate,'yyyy')2015
      to_char(sysdate,'fmyyyy-mm-dd')2015-3-16
      to_char(sysdate,'yyyy-mm-dd')2015-03-16
      select to_char(sal,'L999,999,999')from emp; ¥800 ¥3,000
      to_char(sysdate,'D')返回这是这周的第几天,注意这里返回的是美国习惯,即周日是第一天
      to_number('13')
      to_date('20051103','yyyymmdd')

      通用函数
      nvl(字段名,‘x’)该字段若为空值时,显示为X
      nullif(表达式1,表达式2)如果表达式1等于表达式2,则返回空值,否则返回表达式1的值
      nvl2(表达式,不为空设值,为空设值)
      coalesce(表达式1,表达式2,表达式3)依次考察各参数表达式,遇到非null值即停止并返回该值
      select empno,ename,sal,case deptno when 10 then '财务部'  when 20 then '研发部'  when 30 then '销售部' else'未知部门' end
      部门 from emp;
      select empno,ename,sal,decode( deptno, '财务部', 20,'研发部' ,30,'销售部','未知部门' )部门 from emp;

      练习:
      1.找出每个月倒数第三天受雇的员工(如:2009-5-29)
      select * from emp where hiredate+2=last_day(hiredate);
      2.找出30年前的雇的员工
      select * from emp where hiredate<=add_months(sysdate,-30*12);
      3.所有员工名字前加上Dear ,并且首字母大写
      select * from 'Dear '|| initcap(ename) from emp;
      4.找出姓名为5个字母的员工
      select * from emp where length(ename)=5;
      5.找出姓名中不带R这个字母的员工
      select * from emp where ename not like '%R%';
      6.显示所有员工的姓名的第一个字
      select substr(ename,1,1) from emp;
      7.显示所有员工,按名字第一个字母降序排列,若相同,则按工资升序排列
      select ename,sal from emp order by substr(ename,1,1) desc,sal;
      8.假设一个月为30天,找出所有员工的日薪,不计小数
      select ename,round(sal/30)daily_sal from emp;
      9.找到2月受雇的员工
      select * from emp where to_char(hiredate,'fmmm')='2';
      10.列出员工加入公司的天数(四舍五入)
      select ename,round(months_between(sysdate,hiredate)*30)from emp;
      11.分别用case和decode函数列出员工所在的部门,deptno显示‘部门10’,deptno=20显示‘部门20’否则为‘其他部门’
      select ename,case deptno when 10 then'部门10' when 20 then '部门20' else '其他部门' end 部门 from emp;
      select ename,decode(deptno,10,'部门10',20,'部门20','其他部门')部门 from emp;

      分组函数
      count
      如果数据库表没有数据,count(*)返回的不是null,而是0
      avg,max,min,sum
      用avg算均值时,若为null,不算均数,如emp表中除了1400,300,500,0外,都为空值,算出来的值为550,此时可用nvl()函数强制分组函数处理空值
      select avg(nvl(comm,0)) from emp;
      group by 不允许出现在where中(用having)
      select deptno,avg(sal) from emp group by deptno;
      having 字句
      select deptno,job,avg(sal) from emp where hiredate >=todate('1981-05-01','yyyy-mm-dd') group by deptno,job having avg(sal) >1200 order by deptno,job;
      分组函数嵌套
      select max(avg(sal)) from emp group by deptno;
      练习:
      1.统计各部门下工资大于500员工的平均工资表
      select avg(sal) where sal>500 group deptno;
      2.统计各部门下平均工资大于1600的部门
      select deptno,avg(sal) from emp group by deptno having avg(sal)>1600;
      3.算出部门30中薪水最高的员工薪水
      select max(sal)  from where deptno=30;
      4.算出部门30中薪水最高的员工姓名
      select ename from emp where sal=(select max(sal)  from where deptno=30);
      5.算出每个职位的员工数和最低工资
      select job,min(sal),count(*)from emp group by job;
      6.算出每个部门,每个职位的平均工资和平均奖金(平均值包括没有奖金)如果平均奖金大于300,显示'奖金不错',如果平均奖金100到300,显示'奖金一般',如果平均奖金小于100,显示“基本没有奖金”,按部门编号降序,平均工资降序排列
      select deptno,job,avg(sal)平均工资,avg(nvl(comm,0))平均奖金,case when avg(nvl(comm,0))>=300 then '奖金不错' avg(nvl(comm,0))>100 and avg(nvl(comm,0))<300 then '奖金一般' else '基本没有奖金' end 奖金状况 from emp group by deptno,job order by deptno desc, avg(sal) desc;
      7.列出员工表中每个部门的员工数,和部门no
      select deptno,count(*) from emp group by deptno;
      8.得到工资大于自己部门平均工资的员工信息
      select * from emp e1,(select deptno,avg(sal)avgsal from emp group by deptno)e2 where e1.deptno=e2.deptno and e1.sal>e2.avgsal;
      9.分组统计每个部门下,每种职位的平均奖金和总工资(包括奖金)
      select deptno,job,avg(nvl(comm,0)),sum(sal+nvl(comm,0)) from emp group by deptno,job;

      目录

      • 第1章 初识Oracle
      • 第2章 Oracle的安装与配置
      • 第3章 数据库和数据表的基本操作
      • 第4章 数据类型和运算符
      • 第5章 Oracle函数
      • 第6章 查询数据
      • 第7章 插入、更新与删除数据
      • 第8章 视图
      • 第9章 游标
      • 第10章 存储过程
      • 第11章 Oracle触发器
      • 第12章 管理表空间
      • 第13章 事务与锁
      • 第14章 Oracle的用户管理
      • 第15章 控制文件和日志
      • 第16章 数据备份与还原
      • 第17章 性能优化
      • 第18章 设计新闻发布系统数据库
      • 第19章 设计论坛管理系统数据库

      以上就是本次介绍的Oracle数据库电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:HTML5+CSS3+JavaScript从入门到精通

      下一篇:人人都会数据分析:从生活实例学统计

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者留言
      网友NO.35929
      网友NO.35929

      有了一定的SQL基础后,就要尽可能的了解Oracle的体系结构,这就涉及到了Oracle管理的内容了。 我学习的时候,机械工业出版社的《Oracle9i DBA手册》这本书对我的帮助挺大。或许现在都出11g版本的了吧。 Oracle公司的《Oracle Concepts》是非常棒的书,对了解Oracle体系结构很有好处。每个Oracle版本都有对应的版本,可以认真多读几次,每次都会有新的收获。
      做数据库维护的时候,备份与恢复是不得不接触的内容。于是学习Oracle备份与恢复技术也是必然的事情。 数据量少的,比如20、30多个G,还可以考虑用exp/imp来备份与恢复,但数据量大了,这种方法就根本不适合了。 大数据量情况下,Oracle 建议用RMAN来进行数据的备份与恢复。目前市场上有很多数据库备份恢复软件,其实好多也是后台调用RMAN。清华大学出版社出版的《Oracle9i RMAN 备份与恢复技术》是一本非常不错的介绍RMAN的书。
      有了以上的基础,可以说已经入门了,对遇到的一些初级Oracle问题将不再束手无策。然而我们的学习之路仍然还很漫长。我们的用户可能经常抱怨数据库运行缓慢。这时,如果有一定的优化知识,那就好办了。有时你会看到优化前需要运行几个小时的作业,优化后也许几秒钟就能完成!

      网友NO.26528
      网友NO.26528

      1、orcale不区分大小写,标志符(表名,列名,别名等)是区分大小写的;标志符没有加双引号,默认自动转换为大写执行
      2、orcale中双引号作用:转义非法标志符为合法,强制标志符原始大小写执行
      3、oracle中日期类型没有常量这一说,默认日期字符串格式dd-mon-rr
      4、oracle空值和任何值作比较运算结果一定为假,oracle数据库没有布尔值true和false
      5、in(值列表):如果表达式等于值列表中的任意一个值,就为真;not in(值列表):表达式不等于值列表中的任意一个值,才为真
      6、like:模糊查询 not like 逻辑非,通配符%代表0到多个任意字符 _代表1个任意字符
      7、排序子句:order by 排序表达式 asc升序(不写默认) desc降序,排序操作非常耗费资源,大量数据排序,必须提前做好数据库的优化
      8、单行函数,每次执行函数,传入一行列值,返回一个结果;多行函数,每次执行函数,传入多行列值,返回一个结果

      码农之家

      码农之家 提供上传

      资源
      41
      粉丝
      31
      喜欢
      134
      评论
      10

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com