《Oracle数据库应用》理论课
第2章SQL 查询和SQL 函数
⏹本章技能目标
⏹了解Oracle 数据类型
⏹了解数据定义语言和数据操纵语言
⏹了解事务控制语言和数据控制语言
⏹掌握SQL 操作符和SQL 函数
1.SQL简介
SQL 是Structured Query Language(结构化查询语言)的首字母缩写词。SQL 是数据库语言,Oracle 使用该语言存储和检索信息。表是主要的数据库对象,用于存储数据。
通过SQL可以实现与Oracle 服务器的通信。下图显示了用户执行命令时与Oracle服务器的通信。
与Oracle服务器通信
SQL 支持下列类别的命令:
数据定义语言(DDL)
2
数据操纵语言(DML )
事务控制语言(TCL )
数据控制语言(DCL )
数据定义语言:Create(创建),Alter (更改)和Drop(删除)命令
数据操纵语言:Insert (插入),Select (),Delete (),Update ()
事务控制语言:Commit (),SavePoint (),Rollback ()
数据控制语言:Grant (),Revoke ()
2. Oracle 数据类型
创建表时,必须为各个列指定数据类型。下面介绍Oracle 中常用的数据类型。
以下是 Oracle 数据类型的类别:
2.1 字符数据类型
CHAR 数据类型
当需要固定长度的字符串时,使用 CHAR 数据类型。CHAR 数据类型存储字母数字值。CHAR 数据类型的列长度可以是 1 到 2000 个字节。如果输入的值小于指定的长度,数据库则用空格填充至固定长度。如果用户输入的值大于指定的长度,数据库则返回错误报告。
V ARCHAR2数据类型
V ARCHAR2数据类型支持可变长度字符串。V ARCHAR2数据类型存储字母数字值。V ARCHAR2数据类型的大小在1至4000个字节范围内。在定义该数据类型时,应该指定其大小。与CHAR 数据类型相比,使用V ARCHAR2数据类型可以节省磁盘空间。  LONG 数据类型
LONG 数据类型存储可变长度字符数据。LONG 数据类型最多能存储 2GB 。LONG 数据类型用来存储V ARCHAR2数据类型不能存储的长文本信息。其长度受到计算机可用存储空间的限制。在表 中的某列上设置LONG 数据类型时,
LONG 数据类型用来存储V ARCHAR2数据类型不能存储的长文本信息。
在某个表中的列上设置LONG 数据类型时,需要遵循以下限制。
3
一个表中只有一列可以为LONG 数据类型。 ●
LONG 列不能定义为唯一约束或主键约束。 ●
LONG 列上不能建立索引 ● 存储过程不能接受LONG 数据类型的参数。
2.2 数值数据类型
NUMBER 数据类型可以存储整数、浮点数和实数。最高精度为 38 位
数值数据类型的声明语法:
NUMBER [( p[, s])]
P 表示精度,S 表示小数点的位数
下面描述了该数据类型的用法。
column_name  NUMBER      {p=38,s=0}
column_name  NUMBER(p)    {定点数}
column_name  NUMBER(p,s)  {浮点数}
2.3 日期时间数据类型
日期时间数据类型存储日期和时间值。
主要的日期时间类型有:
DATE 数据类型:
DATE - 存储日期和时间部分,精确到整个的秒。 Oracle 数据库使用自己的格式存储日期,使用7个字节固定长度,每个字节分别存储世纪,年,月,日,小时,分和秒。日期类型的值从公元前4712年1月1日到公元9999年12月31日。
Oracle 中的SYSDATE 函数功能是返回当前日期,时间。
TIMESTAMP 数据类型:
TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位。
Oracle 中的SYSTIMESTAMP 函数功能是返回当前日期,时间和时区。
2.4 RAW 和LONG RAW 数据类型
RAW 和LONG RAW 数据类型用于存储二进制数据。
RAW 数据类型
RAW 数据类型用于存储基于字节的数据,如二进制数据或字符串,该数据类型最多能存储2000 字节。因为该数据类型没有默认大小,使用该数据类型时应该指定大小。RAW 数据类型可以建立索引。
LONG RAW 数据类型
LONG RAW 数据类型用于存储可变长度的二进制数据。最多能存储 2 GB 。该数据类型不能索引。
4
2.5
LOB 数据类型
LOB 称为“大对象”数据类型,可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等。允许对数据进行高效、随机、分段的访问。LOB 可以是外部的,也可以是内部的,这取决于他们相对于数据库德位置。
修改LOB 类型数据可以使用SQL 数据操纵与言来完成,也可以通过PL/SQL 中提供的程序包DBMS_LOB 来完成。一个表中可以有多个列定义为LOB 数据类型。
Oracle 中的LOB 数据类型有CLOB ,BLOB ,BFILE 。
CLOB
CLOB 即 Character LOB (字符 LOB ),它能够存储大量字符数据。该数据类型可以存储单字节字符数据和多字节字符数据。CLOB 可以用来存储非结构化的XML 文档。  BLOB
BLOB 即 Binary LOB (二进制 LOB ),可以存储较大的二进制对象,如图形、视频剪辑和声音文件
BFILE
BFILE 即 Binary File (二进制文件),它用于将二进制数据存储在数据库外部的操作系统文件中。BFILE 列存储一个BFILE 定位器,它指向位于服务器文件系统上的二进制文件。支持的文件最大为4GB 。
Oracle 中的表可以有多个LOB 列,每个LOB 列可以是不同的LOB 类型。
2.6 Oracle 中的伪列
Oracle 中伪列就像一个表列,但是它并没有存储在表中。伪列可以从表中查询,但不能插入、更新和删除它们的值。
常用的伪列有ROWID 和ROWNUM 。
ROWID
数据库中的每一行都有一个行地址,ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行。
伪列有以下重要的用途:
● 能以最快的方式访问表中的一行。
● 能显示表的行是如何存储的。
● 可以作为表中行的唯一标示。
例1:使用SELECT 语句查看ROWID 值。
例1:
ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。
对于一个查询返回的每一行,ROWNUM 伪列返回一个数值代表行的次序。返回的第一行的ROWNUM 值为1,第二行的ROWNUM 值为2,依次类推,通过使用ROWNUM 伪列,
5
用户可以限制查询返回的行数。
例2:使用ROWNUM 从EMP 表中提取10条记录。
例2:
3. 数据定义语言
数据定义语言用于改变数据库结构,包括创建、修改和删除数据库对象。例如,该语言可以用来创建、修改和删除表。
表是一个以行和列的形式存放数据的存储单元。用来定义表的数据定义语言命令有:  CREATE TABLE (创建表)命令
ALTER TABLE (更改表)命令
TRUNCATE TABLE (截断表)命令
DROP TABLE (删除表)命令
3.1 CREATE TABLE 命令
创建表的语法如下:
varchar2最大长度
其中:
schema 表示对象的所有者即模式的名称。如果用户在自己的模式中创建表,则可以不指定所有者名称。
table 表示表的名称。
column 表示列的名称。
datatype 表示该列的数据类型及其长度。
创建表时,需要指定下列内容。
唯一的表名称。
表内唯一的列名称
列的数据类型及其宽度
例3显示了如何创建一个vendor_master 表,该表用来存储有关供应商的个人信息,如他们的姓名、地址和电话号码等。
例3:
如果上述命令执行成功,将显示消息“表已创建”。
上述示例中的表名应该严格遵循下列命名规则。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。