• C#/Python/MATLAB操作PostgreSQL数据库


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

    1.C#连接PostgreSQL

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

    Install-Package Npgsql

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

    以下是案例代码:

     1 //连接数据库
     2 NpgsqlConnection connection = new NpgsqlConnection("Server = 127.0.0.1; Port = 5432; UserId = postgres; Password = postgres;Database = db_name");
     3 connection.Open();
     4 
     5 //构造SQL语句
     6 string sqlCommand = "SELECT * FROM table_name";
     7 NpgsqlCommand command = new NpgsqlCommand(sqlCommand, connection);
     8 
     9 //读取数据
    10 NpgsqlDataReader reader = command.ExecuteReader();
    11 reader.Read();
    12 
    13 //获取数据
    14 string data;
    15 data=reader.GetString(0);
    16 
    17 //关闭数据库
    18 connection.Close();

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

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

    具体代码如下:

     1 //连接数据库
     2 NpgsqlConnection connection = new NpgsqlConnection("Server = 127.0.0.1; Port = 5432; UserId = postgres; Password = postgres;Database = db_name");
     3 connection.Open();
     4 
     5 //构造SQL语句
     6 string sqlCommand = "UPDATE table_name SET column1=update_attribute WHERE column2=origin_attribute";
     7 NpgsqlCommand command = new NpgsqlCommand(sqlCommand, connection);
     8 
     9 //执行SQL语句
    10 command.ExecuteNonQuery();
    11 
    12 //关闭数据库
    13 connection.Close();

    2. Python连接PostgreSQL

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

    pip install psycopg2

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

    import psycopg2

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

     1 //连接数据库
     2 connection = psycopg2.connect(database="db_name", user="postgres",password="postgres",host="127.0.0.1",port="5432")
     3 //获取游标
     4 cursor = connection.cursor()
     5 //设置SQL语句
     6 sql_command_select = "SELECT * FROM table_name;"
     7 
     8 try:
     9     //执行SQL语句
    10     cursor.execute(sql_command_select)
    11     //获取所有的数据
    12     data_all = cursor.fetchall()
    13     for data in data_all:
    14         //遍历数据
    15         print(data)
    16 except Exception as e:
    17     print(e)
    18     //如果出现错误,数据库复原
    19     connection.rollback()
    20     

    在代码中,可以看到首先是连接数据库,之后获取游标,构造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语句的执行。

  • 相关阅读:
    4 stackstorm定时器基础 Sky
    3 stackstorm rule Sky
    2 stackstrom action Sky
    1 StackStorm介绍 Sky
    stackstorm安装 Sky
    stackstorm webui安装 Sky
    3.8 Go之并发和并行
    3.2 Go之语言竞争状态
    3.2 Go之语言并发通信
    图床_typora设置.md
  • 原文地址:https://www.cnblogs.com/kkyyhh96/p/6511591.html
Copyright © 2020-2023  润新知