题目
关于Psycopg2的说法,哪个选项是正确的?A. Psycopg2是一个Java库,专门用于连接MySQL数据库,提供高效安全的数据访问。B. Psycopg2是基于Ruby语言开发的API,用于简化与Oracle数据库的交互。C. Psycopg2是对libpq的封装,使用C语言实现,为Python应用程序提供高性能的PostgreSQL与openGauss数据库访问接口,支持SSL连接与全面的PostgreSQL数据类型[1]适应。D. Psycopg2是一个纯Python实现的库,不支持任何数据库的服务器端游标[2]功能。
关于Psycopg2的说法,哪个选项是正确的? A. Psycopg2是一个Java库,专门用于连接MySQL数据库,提供高效安全的数据访问。 B. Psycopg2是基于Ruby语言开发的API,用于简化与Oracle数据库的交互。 C. Psycopg2是对libpq的封装,使用C语言实现,为Python应用程序提供高性能的PostgreSQL与openGauss数据库访问接口,支持SSL连接与全面的PostgreSQL数据类型[1]适应。 D. Psycopg2是一个纯Python实现的库,不支持任何数据库的服务器端游标[2]功能。
题目解答
答案
C
解析
本题考查对Psycopg2库的基本概念和核心功能的掌握。解题关键在于:
- 明确Psycopg2的开发语言和目标数据库:需区分其与Python、PostgreSQL的关系;
- 理解Psycopg2的实现原理:基于libpq的封装,C语言实现带来的性能优势;
- 掌握核心功能特性:如SSL支持、数据类型适配、兼容数据库类型等;
- 辨析常见误区:如纯Python实现、服务器端游标支持等。
选项分析
选项A
错误。Psycopg2是Python库,而非Java库,且专为PostgreSQL设计,与MySQL无关。
选项B
错误。Psycopg2基于C语言封装libpq(PostgreSQL官方C接口),与Ruby无关,也不支持Oracle数据库。
选项C
正确。Psycopg2通过以下特征成立:
- 基于libpq封装:libpq是PostgreSQL的C语言接口,Psycopg2在此基础上构建;
- C语言实现:核心模块用C编写,确保高性能;
- 支持PostgreSQL与openGauss:作为兼容PostgreSQL的数据库,openGauss可被Psycopg2访问;
- SSL连接与数据类型适配:支持SSL加密,完整支持PostgreSQL数据类型(如JSON、几何类型)。
选项D
错误。Psycopg2非纯Python实现(含C扩展),且支持服务器端游标(通过cursor.scrollable
参数)。