Oracle(11)Oracle有哪些常见的数据类型?
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数据类型,并展示了如何在创建表时使用它们。
