PostgreSQL数据库是一个功能非常强大的开源数据库,支持多种SQL特性,非常好用。此外由于结合PostGIS可以实现空间数据库功能,故非常适合GIS领域的使用。本文旨在介绍C#、Python、MATLAB对PostgreSQL进行操作的最基本方法,并实现远程数据库的连接。

1.C#连接PostgreSQL

C#连接PostgreSQL需要使用Npgsql,可以通过Visual Studio自带的nuget下载:

Install-Package Npgsql

之后在代码中进行引用即可。

以下是案例代码:

 //连接数据库
NpgsqlConnection connection = new NpgsqlConnection("Server = 127.0.0.1; Port = 5432; UserId = postgres; Password = postgres;Database = db_name");
connection.Open(); //构造SQL语句
string sqlCommand = "SELECT * FROM table_name";
NpgsqlCommand command = new NpgsqlCommand(sqlCommand, connection); //读取数据
NpgsqlDataReader reader = command.ExecuteReader();
reader.Read(); //获取数据
string data;
data=reader.GetString(); //关闭数据库
connection.Close();

以上即为操作数据库并读取数据的方法。首先连接数据库,之后构造SQL语句并应用于postgresql中,接着构造NpgsqlDataReader,应用NpgsqlCommand.ExecuteReader()方法读取数据,最终根据读取出的数据类型进行获取数据。读取完毕后不要忘记关闭数据库。

如果不读取数据,而仅仅是进行SQL语句的操作,例如修改或删除等,方法类似,但需要使用NpgsqlCommand.ExecuteNonQuery()方法。

具体代码如下:

 //连接数据库
NpgsqlConnection connection = new NpgsqlConnection("Server = 127.0.0.1; Port = 5432; UserId = postgres; Password = postgres;Database = db_name");
connection.Open(); //构造SQL语句
string sqlCommand = "UPDATE table_name SET column1=update_attribute WHERE column2=origin_attribute";
NpgsqlCommand command = new NpgsqlCommand(sqlCommand, connection); //执行SQL语句
command.ExecuteNonQuery(); //关闭数据库
connection.Close();

2. Python连接PostgreSQL

使用Python连接PostgreSQL可以使用多种第三方包,而PostgreSQL官方推荐的是Psycopg2这个包,同时支持Python2和Python3的版本。可以使用pip进行安装:

pip install psycopg2

安装完成后,即可引用到自己的代码中:

import psycopg2

具体连接数据库并进行操作的代码如下:

 //连接数据库
connection = psycopg2.connect(database="db_name", user="postgres",password="postgres",host="127.0.0.1",port="")
//获取游标
cursor = connection.cursor()
//设置SQL语句
sql_command_select = "SELECT * FROM table_name;" try:
//执行SQL语句
cursor.execute(sql_command_select)
//获取所有的数据
data_all = cursor.fetchall()
for data in data_all:
//遍历数据
print(data)
except Exception as e:
print(e)
//如果出现错误,数据库复原
connection.rollback()

在代码中,可以看到首先是连接数据库,之后获取游标,构造SQL语句,并完成了对于数据的查询。在上例中,获取全部的数据使用的是cursor.fetchall()函数,倘若只是获取一条数据,可以使用cursor.fetchone()函数一条一条数据进行读取。

倘若需要对数据库进行修改、添加、删除等功能,只需要使用cursor.execute()函数即可完成SQL语句的执行。

注意对于数据的读取需要加上异常检测的代码,倘若读取数据出错,需要使用connection.rollback()函数恢复到数据库出错前的状态,否则会一直卡在出错的地方不能继续。

3. MATLAB连接PostgreSQL

MATLAB连接PostgreSQL数据库首先需要下载.jar(JDBC)文件。地址:https://jdbc.postgresql.org/download.html

之后需要将下载的jar文件添加到MATLAB的jar目录中。

之后输入在MATLAB命令行中输入:

edit classpath.txt

在文本最后添加这条代码:

$matlabroot/java/jar/postgresql-9.4.1212.jre6.jar

之后保存并关闭文本,重启MATLAB,输入:

javaclasspath

倘若出现的文本中最后出现了postgresql的路径,说明添加成功。

之后即可进行数据库的连接和操作。

MATLAB连接数据库和操作数据库的方法如下:

