找到关于数据存储的622篇文章

如何在PostgreSQL查询中对选择的列应用DISTINCT约束?

Yash Sanghvi
更新于 2021年2月2日 12:57:26

126 次浏览

假设您有一个包含 5 列的 exam_scores 表。下面是一个包含一些虚拟数据的示例。nameroll_nosubjecttotal_marksmarks_obtainedAnil1English10056Anil1Math10065Anil1Science10045Roy2English10078Roy2Math10098Roy2Science10067现在,一个学生可能参加了多个科目的考试,因此,一个学生有多行记录。如果您想找出班级的总学生人数,您可能需要查找roll_no的不同值的个数。您可以对特定列应用distinct约束,如下所示:SELECT DISTINCT ON (roll_no) name, roll_no FROM exam_scores ORDER BY roll_no DESC 以下是上述查询的输出结果:nameroll_noRoy2Anil1您还可以……阅读更多

PostgreSQL中的CASE WHEN?

Yash Sanghvi
更新于 2021年2月2日 12:55:49

2K+ 次浏览

如果您是一位程序员,您可能非常熟悉IF-ELSE语句。PostgreSQL中的等效语句是CASE WHEN。让我们通过一个例子来理解。如果您有一个包含学生百分比分数的marks表,并且您想找出学生是及格还是不及格。下面是一个示例表。nameperc_marksAnil24Joy65Ron42Reena87假设及格分数是40。现在,如果学生的分数高于40分,我们想打印该学生的“PASS”,否则打印“FAIL”。您可以这样操作:SELECT name, CASE WHEN perc_marks >= 40 THEN 'PASS' ELSE 'FAIL' END status from ... 阅读更多

如何在PostgreSQL中获取当前时间戳和相对时间戳?

Yash Sanghvi
更新于 2021年2月2日 12:54:56

2K+ 次浏览

通常,您需要PostgreSQL中的当前时间戳。您可以按如下方式执行此操作:SELECT current_timestamp 它将输出当前时间。输出将如下所示:2021-01-30 15:52:14.738867+00 现在,如果您想要相对时间而不是当前时间呢?例如,如果您想要当前时间之前的5小时的时间,您可以使用间隔来获取它。SELECT current_timestamp - interval '5 hours' 输出每次都会不同。在撰写本文时,输出为:2021-01-30 10:57:13.28955+00 您也可以对日期而不是时间戳执行这些操作SELECT current_date 输出2021-01-30SELECT current_date + ... 阅读更多

如何在PostgreSQL中将一个表中的值插入另一个表?

Yash Sanghvi
更新于 2021年2月2日 12:30:41

2K+ 次浏览

假设您有两个表:marks 和 student_info。下面分别给出了这两个表的示例nameroll_noperc_marksAniket1224Siddhi4565Yash2642Isha5687nameroll_noagegenderAniket1226MIsha5625FSiddhi4523FYash2625M现在,假设您工作中的经理查看这两个表并告诉您:“为什么我们有两个表?简化一下,将所有内容移到一个表中!”因此,您决定将perc_marks列添加到student_info表中。ALTER TABLE student_info ADD COLUMN perc_marks integer 现在,您将如何填充此列?您会手动为每一列添加分数吗?这会为很多错误留下空间,并且也会非常耗时。相反,您可以这样做:UPDATE student_info ... 阅读更多

可以在PostgreSQL表上进行哪种索引?

Yash Sanghvi
更新于 2021年2月2日 12:31:13

105 次浏览

索引用于加快PostgreSQL以及一般关系数据库中的查询执行速度。PostgreSQL表主要支持几种索引类型。让我们简要讨论3种常用的索引类型:哈希这些索引只能处理相等比较。换句话说,如果我想检查itemA = itemB,那么哈希索引很有用。它不适合其他类型的操作,例如>,=,40,则此索引将无用,并且PostgreSQL将组织查询计划,假设索引不存在。B树这是PostgreSQL使用的默认索引。换句话说,如果... 阅读更多

