ORACLE学习笔记整理

发布 2021-05-11 23:56:28 阅读 4396

注意,以下涉及到的例题数据均来自于作业管理系统中“陈勇”名下的“数据库原理与应用”文件夹中的“实验数据请**使用。

通常用于试运行单条sql语句。

1)启动方式。

在pl/sql developer界面下单击新建中的第一个图标,在菜单中选“sql窗口”。界面如下图所示:

在其中可以输入sql语句,单击工具栏上的运行按钮“”,可得到运行结果。

如下图:同sql窗口,可以执行oracle的各种命令、sql语句、程序等。

1)执行sql语句结果如下图:

执行sql语句时,要求语句以“;”结束,如果语句末尾没有“;”表示语句还没有录入结束,后面以续行号“2,3,4”的形式等待录入后续内容。如果不想录入“;”也可以以“/”表示语句录入结束。如下图。

2)执行oracle命令如下图:

命令目的是显示学生信息表的结构,对于oracle命令关键字,只要输入前面四个以上的字符即可。

用于录入oracle程序。如下图。

单击工具栏上的运行按钮,可以运行程序,程序结果在“dbms”输出页中。如下图所示:

从这个程序我们可以看到oracle程序的基本结构如下:

declare

定义部分-变量、常量、游标等*/

begin/*执行部分-pl/sql,sql语句*/

exception

/*异常处理部分-处理运行错误*/

end; /块结束标志*/

也可以看出oracle中的字符串连接运行符非常得单“||

在pl/sql程序中定义变量、常量和参数时,必须要为它们指定数据类型,在编写pl/sql时,可以使用标量类型、复合类型、参照类型和lob(large object大对象类型)类型等。如下表所示:

合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。

1. 数字。

它有三种基本类型--number、pls_integer和binary_intener。number可以描述整数或实数,而pls_integer和binary_intener只能描述整数。

1) number,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是number(p,s),p是精度,最大38位,s是刻度范围,可在-84127间取值。例如:

number(5,2)可以用来存储表示-999.99999.99间的数值。

p、s可以在定义是省略,例如:number(5)、number等;

2) binary_intener用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以2的补码二进制形式表述。循环计数器经常使用这种类型。

3) pls_integer和binary_intener唯一区别是在计算当中发生溢出时,binary_intener型的变量会被自动指派给一个number型而不会出错,pls_integer型的变量将会发生错误。

4) number补充。

在oracle中number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在 1.0 * 10-130 ——9.99 * 10125 的数字,当oracle中的数学表达式的值超过这个范围时,oracle就会报错。

number的数据声明如下:

1) number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127

2) number(p) 声明一个整数相当于number(p, 0)

3) number 声明一个浮点数其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。

定点数的精度(p)和刻度(s)遵循以下规则:

当s>0时(s表示小数点右边的数字的个数):

当一个数的整数部分的长度 > p-s 时,oracle就会报错

当一个数的小数部分的长度 > s 时,oracle就会舍入。

当s<0时(s表示小数点左边的数字的个数):

oracle就对小数点左边的s个数字进行舍入。

当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则oracle报错,小数点后s位向右的数字被舍入例如:

2.字符。包括char、varchar2(varchar)、long、nchar和nvarchar2几种类型。

1) char,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。它的声明方式如下char(l),l为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在oracle8中最大为2000。

2) varchar2(varchar),描述变长字符串。它的声明方式如下varchar2(l),l为字符串长度,没有缺省值,作为变量最大32767个字节,作为数据存储在oracle8中最大为4000。在多字节语言环境中,实际存储的字符个数可能小于l值,例如:

当语言环境为中文(simplified chinese_时,一个varchar2(200)的数据列可以保存200个英文字符或者100个汉字字符。

3) long,在数据库存储中可以用来保存高达2g的数据,作为变量,可以表示一个最大长度为节的可变字符串。

4) nchar、nvarchar2,国家字符集,与环境变量nls指定的语言集密切相关,使用方法和char、varchar2相同。

varchar2是oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar。因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变,推荐用varchar2。)

char如果存放字母数字占1个字节,存放gbk编码的汉字存放2个字节,存放utf-8编码的汉字占用3个字节;nchar根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)。同理varchar2与nvarchar2的区别。)

3.行。包括raw和long raw两种类型。用来存储二进制数据,不会在字符集间转换。

1) raw,类似于char,声明方式raw(l),l为长度,以字节为单位,作为数据库列最大2000,作为变量最大节。

2) long raw,类似于long,作为数据库列最大存储2g字节的数据,作为变量最大节。

raw这种格式可以用来保存较小的图形文件或带格式的文本文件,如miceosoft word文档。raw是一种较老的数据类型,将来会逐渐被blob、clob、nclob等大的对象数据类型所取代。long raw 无可变长二进制数据,最大长度是2gb。

oracle用这种格式来保存较大的图形文件或带格式的文本文件,如miceosoft word文档,以及音频、**等非文本文件。在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被blob、clob、nclob等大的对象数据类型所取代)

4.其他。1) 日期,只有一种类型--date,用来存储时间信息,站用7个字节(从世纪到秒),绝对没有“千年虫”问题。

2) 行标识,只有一种类型--rowid,用来存储“行标识符”,可以利用rowidtochar函数来将行标识转换成为字符。

3) 布尔,只有一种类型--boolean,仅仅可以表示true、false或者null。

4) 可信,只有一种类型--mlslabel,可以在trusted oracle中用来保存可变长度的二进制标签。在标准oracle中,只能存储null值。

5.复合(composite)与引用(reference)

后面专门介绍。

6.loblob变量主要是用来存储大量数据的数据库字段,最大可以存储4g字节的内容。主要有:

1)clob:和long类型相似,存储单字节字符数据。(别用来存中文)

2)nclob:用来存储定宽多字节字符数据。

3)blob:和long raw相似,用来存储无结构的二进制数据。

4)bfile:它用来允许oracle对数据库外存储的大型二进制文本进行只读形式的访问。

Oracle笔记整理

第二章。用户管理。1 显示当前用户。show user 2 连接system用户。conn system zuxiastudent 3 创建用户名为zhangsan,密码为pwd123 create user zhangsan identified by pwd123 4 管理员身份删除没有表的用户...

ORACLE笔记整理

5.1 oracle体系结构。5.1.1 oracle服务器。5.1.2 oracle 例程。5.1.3 oracle 数据库。5.2 sql语言。5.2.1 sql语言分类。数据检索语言 select 数据操纵语言 dml insert update delete merge 数据定于语言 ddl...

ORACLE学习笔记

rac real application clusters 真实应用集群。ohs oracle http server sga system global area 系统全局区,是系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。实例 存取和控制数据数...