某某茶叶有限公司欢迎您!
金沙棋牌在线 > 服务器&运维 > Oracle to

Oracle to

时间:2020-01-16 19:33

1》以12小时制显示

当创建一个表时,需要为表的各个列指定数据类型,Oracle的数据类型主要有5种,字符类型、数值类型、日期时间类型、LOB类型和伪列。

(以下内容使用的系统和版本为Windows7系统和Oracle11g,Windows其他版本和Oracle其他版本基本差不多。)

SQL>select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS AM')from dual;

一、字符类型

  1、CHAR类型

    定长字符串,长度为1~2000字节,如果定义时未指定大小,默认为1,使用时,若存储的值大小小于指定的长度,则用空格填充剩余长度,

    若大于指定长度,则报错。示例:CHAR(20),若此时存储一个长度为10的字符串,则还是占用20个字节的空间。(此外,还可以用

    CHAR(20CHAR)的方式进行定义,这种方式的意思是存储多少个字符,而不是字节)。

  2、VARCHAR2类型

    可变字符串,长度为1~4000字节,定义时需指定大小,使用时,若存储的值大小小于指定的长度,则长度缩小为值的大小,若大于指定长度,

    则报错。(Oracle也有VARCHAR类型,但该类型有可能会被在未来的版本中被重新定义,所以不推荐使用)示例:VARCHAR2(20),

    若此时存储一个长度为10的字符串,则占用10个字节的空间。(也可以使用VARCHAR2(20CHAR)的方式定义,意思同CHAR类型)。

  3、NCHAR类型

    存储Unicode字符的定长字符串,既存储双字节字符类型数据,每个字符占用2个字节,其他特性与CHAR类型相似。示例:NCHAR(20),

    若此时存储一个长度为10的字符串,则占用40个字节的空间。

  4、NVARCHAR2类型

    存储Unicode字符的可变字符串,其他特性与VARCHAR2类型相似。示例:NVARCHAR2(20),若此时存储一个长度为10的字符串,

    则占用20个字节的空间。

一、Oracle简介

  简介:Oracle是一个关系型数据库管理系统,是Oracle公司的核心产品。

  主要特点:

    1、支持多用户、大事务量的事务处理

    2、在保持数据安全性和完整性方面性能优越

    3、支持分布式数据处理

    4、具有可移植性