%连接数据库
connection=database('db_name','postgres','postgres','org.postgresql.Driver','jdbc:postgresql://localhost:5432/db_name');
%构造SQL语句
sqlcommand='select * from table_name;'
%执行SQL语句
cursor=exec(connection,sqlcommand);
%获取指定数量的数据
row=fetch(cursor,1);

与前面的代码结构类似,首先是连接数据库,之后构造SQL语句,完成对于数据的查询。在上例中,获取数据使用的是fetch()函数,分别传入连接的数据库和具体数量。

倘若需要对数据库进行修改、添加、删除等功能,只需要使用exec(connection, sqlcommand)函数即可完成SQL语句的执行。

C#/Python/MATLAB操作PostgreSQL数据库的更多相关文章

  1. Python 操作 PostgreSQL 数据库

    我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...

  2. Python之操作redis数据库

    使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...

  3. python 之操作mysql 数据库实例

    对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delet ...

  4. hibernate 操作 Postgresql 数据库报 operator does not exist: integer = character varying

    网上的说法如下: Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同: Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正 ...

  5. python操作postgresql数据库

    import psycopg2 conn = psycopg2.connect(database=") cur = conn.cursor() cur.execute("CREAT ...

  6. python 安装操作 MySQL 数据库.

    以ubuntu和mysql为例 检查自己的机器上面有没有安装数据库 xpower@xpower-CW65S:~$ sudo service mysql start [sudo] xpower 的密码: ...

  7. Jmeter_实现操作postgresql数据库

    [环境] ①Jmeter版本:3.2,JDK:1.8: ②postgresql驱动包postgresql-9.3-1103.jdbc4,将该jar包置于..\apache-jmeter-3.2\lib ...

  8. Python之操作HBASE数据库

    目前有两个库可以操作HBASE:hbase-thrift 和  happybase happybase使用起来比较简单方便,因此重点学习该库,hbase-thrift只做简要介绍. (一)hbase- ...

  9. Python之 操作 MySQL 数据库

    什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 安装 Pytho ...

随机推荐

  1. 【redis】redis的 key的命名规则

    key的命名规则 定义为 MS-TEN:SESSION_KEY_IN_LOGIN_NAME:fqh 使用:进行分割,这样存入redis的是有层次结构的,如下

  2. [转] AS3地图拼接与战争迷雾的实现

    在开发游戏的过程中,特别是地图编辑器中,需要利用最少的资源,实现最丰富的地形地貌.虽然现在众多的RPG开始使用整图,但是我们偶尔还是需要能够让玩家自己编辑地图,或者其他需要自动进行地图构建的功能.另外 ...

  3. angular 的杂碎报错小知识

    1:[ng:areq] Angular出现这种错误的原因,是由于没有在页面中使用模块引入controller导致的 所以 请确保你定义了这个controller后也引用了它. 2:Failed to ...

  4. java中List、Map、Set、Collection、Stack、Queue等的使用

    java中这几个东西是比较常用的,虽然我用的不多,也正是因为用的不多,所以我一直搞不清楚他们之间的具体用法以及相互之间的关系,现在特单独作为一个东西来总结一下. 本文参考一下资料: 1.<jav ...

  5. POJ1063Cable master(二分搜索)

    Cable master Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36288   Accepted: 7743 Des ...

  6. 关于java.lang.ClassNotFoundException

    关于java.lang.ClassNotFoundException,在自己的程序中,也出现过好几次了,每次找到原因之后,又会发觉原来是以前处理过的. java.lang.ClassNotFoundE ...

  7. FlatBuffers使用简介

    @[tools|flatbuffers|opensource] 概述### Google在今年6月份发布了跨平台序列化工具FlatBuffers,提供了C++/Java/Go/C#接口支持,这是一个注 ...

  8. RabbitMQ介绍

    (一)RabbitMQ基本概念 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.我曾经对这门语言挺有兴趣,学过一段时间,后来没坚持.RabbitMQ是 AMQP(高级消息队列协议)的 ...

  9. Jconsole 测试.

    Jconsole 测试. 1 下载并安装 d:\Program Files\Java\jdk1.8.0_111\ JDK自带,Windows下图形界面,监控分析Java程序 2 查看jmx进程号 [r ...

  10. 使用cython把python编译so

    1.需求 为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件 2.工作 2.1 安装相关库: pip install cython yum insta ...