【PostgreSQL】安装及使用(Navicat/Arcgis),连接(C#)

news2024/12/26 9:19:03

简介

PostgreSQL 是一个功能强大的开源对象关系数据库系统

下载地址

PostgreSQL: Downloads

由于我电脑上安装的是arcgispro3.1所以需要下载对应的postgresql版本

PostgreSQL 12 对应的 PostGIS 版本主要是 3.5.0 或更高版本。

安装

一般设置为postgresql

安装扩展插件

此处就是告诉你是否需要下载额外的插件

扩展的详情介绍请查看

【PostgreSQL】扩展插件介绍-CSDN博客

我选择npsql是因为我需要用.net连接数据库

而且下边也有介绍

PostgreSQL的。net数据提供程序。由EnterpriseDB打包。

选择postgis是应为需要连接arcgis/geoscene/qgis,将空间数据进行上传到数据库

PostGIS“在空间上启用”PostgreSQL服务器,允许它被用作地理信息系统(GIS)的后端空间数据库。

等待下载

下载完成

安装.net数据库驱动

完成扩展

安装PostGis扩展

此处输入的是PostgreSQl数据库的密码postgresql

设置空间数据库的名称

安装

安装完成

扩展全部安装完成

操作

连接postgresql

创建数据库

Navicat操作PostgreSql

连接

创建空间数据库

创建成功,有tiger和tiger_data和topolpgy说明创建的是带有空间属性的数据库

在PostgreSQL中创建数据库时,确实会自动创建一个名为public的模式。这个模式是每个新数据库默认包含的,无论用户是否指定模式名称,PostgreSQL都会将其放入public模式中。

在PostgreSQL数据库中,"tiger"和"tigerdata"以及"topology"模式分别有其特定的用途和背景。

TIGER(Topologically Integrated Geographic Encoding and Referencing)是一个由美国人口普查局开发的地理编码系统。它是一个数字化(计算机可读)的地理数据库,用于支持人口普查和调查程序中的地图制作及相关地理活动。TIGER 数据库的内容通过各种“TIGER 提取”文件提供给公众,并且不断更新。

在PostGIS中,可以生成一个shell脚本,用于下载TIGER数据并将其暂存到名为tiger_data的模式中。每个州的脚本都会作为单独的记录返回。这表明tiger_data模式是专门用来存储从TIGER数据库中提取的数据的逻辑层面数据集合。

PostgreSQL中的topology模式包含用于创建拓扑结构的函数及拓扑目录表。如果该模式不存在,则说明尚未安装相关的扩展。拓扑结构在地理信息系统(GIS)中非常重要,用于描述空间对象之间的拓扑关系。

综上所述,tigertiger_data模式主要用于处理和存储与地理信息相关的数据,而topology模式则用于构建和管理复杂的拓扑结构。这些模式在PostgreSQL数据库中扮演着重要的角色,特别是在地理空间数据分析和处理中。

表空间介绍

表空间可以分为系统表空间和非系统表空间。系统表空间如SYSTEMSYSAUX用于存储系统数据,而非系统表空间用于存储用户数据。

在PostgreSQL中,表空间实际上是为表指定一个存储目录。创建表空间时可以指定存储位置,并在创建数据库时指定默认的表空间。

在PostgreSQL中,可以通过创建不同的表空间来管理不同类型的数据。

在PostgreSQL中,pg_globalpg_default是两个默认的表空间,它们在数据库初始化时自动创建。以下是它们的详细描述:

  1. pg_global

    • pg_global表空间用于存储共享的系统目录对象。这些对象是所有数据库共享的系统表,例如pg_databasepg_authid等。
    • 它的物理文件位置通常在数据目录的global目录中。
    • pg_global表空间是全局的,适用于所有数据库。
  2. pg_default

    • pg_default表空间是默认的表空间,用于存储用户创建的对象,如用户表、用户表索引、临时表、临时表索引等。
    • 它是template1template0数据库的默认表空间,因此也是其他数据库的默认表空间,除非在创建数据库时通过TABLESPACE子句指定其他表空间。
    • 它的物理文件位置通常在数据目录的base目录中。
    • pg_default表空间是每个数据库的默认存储位置,除非用户明确指定其他表空间。

总结来说,pg_global主要用于存储系统级的共享数据,而pg_default则是用户数据和默认对象的存储位置。这两个表空间在PostgreSQL的体系结构中扮演着关键角色,确保了系统数据和用户数据的分离与管理。

使用ArcGIS/GeoScenePro连接

配置

arcgispro路径

D:\Program Files\GeoScene\Pro\Resources\DatabaseSupport\GeoScenePro_41_ST_Geometry\PostgreSQL\12

 postgresql路径

D:\Program Files\PostgreSQL\12\lib

创建企业级地理数据

 授权文件地址

C:\Program Files\ESRI\License11.1\sysgen

连接

连接成功

使用C#连接数据库

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;

namespace ConnectDatabase
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 连接字符串,包含了数据库的位置,用户名和密码
            string connString = "Host=localhost;Username=postgres;Password=postgresql;Database=GeoData";

            // 使用using语句确保连接会被正确关闭和释放
            using (var conn = new NpgsqlConnection(connString))
            {
                conn.Open();

                // 创建一个SQL查询
                string sql = "SELECT version()";

                using (var cmd = new NpgsqlCommand(sql, conn))
                {
                    // 执行查询并读取结果
                    var version = cmd.ExecuteScalar();
                    Console.WriteLine($"PostgreSQL version: {version}");
                }
            }
            Console.ReadKey();
        }
    }
}

