SQL Query 或 View with columns 取决于 SELECT 查询

Posted

技术标签:

【中文标题】SQL Query 或 View with columns 取决于 SELECT 查询【英文标题】:SQL Query or View with columns depends on SELECT query 【发布时间】:2012-02-27 14:10:53 【问题描述】:

我的问题可能很愚蠢,而且不会那么容易准确地写下来。然而,可以理解的例子。我正在创建一个系统日志数据库,它定期存储来自硬件的值。 我的表格(复杂性非常低)是:

VARIABLES table
id_variable    name_variable
1              Temperatur
2              Voltage
...            ...
n              VariableN

LOG_ROWS table
id_log_row     timestamp
1              2012.01.01. 10:00:00
2              2012.01.01. 10:01:00
3              2012.01.01. 10:02:00
n              2012.01.01. 10:0n:00

LOG_VALUES table
id_log_value   id_log_row    id_variable   value
1              1             1             34
2              1             2             1200
3              2             1             35
4              3             1             36
5              3             2             1230

数据结构很重要,因为我必须在以后添加新变量而不改变表,并且每个变量都有其他存储时间段。 (并非所有 log_rows 都包含 all 变量。这里电压的时间段是 2 分钟,温度的时间段是 1 分钟)

所以,我想创建可读性好的 db 视图,其中列是变量 id 或名称(这里是名称)与 log_row 的 id 和时间戳相连。类似的东西。

id_log_row    timestamp              Temperatur     Voltage   ...  N
1             2012.01.01. 10:00:00   34             1200           NULL
2             2012.01.01. 10:01:00   35             NULL           NULL
3             2012.01.01. 10:02:00   36             1230      ...  NULL

这些视图可以用 SQL 实现吗?根据表格内容定义列。我有兴趣。我想在 SQLite 中创建它

【问题讨论】:

【参考方案1】:

SQLite 不会support 更改视图。将数据设计成以后必须更改表的方式通常是一个坏主意。

【讨论】:

在没有alter table的情况下进行良好配置的能力比这些视图重要得多。有了这些视图,只写查询会更容易。所以,我认为我无法避免这些数据结构。

以上是关于SQL Query 或 View with columns 取决于 SELECT 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何将 exec_query 与动态 SQL 一起使用

Foreach with Insert SQL(C#,SQL)

Debugging a SQL Server query with WinDbg

SQL where clause with composite values

哪个更快? Spark SQL with Where 子句或在 Spark SQL 之后在 Dataframe 中使用过滤器

批量生成表Create SQL 示例 Generate SQL Create Scripts for existing tables with Query