小编joa*_*olo的帖子

EXISTS (SELECT 1 ...) vs EXISTS (SELECT * ...) 一个还是另一个?

每当我需要检查表中某行是否存在时,我总是倾向于编写如下条件:

SELECT a, b, c
  FROM a_table
 WHERE EXISTS
       (SELECT *  -- This is what I normally write
          FROM another_table
         WHERE another_table.b = a_table.b
       )
Run Code Online (Sandbox Code Playgroud)

还有一些人这样写:

SELECT a, b, c
  FROM a_table
 WHERE EXISTS
       (SELECT 1   --- This nice '1' is what I have seen other people use
          FROM another_table
         WHERE another_table.b = a_table.b
       )
Run Code Online (Sandbox Code Playgroud)

当条件NOT EXISTS不是EXISTS: 在某些情况下,我可能会用 aLEFT JOIN和一个额外的条件(有时称为antijoin)来编写它:

SELECT a, b, c
  FROM a_table
       LEFT JOIN another_table ON another_table.b = …
Run Code Online (Sandbox Code Playgroud)

mysql postgresql oracle sql-server

47
推荐指数
5
解决办法
11万
查看次数

从外壳检查存储引擎

我正在升级到 3.0,但在升级时遇到了一些问题。具体来说,我试图启动时得到一个错误mongod通过ssh,它试图使用默认的dbpath,而不是我在新YAML配置文件中指定的一个。我继续并重新启动了机器,现在mongod又开始运行了。在这一点上我有点偏执,想知道是否有办法确保存储引擎wiredtiger来自 shell。

mongodb mongodb-3.0

37
推荐指数
2
解决办法
4万
查看次数

如何使用 Postgres 在 jsonb 列上使用全文搜索?

所以我有一jsonb列有这样的条目:https : //pastebin.com/LxJ8rKk4

有没有办法对整个jsonb列实现全文搜索?

postgresql full-text-search json

20
推荐指数
2
解决办法
1万
查看次数

具有捆绑产品的产品的数据库设计

我正在为我的零售业务构建一个数据库系统。我设置了一些表格,它们是:

  • 产品
  • 购买
  • 销售量
  • 平衡

所有这些都相互连接,并且能够显示我的库存水平。

我遇到的问题是我还销售捆绑产品 - 其价格与各自的价格不同。
示例:我以 1 美元的价格出售一个橙子,以 1.2 美元的价格出售一个苹果;我以 3.8 美元的价格出售水果套餐 1(2 个橙子和 2 个苹果),以 7 美元的价格出售套餐 2(4 个橙子和 4 个苹果)。

有没有正确的方法来为这些产品包创建关系?

PS:我正在使用 FileMaker Pro 创建这个。

database-design relations filemaker

15
推荐指数
1
解决办法
3760
查看次数

取消 PostgreSQL 中的 (AUTO)VACUUM 进程是否会使所有工作都变得无用?

在某些场合,并作出巨大的后updateinsertdelete从一个表,我已经开始了VACUUM FULL ANALYZE,以确保DB没有得到太臃肿。在生产数据库中做这件事让我发现这不是一个好主意,因为我可能会阻塞表很长一段时间。所以,我取消了这个过程,也许只是尝试了VACUUM(不是完整的)或者让AUTOVACUUM以后做任何它可以做的事情。

问题是:如果我在“中途”停止 VACUUM 或 AUTOVACUUM,是否所有已经完成的处理都丢失了?

例如,如果VACUUM已经找到 1 M 个死行并且我停止它,那么所有这些信息都丢失了吗?VACUUM 是否以完全事务的方式工作(“全有或全无”,就像大量的 PostgreSQL 进程一样)?

如果可以安全地中断 VACUUM 而不会丢失所有工作,那么有什么方法可以vacuum增量工作吗?[工作 100 毫秒,停止,等待 10 毫秒以允许非阻塞世界其他地方......等等]。我知道您可以通过调整 autovacuum 参数来完成部分工作,但我正在考虑能够以编程方式控制这一点,以便能够在某些时间/在某些条件下执行此操作。


注意:在这种情况下,停止/取消/终止进程意味着:

  • 如果使用 pgAdmin,请按“取消查询”按钮。
  • 如果以编程方式工作,请调用 pg_cancel_backend()。

我假设两者是等价的。我没有使用任何 shell/系统级 kill 命令。

postgresql maintenance vacuum autovacuum

14
推荐指数
1
解决办法
2万
查看次数

检查 postgresql 数据库是否存在(不区分大小写的方式)

是否有一种“优雅的内置”不区分大小写的方式来检查 db 是否存在?

