sql 把一个表的数据更新到另一个表?

把数据库备份成*.bak

或把你数据库用到的*.MDF和*.log文件
然后重起下sql服务器

SQL数据库,怎么把服务器中的一张表插入到另外一个服务器的一张表中?SQL语句该怎么写?如下:

执行上面那条命令,会提示我们输入数据库的密码,只要输入正确就可以把表的数据导出到具体的sql文件中了。

导入数据使用如下命令:

注意要先把对应的表删除掉,不然 导入进去会有冲突并且报错。

更新数据到PG集群中,可以登陆单个pg节点服务器,然后执行 如上命令, 代表pg pool的地址,这样数据通过pg pool 导入之后 就可以同步到集群中的各个节点了。

pg_dump导出指定表,按照通配符匹配

注意后面的那个postgres 代表数据库名称

先在新的机器上新建数据库 xinyidai,然后执行如下语句导入新一代数据库

查看pgpool的节点。只需要登录pgpool的数据库,执行命令

模拟插入1000万条数据

生成随意长度的随机字符串

删除数据库xinyidai ,发现抱错如下:

postgresql 那里有5个其它会话正在使用数据库.

执行如下sql,强制关闭所有客户端与数据库的连接

然后再执行drop语句,就可以顺利把数据库干掉了。

很有可能是没有建立主键,缺少主键索引,此时查询速度巨慢,查询10条数据可能需要好几分钟。(PostgreSQL自动为每个唯一约束和主键约束创建索引以强制唯一性。 因此,有了主键,就有了索引)

where子句的字段加上索引,加快查询速度

更新语句很慢,很可能是更新语句中的条件字段没有索引,加上索引之后,就会快很多。

//对way_bill_no字段创建索引,这个表大概有100多万的数据,有70多个字段,建立索引花了20分钟左右
 

pg给表动态增加字段,修改字段类型

pg修改数据库的字符集编码

要做的事情是:把数据库a的gis_addr_sync这个表导出来,然后导入数据库b中,注意这个表是分区表,所以在pg_dump的时候必须要加上*,不然只能导出一个空表

-O参数代表不管数据库的用户名和密码之类的信息。

还有一个参数常用,-a,这个参数代表不创建表,即里面已经有表了,只复制数据进去即可。

如果是要导出整个数据库,则执行的sql语句如下:

其实就是把导出指定表中的 -t <表名> 去掉即可,方便记忆。导入整个数据库的时候也是使用pg_restore进行导入,方法跟导入单个表一样

在一台装修postgresql的linux机器上面,新建一个目录a,进入目录a

会在控制台种提示输入密码,输入正确之后,则登录到远程数据库中。

然后在交互的命令行中执行如下命令:

这样就可以把表gis_point 中的数据拷贝到 gis_point.csv文件中,该文件包含了表头和行记录。这个文件保存的路径就是a目录。然后就可以下载该csv文件,使用navicat等工具导入到心的数据库了。

数据库导出的文件记得压缩了再下载下来

数据库导出来的文件使用tar命令压缩可以压得很小,在网络传输不佳的时候,先压缩再下载,效果非常好呢。

pg分割字符串并且更新表中的字段

有这么一个需求,一个表中有一个字段是delivered_location,该字段包含了经度和维度,他们用“,”进行分割,此时我们想要在该表中加入两个字段,分别是经度和维度,然后把delivered_location中的经纬度提取出来分别插入到这两个字段中。

通过测试,确实可用提取出经纬度。

此时就可以编写如下sql语句进行更新了。

一个表的值更新另一个表中的值,根据主键关联。

update 语句中,给被update 的表 取别名,要报错,所以就没取别名,但是看起来有点怪怪的。

表中有经度和维度字段,把这两个字段结合起来插入到geom字段中

上面这段Java代码的作用是往一个表中批量更新数据,当数据量较大的时候(表的数据总量达到百万级以上),如果where字句的条件字段没有索引,就会超时报错。所以要给where字句的条件字段加上索引,如果字段是唯一的,可以直接加上主键,加上主键,就有主键索引,不需要单独建立索引。

导入一个excel文件,在导入过程中自动新建表,但是闪退,可能是数据问题,后面索性先新建表,然后再导入数据就成功了,可能是navicat的一个bug 吧

pg求平均数,众数,中位数

在navicate中执行上面的SQL语句,然后把结果导出成excel文件即可。

根据经纬度更新geom字段SQL语句

从一个表查询数据导入到另外一个表

注意导入的字段和查询的字段必须对应起来,包括类型,字段名,不然无法导入成功

面存在自相交的时候,且中间有空白的时候,st_intersects会把落入面空白处的点判断为与该面相交,ST_ContainsProperly 则会判断为不相交。

顺带安利一个很好的在线绘图工具,绘制完成,可以立马得到想要的geojson数据

根据某个字段去除重复行

可以看到,表中的name字段有重复值,现在需要从该表中查询出所有name不重复的行数据。说到去重,首先想到的是distinct,但是distinct语句有局限,只能查询去重的字段,不能查询无关的字段,如下SQL语句

如果实在是要查询其他的字段,只能够写如下语句

但是这条SQL语句无法达到我们的需求,因为它会把name和school作为一个整体,在去重的过程中,只有name+school一样才能去重,换句话说,当name一样,school不一样的时候,就不能去重了,而我们的需求是根据name去重,不管其他字段是否一样,为了达到这个目标,可以使用如下SQL语句进行去重

varchar类型的字段处理具有单引号包裹的值

如下,插入单引号包裹的值

Navicate导入CSV数据到一半的时候,没有报错 ,但是始终卡住没动的解决办法

首先看已经处理到哪一行,然后看每次界面更新多少行,如现在已经处理了600行,界面每次刷新的时候都是100行,100行的增加,如400,500,600的闪烁,那么就去导入的数据文件中,拷贝600行到700行之间的数据,

一般出现这种问题就是 编码不对,,用记事本文件打开 另存为 utf-8格式即可

如果还是不行,那么就新建一个xlsx 的Excel表格文件(wps版本的哦),然后把csv文件导入到这个excel文件中,这样在Navicat中导入Excel文件即可,一般就不会卡住了。

注意:excel文件有两种格式,第一种xls和第二种是xlsx,第一种的一个sheet只支持6万多条数据,第二种则一个sheet可以支持上百万的数据量。当csv数据大于6万的时候,请选择xlsx格式的excel表格。

把已经存在16进制数据的varchar类型的字段 改成空间字段类型

查询指定过去多少天表名函数编写

动态执行SQL语句函数

我要回帖

更多关于 更新数据表的sql命令 的文章

 

随机推荐