可以向PostgreSQL表添加哪些约束?

Yash Sanghvi
更新于 2021年2月2日 13:13:19

178 次浏览

一般来说,可以使用6种类型的约束与PostgreSQL表一起使用。它们列在下面并进行了解释:NOT NULL约束这是一个非常常见的约束。如果某个特定列不能具有空值,则在创建表时添加此约束。例如,如果我们创建一个marks表,该表不能对name字段具有NULL值,则表创建命令将如下所示:CREATE TABLE marks(    name VARCHAR NOT NULL,    roll_no INTEGER,    marks_obtained INTEGER );现在,如果我们尝试在不... 阅读更多

如何在PostgreSQL中定义和查询json列?

Yash Sanghvi
更新于 2021年2月2日 12:22:41

1K+ 次浏览

能够在PostgreSQL中定义JSON列使其功能非常强大,并帮助PostgreSQL用户体验两全其美:SQL和NoSQL。创建JSON列非常简单。您只需像创建任何其他列一样创建/定义它,并将数据类型用作JSON。让我们在PostgreSQL中创建一个新表,名为json_test:CREATE TABLE json_test(    serial_no SERIAL PRIMARY KEY,    name VARCHAR,    metadata JSON );现在,让我们用一些数据填充它:INSERT INTO json_test(name, metadata) VALUES ('Yash', '{"marks_scored":{"science":50, "maths":65}}'), ('Isha', '{"marks_scored":{"science":70, "maths":45}}');如您所见,JSON值是在单个... 阅读更多

PostgreSQL中的INNER JOIN与FULL OUTER JOIN与LEFT JOIN与RIGHT JOIN?

Yash Sanghvi
更新于 2021年2月2日 12:18:49

734 次浏览

为了用示例理解这些概念,我们将考虑两个表,marks和student_info,分别定义如下:marks:nameroll_noperc_marksSiddhi4565Yash2642Isha5687student_info:nameroll_noagegenderAniket1226MIsha5625FYash2625M如您所见,marks表没有Aniket的条目,而student_info表没有Siddhi的条目。换句话说,marks表没有roll_no 12的条目,而student_info表没有roll_no 45的条目。现在,让我们逐一了解不同的连接。INNER JOIN它只返回两个表中都存在条目的行。SELECT marks.name, marks.roll_no, student_info.age FROM marks INNER JOIN student_info on marks.roll_no ... 阅读更多

如何在PostgreSQL中更改列的类型?

Yash Sanghvi
更新于 2021年2月2日 12:11:32

5K+ 次浏览

为了更改列的类型,语法是ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type USING expression; 请注意,一般不建议更改列的类型,尤其是在您的表已经有很多条目时。USING 语法部分是可选的。当您需要使用表达式将该列中现有的条目从当前类型转换为新类型时,可以使用它。例如,如果您将INTEGER类型的列转换为BIGINTEGER类型,则不需要使用任何表达式来转换现有的... 阅读更多

如何在PostgreSQL中向现有表添加列?

Yash Sanghvi
更新于 2021年2月2日 12:07:55

883 次浏览

向现有表中添加新列的语法非常简单。ALTER TABLE 表名 ADD COLUMN 列名 列类型 列约束;例如,你有一个名为 marks 的现有表。下面给出一个例子:serial_nonameroll_nomarks_obtainedperc_marksmax_marksdate_of_entry1Yash2642421002021-01-302Isha5617587.52002021-01-30现在,假设你想添加一个名为 subject 的列。你可以使用以下命令:ALTER TABLE marks ADD COLUMN subject VARCHAR;现在,如果你再次使用 SELECT * from marks 查询表,你会看到以下输出:serial_nonameroll_nomarks_obtainedperc_ marksmax_ marksdate_ of_ entrysubject1Yash2642421002021-01-30[null]2Isha5617587.52002021-01-30[null]请注意,subject 列中的值为空,因为我们只是创建了该列,并没有填充它。我们可以使用 UPDATE ... 阅读更多

广告