转换函数 
介绍
转换函数用于将数据类型从一种转为另外一种。在某些情况下,oracle server允许值的数据类型和实际的不一样,这时oracle server会隐含的转化数据类型
比如:
create table t1(id int);
insert into t1 values('');-->这样oracle会自动的将'' --> create table t2 (id varchar2());
insert into t2 values(); -->这样oracle就会自动的将1 -->'';
我们要说的是尽管oracle可以进行隐含的数据类型的转换,但是它并不适应所有的情况,为了提高程序的可靠性,我们应该使用转换函数进行转换。 to_char
你可以使用select ename, hiredate, sal from emp where deptno = ;显示信息,可是,在某些情况下,这个并不能满足你的需求。 问题:日期是否可以显示 时/分/秒
SQL> select ename, to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss') from emp;
问题:薪水是否可以显示指定的货币符号
SQL> yy:两位数字的年份 -->
yyyy:四位数字的年份  2004年
mm:两位数字的月份 8月-->
dd:两位数字的天 30号-->
hh24: 8点-->
hh12:8点-->
mi、ss-->显示分钟\秒 :显示数字,并忽略前面0 ,to_char(sal,'L99999.99')
:显示数字,如位数不足,则用0补齐to_char(sal,'L09999.99')
.:在指定位置显示小数点to_char(sal,'L99999.99')
,:在指定位置显示逗号 to_char(sal,'L99,999.99')
$:在数字前加美元 to_char(sal,'$99999.99')
L:在数字前面加本地货币符号 to_char(sal,'L99,999.99')
C:在数字前面加国际货币符号
G:在指定位置显示组分隔符、
D:在指定位置显示小数点符号(.) 问题:显示薪水的时候,把本地货币单位加在前面
SQL> select ename, to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss'), to_char(sal,'L99999.99') from emp;
问题:显示1980年入职的所有员工
SQL> select * from emp where to_char(hiredate, 'yyyy')=;
问题:显示所有12月份入职的员工
SQL> select * from emp where to_char(hiredate, 'mm')=; to_date
函数to_date用于将字符串转换成date类型的数据。
问题:能否按照中国人习惯的方式年—月—日添加日期。 系统函数
sys_context,以下是7个参数:
)terminal:当前会话客户所对应的终端的标示符
)lanuage: 语言
)db_name: 当前数据库名称
)nls_date_format: 当前会话客户所对应的日期格式
)session_user: 当前会话客户所对应的数据库用户名
)current_schema: 当前会话客户所对应的默认方案名 (一个用户对应一个方案,方案名和用户是一样的)
)host: 返回数据库所在主机的名称
通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库?
select sys_context('USERENV','db_name') from dual;
注意:USERENV是固定的,不能改的,db_name可以换成其它,比如select sys_context('USERENV','lanuage') from dual;又比如select sys_context('USERENV','current_schema') from dual;

方案(schema)

理解:当一个用户,创建好以后,如果该用户创建了任意一个数据对象,此时,我们的dbms就会创建一个对应的方案与该用户对应。方案名与用户名完全一样。方案里面有很多的数据对象(表、视图、触发器、存储过程),是以方案的方式组织数据对象.

小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可以使用pl/sql developer

方案这个概念的实际应用:
要求:请完成一个功能,让xiaohong用户可以去查询scott的emp表
步骤:
、先用scott登录
sql>conn scott/tiger;
、赋权限给xiaohong
给某用户添加表[增删改查]权限基本语法:grant [select|update|delete|insert|all] on 表名 to 用户名;
sql>grant select on emp to xiaohong;
、xiaohong查询scott的emp
用户查询授权表的基本语法:select * from [方案名].表名;
注意:方案名不带的话,默认是查询自己方案中的表。
sql>select * from scott.emp;
数据库管理,表的逻辑备份与恢复
数据库管理员
介绍
每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责。那么一个数据库管理员的主要工作是什么呢:
职责
.安装和升级oracle数据库
.建库,表空间,表,视图,索引…
.制定并实施备份和恢复计划
.数据库权限管理,调优,故障排除
.对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包 管理数据库的用户主要是sys和system        
(sys好像是董事长,system好像是总经理,董事长比总经理大,但是通常是总经理干事)
在前面我们已经提到这两个用户,区别主要是:
.最重要的区别,存储的数据的重要性不同
sys:所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper角色或权限,是oracle权限最高的用户。
system:用于存放次一级的内部数据(不是很重要),如oracle的一些特性或工具的管理信息。system用户拥有dba,sysdba角色或系统权限。
看图:

sysdba可以建数据库,sysoper不能建数据库 

. 其次的区别,权限的不同。
sys用户必须以as sysdba或as sysoper形式登录。不能以normal方式登录数据库
system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,从登录信息里面我们可以看出来。 conn sys/change_on_install 登录报错
conn sys/change_on_install as sysdba 或者conn sys/change_on_install as sysoper sysdba和sysoper权限区别图,看图:

