PostgreSQL教程(四):数据类型详解
1. 概述
本教程主要介绍了PostgreSQL中常用的数据类型,在实际开发中,选择正确的数据类型可以提高系统性能和数据存储效率。
2. 常用数据类型
以下是PostgreSQL中常用的数据类型:
- 数值型:整型、浮点型、小数型
- 字符型:字符、文本、超长文本
- 日期时间型:日期、时间、时间戳
- 布尔型
- 枚举类型
- 数组类型
3. 示例
3.1 数值型
3.1.1 整型
在PostgreSQL中,使用SMALLINT
、INTEGER
和BIGINT
类型定义整数,分别表示2字节、4字节和8字节整数。
示例:
CREATE TABLE employee (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age SMALLINT NOT NULL,
salary BIGINT NOT NULL
);
3.1.2 浮点型
在PostgreSQL中,使用REAL
和DOUBLE PRECISION
类型定义浮点数。
示例:
CREATE TABLE product (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
price REAL NOT NULL
);
3.2 字符型
3.2.1 字符型
在PostgreSQL中,使用CHAR(n)
、VARCHAR(n)
和TEXT
类型定义字符。
示例:
CREATE TABLE customer (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
address TEXT NOT NULL
);
3.2.2 超长文本
在PostgreSQL中,可以使用BYTEA
类型存储二进制大型对象数据,如:图像、声音和视频等。
示例:
CREATE TABLE image (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
data BYTEA NOT NULL
);
3.3 日期时间型
在PostgreSQL中,使用DATE
、TIME
和TIMESTAMP
类型定义日期和时间,其中,TIMESTAMP
类型表示日期和时间的组合。
示例:
CREATE TABLE reservation (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
check_in_date DATE NOT NULL,
check_in_time TIME NOT NULL,
check_out_timestamp TIMESTAMP NOT NULL
);
3.4 布尔型
在PostgreSQL中,使用BOOLEAN
类型定义布尔值,其取值可以是TRUE
或FALSE
。
示例:
CREATE TABLE user (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
is_admin BOOLEAN NOT NULL
);
3.5 枚举类型
在PostgreSQL中,可以使用ENUM
类型定义枚举类型,其中,ENUM
类型的键(名称)必须是唯一的。
示例:
CREATE TYPE fruit_type AS ENUM (
'APPLE',
'BANANA',
'ORANGE'
);
CREATE TABLE order (
id SERIAL PRIMARY KEY,
fruit fruit_type NOT NULL,
quantity INTEGER NOT NULL
);
3.6 数组类型
在PostgreSQL中,可以使用ARRAY
类型定义数组类型,其元素类型可以是任意基本类型。在ARRAY
类型中,元素之间使用逗号分隔。
示例:
CREATE TABLE order (
id SERIAL PRIMARY KEY,
items TEXT[] NOT NULL,
quantities INTEGER[] NOT NULL
);
4. 总结
在本教程中,我们详细讲解了PostgreSQL中常用的数据类型,包括数值型、字符型、日期时间型、布尔型、枚举类型和数组类型。在实际开发中,选择正确的数据类型可以提高系统性能和数据存储效率,因此开发人员需要深入了解这些数据类型的特性和用法,以便正确选择和使用合适的数据类型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PostgreSQL教程(四):数据类型详解 - Python技术站