列和数据类型 db官方例子

定义列

Oracle 数据库中的一个表最多可以有 1,000 列。您在创建表时定义这些。您还可以将它们添加到现有表中。

create table this_table_has_three_columns (

  this_is_a_character_column varchar2(100),

  this_is_a_number_column    number,

  this_is_a_date_column      date

);

 查看列信息

您可以通过查询 user_tab_columns 找到有关用户表中列的详细信息。

select table_name, column_name, data_type, data_length, data_precision, data_scale

from   user_tab_columns;

字符数据类型 

varchar2:这存储可变长度的文本。您需要为这些字符串的大小指定一个上限。在 Oracle 数据库 11.2 及之前版本中,您可以指定的最大值为 4,000 字节。从 12.1 开始,您可以将此长度增加到 32,767

char:储固定长度的字符串。如果您插入的文本短于该列的最大长度,则数据库右侧会用空格填充它。char 的最大大小为 2,000 字节

clob:储大于 varchar2 上限的文本,请使用 Clob。这是一个字符大对象。它最多可以存储 (4 GB - 1) *(数据库块大小)的数据。

create table character_data (

  varchar_10_col   varchar2(10),

  varchar_4000_col varchar2(4000),

  char_10_col      char(10),

  clob_col         clob

);

select column_name, data_type, data_length

from   user_tab_columns

where  table_name = 'CHARACTER_DATA'

数值型数据类型 

Number:

最小值 最大值

number ( 3, 2 )  -9.99      9.99

number ( 3, -2 ) -99900   99900

number ( 5 )       -99999   99999

Float:这是数字的子类型。您可以使用它来存储浮点数。但我们建议您改用 binary_float 或 binary_double

Binary_float & Binary_double:Binary_float 是 32 位单精度浮点数。Binary_double 是 64 位双精度浮点数。这些数据类型的限制是:

create table numeric_data (

  number_3_sf_2_dp  number(3, 2),

  number_3_sf_2     number(3, -2),

  number_5_sf_0_dp  number(5, 0),

  integer_col       integer,

  float_col         float(10),

  real_col          real,

  binary_float_col  binary_float,

  binary_double_col binary_double

);

select column_name, data_type, data_length, data_precision, data_scale from user_tab_columns where table_name = 'NUMERIC_DATA';

 二进制数据类型

Raw:与字符数据一样,raw 用于较小的项目。您可以为每列指定数据的最大长度。它的最大限制为 2,000 字节,最高为 11.2,从 12.1 开始为 32,767。

Blob: 代表二进制大对象。与 clob 一样,您可以存储的最大大小为 (4 GB - 1) *(数据库块大小)。

创建一个包含二进制数据类型列的表

create table binary_data (

  raw_col  raw(1000),

  blob_col blob

);

 select column_name, data_type, data_length, data_precision, data_scale

from   user_tab_columns

where  table_name = 'BINARY_DATA';

向现有表添加列

alter table this_table_has_three_columns add (

  this_is_a_timestamp_column    timestamp,

  this_is_a_binary_large_object blob

);

select column_name, data_type, data_length, data_precision, data_scale

from   user_tab_columns

where  table_name = 'THIS_TABLE_HAS_THREE_COLUMNS';

从表中删除列 

alter table this_table_has_three_columns drop (

  this_is_a_timestamp_column,

  this_is_a_binary_large_object

);

select column_name, data_type, data_length, data_precision, data_scale

from   user_tab_columns

where  table_name = 'THIS_TABLE_HAS_THREE_COLUMNS';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值