可以以任何顺序列出目标列名。 VALUES子句或查询的值都与显式或隐式的列列表从左到右。 如果要添加表中的所有列的值,可能不需要在SQL查询中指定列(次)名称。...INNER JOIN: 如果表中有至少一个匹配,则返回行; LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行; RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行; FULL...INTERSECT ALL则包含交集后的重复数据。...EXCEPT ALL则包含交集后的重复数据。...EXISTS指定一个子查询,检测行的存在。NOT EXISTS的作用与EXISTS正好相反。如果子查询没有返回行,则满足了NOT EXISTS中的WHERE子句。
如果要在sql中对两者进行判断,是有区别的: 1 2 3 4 5 6 7 8 9 10 11 --null只能和is或is not搭配,不能使用=、!...= ''; select * from student where name ''; --任何与null的运算比较,结果都是null select 1 > null; --null COALESCE...函数是返回参数中的第一个非null的值,在PostgreSQL 10里,它要求参数中至少有一个是非null的,如果参数都是null会报错。...select COALESCE(null,null,'',now()::varchar); //结果会得到'' //可以和其他函数配合来实现一些复杂点的功能:查询学生姓名,如果学生名字为null或'...,如果没有出现则返回0。
,要么都失败,不存在完成了一部分这样的情况,例如银行转账这样的场景里,转账行为发生后,发送方余额减少,而如果数据库出现了操作错误,接收方余额未增加,则会造成严重的问题。...可以使用如下命令查看 psql 的命令列表: psql --help 连接 PostgreSQL 我们可以通过以下命令连接数据库: # 连接数据库 psql -h -p -U... 当然,我们也可以通过一些第三方工具来更方便地连接数据库使用,我当前使用的 TablePlus 就支持 PostgreSQL 数据库,推荐。...联表查询是指在查询时,将多个表中的数据进行连接,以便查询出更多的信息。...') FROM person; NULLIF 使用 NULLIF 关键字,当第二个参数与第一个相同时返回 NULL,否则返回第一个参数,用于防止一些被除数为 0 的报错等。
PostgreSQL 服务器日志 开启审计日志 编辑 $PGDATA/postgresql.conf文件 vi $PGDATA/postgresql.conf # 做以下修改,下面2部分未提及的全部备注掉...则返回 Mon %A #星期的英文单词的全拼:如星期一,返回 Monday %b #月份的英文单词的缩写:如一月, 则返回 Jan %B #月份的引文单词的缩写:如一月, 则返回 January...:03/08/15 %X #时间的字符串表示 :23:22:08 %y #两个数字表示的年份 15 %Y #四个数字表示的年份 2015 %z #与utc时间的间隔 (如果是本地时间,返回空字符串...) %Z #时区名称(如果是本地时间,返回空字符串) 消息严重级别 Postgresql 数据库巡检 主机信息 CPU mpstat | sed -n '3,$p' | awk -F' ' '{print...md5认证; 异常处理:编辑pg_hba.conf文件,修改参数后重新加载数据库; vi $PGDATA/postgresql.conf pg_ctl reload 检查数据库重要配置 select
PostgreSQL中NULL的意义 PG中,NULL可以表示空numeric值;不能进行数学操作符计算,NULL参与的结果都是NULL。 1、NULL是什么 首先需要理解NULL值是什么。...有一些特殊的语句可以针对 NULL 测试该值,但除此之外,没有任何语句可以用于测试 NULL 值。 让我们做一些有趣的比较,这将清楚 PostgreSQL 中 NULL 的概念。...如果 NULL 是一个正常值,那么结果应该是“t”。但是 NULL 不是一个正常的值,因此,没有结果。...PG的COALESCE函数返回参数中第一个非NULL的值,要求参数中至少有一个是非NULL的,如果参数都为NULL则报错: COALESCE (NULL, 2 , 1); 3)NULLIF 另外一个函数是...NULLIF,如果两个参数相等,则返回NULL,否则返回第一个参数: postgres=# SELECT NULLIF (10, 10); nullif -------- (1 row) postgres
高级tab,设置日志tab,位置参数tab, 命名参数tab,如果自己需要的话可以自己使用和研究。 3、作业项名称,自己填自己的,数据库连接,自己新建和编辑即可。...2)、步骤名称,自己起自己的名字。 数据库连接,自己新建和编辑。 目标模式,如果是Greenplum或者postgresql要输入自己的模式。...COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。 COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。...如果 expression不为空值则返回expression;否则判断value1是否是空值,如果value1不为空值则返 回value1;否则判断value2是否是空值,如果value2不为空值则返回...value3;……以此类推, 如果所有的表达式都为空值,则返回NULL。
LIMIT 获取查询生成的行的子集。 FETCH 限制查询返回的行数。 IN 选择与值列表中的任何值匹配的数据。 BETWEEN 选择值范围内的数据。 LIKE 基于模式匹配过滤数据。...集合运算 主题 描述 UNION 将多个查询的结果集合并为一个结果集。 INTERSECT 组合两个或多个查询的结果集并返回一个结果集,该结果集的行都出现在两个结果集中。...连接删除 根据另一个表中的值删除表中的行。 UPSERT 如果新行已存在于表中,则插入或更新数据。 第 10 节....条件表达式和运算符 主题 描述 CASE 向您展示如何使用CASE表达式构成条件查询。 COALESCE 返回第一个非空参数。您可以使用它将NULL替换为一个默认值。...NULLIF 如果第一个参数等于第二个参数则返回NULL。 CAST 从一种数据类型转换为另一种数据类型,例如,从字符串转换为整数,从字符串转换为日期。 第 16 节.
name列分组聚合,使用string_agg函数将同一name的subject和score按subject顺序连接成字符串。...如果没用BEGIN开启一个事务,任何一条语句都是一个事务,所以select fn_crosstab('cur1')所建立的游标立即被销毁。...如果列很多,需要叠加很多的union all,凸显乏味。更灵活的方法是通过笛卡尔积运算构造数据行,这种方法的关键在于需要一个所需行数的辅助表。...许多关系数据库都提供相应的方法,例如Oracle用connect by level、MySQL用数字辅助表、PostgreSQL用generate_serie函数等。...——unnest 前面两种是相对通用的方法,关系数据库的SQL都支持,而unnest是PostgreSQL独有的函数。
在数据库操作中,NULL值的处理是一个常见而又重要的任务。NULL在数据库中代表缺失或未知的数据,因此在查询、计算和逻辑判断时,它可能会带来一些意想不到的结果。...Oracle数据库提供了多种方法来处理NULL值,其中COALESCE函数是一个强大且优雅的工具。COALESCE函数用于返回其参数列表中的第一个非NULL值。...它的语法非常简单,可以接受两个或多个参数,并返回第一个非NULL的参数值。如果所有参数都是NULL,则COALESCE函数将返回NULL。...SELECT name, COALESCE(salary, 0) AS adjusted_salary FROM employees;在上面的查询中,COALESCE(salary, 0)将返回salary...字段的值,如果它是NULL,则返回0作为默认值。
如果视图是物化的,则其计算结果会被存储在计算机中,从而在使用视图时可以更快的运行。...结果显示的另一个问题就是处理空值,在本书中,我们使用null来使阅读更清晰,但是大多数系统的缺省设置只是将字段留空。可以使用coalesce函数来选择在查询结果中输出空值的方式。...例如,如果我们希望显示教师的ID和工资,但是将空工资显示为0,我们会写: select ID,coalesce(salary, 0) as salary from instructor coalesce...如果索引创建成功,则后面违反候选码声明的任何元组插入企图将会失败。请注意,如果数据库系统支持标准的唯一性声明,这里的唯一性特性就是多余的。 删除索引。...Oracle虚拟私有数据库(Virtual Private Database,VPD)功能支持如下所示的行级授权,允许系统管理员将函数与关系相关联,该函数返回一个谓词,该谓词会自动被添加到使用该关系的任何查询中
coordinator 将查询划分为更小的查询片段,其中每个查询片段可以在分片上独立运行。然后协调器将查询片段分配给 worker,监督他们的执行,合并他们的结果,并将最终结果返回给用户。...然后它从每个片段查询中获取结果,合并它们,并将最终结果返回给用户。...Citus 在第二个子树中启动另一个执行器作业。它将在 page_views 中计算不同的主机。它使用 JOIN 连接中间结果。中间结果将帮助它限制在前二十页。...这个例子展示了 Citus 如何使用分布式子计划在多个步骤中执行查询,以及如何使用 EXPLAIN 来了解分布式查询执行。...该 worker 上的 PostgreSQL 计划程序选择在相应分片表上本地执行该查询的最佳计划。 PostgreSQL 执行器然后运行该查询并将查询结果返回给分布式执行器。
(2) 如果子查询有结果就返回给外层查询,那么EXISTS的结果是TRUE,NOT EXISTS就是FALSE,如此一来,外层查询就会舍弃当前行。...(3) 如果子查询没有返回任何结果,那么NOT EXISTS的结果是TRUE,由此外层查询就会返回当前行(因为他是一个不存在于t02的记录)。...*) from dept; 因为UNION子句会过滤重复项,如果两个表的行数相同,则只会返回一行数据,如果返回两行,说明这两个表中没有完全相同的数据。...多个表中返回缺少的值 使用全外连接,基于一个共同值从两个表中返回缺少的值,全外连接查询就是合并两个表的外连接查询的结果集。...(1) nvl(expr, 0) 如果第一个参数为null,则返回第二个参数。 如果第一个参数为非null,则返回第一个参数。
新的列名被称作别名,他会让检索结果更易于理解,对于一些数据库,可以省略AS关键字,但所有的数据库都支持这个关键字。 3....MySQL中可以用concat连接多列的值, select concat(cname, ' WORKS AS A ', job) from emp; DB2、Oracle和PG使用竖线进行连接, select...ename || ' WORKS AS A '|| job from emp; SQL Server则使用"+"进行连接, select ename + ' WORKS AS A ' + job from...NULL值不会等于或者不等于任何值,而且不能和其自身做比较,不能使用=或者!=,需要使用IS NULL或IS NOT NULL。...可以使用COALESCE将NULL值改为实际值,该函数会返回参数列表第一个非NULL的值,如果c不为0,返回c,否则返回0, select coalesce(c, 0) from emp; 此处能使用CASE
在工作中,对PostgreSQL数据库操作,最难的也就是对jsonb类型的数据进行增删改查了,其他字段跟MySQL数据库没什么区别,现在我就分享一下平时工作中总结的相关操作,这是我承包公司一年sql脚本开发中遇到并总结的...,公司使用这种数据库的可以收藏,提高你的开发速度。...将两个jsonb类型字段求和查询出来,值为空时赋值默认值0 coalesce(ext->>'ward_potential','0')::NUMERIC+coalesce(ext->>'ward_potential...','0')::NUMERIC (5)查询出当月五号 select DATE(to_char(now(),'yyyy-MM-05')) (6)身份证在excel显示中后四位为0,前面加引号,防止显示错误...b 四、where条件组装 (1)将array类型的jsonb数据转化为in条件进行筛选,查询结果用逗号分隔。
一个学生出现了多少次 连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。...all where 排序ORDER BY SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据: ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。...我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法: select coalesce(a,b,c); 参数说明:如果a==null,则选择b;如果b==null...在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。 以下实例中你可以看到 = 和 !...如果所有的表达式都是空值,最终将返回一个空值。使用coalesce在于大部分包含空值的表达式最终将返回空值。
——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。...例如,我们要计算两个列A和B的比值,可以这样写: SELECT A, B, A / NULLIF(B, 0) AS result FROM your_table; 这里,如果B为0,则NULLIF(B,...中的每个值,如果值是空字符串(“”),则该函数返回NULL;如果不是空字符串,就返回原值。...users; 这个例子中,如果email是空字符串,则首先被NULLIF转换为NULL,然后COALESCE函数会将其替换为默认邮箱地址no-email@example.com,这样无论email是'...假设一个电商数据库中有一个订单表,表中有coupon_discount字段,记录了使用优惠券的折扣金额,未使用优惠券的记录这一字段为0。
提供了常用的数据库操作: commit():提交任何未提交的事务(transaction)到数据库。...close():关闭数据库。如果关闭数据库时仍有未提交的事务,则执行回滚操作。...如果成功打开数据库时,它返回一个连接对象。 2 connection.cursor() 该程序创建一个光标将用于整个数据库使用Python编程。...11 cursor.fetchmany([size=cursor.arraysize]) 这个例程中取出下一个组的查询结果的行数,返回一个列表。当没有找到记录,返回空列表。...该方法试图获取尽可能多的行所显示的大小参数。 12 cursor.fetchall() 这个例程获取所有查询结果(剩余)行,返回一个列表。空行时则返回空列表。
2、事务 Oracle这个数据库会使用事务,那么PostgreSQL也需要激活事务。...'else' END,则返回’else’的result。...如果hire_date为NULL,则前面的语句会返回SYSDATE。...FROM中子查询 Postgresql中子查询需要使用括号包含,并提供一个别名。...空字符串与NULL Oracle中,strings()空和NULL在字符串内容中相同。可以将NULL和和一个字符串连接起来作为结果。但是在postgres中,这种情况得到的结果是NULL。
感谢PostgreSQL中文社区的翻译文档 PostgreSQL的全文检索入门 PG的全文检索操作符是@@,当一个tsvector(文档)和tsquery(条件)匹配时返回true,并且前后顺序无影响...---------- f PostgreSQL 10开始,jsonb也支持全文检索了。 和普通的SQL查询一样,只要在WHERE条件中使用这个符号就代表使用全文检索条件筛选文档了。...因为如果使用隐式转换或::tsvector这种默认参数转换,将使用default_text_search_config配置分词,该配置默认是pg_catalog.simple,可能对于绝大多数查询场景并不适用...i | idiom,成语 j | abbreviation,简称 k | tail,后连接成分 l | tmp,习用语...此外,还有一些诸如短词复合: zhparser.multi_short = f这一类的控制分词结果的选项,根据实际使用酌情开启。
领取专属 10元无门槛券
手把手带您无忧上云