连接成功

参考文档

PostgreSQL关系型数据库安装教程 (qq.com)

 数据库连接时的表空间 (metaso.cn)

pg_global 和 pg_default (metaso.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2129944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机的错误计算(九十一)

摘要 讨论自然对数 ln(x)的计算精度问题。 例1. 计算 ln(0.999999999999996) . 不妨用Python计算,则有: 若用Java代码计算: import java.lang.Math; public class Ln{public static void main(String[] args) {double x 0.9999999999999…

JMeter脚本开发

环境部署 Ubuntu系统 切换到root用户 sudo su 安装上传下载的命令 apt install lrzsz 切换文件目录 cd / 创建文件目录 mkdir java 切换到Java文件夹下 cd java 输入rz回车 选择jdk Linux文件上传 解压安装包 tar -zxvf jdktab键 新建数据库 运行sql文件 选择sql文件即…

操作系统 ---- 调度算法的评价指标

一、调度算法评价指标 1.1 CPU利用率 资源利用率。为提高系统的资源利用率,应使系统中的处理机和其它所有资源都尽可能地保持忙碌状态,其中最重要的处理机利用率可用以下方法计算: 例题: 1.2 系统吞吐量 由于吞吐量是指在单位…

Playwright与Selenium的对比:谁是更适合你的自动化测试工具?

在自动化测试领域,Selenium 一直是行业的标杆工具。它功能强大、支持多浏览器、广泛应用于各类项目中。然而,随着技术的发展,新的工具不断涌现,Playwright 作为其中的佼佼者,以其现代化的设计和强大的特性吸引了越来越…

828华为云征文|docker部署kafka及ui搭建

1.介绍 1.1 什么是华为云Flexus X实例 最近华为云828 B2B企业节正在举办,Flexus X实例的促销也非常给力,大家可以去看看。特别是对算力性能有要求,同时对自建MySQL、Redis、Nginx性能有要求的小伙伴,千万不要错过。Flexus云服务器…

你都学会栈和队列了赶紧手搓一个对象池吧!!!(超详细,超简单适合新手宝宝学习)

前置知识:en造数据结构与算法C# 用数组实现个栈还不简单???看我一秒破之!!!(unity演示)-CSDN博客 c#有官方造好的关于stack的轮子,建议学习学习拿来直接用 …

揭开OpenAI草莓模型神秘面纱——重塑大语言模型的逻辑能力

OpenAI即将发布“草莓”模型 来源:medium 据报道,OpenAI计划在未来两周内发布其新的AI模型Strawberry(草莓)。据 Seeking Alpha周二(9 月 10 日)援引The Information 的一篇付费文章报道,新模型…

Solana核心漏洞技术详解

8月9日,Solana团队齐心协力解决了一个严重的安全漏洞。这次秘密修复详情可以在GitHub上查询到。CertiK团队对这一漏洞进行了深入分析。 1. Solana漏洞起因 8月9日,Solana验证者和客户端团队齐心协力解决了一个严重的安全漏洞。Solana验证者Laine表示&am…

[WUSTCTF2020]颜值成绩

1.测试输入发现存在数字型sql注入 1 and 1 报错 尝试了几个字符,确定空格被过滤了 空格用/**/替换 1/**/and/**/1 构造轮子尝试成功,所以这里要用布尔注入 后面的思路就是比较常规的了,先爆破库名,再爆破表、字段 写了个脚本简…

第四部分:1---文件基础理解、C语言文件操作、Linux系统文件接口、使用一个变量传递多个标志位

目录 文件基础理解: 文件是如何组成的? 对文件操作的本质是什么? 文件被打开的本质是什么: 进程和文件的调度关系解析: 文件被打开后如何被管理(文件描述符/文件描述符表)? 文…

深度学习——基础知识

深度学习的重点在于优化,其中很重要的步骤在于如何调参,会涉及到一些微积分等数学知识。不同于以往接触到的数值运算,深度(机器)学习都是关于张量Tensor(向量)的计算,Python中最常用…

【oj刷题】滑动窗口篇:滑动窗口的应用场景和注意事项

前言: 滑动窗口其实基本原理还是双指针,但在双指针中左右指针可能会有回退操作,而滑动窗口的左右指针只会向前走,不会回退,下面就来讲解一下滑动窗口的概念和具体操作(主要是例题讲解) 目录 一、…

【 Linux】基础命令及常用小技巧

文章目录 Linux基础命令常用小技巧基本命令pwd : print work directory 打印当前的工作目录cd : change driectory 改变当前工作目录ls: list 查看指定目录下的文件mkdir: make directory 创建目录 文件操作命令查找命令管道命令和过滤命令wc : word count 单词统计echo 输出命…

Hotohiko Sakamoto算法,以及用其计算星期几【算法 15】

探索Hotohiko Sakamoto算法:构建素数排列的奥秘 在算法领域,Hotohiko Sakamoto算法以其独特的构造方式和深刻的数学背景,吸引了众多算法爱好者和研究者的关注。本文将带您一起探索Hotohiko Sakamoto算法的核心思想,了解它是如何构…

深度学习_GPT2Block详解(casual attention)

一、GTP2Block 整体结构 1.1 block准备 import torch from torch import nn from transformers import GPT2Model, GPT2Config from transformers.models.gpt2.modeling_gpt2 import GPT2Blockcfg GPT2Config() print(cfg.add_cross_attention) blk GPT2Block(cfg, layer_…

“汉语新解” Prompt新高度,火爆的李继刚

“汉语新解” prompt 是由李继刚设计的一个用于启发人工智能模型进行创意性文本生成的指令模板。这个 prompt 的设计初衷是为了让AI能够以一种独特的方式解析和重新诠释常见的中文词汇,从而产生出具有深刻洞察力和幽默感的文本内容,仿佛是由鲁迅或林语堂…

Linux线程同步:深度解析条件变量接口

🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 目录 🍑Linux线程同步🐉条件变量---实现线程同步💧同步概念与竞态条件🐆条件变量接口*初始…

sqli-labs靶场自动化利用工具——第13关

文章目录 概要整体架构流程技术细节执行效果小结 概要 Sqli-Labs靶场对于网安专业的学生或正在学习网安的朋友来说并不陌生,或者说已经很熟悉。那有没有朋友想过自己开发一个测试脚本能实现自动化化测试sqli-labs呢?可能有些人会说不是有sqlmap&#…

每日OJ_牛客_马戏团(模拟最长上升子序列)

目录 牛客_马戏团(模拟最长上升子序列) 解析代码 牛客_马戏团(模拟最长上升子序列) 马戏团__牛客网 搜狐员工小王最近利用假期在外地旅游,在某个小镇碰到一个马戏团表演,精彩的表演结束后发现团长正和大…

《基于深度半监督学习的目标检测综述》泛读

基于深度半监督学习的目标检测方法分为 1、生成式方法 2、一致性正则化方法 3、基于图的方法 4、伪标记方法和混合方法 然后基于常用数据集 对典型方法进行了性能对比,最后分析了其挑战和发展趋势,旨在为相关研究提供参考 收获就是: 1…