C#/Python/MATLAB操作PostgreSQL数据库
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数据库的更多相关文章
- Python 操作 PostgreSQL 数据库
我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...
- Python之操作redis数据库
使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...
- python 之操作mysql 数据库实例
对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delet ...
- hibernate 操作 Postgresql 数据库报 operator does not exist: integer = character varying
网上的说法如下: Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同: Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正 ...
- python操作postgresql数据库
import psycopg2 conn = psycopg2.connect(database=") cur = conn.cursor() cur.execute("CREAT ...
- python 安装操作 MySQL 数据库.
以ubuntu和mysql为例 检查自己的机器上面有没有安装数据库 xpower@xpower-CW65S:~$ sudo service mysql start [sudo] xpower 的密码: ...
- Jmeter_实现操作postgresql数据库
[环境] ①Jmeter版本:3.2,JDK:1.8: ②postgresql驱动包postgresql-9.3-1103.jdbc4,将该jar包置于..\apache-jmeter-3.2\lib ...
- Python之操作HBASE数据库
目前有两个库可以操作HBASE:hbase-thrift 和 happybase happybase使用起来比较简单方便,因此重点学习该库,hbase-thrift只做简要介绍. (一)hbase- ...
- Python之 操作 MySQL 数据库
什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 安装 Pytho ...
随机推荐
- Redis底层探秘(六):对象多态及回收
本篇是我们redis系列的最后一篇,整个系列其实是我学习<redis设计与实现>的笔记,这本书感觉不错,推荐使用redis的小伙伴都可以看看. 整个系列的文字都比较干,很多数据结构和C语言 ...
- QString的拼接
QString的append()函数则提供了类似的操作,例如: 1. str = "User: "; 2. str.append(userName); 3. str ...
- Poj 3287 Catch That Cow(BFS)
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- qt在linux下使用open,write,close等文件操作
正常在linux下使用的文件操作函数为: #include <fcntl.h>fd = open(“path”,O_RDWR|O_NONBLOCK); 但是在qt中,需要使用: #incl ...
- Angular5学习笔记 - 路由管理(五)
一.添加路由管理引用 打开src/app/app.module.ts文件 import {RouterModule} from '@angular/router'; import {Routes} f ...
- QrCode C#生成二维码 及JavaScript生成二维码
一 C#的二维码 示例: class Program { static void Main(string[] args) { QrEncoder qrEncoder = new QrEncode ...
- 蓝桥杯 算法训练 ALGO-147 4-3水仙花数
算法训练 4-3水仙花数 时间限制:1.0s 内存限制:256.0MB 问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1 ...
- HTML5两个打包工具
AppCan:http://www.appcan.cn/ HBulider:http://www.dcloud.io/
- appium python版api
打印上下文 driver.contexts 打印当前上下文 driver.context driver.current_context 切换上下文 driver.switch_to.context(' ...
- DVWA平台v1.9-Command Injection
命令拼接: &:简单的拼接,第一条命令和第二条命令间没有什么制约关系 &&:第一条命令执行成功了,才会执行第二条命令 |:第一条命令的输出作为第二条命令的输入 ||:第一条命令 ...