如何导入PostgreSQL数据库数据

如何导入PostgreSQL数据库数据,第1张

您好,举例说明:

如将一Shapfile文件“c:\roadshp”导入到数据表“road”中,数据库为“sjzmap”。

1、运行“命令提示符”。

2、切换至PostgreSQL数据库安装目录中的bin目录下。

3、执行此目录下的shp2pgsql命令:“shp2pgsql c:\roadshp road > c:\roadsql”。

4、如将此文件直接导入数据库(不推荐):“shp2pgsql -c c:\roadshp road sjzmap | psql -d sjzmap”。

5、使用pgAdmin3 选择数据库,再导入表。

注:

Drops the database table before creating a new table with the data in the Shape file

Appends data from the Shape file into the database table Note that to use this option to load multiple files, the files must have the same attributes and same data types

Creates a new table and populates it from the Shape file

Only produces the table creation SQL code, without adding any actual data This can be used if you need to completely separate the table creation and data loading steps

Use the PostgreSQL "dump" format for the output data This can be combined with -a, -c and -d It is much faster to load than the default "insert" SQL format Use this for very large data sets

Creates and populates the geometry tables with the specified SRID

Keep identifiers' case (column, schema and attributes) Note that attributes in Shapefile are all UPPERCASE

Coerce all integers to standard 32-bit integers, do not create 64-bit bigints, even if the DBF header signature appears to warrant it

Create a GiST index on the geometry column

Output WKT format, for use with older (0x) versions of PostGIS Note that this will introduce coordinate drifts and will drop M values from shapefiles

Specify encoding of the input data (dbf file) When used, all attributes of the dbf are converted from the specified encoding to UTF8 The resulting SQL output will contain a command, so that the backend will be able to reconvert from UTF8 to whatever encoding the database is configured to use internally

PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL的起源可以追溯到1986年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上进行了30多年的积极开发。

PostgresSQL凭借其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了良好的声誉,以始终如一地提供高性能和创新的解决方案。

在 PostgreSQL 数据库中,对于 UTF-8 编码的汉字、字母和数字的长度判断,可以使用 `length` 函数。

`length` 函数用于计算字符串中的字符数量(不包括尾部的空格)。对于 UTF-8 编码的字符串来说,一个汉字、字母或数字都是占用一个字符的。因此,可以使用 `length` 函数来统一判断字符串中汉字、字母和数字的长度。

例如,可以使用以下语句来查询一个字符串的长度:

```sql

SELECT length('hello, 世界!'); -- 返回 11

```

这个例子中,字符串 `'hello, 世界!'` 包含了 5 个字母、2 个汉字和 4 个标点符号,但是 `length` 函数计算的结果是 11,因为它把每个字符都当成一个长度来计算。

需要注意的是,对于非 UTF-8 编码的字符串,可能需要使用其他的函数来计算长度。在 PostgreSQL 中,可以使用 `char_length` 函数来计算多字节字符的长度。

不考虑系统版本、安装的系统是不是最小化安装、pgsql版本等问题,那么正常应该是下面的安装方法就可以成功的,如果想可以远程连接,则要在防火墙里开放端口5432。

三、安装PostgreSQL

# cd /usr/local/src/

# tar zxf postgresql-924targz

# cd postgresql-924

# /configure --prefix=/usr/local/pgsql

# make

# make install

//和mysql一样建立组和用户

# groupadd postgres

# useradd -g postgres postgres

//给pgsql创建一个数据库的文件夹

# mkdir /usr/local/pgsql/data

//设置data文件夹属于哪个用户

# chown postgres:postgres /usr/local/pgsql/data

//切换到postgres用户

# su - postgres

//生成数据库

$ /usr/local/pgsql/bin/initdb --encoding=UTF-8 --no-locale -D /usr/local/pgsql/data

$ exit

//复制启动文件

# cp /usr/local/src/postgresql-924/contrib/start-scripts/linux /etc/initd/postgresql

//设置开机启动

# chmod 755 /etc/initd/postgresql

# chkconfig --add postgresql

# chkconfig postgresql on

# /etc/initd/postgresql start

//修改配置文件

# vim /usr/local/pgsql/data/postgresqlconf

listen_addresses = '' //是否允许其他计算机访问

port = 5432 //通过哪个端口访问

