{管理信息化ORACLE}数据库Oracle第2章

上传人:卓****库 文档编号:140794437 上传时间:2020-08-01 格式:PPTX 页数:24 大小:146.18KB
返回 下载 相关 举报
{管理信息化ORACLE}数据库Oracle第2章_第1页
第1页 / 共24页
{管理信息化ORACLE}数据库Oracle第2章_第2页
第2页 / 共24页
{管理信息化ORACLE}数据库Oracle第2章_第3页
第3页 / 共24页
{管理信息化ORACLE}数据库Oracle第2章_第4页
第4页 / 共24页
{管理信息化ORACLE}数据库Oracle第2章_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《{管理信息化ORACLE}数据库Oracle第2章》由会员分享,可在线阅读,更多相关《{管理信息化ORACLE}数据库Oracle第2章(24页珍藏版)》请在金锄头文库上搜索。

1、数据库应用技术第二章 基本概念,2.1 SQL概述,2.1.1 SQL的发展,1976年:IBM的E. F. Codd发表了一篇里程碑的论文“A System R: Relational Approach to Database Management ”R系统:数据库关系理论,介绍了关系数据库理论和查询语言SQL。 1976年11月:IBM Journal of R&D文章中,IBM使用Structured English QUery Language (SEQUEL,结构化英语查询语言)。后来,发现以被一个英国飞机公司作为商标,改为SQL。,2.1.1 SQL的发展,SQL-86(ANSI)

2、 SQL-89(ANSI,ISO) SQL-92(ANSI,ISO) SQL-99(ANSI,ISO) SQL-2003(ANSI,ISO) 事实上,国际标准与各个厂商之间的不兼容,造成了不可移植性。如字符串链接|与+;引号;数据类型;函数;特殊语义等。,2.1.2 SQL的特点,关系代数的实现 类自然语言 即时性 上下文无关性 非过程化、命令集合 逻辑独立性,2.1.2 SQL的特点,Embedded(内含)SQL 过程控制SQL Oracle:PL/SQL DB2:SQL/PL SQL Server:Transact-SQL,2.1.3 SQL分类,DQL Data Query Langu

3、age数据查询语言,如SELECT。 DML Data Manipulate Language数据操纵语言,如INSERT、DELETE、UPDATE。 DDL Data Definition Language数据定义语言,如CREATE、DROP、ALTER等。 DCL Data Control Language数据控制语言,如COMMIT、ROLLBACK等。,2.2 基本语法与数据类型,2.2.1 基本语法,SQL语句不区分大小写,可以写在多行,各个单词之间使用分隔符(空格,回车,制表符)分隔。语句的结尾使用分号(Oracle)。 SQL语句中的关键字属于保留字,不能用于其他地方。SQL

