Postgresql使用总结

标签: Postgresql 分类: 数据库 创建时间:2019-10-21 09:34:27 更新时间:2025-01-17 10:39:22

前戏就省了吧,直接进入内容。所有的文章结构,其实也都是一个个的标题堆起来的,有的有步骤,有点没有步骤,有点有前言,有的没有前言。都是看主要内容好了。

1.postgresql设置id号自增。

这种设置,只有在创建表的时候可以使用,创建完了表,再修改,就不能修改了。这里以navicat12为例,以前只需要将自动增长选项勾上就好了,现在不行了。
(1) 使用navicat连接postgersql数据库

(2) 打开菜单栏->其他->序列->新建序列,根据需要填写,保存。

(3) 创建数据表,在新建自增列时,填入:nextval(‘id’::regclass),其中id为上一步创建的序列的名字。

不同的数据库的配置方式可能不一样,参考文章三这里navicat12连接sql server时,就是要通过设置标志种子选项来设置自动增长。。

(4) 或者使用 serial 序列

1
2
3
4
create table test(
id serial primary key,
age int
)

2.spring boot连接时出现:PSQLException: FATAL: Ident authentication failed for user “postgres”

1
2
3
4
5
6
7
8
## 切换用户到postgres
su postgres
## 进入psql环境
psql
## 显示配置文件
show hba_file
## 获取到配置文件路径,这里是 /var/lib/pgsql/12/data/pg_hba.conf

1
2
3
4
## 编辑配置文件,将
host all 127.0.0.1/32 ident
## 改为
host all 127.0.0.1/32 trust

重启postgres,我这里安装的是postgresql-12

1
systemctl restart postgresql-12

3.常用语句

1
2
-- 断开全部用户连接,procpid 不行,就用pid
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='dbname' AND pid<>pg_backend_pid();

4.其他常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#切换用户
sudo su postgres

## psql -h Server -p Port -U Username DatabaseName其中“-h”是指定想要连接的主机,如果是本机的话就是localhost,“-p”是端口号,“-U”是用户名,“DatabaseName”是要进行操作的
## 数据库名称。如果主机就是在本机上,可以直接输入以下的更为简单的命令,只需指定用户名:psql -U Username输入正确的参数之后,就能在终端界面上进行psql的命令行界面,进行相应的操作

#进入数据库
psql

\l:列出所有的数据库;

\c DatabaseName:连接数据库;

\dt:连接进入到某个数据库后,使用此命令查看数据库中的所有表;

\d TableName:查看某个表的描述,此命令可以用来查看某个表中的列元素和相应的数据类型;

\e:打开psql内置的文本编辑器,可以方便的编写脚本。如果需要输入的SQL语句很多,直接在命令行界面上编写会很不方便,这时可以用\e打开内置的编辑器,这个编辑器使用了Vim环境,用这个Vim文本编辑器编写SQL脚本会很方便,保存之后退出,就能自动运行刚才在编辑器中保存的SQL命令,并返回结果;如果需要对刚执行的SQL命令进行修改,可以再次使用\e打开编辑器,里面的内容仍然是上一次保存的文本;

\q:退出psql。

## 删除数据表,后面的分号一定要带着
drop table student2;

## 删除数据库
DROP DATABASE name;
参考文章:
【1】.为什么psql能无密码登录
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。