《.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# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...

  2. Android EventBus现实 听说你out该

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/40794879.本文出自:[张鸿洋的博客] 1.概述 近期大家面试说常常被问到Ev ...

  3. 【UVA】10285-Longest Run on a Snowboard(动态规划)

    这是一个简单的问题.你并不需要打印路径. 状态方程dp[i][j] = max(dp[i-1][j],dp[i][j-1],dp[i+1][j],dp[i][j+1]); 14003395 10285 ...

  4. android简单的计算器

    所使用的算法:表达式求值(中缀表达式转后缀表达式,后缀表达式求值值) 不如何设计接口,有时间来美化! MainActivity.java package com.example.calculator; ...

  5. C# 语言的两个html解析器

    基于C# 语言的两个html解析器   基于C# 语言的两个html解析器 1)Html Agility Pack http://nsoup.codeplex.com/ 代码段示例: HtmlDocu ...

  6. python购物淫秽数据分析(2)

    淘宝大数据的游戏,我重新提高自己的思维方式, 插件和代码前前后后写在六个版本,但最好的结果其实是我的第一次2第二码.这让我很惊讶, 但它也说明了一个问题.当你更熟悉的语言,当一方,你缺少的是其他的知识 ...

  7. ajax 请求数据

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. android 实现分享功能两种方法

    当我想做一个智能的记事本的时候,我就在尝试自己写一组分享功能.后来才知道,原来每个社交软件中都有自己的分享接口. 这就大大减少了我们的代码量了. 第一种方法:特点--简单 package com.ex ...

  9. Hibernate在自由状态和持久的状态转变

    在Hibernate在.一PO术后可能长时间,session过时关闭.此时PO它一直是游离状态的对象,在这种状态下,以被转换成持久战,有几种方法如下: 1.session.saveOrUpdate(o ...

  10. CRM2011 concurrency问题及解决方案

    CRM2011对删除和添加操作会自动做判断,比如A打开纪录x,B也打开纪录x,然后B删除了纪录x,A去更新的话就会有提示.更新的话是后者覆盖前者,比如A打开纪录x,B打开纪录x,然后B把记录x中的字段 ...