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数据类型,并展示了如何在创建表时使用它们。