
postgreSQL
majinbo111
这个作者很懒,什么都没留下…
展开
-
PostgreSQL HAVING 子句
596. 超过5名学生的课courses表结构create table courses( student varchar(20), class varchar(20) );insert into courses(student, class) values ('A', 'Math'), ('B', 'English'), ('C', 'Math'), ('D', 'Biology'), ('E', 'Math'), ('F', 'Computer'), ('G', 'Math'), ('H', 'M原创 2021-01-07 11:26:49 · 1458 阅读 · 0 评论 -
postgresql 使用 pg_stat_activity获取链接数
pg_stat_activity 获取数据库的状态 \d+ pg_stat_activity View "pg_catalog.pg_stat_activity" Column | Type | Collation | Nullable | Default | Storage | Description------------------+----------------原创 2020-12-16 17:11:58 · 587 阅读 · 2 评论 -
postgresql 去除或添加 not null约束
去除 not null 约束alter table table_name alter column_name drop not null;添加not null 约束alter table table_name alter column_name set not null;原创 2020-09-21 20:01:56 · 7327 阅读 · 0 评论 -
postgresql psql查看/修改 服务端与客户端的编码
查看编码 (show)test=# \encoding SQL_ASCIItest=# show client_encoding; client_encoding ----------------- SQL_ASCII(1 row)test=# show server_encoding; server_encoding ----------------- UTF8(1 r...原创 2020-04-16 13:47:44 · 5214 阅读 · 0 评论 -
Postgresql 约束(constraint)
声明:以下内容看完文档仅个人理解,仅供参考,详见下方参考资料。约束(constraint)约束分为检查约束(Check Constraints)、非空约束(Not-Null Constraints)、唯一约束(Unique Constraints)、主键(Primary Keys)、外键(Foreign Keys)、排他约束(Exclusion Constraints)。所有约束都可以成为命名...原创 2020-03-18 22:42:29 · 11890 阅读 · 0 评论 -
postgresql 表的导出与导入数据
#!/bin/bashset -eset -x# 导出数据export PGPASSWORD='db user passwd'psql -h host -U user -d dbname -c "\copy ( select column1, column2, column3 from table ) to export.data"# 导入数据export PGPASSWOR...原创 2019-11-24 14:20:27 · 701 阅读 · 0 评论 -
postgresql 计算时间差
按日期计算天数差# select (('2019-11-18 12:05'::timestamp)::date - ('2019-10-18 12:05'::timestamp)::date) as day; day ----- 31# select (('2019-11-18 00:05'::timestamp)::date - ('2019-10-18 12:05'::times...原创 2019-10-18 11:59:31 · 9890 阅读 · 0 评论 -
postgresql SQL COUNT(DISTNCT FIELD) 优化
引用引自文章1:https://www.cnblogs.com/wangzhen3798/p/7630602.html引自文章2:https://www.jb51.net/article/65680.htm感谢前辈们趟坑分享。背景统计某时段关键词的所有总数,也包含null (statistics 有400w+的数据,表大小为 600M),故写出sql:select count(d...原创 2019-10-12 15:54:37 · 1656 阅读 · 0 评论 -
postgresql coalesce COALESCE
https://www.postgresql.org/docs/10/static/functions-conditional.html#FUNCTIONS-COALESCE9.17.2. COALESCECOALESCE(value [, ...])The COALESCE function returns the first of its arguments that is not...原创 2018-09-02 17:09:56 · 1839 阅读 · 0 评论 -
update from 语句
现有表1:select * from jinbo.jsonb_table1; id | extend ----+--------------------------------- 1 | {"id": "1", "city": "beijing&q原创 2018-08-24 18:24:46 · 6059 阅读 · 2 评论 -
nulls first 或 nulls last
#原数据select * from jinbo.tel_info; person | day | recevice | miss --------+------------+----------+------ A | 2018-01-18 | 10 | 0 B | 2018-01-18 | 0 | 5 C ...原创 2018-08-27 20:59:28 · 389 阅读 · 0 评论 -
postgreSQL 小数点惹得祸
按每个活动的达标率展示示例表 activity 如下:activity | need | already | userA | 1000 | 1 | U_AB | 500 | 1 | U_BB | 500 | 1 | U_BA | 1000 | 1 | u_A开始...原创 2018-05-17 16:08:21 · 5158 阅读 · 0 评论 -
split_part 与 string_to_array
问题现在想取”按某个字符分割的信息” 字段,比如说: 标签字段,tag = 休闲,娱乐,运动,玩耍, 要取就是”休闲”这个词第一种方法: string_to_arrayselect string_to_array('休闲,娱乐,运动,玩耍', ','); string_to_array ----------------------- {休闲,娱乐,运动,玩耍}...原创 2018-04-23 21:10:24 · 11634 阅读 · 0 评论 -
postgresql 的ltree 使用
https://www.postgresql.org/docs/10/static/ltree.htmlltree 其实就是一棵树的模型存储到数据库的一种结构类型。要是没有ltree 类型,可以如下描述 树型结构或层级结构#这里描述的是中国所有的省份及城市的关系,仅列部分id | level | city | city_id1 | 0 | 陕西 | 02 | ...原创 2018-04-10 12:11:45 · 2305 阅读 · 0 评论 -
postgresql 类型转化时遇到的问题
postgres=# alter table test alter config type jsonb;ERROR: column "config" cannot be cast automatically to type jsonb HINT: Specify a USING jsonb to perform the conversion.之前config 字段类型为 hstore,...原创 2018-03-01 15:39:35 · 2191 阅读 · 0 评论 -
SQL 计算百分比,避免除零错误
案例电话接听漏接表:tel_info person day recevice miss A 2018-01-18 10 0 B 2018-01-18 0 5 C 2018-01-18 4 6 D 2018-01-18 0 0计算每个人的漏接率,大家肯定会直接写SQL:S原创 2018-01-18 20:42:26 · 3462 阅读 · 0 评论 -
sum 与 count 配合case when 的区别
案例表:#select * from test.student order by id; id | name | score | course | grade | sex ----+-------+-------+--------+-------+----- 1 | alice | 60 | 1 | 6 | 0 2 | bob | 90原创 2018-01-22 21:10:09 · 17606 阅读 · 7 评论 -
postgreSQL 非count方法算记录数
一般方法select count(1) from table_name;全量扫描一遍表,记录越多,查询速度越慢新法PostgreSQL 还真提供了一个这样的途径,那就是系统表 pg_class,这个系统表里头,存储着每个表的统计信息,其中 reltuples 就是对应的表的统计行,统计行的数据是pg有个独立进程,定期扫描不同的表,收集这些表的统计信息,保存在系统表里头。方法如下:select原创 2016-09-09 10:55:09 · 14629 阅读 · 0 评论 -
postgresql jsonb 拼接
postgresql jsonb 拼接extend 字段为jsonb类型update crm.test set extend = extend::jsonb || ('{"name":"' || (extend->>'arrive') || '"}')::jsonb where id = 1;原创 2018-09-30 17:54:03 · 3468 阅读 · 5 评论 -
psql could not connect to server
Question: psql connection refusedpsql -h 100.80.193.91 -U user -d database -p 5432#Tips:psql: could not connect to server: connection refused Is the server running on host "100.80.193.91" and ac...原创 2018-10-28 16:14:03 · 3009 阅读 · 1 评论 -
postgresql 第一列null排在前,然后再按第二列的顺序排序
表# select * from jinbo.persons; id | lastname | firstname | address | city ----+----------+-----------+---------------+---------- 3 | Snow | Jon | Oxford Street | London 1 |...原创 2019-09-10 20:39:12 · 818 阅读 · 0 评论 -
postgresql 查看索引是否有效及索引使用情况
查看索引是否有效1.未使用索引前jinbo=# explain analyze select * from jinbo.student where score < 80 and score < 90 and sex = 1; QUERY PLAN ...原创 2019-08-01 14:29:58 · 21653 阅读 · 4 评论 -
postgresql age
postgresql age计算出指定时间点到当前时间的时间差# select extract(year from age('2019-01-01'::date)); date_part ----------- 6结果是一串人类可读的文字,现在需要截取其中自己需要的部分# select extract(year from age('2019-01-01'::date...原创 2019-06-11 18:10:23 · 5335 阅读 · 2 评论 -
postgresql 表达式索引
表达式索引:根据业务特点及场景去建立例1:比如说,密码存储的是md5(id || username)的值,就可以这么建立索引: select id from user where passwd = md5(id || username);这个时候我们就可以建立索引去加快查询: create index on user(md5(id || username));例2:...原创 2019-06-11 17:48:40 · 1718 阅读 · 0 评论 -
postgresql where in改写为 where any
通常 where in sqlwhere column in (field-1,field-2,...,field-n);稍高级 where in sql where column in (select column from table where condition)更高级 where in sqlwhere column = any(array(select id from t...原创 2019-06-11 17:23:51 · 6745 阅读 · 1 评论 -
postgresql sum max min
创建表create table(empno smallint, ename varchar(20), job varchar(20), mgr smallint, hiredate date, sal bigint, comm bigint, deptno smallint);insert into jinbo.employee(empno,ename,job, mgr, hiredate,...原创 2019-06-11 17:06:37 · 1371 阅读 · 0 评论 -
Postgresql add/drop default
add defaultalter table table_name alter column_name set default 'default_value';drop defaultalter table table_name alter column_name drop default;原创 2019-05-29 21:01:09 · 1124 阅读 · 0 评论 -
Set a column to self-increment
ContentHow to increase itselfDatatype-serialFor exampleIn factSequenceFirst StepSecond StepLast StepOtherReferenceHow to increase itselfPostgreSQL provides two ways of self-increasing, the first is ...原创 2019-05-27 20:19:17 · 197 阅读 · 0 评论 -
主键与唯一索引的区别
主键和唯一索引都要求值唯一,但是它们还是有区别的:①.主键是一种约束,唯一索引是一种索引;②.一张表只能有一个主键,但可以创建多个唯一索引;③.主键创建后一定包含一个唯一索引,唯一索引并一定是主键;④.主键不能为null,唯一索引可以为null;⑤.主键可以做为外键,唯一索引不行;...转载 2019-04-23 12:02:38 · 557 阅读 · 0 评论 -
jsonb字段内部字段查询
? 操作符dapp_product_beta=# select '{&quot;a&quot;:&quot;a&quot;,&quot;b&quot;:{&quot;c&quot;:&quot;d&quot;}}'::jsonb ? 'c'; ?column?---------- f(1 row) dapp_product_beta=#原创 2019-03-15 18:07:22 · 2488 阅读 · 0 评论 -
postgresql pg_dump
man pg_dump1.export tablepg_dump -h 127.0.0.1 -p 5432 -d db_test -U test -t public.test > test.sql2.import tabledrop table public.testpsql -h 127.0.0.1 -p 5432 -d db_test -U test -f test.sql...原创 2018-10-28 18:21:20 · 1127 阅读 · 0 评论 -
PostgreSql 聚合函数string_agg与array_agg
string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。 https://www.postgresql.org/docs/9.6/static/functions-aggregate.htmlarray_agg(expression)把表达式变成一个数组 一般配合 array_to_string() 函数使用string_agg(expression, de原创 2017-12-26 15:23:11 · 100513 阅读 · 5 评论 -
postgresql rank() over, dense_rank(), row_number() 的区别
引原文如下学生表student,学生表中有姓名、分数、课程编号,需要按照课程对学生的成绩进行排序select * from jinbo.student; id | name | score | course ----+-------+-------+-------- 5 | elic | 70 | 1 4 | dock | 100 | 1 3 |原创 2017-12-29 02:54:02 · 18753 阅读 · 0 评论 -
让用户信息安全起来
互联网信息时代,只要游注册,就得让用户提供相关的个人证件号,手机号,及其他信息,如何让用户的信息安全存储了?接下来让我门见证PostgreSQL的强大安装 pgcrypto加密模块#create extension pgcrypto;CREATE EXTENSION这里提供了若干个常用加解密函数,可以直接在系统里头用,比如:encrypt# select encrypt('18600001111'原创 2016-09-09 11:27:33 · 436 阅读 · 0 评论 -
postgreSQL查看索引的使用情况
存放索引详细信息的表data_name=# \d+ pg_stat_user_indexes; View "pg_catalog.pg_stat_user_indexes" Column | Type | Modifiers | Storage | Description ---------------+--------+-----------+-----原创 2016-09-09 09:06:05 · 17396 阅读 · 3 评论 -
PostgreSQL如何在一大堆字段里面排除几个字段select出来
最近看了一位大神的博客,感觉挺受用的,记录一下,里边引用了一篇文章如下: http://www.postgresonline.com/journal/archives/41-How-to-SELECT-ALL-EXCEPT-some-columns-in-a-table.html大堆字段排除几个字段select出方法一、命令行方式输入:SELECT 'SELECT ' || array_to_s原创 2016-07-26 11:20:48 · 8782 阅读 · 2 评论 -
优化慢执行或慢查询的方法
1、查询如果慢的建立索引可以提升速度相当于就是之前一个表数据量比较小,之后数据量大了查询就变慢,此时在经常用到的字段上加个索引,效率会翻倍很多的2、建立索引是为了提升速度,所以避免对索引字段进行计算或类型转化例如: where a * 5 = 10 可以 转化为 where a = 10/5 这样既可以保证业务逻辑也可以继续使用原索引去操作,所以要避免对索引字段进行计算或类型转化3、表的设计尤为重原创 2016-06-22 20:29:40 · 3982 阅读 · 0 评论 -
获取schema所有表&&获取某表所有字段
获取schame所有表获取某表所有字段原创 2016-04-15 17:00:31 · 7742 阅读 · 0 评论 -
postgre计算小技巧
整数相除计算小数位 select round(140000*1.0/280000, 2); round ------- 0.50(1 row)计算字符串长度select length('123123'); length -------- 6(1 row)select length('123123汉字'); length -------- 8(1 ro原创 2016-04-07 20:11:11 · 548 阅读 · 0 评论 -
TRUNCATE TABLE 与 DELETE
TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别具体到性能,效率,操作方式等方面 1.DELETE ・DML语言 ・可以回退 ・可以有条件的删除 DELETE FROM 表名 WHERE 条件2.TRUNCATE TABLE ・DDL语言 ・无法回退 ・默认所有的表内容都删除 ・删除速度比delete快。TRUNCATE TABLE 表原创 2016-04-06 20:46:02 · 408 阅读 · 0 评论