《.Net程序员学用Oracle系列:导航目录》

本文大纲

基本说明

为什么要创建的测试环境?

我在构思本系列博客的时候,并没有想到要做什么准备;但当我写完六七篇稿子的时候,我忽然意识到如下的一系列问题:

  • 有些跟时间有关的示例,我有用 SYSDATE 来演示,当读者把博文中的 SQL 语句拷贝到他的环境中运行时,SYSDATE 的值肯定已经变了,那样的话,读者就得花更多的时间来思考和理解其中的不同。

  • 部分关于 DML、DQL 的示例,主要演示的是语法而非结果,而且有些示例的结果很长,全都展示出来太占篇幅,不利于读者阅读。准确的理解语法和灵活的运用语法才是关键,要做到这两点就必需辅以练习。而读者的环境中可能没有方便练习的表结构和数据,自己造自然是好的,但这可能需要花费读者较多的时间,明显有悖于本系列博文所追求的 实用省时

  • Oracle 中的权限很多很复杂,不同的 Oracle 版本还不太一样,读者可能会遇到模仿示例改的 SQL 语句在自己的环境中运行结果变少、变多,甚至直接报错,这都有可能权限的问题,而经验不多的开发者往往找不到问题的原因,这给他们的理解带来了非必要的困难,某些初学者甚至会怀疑自己的理解能力和智商!这是我本人非常不愿意看到。

基于对以上等问题的思考,最终我决定要创建一个的测试环境,并把前面写好的稿子重新写一遍,这样作者和读者就能拥有相同的运行环境,方便了二者之间的交流。

了解 Oracle 中的 3 个默认用户

在正式创建环境之前,我们需要先来了解下 Oracle 实例的默认用户。在创建好一个 Oracle 实例之后,这个实例就已经包含了多个默认用户,不同的 Oracle 版本有所差异,但一般都会有 sys、system、scott 三个用户。其中 sys 和 system 是比较常见的,sys 是系统用户,数据字典所有者,超级权限所有者,system 是数据库默认管理用户,拥有DBA角色权限,有关这两个用户的其它疑问建议读者自行百度,网上有大量的介绍和说明。

scott 是一个普通用户,有些版本中 scott 的默认密码是 tiger,但默认会被锁定,需解锁之后才能登录。scott 存在的目的就是为了方便实验和测试,默认拥有表 emp 和 dept,但这些表过于简单,里面也没什么数据,达不到本系列博客想要演示的效果。下文中我们将创建一个与 scott 类似的用户,并基于这个用户创建整个测试环境。

补充说明:解锁 scott 用户的命令是:alter user scott account unlock;,然后执行命令:select username,account_status from dba_users;,查看执行结果,您可能会发现 scott 账户已经解锁,但状态却是"expired"(密码过期的意思),这时候再执行命令:alter user scott identified by tiger;,这个命令的意思是给 scott 账户指定一个新的 tiger 口令,然后就可以登录了。

创建测试环境

首先我得说明的是,由于本系列博文将要介绍的知识点较多,有些操作会有顺序要求,不同的章节对演示环境的要求也不太一样,所以无法一次性创建一个能满足后续所有演示需要的环境。所以我会首先创建一个基本的环境,然后在后续需要的时候来不断的完善或修改这个环境,以达到演示的需要。

创建基本环境

要点2

要点3

《.Net程序员学用Oracle系列:导航目录》

本文声明:如果您认为这篇文章还可以或对您有帮助,请点击文章末尾的“推荐”按钮。欢迎转载、演绎或用于商业目的,但必须保留本文的署名韩宗泽,并且要在明显位置给出原文链接!本人初写博客,水平有限,若有不当之处,敬请批评指正,谢谢!

.Net程序员学用Oracle系列(2):准备测试环境的更多相关文章

  1. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...

  2. .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...

  3. .Net程序员学用Oracle系列(7):视图、函数、过程、包

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...

  4. .Net程序员学用Oracle系列(8):触发器、任务、序列、连接

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...

  5. .Net程序员学用Oracle系列(9):系统函数(上)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...

  6. .Net程序员学用Oracle系列(10):系统函数(下)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...

  7. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

  8. .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL

    1.DUAL 表 2.ROWID 类型 2.1.利用 ROWID 查询数据 2.2.利用 ROWID 更新数据 3.NULL 值 3.1.NULL 与空字符串 3.2.NULL 与函数 3.3.NUL ...

  9. .Net程序员学用Oracle系列(25):触发器详解

    1.触发器理论 1.1.触发器的应用场景 1.2.触发器的类型 1.3.DML 触发器的触发顺序 2.触发器实战 2.1.创建触发器 2.1.1.创建 DML 触发器 2.1.2.创建 DDL 触发器 ...

随机推荐

  1. [转]C/C++:构建你自己的插件框架

    本文译自Gigi Sayfan在DDJ上的专栏文章.Gigi Sayfan是北加州的一个程序员,email:gigi@gmail.com. 本文是一系列讨论架构.开发和部署C/C++跨平台插件框架的文 ...

  2. ventBroker简单实现

    C#编程实践—EventBroker简单实现 前言 话说EventBroker这玩意已经不是什么新鲜货了,记得第一次接触这玩意是在进第二家公司的时候,公司产品基础架构层中集成了分布式消息中间件,在.n ...

  3. easyui datagrid显示进度条控制操作

    在当我们需要控制时间前台实际项目页面datagrid显示进度条的数据加载时运行,和datagrid默认情况下只在有url加载运行时的数据显示方式的进度条.下面的代码手动控制: 打开一个进度条: $(' ...

  4. 激活windows server 2012 R2的方法

    首先登陆dreamspark 注册一个账号https://www.dreamspark.com/Account/SignIn.aspx, 点击创建账户,信息可以完全瞎编,邮箱不存在也可以.然后使用“我 ...

  5. 使用ServletConfig获得web.xml资源中的参数

    适用:一些不需要再Servlet文件中初始化的可以使用,例如:数据库用户名和密码 //Servlet文件 //实例化ServletConfig对象  ServletConfig servletConf ...

  6. Node填坑教程——过滤器

    所谓“过滤器”,只是一个概念,可以理解是一个路由,也可以理解为一个中间件.原理非常简单,就是利用匹配规则,让其有限匹配在正常的路由前面处理就行了. 比如有如下路由 app.get('/', funct ...

  7. 凝结时光:ImageMagick 制作 gif

    从去年12.12开始,工作日都会从单位的落地窗向外拍一张照片,有点每日打卡的意思.weekday 是一天不落的,weekend 不是每次都到单位,落了几次. 想法来自上学的时候,有同学在同一个地方,拍 ...

  8. c#拷贝

    话谈c#拷贝 c#中类型分为值类型和引用类型,值类型对象赋值是本身就是赋的自身的一个副本,而引用类型赋值时则赋的是指向堆上的内存,假如我们不想赋这个地址而想将对象赋过去要怎么做呢?首先要知道拷贝分为浅 ...

  9. [原]MobileSubstrate 工作流程

    [附-腾讯安全管家替换 MobileSubstrate 的流程] com.qq.mqqsecure.deb-postinst--->QSCommand--->QSTempRunner

  10. 解决js中传值,Action获取是乱码问题

    1.先在js中进行编码 var str = $("mytext").val(); //转码,两次 str = encodeURI(str); str = encodeURI(str ...