4、中数字常量的写法和通常程序语言一致,字符串使用单引号包含,字符串中的单引号使用两个连续的单引号转义表示,不区分字符和字符串。 在SQL语句中可以加入注释,多行注释使用/*/,单行用-(oracle)。,2.2.1 基本语法,为便于书写和阅读,通常采用如下的书写规范: 关键字大写,其他标识符小写; 每个子句单起一行; 使用制表符缩进。,2.2.2 数据类型,Oracle提供了22种不同的SQL数据类型 CHAR、NCHAR、VARCHAR2、NVARCHAR2、RAW、NUMBER、BINARY_FLOAT、BINARY_DOUBLE、LONG、LONG RAW、DATE、TIMESTAMP、T

5、IMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND、BFILE、BLOB、CLOB、NCLOB、ROWID、UROWID。,2.2.2 数据类型数值型,NUMBER(P, S)。其中,P为Precision,意为数值的最大位数(十进制),P=38;S为Scale,意为小数点后的最多位数。如NUMBER(5, 2),NUMBER(4),NUMBER(5,-2)。 如果给出S,表示一个定点数,当S为正数时,意为小数点后的最多位数;为负数时,四舍五入到

6、小数点前S位。 如果不给出p和s,表示一个浮点数。要注意的是scale的值没有应用,也就是说scale的值不能简单的理解为0,或者其他的数。 NUMBER有几种子类型,和ANSI/ISO的写法兼容 定点数:DEC,DECIMAL,NUMERIC 浮点数:FLOAT,DOUBLE 整数:INTEGER,INT,SMALLINT,2.2.2 数据类型字符型,在Oracle中,分为定长字符串和可变长字符串两种字符类型,不区分字符和字符串。 定长字符串:CHAR(S),S是字符串的固定长度,S=2000; 可变长字符串:VARCHAR2(S),S是字符串的最大长度,S=4000; 定长字符串在存储时使

7、用固定长度,如果数据长度小,则在后面填充空格;可变长字符串按照真实长度存储数据,不填充空格,节省空间,但存储和运算时间略长。,2.2.2 数据类型日期型,在Oracle中,DATE是7字节定宽日期/时间数据类型,表示日期和时间,表示的内容包括:世纪、年、月、 时、分、秒。最小单位为秒。时间范围可以从公元前4712年到公元9999年。 在日期型数据进行比较时,后面的日期更大。 在需要精确定时的情况下,可以使用TIMESTAMP类型,7字节或11字节的定宽日期/时间数据类型。 TIMESTAMP WITH TIME ZONE:13字节的定宽TIMESTAMP,提供了时区支持。 TIMESTAMP

8、WITH LOCAL TIME ZONE:7或11字节的定宽TIMESTAMP,对时区敏感,根据数据库时区对数据进行规范化。,2.2.2 数据类型日期型,INTERVAL用来表示一段时间长度(两个时间的差),如“半个小时”这样的概念。 INTERVAL YEAR TO MONTH:5字节定宽 INTERVAL DAY TO SECOND:11字节定宽 可以再日期运算中是一个DATE或TIMESTAMP类型增加或减少一段时间。,2.2.2 数据类型,NCHAR:包含UNICODE格式数据的定长字符串。 NVARCHAR2:包含UNICODE格式数据的变长字符串。 RAW:变长二进制数据类型,存储

9、的数据不会发生字符集转换。 BINARY_FLOAT:32位单精度浮点数。Oracle 10g Release 1后新增。 BINARY_DOUBLE:64位双精度浮点数。Oracle 10g Release 1后新增。 LONG:能存储最多2GB的字符数据。只为保证向后兼容,建议采用CLOB。,2.2.2 数据类型,LONG RAW:能存储最多2GB的二进制信息。只为保证向后兼容,建议采用BLOB。 BFILE:可以在数据库列中存储一个Oracle目录对象(操作系统目录的一个指针)和一个文件名,并读取这个文件。只读方式访问数据库服务器上可用的操作系统文件。 BLOB:Oracle 10g后允

10、许存储(4GB)*(数据库块大小)字节的数据。包含不需要进行字符集转换的“二进制”数据,如电子表格、字处理文档、图像文件等。 CLOB:包含要进行字符集转换的信息,适合存储纯文本信息。,NCLOB:存储用数据库国家字符集编码的信息,而且像CLOB一样,需要进行字符集转换。 ROWID:数据库中一行的10字节地址,在磁盘上定位这一行,标识ROWID指向的对象。 UROWID:通用ROWID,用于表,是行主键值的一种表示。根据指向对象的不同,大小会有所变化。 INT、INTEGER、SMALLINT、FLOAT、REAL等是在前面类型的基础上实现的,同义词。,2.2.3 常用函数日期型,DATE类

11、型数据的表示方式:在缺省情况下,使用美国式日期格式表示法,即DDMONYY,并且没有时间信息,如04Apr05。其他的格式表示法需要通过设定会话参数或者使用日期转换函数完成。 如 TO_CHAR(SYSDATE, YYYY/MM/DD HI24:MI:SS) 来显示所有的年月日、时分秒信息。 当前时间若为 2007年5月24日下午3点12分45秒,上面的函数返回字符串 2007/05/24 15:12:45,2.2.3 常用函数数值型,对于数值型,通常的+ - * /等算术运算符都可以使用 数值型函数是对数值进行操作的函数,包括我们常见的各种数学函数,如sin, cos等。下面两个函数是比较特

12、别和有用的。 符号函数SIGN(x):-1,x0。 四舍五入函数:,2.2.3 常用函数字符型,字符型的连接运算符是 | ,可以将两个字符串连接在一起。 ASCII转换:ASCII,CHR 大小写:UPPER,LOWER,INITCAP 查找/替换:INSTR,REPLACE 长度:LENGTH 填充/移除:LPAD,RPAD,TRIM 取子串:SUBSTR,2.2.3 常用函数日期型,两个DATE类型的数据可以作减法,结果是一个浮点小数,表示时间相差的天数。如今天12点减去昨天12点等于1;如今天6点减去今天12点等于-0.25;一个时间也可以加减一个数,表示在此时间点向后或向前推若干天。

13、SYSDATE:返回系统当前时间。此函数不用写括号。 其他日期型函数大多用来进行不规则的日期运算,如: MONTHS_BETWEEN:计算两个日期之间相差的月份 ADD_MONTHS:日期加上月份。,2.2.3 常用函数日期型,NEXT_DAY:下一个特定的日期,如星期几。 LAST_DAY:返回月份的最后一天。 ROUND和TRUNC函数也能对日期类型进行计算,按照规定的格式符四舍五入或者截断到某个日期单位(如年、月、日)。,2.2.3 常用函数类型转换,隐式类型转换:Oracle是弱类型语言,各个类型之间可以直接相互运算,系统自动转换为合适的类型,如: 123 + 5 =128 123 | 5 = 1235 必要的时候,也可以使用显式的类型转换函数,类型转换函数有三个,即: TO_DATE, TO_CHAR, TO_NUMBER 在转换时,可以使用必要的格式符说明格式细节,否则使用缺省格式。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号