Oracle数据库提供了多种数据类型,用于存储不同类型的数据。以下是一些常见的Oracle数据类型,并结合代码进行详细说明:
-
VARCHAR2:
存储可变长度的字符串,最大长度为4000字节。CREATE TABLE employees ( employee_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50) );
-
CHAR:
存储固定长度的字符串,不足的部分用空格填充,最大长度为2000字节。CREATE TABLE products ( product_id NUMBER, product_code CHAR(10), product_name VARCHAR2(100) );
-
NUMBER:
存储数字类型,支持整数和浮点数,可以指定精度和小数位。CREATE TABLE accounts ( account_id NUMBER(10), balance NUMBER(15, 2) );
-
DATE:
存储日期和时间,精度到秒。CREATE TABLE orders ( order_id NUMBER, order_date DATE, delivery_date DATE );
-
TIMESTAMP:
存储日期和时间,精度到小数秒部分。CREATE TABLE events ( event_id NUMBER, event_timestamp TIMESTAMP );
-
CLOB:
存储大文本数据(字符大对象),最大可达4GB。CREATE TABLE documents ( document_id NUMBER, content CLOB );
-
BLOB:
存储二进制大对象数据,最大可达4GB。CREATE TABLE multimedia ( media_id NUMBER, media_content BLOB );
-
RAW:
存储二进制数据,最大长度为2000字节。CREATE TABLE binary_data ( data_id NUMBER, data_content RAW(2000) );
-
LONG:
存储可变长度的字符串,最大长度为2GB,不过该数据类型已经逐步被CLOB取代。CREATE TABLE long_text ( text_id NUMBER, text_content LONG );
-
BFILE:
存储对外部文件的引用,文件存储在数据库外部。CREATE TABLE external_files ( file_id NUMBER, file_path BFILE );
-
INTERVAL YEAR TO MONTH:
存储表示时间间隔的类型,精度为年到月。CREATE TABLE project_durations ( project_id NUMBER, duration INTERVAL YEAR TO MONTH );
-
INTERVAL DAY TO SECOND:
存储表示时间间隔的类型,精度为天到秒。CREATE TABLE task_durations ( task_id NUMBER, duration INTERVAL DAY TO SECOND );
代码示例
以下是一个包含多种数据类型的表的创建示例:
CREATE TABLE example_table (
id NUMBER PRIMARY KEY,
name VARCHAR2(100) NOT NULL,
description CLOB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP,
document BLOB,
status CHAR(1),
salary NUMBER(10, 2),
birthday DATE,
start_time INTERVAL DAY TO SECOND,
project_duration INTERVAL YEAR TO MONTH,
external_document BFILE
);
这个表包含了多种常见的Oracle数据类型,并展示了如何在创建表时使用它们。