每当我需要检查表中某行是否存在时,我总是倾向于编写如下条件:
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) 我正在升级到 3.0,但在升级时遇到了一些问题。具体来说,我试图启动时得到一个错误mongod通过ssh,它试图使用默认的dbpath,而不是我在新YAML配置文件中指定的一个。我继续并重新启动了机器,现在mongod又开始运行了。在这一点上我有点偏执,想知道是否有办法确保存储引擎wiredtiger来自 shell。
所以我有一jsonb列有这样的条目:https : //pastebin.com/LxJ8rKk4
有没有办法对整个jsonb列实现全文搜索?
我正在为我的零售业务构建一个数据库系统。我设置了一些表格,它们是:
所有这些都相互连接,并且能够显示我的库存水平。
我遇到的问题是我还销售捆绑产品 - 其价格与各自的价格不同。
示例:我以 1 美元的价格出售一个橙子,以 1.2 美元的价格出售一个苹果;我以 3.8 美元的价格出售水果套餐 1(2 个橙子和 2 个苹果),以 7 美元的价格出售套餐 2(4 个橙子和 4 个苹果)。
有没有正确的方法来为这些产品包创建关系?
PS:我正在使用 FileMaker Pro 创建这个。
在某些场合,并作出巨大的后update,insert或delete从一个表,我已经开始了VACUUM FULL ANALYZE,以确保DB没有得到太臃肿。在生产数据库中做这件事让我发现这不是一个好主意,因为我可能会阻塞表很长一段时间。所以,我取消了这个过程,也许只是尝试了VACUUM(不是完整的)或者让AUTOVACUUM以后做任何它可以做的事情。
问题是:如果我在“中途”停止 VACUUM 或 AUTOVACUUM,是否所有已经完成的处理都丢失了?
例如,如果VACUUM已经找到 1 M 个死行并且我停止它,那么所有这些信息都丢失了吗?VACUUM 是否以完全事务的方式工作(“全有或全无”,就像大量的 PostgreSQL 进程一样)?
如果可以安全地中断 VACUUM 而不会丢失所有工作,那么有什么方法可以vacuum增量工作吗?[工作 100 毫秒,停止,等待 10 毫秒以允许非阻塞世界其他地方......等等]。我知道您可以通过调整 autovacuum 参数来完成部分工作,但我正在考虑能够以编程方式控制这一点,以便能够在某些时间/在某些条件下执行此操作。
注意:在这种情况下,停止/取消/终止进程意味着:
我假设两者是等价的。我没有使用任何 shell/系统级 kill 命令。
是否有一种“优雅的内置”不区分大小写的方式来检查 db 是否存在?
我只找到了SELECT datname FROM pg_catalog.pg_database WHERE datname='dbname',但这是 CS 检查。想到的第一件事是检索所有数据库名称并手动过滤它们,但我认为有更优雅的方法来做到这一点。
给定两个数字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) 我想检查我可以访问的 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 上我得到不同结果的原因可能是什么?
我试图获得什么是第一范式的明确版本。我阅读的所有内容都略有不同。
许多权威,例如 Date,说根据定义,关系总是处于第一范式,而其他人则给出了要求列表。这意味着对 1NF 的要求从零到很多。
我想区别在于表和关系之间的区别:表可能是一团糟,而关系遵循某些限制。关系在 SQL 中表示为表的事实因此造成了一些混淆。
我特别关注 1NF,因为它与 SQL 数据库有关。问题是:需要什么属性来确保表处于第一范式?
许多权威建议,如果一个表代表一个关系,那么它已经在 1NF 中。这将 1NF 的定义推回到关系的定义。
以下是 1NF 中表的一些属性:
[1] 技术上属性是无序的,但在表格中,行数据必须与列标题的顺序相同。然而,实际的顺序是微不足道的。
在多个数据上:
原子数据的概念是一个项目不能被进一步分解。这个概念是有限制的,因为虽然从技术上讲,一切都可以令人厌烦地分解,但实际上不能进一步分解所讨论的数据,这取决于数据的使用方式。
例如,完整地址或全名通常应该进一步细分,但可能不应该进一步细分诸如给定名称或城镇名称之类的组件,尽管它们可以作为字符串。
至于重复的列,它是一个设计不良列具有近重复列,例如phone1,phone2等。通常,重复数据指示用于一个附加的相关表的需要。
依赖
行之间不应该有任何关系,除了它们符合相同的标题。
列之间也应该没有关系,但我相信这是更高范式的主题。
问题是:1NF 的定义中有多少上述内容?独立行位也进入了吗?
我用谷歌搜索了这个错误消息,它说:
INS-30014:无法检查指定的位置是否在 CFS 上
原因:指定的位置可能没有所需的权限。
操作:提供具有适当的所需权限的位置。
但我已经是管理员并以管理员身份运行安装文件。任何想法?任何帮助将不胜感激。谢谢。
postgresql ×6
sql-server ×3
mysql ×2
autovacuum ×1
catalogs ×1
filemaker ×1
functions ×1
json ×1
maintenance ×1
mongodb ×1
mongodb-3.0 ×1
oracle ×1
oracle-12c ×1
relations ×1
sqlite ×1
t-sql ×1
vacuum ×1