PL/SQL 知识量:16 - 57 - 244
在Oracle数据库中数据表是存放在表空间中的,每一个表空间都可以存放多个数据表。如果没有指定创建表的表空间,默认是存放在SYSTEM表空间中的。
数据表主要包括以下几个组成部分:
字段名(列名):可长达128个字符,包含中文、英文字母、下画线、#号、货币符号(¥)及AT符号(@),且同一表中不许有重名列。
字段数据类型
字段的长度、精度和小数位数:字段的长度是指字段所能容纳的最大数据量,但对不同的数据类型来说,长度对字段的意义可能有些不同。1、对字符串与Unicode数据类型而言,长度代表字段所能容纳字符的数目,因此它会限制用户所能输入的文本长度。2、对数值类的数据类型而言,长度则代表字段使用多少个字节来存放数字。3、对binary、varbinary、image数据类型而言,长度代表字段所能容纳的字节数。
精度是指数中数字的位数,包括小数点左侧的整数部分和右侧的小数部分;小数位数则是指数字小数点右侧的位数。例如,数字12345.678,其精度为8,小数位数为3。所以,只有数值类的数据类型,才有必要指定精度和小数位数。
与SQL标准语法相同,在PL/SQL中,创建一个新表可以使用CREATE TABLE命令:
CREATE TABLE table_name ( column_name datatype, column_name datatype; … )
在CREATE TABLE命令后,指明创建表的名称,接着分别定义表中各列的名称、数据类型等。表中各列的定义在括号中完成,且各列之间以逗号隔开。
数据类型可以简单地分成:数字型、字符型、日期型和其他类型4种。
1、数字型
数字型就是用来存放数的,包括整数和小数,主要用到的数据类型是number类型和float类型。
数据类型 | 取值范围 | 说明 |
---|---|---|
number(p,s) | p最大精度是38位(十进制) | p代表精度,s代表小数点位数;可以用来存储定长的整数和小数。 |
float | 用来存储126位数据(二进制) | 精度范围为二进制的1~126,在转换为十进制时需要乘以0.30103。 |
定义数据类型时如果使用decimal类型,Oracle会自动把该类型的数据转换成number类型的数据。
2、字符型
字符型是用来存放字符和字符串的,在Oracle数据库中主要有varchar2、nvarchar2、char、nchar、long等类型。
数据类型 | 取值范围 | 说明 |
---|---|---|
varchar2 | 0.4000 | 存储可变长度的字符串 |
nvarchar2 | 0.1000 | 存储Unicode字符集的变长字符型数据 |
char | 0.2000 | 存储定长的字符型数据 |
nchar | 0.1000 | 存储Unicode字符集的定长字符型数据 |
long | 0.2G | 存储可变长的字符串 |
3、日期型
日期型是用来存放表示日期的数据的,以日期格式存放。在实际编程时,需要在数据库中存放日期型的数据时,也经常使用varchar2类型来表示。在Oracle数据库中,日期型主要有date和timestamp类型,其中date类型是比较常用的类型。
数据类型 | 说明 |
---|---|
date | 存储日期和时间,范围为公元前4717年1月1日到公元9999年12月31日 |
timestamp | 存储日期和时间。与date的区别是显示日期和时间更加精确。日期和时间能够显示是上午还是下午。 |
4、其他数据类型
除了上面讲的3种常用的数据类型外,还有一些特殊的类型,比如:存放大数据的blob类型和clob类型,这两种数据类型经常用于存放XML类型的数据或图片信息。
数据类型 | 取值范围 | 说明 |
---|---|---|
blob | 最多可以存放4GB数据 | 存储二进制数据 |
clob | 最多可以存放4GB数据 | 存储字符串数据 |
bfile | 大小与操作系统有关 | 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中 |
采用最基本的创建语法创建people表:
CREATE TABLE "SYSTEM"."people" ( "id" NUMBER(2,0), "name" VARCHAR2(10), "age" NUMBER(2,0), "sex" CHAR(5) ) ;
在创建表时,必须要保证该表名在表空间中不存在,否则数据库会提示创建失败。如果需要创建已经存在的表,必须先将原来的表删除,再重新创建。
使用CREATE TABLE命令创建表时,可以为每列指定默认值。即当向表中插入数据,且不指定该列的值时,系统会自动地采用设定的默认值,该默认值是通过DEFAULT关键字来实现的。其语法如下:
<column name> <data type> DEFAULT <default value>
简要说明:
column name:列的名称。
data type:列的数据类型。
DEFAULT:关键字后面指定该列的默认值,无论<default value>使用什么类型的值,都必须符合在列定义中指定的数据要求。如果使用char数据类型,那么指定的默认值也必须是该数据类型的。
下面示例中,age默认为0:
CREATE TABLE "SYSTEM"."people" ( "id" NUMBER(2,0), "name" VARCHAR2(10), "age" NUMBER(2,0) DEFAULT 0, "sex" CHAR(5) ) ;
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6