//这个网上查说是身份验证,大概就是要不要加密里之类的吧,没具体查过。

这里要注意,你的ip是ipv4还是ipv6,写到相应的条目下面,不要写错了。

另:如果复制粘贴的话有时候会出错,原因未知。建议自己手写。

# vim /usr/local/pgsql/data/pg_hbaconf

hostall all 00000000 trust

# /etc/initd/postgresql restart

//看看能否正常进入postgreSQL

# /usr/local/pgsql/bin/psql -U postgres -W

# \q

打开软件,进入界面中。

双击“PostgresSQL 93”连接服务器

方法一:右键单击“postgres”,选择“新建对象”--新建数据库,设置新的数据库的参数,所有者一般默认为“postgres”

新建完后,不能立即看到界面上更新的数据,需要点击界面上的更新按钮才能够看到数据库的变化情况。

方法二:在插件中输入SQL语言,运行命令

方法三:点击面板上的“执行任意的SQL查询”

连接数据库 ThinkPHP内置了抽象数据库访问层,把不同的数据库 *** 作封装起来,我们只需要使用公共的Db类进行 *** 作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库适配器来处理。目前的数据库包括Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase以及PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式:

第一种 在项目配置文件里面定义

return array(

'DB_TYPE'=> 'mysql',

'DB_HOST'=> 'localhost',

'DB_NAME'=>'thinkphp',

'DB_USER'=>'root',

'DB_PWD'=>'',

'DB_PORT'=>'3306',

'DB_PREFIX'=>'think_',

// 其他项目配置参数………

);

系统推荐使用该种方式,因为一般一个项目的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。

可以对每个项目定义不同的数据库连接信息,还可以在调试配置文件(Conf/debugphp)里面定义调试数据库的配置信息,如果在项目配置文件和调试模式配置文件里面同时定义了数据库连接信息,那么在调试模式下面后者生效,部署模式下面前者生效。

第二种 使用DSN方式在初始化Db类的时候传参数

$db_dsn = “mysql://username:passwd@localhost:3306/DbName”;

$db = new Db($db_dsn);

该方式主要用于在控制器里面自己手动连接数据库的情况,或者用于创建多个数据库连接。

第三种 使用数组传参数

$DSN = array(

'dbms' => 'mysql',

'username' => 'username',

'password' => 'password',

'hostname' => ; 'localhost',

'hostport' => '3306',

'database' => 'dbname'

);

$db = new Db($DSN);

该方式也是用于手动连接数据库的情况,或者用于创建多个数据库连接。

第四种 在模型类里面定义

protected $connection = array(

'dbms' => 'mysql',

'username' => 'username',

'password' => 'password',

'hostname' => 'localhost',

'hostport' => '3306',

'database' => 'dbname'

);

// 或者使用下面的定义

protected $connection = ”mysql://username:passwd@localhost:3306/DbName”;

如果在某个模型类里面定义了connection属性,则在实例化模型对象的时候,会使用该数据库连接信息进行数据库连接。通常用于某些数据表位于当前数据库连接之外的其它数据库。

ThinkPHP并不是在一开始就会连接数据库,而是在有数据查询 *** 作的时候才会去连接数据库。额外的情况是,在系统第一次 *** 作模型的时候,框架会自动连接数据库获取相关模型类的数据字段信息,并缓存下来。

(字段缓存目录:Runtime/Data/_fields)

ThinkPHP支持PDO方式,如果要使用PDO方式连接数据库,可以参考下面的设置。

我们以项目配置文件定义为例来说明:

return array(

'DB_TYPE'=> 'pdo',

// 注意DSN的配置针对不同的数据库有所区别 请参考PHP手册PDO类库部分

'DB_DSN'=> 'mysql:host=localhost;dbname=think',

'DB_USER'=>'root',

'DB_PWD'=>'',

'DB_PREFIX'=>'think_',

// 其他项目配置参数………

);

使用PDO方式的时候,要注意检查是否开启相关的PDO模块。DB_DSN参数仅对PDO方式连接才有效。

以上就是关于如何导入PostgreSQL数据库数据全部的内容,包括:如何导入PostgreSQL数据库数据、pg数据库是什么、pgsql数据库汉字、字母、数字的怎么统一判断长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9844158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存