Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中,数组的等价物是什么?_Sql_Database - Fatal编程技术网

在SQL中,数组的等价物是什么?

在SQL中,数组的等价物是什么?,sql,database,Sql,Database,我有一个表,它需要每一行存储相同类型行的有序集合 e、 g.,我在想象类似的事情: class blah { float yetMoreData; }; class foo { int data; String moreData; blah[] anOrderedCollectionOfBlahClasses; }; 实现这一点的最佳方法是什么?数据库通常不会按特定顺序存储内容。您可以从数据库中检索以多种方式排序的内容。例如,假设您有一个桌面日历: CREATE TA

我有一个表,它需要每一行存储相同类型行的有序集合

e、 g.,我在想象类似的事情:

class blah
{
   float yetMoreData;
};

class foo
{
   int data;
   String moreData;
   blah[] anOrderedCollectionOfBlahClasses;
};

实现这一点的最佳方法是什么?

数据库通常不会按特定顺序存储内容。您可以从数据库中检索以多种方式排序的内容。例如,假设您有一个桌面日历:

CREATE TABLE month AS (
    id      NUMBER,
    month   NUMBER,
    day     NUMBER 
);
然后,您可以按以下顺序检索一年中的日期:

SELECT month, day
  FROM calendar
 ORDER BY month, day;

也就是说,有很多方法可以满足你的要求。例如,Oracle可以存储嵌套表。

数据库通常不会按特定顺序存储内容。您可以从数据库中检索以多种方式排序的内容。例如,假设您有一个桌面日历:

CREATE TABLE month AS (
    id      NUMBER,
    month   NUMBER,
    day     NUMBER 
);
然后,您可以按以下顺序检索一年中的日期:

SELECT month, day
  FROM calendar
 ORDER BY month, day;

也就是说,有很多方法可以满足你的要求。例如,Oracle可以存储嵌套表。

您可以创建两个表,并在它们之间创建主键和外键关系。它将被视为嵌套表和嵌套对象。

创建两个表,并在它们之间创建主键和外键关系。它将被视为嵌套表和每个嵌套对象。

您希望
Blah
Foo
是单独的表,其中
Blah
Foo
具有多对一关系。
Blah
表中的记录应该有一个外键
foo_id
,用于标识其父foo记录
Blah
还有一个
index_in_array
属性,允许对结果进行排序

CREATE TABLE Foo (
    id BIGINT,
    data INT,
    moreData CHAR(50)
);

CREATE TABLE Blah (
    id BIGINT,
    yetMoreData DOUBLE,
    foo_id BIGINT,
    index_in_array INT
);
如果您想获取给定
Foo
的所有
Blah
(比如ID为5的
Foo
),请使用:

如果您对记录进行排序,通常不应采用任意方式(除非用户专门选择了任意顺序,例如,对待办事项列表上的项目进行排序)。通常,您根据数据的某些“自然发生”属性进行排序,如添加日期或按名称的字母顺序等


注意:这个答案应该是伪代码SQL——在将其放入脚本之前,请确保将其改编为特定的数据库语法。(别忘了添加一些键和索引!)

您希望
Blah
Foo
成为单独的表,其中
Blah
Foo
有多对一的关系。
Blah
表中的记录应该有一个外键
foo_id
,用于标识其父foo记录
Blah
还有一个
index_in_array
属性,允许对结果进行排序

CREATE TABLE Foo (
    id BIGINT,
    data INT,
    moreData CHAR(50)
);

CREATE TABLE Blah (
    id BIGINT,
    yetMoreData DOUBLE,
    foo_id BIGINT,
    index_in_array INT
);
如果您想获取给定
Foo
的所有
Blah
(比如ID为5的
Foo
),请使用:

如果您对记录进行排序,通常不应采用任意方式(除非用户专门选择了任意顺序,例如,对待办事项列表上的项目进行排序)。通常,您根据数据的某些“自然发生”属性进行排序,如添加日期或按名称的字母顺序等


注意:这个答案应该是伪代码SQL——在将其放入脚本之前,请确保将其改编为特定的数据库语法。(别忘了添加一些键和索引!)

似乎比我习惯的有点倒退,元素引用它们的主类,而不是相反的方式,但我想这在某种奇怪的方面是有意义的。似乎比我习惯的有点倒退,元素指的是它们的主类,而不是相反的方式,但我想这在某种奇怪的方式上是有意义的。