Oracle 中的参数类型及运用场景
1. 数值类型
- NUMBER(p, s)
- 详解:
p
表示精度(即数字的总位数),s
表示小数位数。例如,NUMBER(5, 2)
可以存储最大为 999.99 的数字。 - 运用场景:适用于需要精确计算的财务数据,如货币金额、税率等。
- 示例:
- 详解:
sql">CREATE TABLE financial_data (
amount NUMBER(10, 2)
);
INSERT INTO financial_data (amount) VALUES (123.45);
- BINARY_FLOAT 和 BINARY_DOUBLE
- 详解:分别是单精度和双精度浮点数类型,用于存储近似数值。
- 运用场景:适用于科学计算、工程计算等对精度要求不是极高,但需要处理大量数据的场景。
- 示例:
sql">CREATE TABLE scientific_data (
measurement BINARY_FLOAT
);
INSERT INTO scientific_data (measurement) VALUES (3.14159);
2. 字符类型
- VARCHAR2(size)
- 详解:可变长度的字符类型,
size
表示最大长度。存储的数据长度可以小于size
。 - 运用场景:适用于存储长度不固定的字符串,如姓名、地址等。
- 示例:
- 详解:可变长度的字符类型,
sql">CREATE TABLE employees (
name VARCHAR2(50)
);
INSERT INTO employees (name) VALUES ('John Doe');
- CHAR(size)
- 详解:固定长度的字符类型,
size
表示长度。如果存储的数据长度小于size
,会用空格填充。 - 运用场景:适用于存储长度固定的字符串,如身份证号码、邮政编码等。
- 示例:
- 详解:固定长度的字符类型,
sql">CREATE TABLE customers (
postal_code CHAR(6)
);
INSERT INTO customers (postal_code) VALUES ('123456');
3. 日期和时间类型
- DATE
- 详解:存储日期和时间信息,精确到秒。
- 运用场景:适用于存储各种日期和时间相关的数据,如订单日期、生日等。
- 示例:
sql">CREATE TABLE orders (
order_date DATE
);
INSERT INTO orders (order_date) VALUES (SYSDATE);
- TIMESTAMP
- 详解:比
DATE
类型更精确,可以存储小数秒。 - 运用场景:适用于需要更高时间精度的场景,如记录事件发生的精确时间。
- 示例:
- 详解:比
sql">CREATE TABLE events (
event_time TIMESTAMP
);
INSERT INTO events (event_time) VALUES (SYSTIMESTAMP);
MySQL 中的参数类型及运用场景
1. 数值类型
- INT
- 详解:用于存储整数,根据存储范围不同还有
TINYINT
、SMALLINT
、MEDIUMINT
、BIGINT
等变体。 - 运用场景:适用于存储数量、年龄等整数数据。
- 示例:
- 详解:用于存储整数,根据存储范围不同还有
sql">CREATE TABLE products (
quantity INT
);
INSERT INTO products (quantity) VALUES (10);
- DECIMAL(p, s)
- 详解:和 Oracle 的
NUMBER
类似,p
表示精度,s
表示小数位数,用于存储精确的小数。 - 运用场景:适用于财务数据,如商品价格、账户余额等。
- 示例:
- 详解:和 Oracle 的
sql">CREATE TABLE prices (
product_price DECIMAL(8, 2)
);
INSERT INTO prices (product_price) VALUES (9.99);
2. 字符类型
- VARCHAR(length)
- 详解:可变长度的字符类型,
length
表示最大长度。 - 运用场景:适用于存储长度不固定的字符串,如文章标题、评论内容等。
- 示例:
- 详解:可变长度的字符类型,
sql">CREATE TABLE articles (
title VARCHAR(200)
);
INSERT INTO articles (title) VALUES ('My First Article');
- CHAR(length)
- 详解:固定长度的字符类型,
length
表示长度。 - 运用场景:适用于存储长度固定的字符串,如性别('M' 或 'F')、状态码等。
- 示例:
- 详解:固定长度的字符类型,
sql">CREATE TABLE users (
gender CHAR(1)
);
INSERT INTO users (gender) VALUES ('M');
3. 日期和时间类型
- DATE
- 详解:存储日期,格式为
YYYY-MM-DD
。 - 运用场景:适用于只需要存储日期信息的场景,如出生日期、注册日期等。
- 示例:
- 详解:存储日期,格式为
sql">CREATE TABLE users (
birth_date DATE
);
INSERT INTO users (birth_date) VALUES ('1990-01-01');
- DATETIME
- 详解:存储日期和时间,格式为
YYYY-MM-DD HH:MM:SS
。 - 运用场景:适用于需要同时记录日期和时间的场景,如订单创建时间、登录时间等。
- 示例:
- 详解:存储日期和时间,格式为
sql">CREATE TABLE orders (
create_time DATETIME
);
INSERT INTO orders (create_time) VALUES ('2025-02-22 12:30:00');
- TIMESTAMP
- 详解:和
DATETIME
类似,但TIMESTAMP
会自动更新为当前时间戳,并且存储范围比DATETIME
小。 - 运用场景:适用于记录数据的最后修改时间。
- 示例:
- 详解:和
sql">CREATE TABLE products (
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
综上所述,选择合适的参数类型可以提高数据库的性能和数据存储的准确性,根据具体的业务需求和数据特点来选择合适的类型是非常重要的。
我的SQL专栏中有对上述参数表格版,可移步阅读。