我只找到了SELECT datname FROM pg_catalog.pg_database WHERE datname='dbname',但这是 CS 检查。想到的第一件事是检索所有数据库名称并手动过滤它们,但我认为有更优雅的方法来做到这一点。

postgresql catalogs

12
推荐指数
2
解决办法
3万
查看次数

如何在标准 SQL 或 T-SQL 中生成 1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, ... 系列?

给定两个数字nand m,我想生成一系列的形式

1, 2, ..., (n-1), n, n, (n-1), ... 2, 1
Run Code Online (Sandbox Code Playgroud)

并重复它m几次。

例如,对于n = 3and m = 4,我想要以下 24 个数字的序列:

1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 3, 3, 2, 1
----------------  ----------------  ----------------  ----------------
Run Code Online (Sandbox Code Playgroud)

我知道如何通过以下两种方法之一在 PostgreSQL 中实现此结果:

使用以下查询,该查询使用该generate_series函数,以及一些确保订单正确的技巧:

WITH parameters (n, m) AS
(
    VALUES (3, 5)
)
SELECT 
    xi
FROM
(
    SELECT
        i, i …
Run Code Online (Sandbox Code Playgroud)

postgresql sql-server t-sql functions

11
推荐指数
4
解决办法
7402
查看次数

如何检查我有权运行查询的数据库服务器上安装了什么数据库引擎?

我想检查我可以访问的 Datasase 服务器上正在运行什么类型的 sql。我只能访问 Web 界面和表格列表。

通过该界面,我可以对列表中的表运行查询。

如何获取有关服务器和服务器正在运行的版本的更多信息。我不知道服务器正在运行的 IP 或端口。

我想知道服务器是 MySQL、Mircosoft SQL Server、Oracle SQL、Postgre SQL 还是其他 sql server。

我正在谈论的网站是这个: w3schools.com SQL editor

编辑 2:虽然对于某些命令 select sqlite_version() 对我有用,但它不起作用。这是响应的屏幕截图。

在此处输入图片说明

编辑 3:在 Chromium 浏览器上,命令工作正常。但是在 Firefox 浏览器上,该命令不起作用。

我还提到我正在运行 Linux。

您认为在 Firefox 和 Chrome 上我得到不同结果的原因可能是什么?

mysql postgresql sqlite sql-server database-engine

11
推荐指数
4
解决办法
6290
查看次数

第一范式:明确定义

我试图获得什么是第一范式的明确版本。我阅读的所有内容都略有不同。

许多权威,例如 Date,说根据定义,关系总是处于第一范式,而其他人则给出了要求列表。这意味着对 1NF 的要求从零到很多。

我想区别在于表和关系之间的区别:表可能是一团糟,而关系遵循某些限制。关系在 SQL 中表示为表的事实因此造成了一些混淆。

我特别关注 1NF,因为它与 SQL 数据库有关。问题是:需要什么属性来确保表处于第一范式?


许多权威建议,如果一个表代表一个关系,那么它已经在 1NF 中。这将 1NF 的定义推回到关系的定义。

以下是 1NF 中表的一些属性:

  • 列顺序无关紧要 [1]
  • 行顺序无关紧要
  • 所有行的长度相同(即行数据与列标题匹配)
  • 没有重复的行(这可以使用代理主键来保证,但 PK 本身不是必需的)
  • 没有重复的列
  • 每一列包含一个单一值(原子)

[1] 技术上属性是无序的,但在表格中,行数据必须与列标题的顺序相同。然而,实际的顺序是微不足道的。

多个数据上

原子数据的概念是一个项目不能被进一步分解。这个概念是有限制的,因为虽然从技术上讲,一切都可以令人厌烦地分解,但实际上不能进一步分解所讨论的数据,这取决于数据的使用方式。

例如,完整地址或全名通常应该进一步细分,但可能不应该进一步细分诸如给定名称或城镇名称之类的组件,尽管它们可以作为字符串。

至于重复的列,它是一个设计不良列具有重复列,例如phone1phone2等。通常,重复数据指示用于一个附加的相关表的需要。

依赖

行之间不应该有任何关系,除了它们符合相同的标题。

列之间也应该没有关系,但我相信这是更高范式的主题。

问题是:1NF 的定义中有多少上述内容?独立行位也进入了吗?

normalization database-design relational-theory

10
推荐指数
2
解决办法
1052
查看次数

无法检查指定的位置是否在 CFS 上

我用谷歌搜索了这个错误消息,它说:

INS-30014:无法检查指定的位置是否在 CFS 上
原因:指定的位置可能没有所需的权限。
操作:提供具有适当的所需权限的位置。

但我已经是管理员并以管理员身份运行安装文件。任何想法?任何帮助将不胜感激。谢谢。

在此输入图像描述

oracle-12c

9
推荐指数
2
解决办法
3万
查看次数