TO_CHAR(SYSDATE,'YYYY-MM-DDHH1

2007-06-29 02:50:06 下午

2》以24小时制显示

SQL>  select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS AM')from dual;

二、数值类型

  1、NUMBER类型

    NUMBER类型可以存储正数、负数、0、定点数和浮点数。格式为NUMBER(P,S),其中P为精度,表示数值的有效位数(从左边第一个不为0

    的数字算起,不包括小数点和负号为有效位数),在1~38之间。S为范围,表示小数点右边数字的位数,在-84~127之间。使用规则:

    将值精确到小数点右边S位并四舍五入,判断有效位数是否<=P。以下结合几个示例进行说明:

    (1)、NUMBER(3):当要存储的值是100时,精确到小数点右边0位并四舍五入后值为100,有效位数为3,可以存储。当值是3.563时,

        精确到小数点右边0位并四舍五入后值为4,有效位数为1,可以存储。当值是2350.5时,精确到小数点右边0位并四舍五入后值为2351,

        有效位数为4,不可以存储。

    (2)、NUMBER(3,2):当要存储的值是100时,精确到小数点右边2位并四舍五入后值为100.00,有效位数为5,不可以存储。当值是3.563时,

        精确到小数点右边2位并四舍五入后值为3.56,有效位数为3,可以存储。当值是2350.5时,精确到小数点右边2位并四舍五入后

        值为2350.50,有效位数为6,不可以存储。

    (3)、NUMBER(3,-2):当S为负数时,较为特殊,会将值左边|S|(|S|为S的绝对值)位的值进行四舍五入后取0且不计入有效位数,

        如:当要存储的值是100时,实际值为100,有效位数为1,可以存储。当值是3.5时,实际值为0,有效位数为1,可以存储。

        当值是2350.5时,实际值为2400,有效位数为2,可以存储。

  2、INTEGER类型

    是NUMBER的子类型,等同于NUMBER(38,0),用于储存整数。

  3、FLOAT类型

    是NUMBER的子类型,格式为FLOAT(n),n在1~126之间,这个值是二进制的精度,最大值126转换为十进制大概为38。

二、Oracle基本概念

  1、数据库

    Oracle并不是数据库,而是数据库管理系统,数据库字面上理解,就是储存数据的仓库,而Oracle就是管理这个仓库的人。

    数据库在物理上表现为数据文件、日志文件和控制文件等,在逻辑上表现为表空间。

  2、全局数据库名

    全局数据库名是用于区分数据库的标识,由数据库名和域名组成,使数据库在网络环境中的唯一。

  3、数据文件、控制文件、日志文件

    数据文件:数据文件的扩展名为.dbf,用于储存各种数据库资源,如表、索引、存储过程、视图等

    控制文件:控制文件的扩展名为.ctl,用于储存数据文件和日志文件的名称和位置,是数据库启动和运行所必须的文件。

                  由于控制文件的重要性,Oracle默认有三个控制文件,各控制文件的内容相同,避免因一个文件损坏而无法启动。

    日志文件:日志文件的扩展名为.log,用于储存数据的更改信息,提升数据的安全性。

           Oracle中日志文件是成组使用的,每个日志文件组可以有一个或多个日志文件。

  4、数据库实例

    每个启动的数据库在内存中都对应一个数据库实例,数据库实例就是通过内存共享运行状态的一组服务器后台进程。

  5、表空间

    Oracle数据库都是由表空间构成的,用户的所有资源都在表空间中。一个表空间可以有多个数据文件,但一个数据文件只能对应一个表空间。

  6、模式和模式对象

    模式是模式对象的集合,模式对象就是数据库中的资源(表、索引、存储过程、视图等),每一个数据库用户都对应一个模式,

    模式名称和用户名称相同。

TO_CHAR(SYSDATE,'YYYY-MM-DDHH2

2007-06-29 15:00:58 下午

3》得到当前时间的前一分钟

select to_char(Sysdate-1/21/60,'HH24:MI:SS')from dual;

三、日期时间类型

  1、DATE类型

    存储日期和时间的类型,使用7个字节的固定长度,存储世纪、年、月、日、时、分、秒,最小时间为公元前4712年1月1日,最大时间为

    公元9999年12月31日。可以使用SYSDATE函数获取当前时间的DATE类型。

  2、TIMESTAMP类型

    存储日期和时间的类型,使用7到12字节长度,秒数精确到小数秒(不指定精度的情况下为小数点后6位,指定精度可以达到9位),

    且包含时区信息。可以使用SYSTIMESTAMP函数获取当前时间的TIMESTAMP类型。

三、配置数据库

  安装完数据库后,Oracle安装工具会自动帮我们将数据库配置在当前网络环境中,但若网络环境改变则需手动进行配置。

  Oracle为我们提供了多个方便的配置数据库的工具,这里仅介绍Net Configuration Assistant。

  Net Configuration Assistant可在开始菜单→所有程序→Oracle名→配置和移植工具中打开

  1、在服务器配置监听器(LISTENER)

    监听器程序用于监听从客户端发出的请求,远程连接若无监听器会报错。

    打开Net Configuration Assistant,选择监听程序配置,按照提示进行下一步即可,需注意:

      (1)、在创建数据库时默认会创建一个监听器,所以一般选择重新配置。

      (2)、监听器名不能使用下划线以外的特殊字符。

      (3)、协议一般选择TCP协议。

      (4)、默认端口号为1521,可以自定义。

  2、在客户端配置本地网络服务名(TNSNAME)

    客户端需要配置好本地网络服务名才可发出对数据库的请求。

    打开Net Configuration Assistant,选择本地网络服务名配置,按照提示进行下一步即可,需注意:

    (1)、服务名对应为服务器内数据库实例名,不区分大小写。

    (2)、协议一般选择TCP协议。

    (3)、主机名可写服务器IP地址,服务器名,localhost和127.0.0.1

    (4)、端口号对应监听器的端口号

  (在连接数据库时,可能会遇到一个错误“ORA12514:监听程序当前无法识别连接描述符中请求的服务”,这实际是监听器配置问题,

  详细请看)

TO_CHAR(SYSDATE-1/21/60,'HH24:

15:00:54

4》得到当前时间的后一分钟

select to_char(Sysdate+1/21/60,'HH24:MI:SS')from dual;

四、LOB类型

  1、CLOB类型

    存储大量字符数据,可以存储单字节字符数据和多字节字符数据,主要用于存储非结构化XML文档。

  2、BLOB类型

    存储二进制对象,如图片、视频和音乐。

  3、BFILE类型

    存储一个定位器,该定位器指向一个服务器文件系统的二进制文件,最大为4G。

  4、NCLOB类型

    与CLON类似,不过NCLON可同时支持固定宽度字符集和可变宽度字符集,最大为4G。

  操作LOB类型数据可以使用PL/SQL提供的DBMS_LOB程序包来完成,使用LOB类型要合理分配好表空间,否则会对性能造成影响。

 四、启动数据库

  Windows系统下,Oracle服务是以后台服务的方式来管理的,可以在Windows的服务管理界面来开启和关闭Oracle服务

  (在日常开发使用中,可以将几个不重要的服务设为手动启动,避免浪费系统资源)。

  1、OracleServiceSID

    Oracle数据库服务,SID是安装数据库时输入的名称,这个服务是Oracle的核心服务,要使用Oracle数据库必须启动该服务。

  2、OracleOraDb11g_home1TNSListener

    监听器服务,根据版本或配置不同可能会有不同的名字。在需要远程连接数据库时需要启动,需注意,只有在服务器使用

    Oracle自带的SQL*Plus连接且不使用@时不会被视为远程连接。

  3、OracleOraDb11g_home1ClrAgent

    Oracle数据库.NET扩展服务的一部分,可以在oracle 中将.NET程序集包装成存储过程使用,一般不开启。

  4、OracleMTSRecoveryService

    服务端控制服务,这个服务可以让数据库充当一个微软事务服务器对象和分布式环境下的事务的资源管理器,一般不开启。

  5、OracleJobSchedulerSID

    Oracle任务调度(定时器)服务,安排了工作日程才启用,启用后会占用大量系统资源,一般不开启。

  6、OracleDBConsoleSID

    数据库控制台服务,如果要进入基于Web形式的企业管理控制平台,需启动,一般不开启。

  7、Oracle SID VSS Writer Service

    Oracle卷映射拷贝写入服务,它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的性能,一般不开启。

  以上就是基本的Oracle服务,在使用时可能还会发现一个OracleRemExecService服务,这是一个暂时性的服务,当它被OUI使用时

  才会出现,OUI完成工作后,就会消失,可以忽略该服务。

TO_CHAR(SYSDATE+1/21/60,'HH24:

15:03:53

5》得到当前时间的前一小时

select to_char(Sysdate-1/24,'HH24:MI:SS')from dual;

五、伪列

  伪列的定义:类似于表中的列,但并未实际存储在表中,无法对伪列进行增删改。

  1、ROWID

    表中的每一行都有一个地址,可以唯一的标识数据库中的一行,ROWID可以返回这个地址,可以用来作为查询条件查询唯一行,提高查询效率,

    还可以查看行在表中是如何存储的。

  2、ROWNUM

    ROWNUM伪列可以为查询结果从1开始进行排序,可以用来限制返回行数,Oracle的分页就是使用ROWNUM实现的。需注意,使用ROWNUM

    必须包含1,否则无法查出数据,也就是说,ROWNUM=1可以查询出结果集中第一行的数据,但ROWNUM=2是无法查询任何数据的,

    还有ROWNUM>2也是无法查询出任何数据的,但使用ROWNUM<2就可以查询出两条数据,这是因为ROWNUM是一个从1开始的伪列,

    Oracle认为ROWNUM>n(n为大于1的自然数)的条件不成立,所有无法查出数据。

  (关于伪列的更多资料可以查看官方文档:)

 五、连接数据库

  连接数据库可以有三种方式,使用Oracle自带的SQL*Plus和SQLDeveloper,以及使用第三方工具PL/SQLDeveloper。

  本篇仅写出SQL*Plus连接的部分方式和PL/SQLDeveloper连接,具体连接数据库的方式请看。

  1、使用SQL*Plus连接数据库

    命令格式:sqlplus [username]/[password]@sid

    使用示例:sqlplus scott/123@ORCL

    @sid可以不写,不写默认连接本地的数据库,且不写@sid可以不开启监听服务。

  2、使用PL/SQLDeveloper连接数据库

    PL/SQLDeveloper是第三方的图形化连接工具,较之SQLDeveloper具有更多的功能(不过需要收费。。。)。

    在安装后,直接打开即可登录,填写登录信息即可(数据库选项实为本地服务名,角色在登陆用户是SYS时需要选择为sysdba或sysoper)。

  这两种连接方式都需要配置好本地服务名和开启监听服务才可正常连接(不使用@除外)。

TO_CHAR(SYSDATE-1/24,'HH24:MI:

14:03:13

6》得到当前时间的后一小时

select to_char(Sysdate+1/24,'HH24:MI:SS')from dual;