sysdba>sysoper>dba
可以看到:只要是sysoper拥有的权限,sysdba都有;蓝色是它们区别的地方。(它们的最大区别是:sysdba可以创建数据库,sysoper不可以创建数据库) dba权限的用户
dba用户是指具有dba角色的数据库用户。特权用户可以执行启动实例,关闭实例等特殊操作,而dba用户只有在启动数据库后才能执行各种管理工作。
(相当于说dba连startup和shutdown这两个权限都没有) 两个主要的用户,三个重要权限,他们的区别和联系,大家要弄清楚

oracle6的更多相关文章

  1. oracle中row_number和rownum的区别和联系(翻译)

    http://www.tuicool.com/articles/bI3IBv 附问题:有以下一个SQL语句: SELECT * FROM ( SELECT t.*, row_number() OVER ...

  2. SQLServer内核架构剖析 (转载)

    SQL Server内核架构剖析 (转载) 这篇文章在我电脑里好长时间了,今天不小心给翻出来了,觉得写得很不错,因此贴出来共享. 不得不承认的是,一个优秀的软件是一步一步脚踏实地积累起来的,众多优秀的 ...

  3. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  4. oracle 10g 学习之PL/SQL简介和简单使用(10)

    PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问.由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理.PL/SQL是 P ...

  5. 【转】SQLServer内部原理

    原文地址:http://twb.iteye.com/blog/182083 在讲SQLSERVER内部原理的之前,我觉得非常有必要向大家介绍一下SQLSERVER的历史. 让我们站在1999年,看看计 ...

  6. 使用yum快速部署Oracle安装环境(11g)

    基于Linux安装过Oracle的童鞋们都应该清楚,安装Oracle的确是一件比较费时费力的差事,因为仅仅是前期的rpm包,内核参数,创建用户等等这些个步骤都让那些新手不免眼花缭乱,一不留神,就导致最 ...

  7. [转载]SQL Server内核架构剖析

    原文链接:http://www.sqlserver.com.cn 我们做管理软件的,主要核心就在数据存储管理上.所以数据库设计是我们的重中之重.为了让我们的管理软件能够稳定.可扩展.性能优秀.可跟踪排 ...

  8. Oracle数据库之PL/SQL程序设计简介

    PL/SQL程序设计简介 一.什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写. ORACLE的SQL ...

  9. Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle

    Oracle 为什么选择oracle 1.oracle可以在主流的平台上执行,而相对于sql server仅仅支持windows,而windows在wr手里攥着呢,所以你懂的.在安全性上来讲,非常多地 ...

随机推荐

  1. 最浅显、易懂的Linux 硬链接与软链接的理解

    正文: Linux上的文件可以这么理解:文件-->文件名.文件是一个Object,也就是磁盘上的二进制数据.一个文件可以有多个文件名,平时我们都是通过文件名访问文件Object. 这样,硬链接可 ...

  2. Stanford CoreNLP--功能列表

    Standford CoreNLP包含很多功能,github上有源码,github地址:Stanford CoreNLP,有需要的话可以下载看看. 主要内容在网站上都有描述,原文是这样写的: Choo ...

  3. Javascript 取小数点后面N位

    用Javascript取float型小数点后两位,例22.127456取成22.13,如何做? 1. 最笨的办法....... [我就怎么干的.........] 1function get() 2{ ...

  4. 【Xamarin开发 Android 系列 13】 应用打包部署

    原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...

  5. VS2013 ASP.NET MVC 修改Web项目的IISExpress的端口固定

    [首先]关闭防火墙,或防火墙开放端口  在解决方案中,右键某项目,属性——Web——服务器——选择IISExpress URL输入:http://localhost:8000/   直接将8000更改 ...

  6. android:layout_weight详解

    参考; www.cnblogs.com/alpha-bowen/archive/2011/03/02/1969343.html 总结: 当需要对页面按比例分配时会用到这个选项: layout_weig ...

  7. bzoj1449

    竞赛图一般是把每场比赛当作一个点,然后和相应球队连边每场比赛一赢一输对两支球队都有影响看起来不好搞实际上我们可以先假设参加后面后面所有球队都输(每场比赛双输)然后对每场比赛我们选择一支球队赢计算增加的 ...

  8. sql server 2008中id如何设为自增

    通过 IDENTITY 来设置 参数有2个,一个是“初始值” 一个是“增量”.默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值. create table web_produ ...

  9. 基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建

    基于MyEclipse+9.0+++Tomcat+7.0的SSH+平台搭建 http://wenku.baidu.com/view/96fbfe0f581b6bd97f19ea1d.html 用MyE ...

  10. 字符串编码、Base64字符串 互转

    /// <summary>  /// 将字符串编码为Base64字符串  /// </summary>  /// <param name="str"& ...