【数据库】数据库查询-PGSQL

1.select extract(year from now()); 提取现在这个时间的年丰 month,day,hour

 

2.select timestamp '2011-06-03'; 返回时间戳

 

3.select age(current_date,current_date-1)<='25 hours'; 查询A和B的时间差距,小于多少

 

4.to_timestamp(substring(to_char(month, 'yyyy-MM-dd hh24 : MI : ss' )FROM 1 FOR 7),'yyyy-MM-dd') ;返回时间戳

 

 5.   sum(case log.grade when '2' then 1 else 0 end) as "2", ;Case When 语句

 

sum(case when 1>3 then true else false end)

 

 

6. DATE_ADD(#{month, jdbcType=TIMESTAMP},INTERVAL 1 MONTH ) 日期加一个月

 

7.数字保留4位小数

//select 8/(100-3) as c1,

       round(8/(100-3) ,4) as c2,

     round(8/(100-3)::numeric ,4) as c3,

       //8/(100-3)::numeric as c4;

 

7.select * from A a join left  B b on a.c=b.d 左连 只保留A,除非a.c可对应b.d的两条。

select * from A a join right;

 

8.数据库jsonb使用

建表语句如下:

create table if not exists name_age (

info jsonb

)

插入数据可以直接以json格式插入:

insert into name_age values('{"id":1,"name":"小明", "age":18}')

在json里插入新的key值gender,如下:

SELECT info||'{"gender":"男"}'::jsonb from name_age where (info->>'id')::int4 = 1

select replace(last_day(((top + (i||' month')::interval))::date),'-','')::int into r;

 

9.select date_trunc('month',to_date('20150305','yyyymmdd'));

select date(zz) from

generate_series(date_trunc('month',to_date('20150305','yyyymmdd')),

date_trunc('month',to_date('20150705','yyyymmdd')),'1 month') as tt(zz);

 

查询数据   https://www.postgresql.org/docs/9.6/functions-json.html

Postgres里的查询需要用到查询符。比如说,我们要查询id为1的数据,语句如下:

select info from name_age where info @> '{"id":1}'::jsonb

用到了 @> 这个查询符,表明info当前这条记录里的顶层json中有没有id为1的key-value对;有的话则满足条件。

再来一个复杂一点的查询的,查询 age>16 的记录,并且只显示 name ,语句如下:

select info->'name' from name_age where (info->>'age')::int4 > 16

### 如何执行 PgSQL 数据库查询 对于 PostgreSQL (PgSQL),可以利用多种方法来进行数据库查询。最常用的方法之一是通过 `psql` 命令行工具连接到数据库并执行 SQL 查询语句。 #### 使用 psql 执行简单查询 要使用 `psql` 进行查询,首先要登录到目标数据库: ```bash psql -h 主机地址 -p 端口号 -U 用户名 -d 数据库名称 ``` 例如,如果想要以用户名 `sysdba` 登录位于本地主机上的名为 `data_center` 的数据库,则命令如下所示[^1]: ```bash psql -h 127.0.0.1 -p 5432 -U sysdba -d data_center ``` 成功进入交互环境之后就可以输入标准的 SQL SELECT 语句来获取数据了。比如查找表中的所有记录: ```sql SELECT * FROM 表名; ``` 另外还可以直接在 shell 中运行单条查询而不需要启动完整的 psql 控制台会话: ```bash psql -c "SELECT column_name(s) FROM table_name;" -h host -p port -U user -d dbname ``` 这种做法非常适合于自动化脚本或是快速测试某些特定条件下的返回结果。 为了提高效率以及更好地管理复杂的查询逻辑,建议创建存储过程或函数封装常用的业务处理流程;同时合理设计索引来优化性能表现[^2]。 当涉及到从 Oracle 转移到 PostgresQL 场景下时,需要注意两者之间存在的差异点,包括但不限于语法兼容性、内置函数支持等方面的问题,在迁移过程中可能需要调整部分原有代码才能正常工作于新的平台之上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值