小编MDC*_*CCL的帖子

使用元组关系微积分查找成绩最高的学生

假设我有一张学生表,其中包含他们的 ID 和成绩:

-----------------
| id  |  grade  |
-----------------
|  1  |    83   |
|  2  |    94   |
|  3  |    92   |
|  4  |    78   |
Run Code Online (Sandbox Code Playgroud)

我如何编写引用最高分的学生的元组关系微积分公式?

我的尝试:

从 SQL 的角度考虑,我会编写一个查询,该查询对表与自身进行笛卡尔乘积,取比其他等级低的每个等级,然后从原始表中减去。但是,在元组关系演算中,不可能在子查询中构建子表,这就是我被卡住的原因。

但是,我在这个方向尝试了一些东西:

{ <id> | ? grade1 ? students (id, grade) ? ? grade2 ? students (id, grade2) ? grade1 > grade2}
Run Code Online (Sandbox Code Playgroud)

我相信这会让我获得较低的成绩,但是我如何从原始学生表中减去所有这些?我不允许将此语句插入到另一个 TRC 查询中。在此先感谢您的帮助!

database-theory relational-theory relational-calculus

6
推荐指数
1
解决办法
8068
查看次数

不在表中的所有缺失订单号的列表

我们的工作场所已开始扫描所有文件,而不是手动将它们保存在档案等中。

平均而言,我们每次扫描 1,000 个文档(每天大约发生 30 次)。

每次我们扫描 1,000 个文档时,我们都会收到少量的 OCR 错误/警告。

是否可以将最低和最高顺序号提供给变量并让 SQL Server 输出不在最低和最高顺序号之间的表中的所有缺失顺序号的列表?

例如

OCROrderNo
---------------
9001
9002
9006
9007
9008
9009
Run Code Online (Sandbox Code Playgroud)

最低编号 9001,最高编号 9009

MissingOrderNos
--------------------
9003
9094
9005
Run Code Online (Sandbox Code Playgroud)

附加信息

根据答案,这就是我正在尝试的:

DECLARE @Start INT = 1497389
        , @End INT = 1498264

SELECT @Start + N - 1
FROM   dbo.Numbers
WHERE  N <= ( 1 + @End - @Start )
EXCEPT
SELECT [ORDERNUMBER]
FROM   [dwdata].[dbo].[ORDERS]
ORDER BY [ORDERNUMBER] DESC
Run Code Online (Sandbox Code Playgroud)

导致:

消息 207,级别 16,状态 1,第 10 行
无效的列名“ORDERNUMBER”。


如果语句包含 …

sql-server order-by except

6
推荐指数
1
解决办法
1015
查看次数

为什么我的 pg_restore 命令不起作用?

昨天,我使用以下命令创建了各种 PostgreSQL 数据库的备份:

pg_dump -Fc -d junk -h localhost -p 5434 -U postgres -W > z:\pg_dump\96_junk.dump
Run Code Online (Sandbox Code Playgroud)

我为每个数据库创建了单独的备份。

今天,我尝试使用以下命令将它们恢复到升级后的数据库服务器:

pg_restore -h localhost -p 5434 -U postgres -W -C -v z:\pg_dump\96_junk.dump
Run Code Online (Sandbox Code Playgroud)

当我pg_restore使用上面的命令运行时,数据库似乎已恢复。控制台屏幕显示一系列 SQL 语句和我希望看到的该数据库的其他消息,最后显示的输出是“PostreSQL 数据库转储完成”。

当我检查数据库时,数据库不存在。我究竟做错了什么?

使用版本信息

  • 使用版本9.6.0创建的备份

  • 尝试使用版本9.6.1进行恢复

postgresql backup restore pg-restore postgresql-9.6

6
推荐指数
1
解决办法
3万
查看次数

SQL 代理 PowerShell 语法错误

我正在尝试在 SQL 代理作业 (SQL Server 2016) 中设置 PowerShell 脚本。我正在使用第三方模块 DBATOOLS.psd1,它似乎是我遇到语法错误的地方。目前我的 SQL 作业有一行代码失败:

Import-Module e:\dbatools-master\dbatools-master\dbatools.psd1
Run Code Online (Sandbox Code Playgroud)

为什么作业失败并出现以下错误?当我通过 PowerShell ISE 运行它时,此命令工作正常。

Error Message: Unable to start execution of step 1 (reason: line(5): Syntax error).  The step failed.
Run Code Online (Sandbox Code Playgroud)

sql-server powershell sql-server-agent sql-server-2016 dbatools

6
推荐指数
1
解决办法
1835
查看次数

T-SQL 减号运算符

这些是我创建并在其中插入值的表:

CREATE TABLE Customer
(Customer_No INTEGER IDENTITY (1,1) PRIMARY KEY,
 Customer_Name VARCHAR(30) NOT NULL
)

CREATE TABLE DVD
(DVD_No INTEGER IDENTITY (1,1) PRIMARY KEY,
 DVD_Name VARCHAR(30)
)

CREATE TABLE DVD_Purchase
(DVD_Purchase_No INTEGER IDENTITY (1,1) PRIMARY KEY,
 DVD_No INTEGER NOT NULL,
 Customer_No INTEGER NOT NULL
 )

INSERT INTO Customer (Customer_Name)
VALUES('Daman')
INSERT INTO Customer (Customer_Name)
VALUES('Saif')
INSERT INTO Customer (Customer_Name)
VALUES('Gurung')
INSERT INTO Customer (Customer_Name)
VALUES('Upendra')
INSERT INTO Customer (Customer_Name)
VALUES('Ornob')

INSERT INTO DVD (DVD_Name)
VALUES('Bleach')
INSERT INTO DVD (DVD_Name)
VALUES('Gintama') …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2014 except

