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. shell变量扩展技巧

    SHELL中有一些变量扩展的技巧,做下归纳总结 1.取字符串slice规则一:${变量名:位置起点}含义:由指定的位置起点开始,截取子字符串到字符串结束例如: var="/etc/passw ...

  2. webpack 插件

    插件可以完成更多 loader 不能完成的功能. 插件的使用一般是在 webpack 的配置信息 plugins 选项中指定. Webpack 本身内置了一些常用的插件,还可以通过 npm 安装第三方 ...

  3. 学习动态性能表(9)--v$filestat

    学习动态性能表 第九篇--V$FILESTAT  2007.6.5 本视图记录各文件物理I/O信息.如果瓶颈与I/O相关,可用于分析发生的活动I/O事件.V$FILESTAT显示出数据库I/O的下列信 ...

  4. ELK多种架构及优劣

    圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.本文旨在针对复杂的大数据运维系统推荐一把利器,达到抛 ...

  5. Azure Managed Disk操作

    Azure Managed Disk对原有的Page Blob进行了一次封装.使得Azure VM的Disk操作变得非常简单.本文将介绍实际操作中针对Manage Disk的一些操作. 一.创建Man ...

  6. bootstrap 多色表格

    有时候需要用到多色显示不同类型的表格 用bootstrap的样式即可 <tr class="active"> <tr class="success&qu ...

  7. NET代码运行在服务器JS运行在客户端

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;usi ...

  8. angular之增删改查

    <!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta ...

  9. pl/sql对excel数据的导入和导出

    本来这部分是在上篇pl/sql的,但笔者介于此篇的内容,就独立出来了, 1.导出查询结果到excel文件,在查询结果上右键,然后弹出选择框如下: 2.从excel向数据库中导入数据: a.创建要导入的 ...

  10. Synchronized关键字、Lock,并解释它们之间的区别

    Synchronized 与Lock都是可重入锁,同一个线程再次进入同步代码的时候.可以使用自己已经获取到的锁. Synchronized是悲观锁机制,独占锁.而Locks.ReentrantLock ...