6
推荐指数
1
解决办法
3638
查看次数

在 ChineseTaiwan Collat​​ion 中,VARCHAR 内存缓冲区似乎正在中断

我很难用英语写一些东西。我希望你明白。我使用了翻译器并对其进行了审查。

我创建了两个临时数据库。排序规则分别是“Korea_Wansung_CI_AS”和“Chinese_Taiwan_Stroke_CI_AS”。

我创建了一个带有类型列的临时表,VARCHAR(2048)我刚刚在INSERT这里创建了一个用于此表数据的过程。

当从使用 c++ oledb 的服务器调用存储过程时,该VARCHAR值被加密并作为 UTF-8 发送。

我们发送

  • '???' -> 'Korean_Wansung'¨
  • “??????” -> 'Chinese_Taiwan'。

我已经通过调试验证该值是使用普通 UTF-8 加密的。

  • '???' -> UTF-8 -> '\xed\x95\x9c\xea\xb5\xad\xec\x96\xb4'

  • “??????” -> UTF-8 -> '\xe9\x9f\x93\xe5\x9c\x8b\xe4\xba\xba\xe5\xad\xb8\xe5\x8f\xb0'

在这里,我有一个问题。

当通过数据库中的SELECT语句回读该表时,我们发现对于Korean_Wansung,字符串'matched by the Code Page 949' 正常出现。

但不适用于Chinese_Taiwan。存储在内存中的值本身似乎已损坏。

如果您从服务器获取该值并对其进行解码,那么对于 Korean_Wansung 而言,原始字符将显示为正常字符。

但是在中国的情况下,它不会正常出来。

我需要你的帮助。

如果您需要更多信息,我们会迅速回复您并上传。

谢谢你。

sql-server collation

6
推荐指数
2
解决办法
166
查看次数

候选键的概念是否只存在于理论上?

我知道 RDBMS 理论中候选键的概念,但是候选键真的存在于实际的 SQL 引擎中吗?我的意思是有什么方法可以在任何 SQL 数据库管理系统(例如 SQL Server、Postgres、MySQL、Oracle 等)中将特定列或列集指定为候选键?

是否有任何保留关键字用于将列指定为候选键,例如PRIMARY KEYUNIQUE在主键列和唯一列的情况下?

我觉得UNIQUE约束本身提供了候选键概念的实现。我认为拥有单独的CANDIDATE KEY关键字没有任何实际价值。是这样吗?

rdbms primary-key relational-theory unique-constraint candidate-key

6
推荐指数
1
解决办法
411
查看次数

如何存储高维(N &gt; 100)向量和索引以通过余弦相似度进行快速查找?

我正在尝试在 PostgreSQL 表中存储word/doc 嵌入的向量,并希望能够快速将具有最高余弦相似度的 N 行提取到给定的查询向量。我正在使用的向量是numpy.array长度为100 <= L <= 1000的浮点数。

我查看了相似度搜索cube模块,但它仅限于<= 100维的向量。我使用的嵌入将产生最少100 维且通常更高的向量(取决于训练 word2vec/doc2vec 模型时的设置)。

在 Postgres 中存储大维向量(numpy 浮点数组)并根据余弦相似度(或其他向量相似度度量)执行快速查找的最有效方法是什么?

postgresql index database-design dimension array

6
推荐指数
1
解决办法
977
查看次数

在不牺牲关系数据库中数据一致性的情况下解决超类型-子类型关系

为了更好地设计数据库,我注意到我总是被困在试图解决完全相同问题的变体中。

以下是使用常见要求的示例:

  1. 一家在线商店销售不同类别的product.
  2. 系统必须能够检索所有产品类别的列表,例如foodfurniture
  3. 客户可以订购任何产品并检索他的order历史记录。
  4. 系统必须根据产品类别存储特定属性;说expiration_datecalories任何food产品和manufacture_date任何furniture产品。

如果不是需求 4,模型可能非常简单:

在此处输入图片说明

问题是试图解决需求 4。我想到了这样的事情:

在此处输入图片说明

在这种方法中,关系product-furnitureproduct-food超类型-子类型(或超类-子类)关联;子类型的主键也是超类型主键的外键。

但是,这种方法不能保证category通过外键引用的product将与其实际子类型一致。例如,没有什么能阻止我将foodcategory设置为Furniture表中具有子类型行的产品元组。

我阅读了有关建模关系数据库中的继承的各种文章,尤其是这篇这篇非常有帮助但由于上述原因没有解决我的问题的文章。但是无论我使用什么模型,我都不会对数据一致性感到满意。

如何在不牺牲数据一致性的情况下解决需求 4?我在这里做错了吗?如果是这样,根据这些要求解决此问题的最佳方法是什么?

database-design subtypes consistency

6
推荐指数
1
解决办法
922
查看次数

没有参数的神秘过程调用 - 但没有生成异常

我一直在使用 EventClass RPC:Completed 跟踪一些存储过程,这些过程是从 .Net SqlClient 数据提供程序间歇性调用的,没有必需的参数 - 只是“exec SprocName”。

如果我在它们出现在跟踪的 TextData 中时手动调用它们,它们会生成一个异常 - 但在原始跟踪中不会生成任何异常。这些“无参数”调用的“错误”列确实显示“1 - 错误”,但我不明白该调用如何不生成异常。

起初我怀疑这是分析器的故障,“1 - 错误”导致参数从 TextData 被截断,但我在扩展事件会话中看到了相同的结果。

有没有人在他们的分析器跟踪或事件会话中看到过这样的东西?该应用程序几乎可以肯定将这些调用作为某些边缘情况错误的一部分,但为什么 sql server 没有抛出异常?

sql-server stored-procedures profiler parameter trace

6
推荐指数
1
解决办法
492
查看次数