![@postgres - 寻求帮助](https://linux22.com/image/79006/%40postgres%20-%20%E5%AF%BB%E6%B1%82%E5%B8%AE%E5%8A%A9.png)
我需要做一些任务:
我通过 Oracle VM Virtual Box 使用 CentOS 6.7
- 查找名称 = PROJECT_NAME 的项目(表:项目;列:名称)
- 列出 id 为 PROJECT_ID1 或 PROJECT_ID2 的项目(表:Project;列:id)(使用“id in (...)”而不是“or/=”)
- 列出 id > 10 的项目的 ID 和名称(表:项目;列:id、名称)
- 列出按开始日期排序的项目 ID、开始日期和名称(表:项目;列:ID、开始日期、名称;使用:ORDER BY .. ASC)
- 列出 id > 10 且 name = PROJECT_NAME 的项目的 id、名称(表:Projects;列:id、name;用途:AND 运算)
- 列出项目的 id 并将结果限制为最后 5 个(表:项目,列:id,使用:LIMIT 操作)
- 列出最近 5 个启动的项目(表:项目,列:开始日期,使用:ORDER BY ... DESC LIMIT)
- 列出 2013-03-03 00:00:00 之后开始的项目(表:项目,列:开始日期;使用:开始日期 < '2013-03-03 00:00:00')
- 列出用户名包含单词“test”的用户(表:PMUser;列:用户名;使用:用户名如“%test%”)
- 列出用户名末尾包含单词“test”的用户(表:PMUser;列:用户名;使用:用户名如“%test”)
- 列出用户数量(表:PMUser;列:;使用:计数())
- 查找最大用户 ID(表:PMUser;列:id;使用:max(id))
编辑解决方案:
我的任务解决方案:
1. SELECT name FROM Project WHERE name = 'PROJECT_NAME';
2. SELECT id FROM Project WHERE id in (4214, 5020);
(不确定这个,但看起来 PROJECT_ID1 只是我需要输入的数字,仍然需要一些解决方案/答案)
3 SELECT id,name FROM Project WHERE id > 10;
. 4. SELECT id,startdate,name FROM Project ORDER BY startdate ASC;
5. SELECT id,name FROM Project WHERE id > 10 AND name = 'PROJECT_NAME';
6. SELECT id FROM Project LIMIT 5;
7. SELECT startdate FROM Project ORDER BY startdate DESC LIMIT 5;
8. SELECT startdate FROM Project WHERE startdate <'2013-03-03 00:00:00';
9. SELECT username FROM PMUser wHERE username like '%test%
;'
10. SELECT username FROM PMUser WHERE username like '%test';
11. SELECT count(*) FROM PMUser;
12.SELECT max(id) FROM PMuser;
答案1
您的任务/练习的核心似乎是 SQL 查询。我不会帮助他们。但只是让你开始使用 psql cli :)
按照我经常使用的命令:
# launch psql
psql -U <username> <database>
# list all databases
## here you will find the one they prepared for you
\l
# change database
\c <database_name>
# show tables
\dt
# describe table (show columns)
\d+ <table_name>
要查找其他 psql 命令,您可以在 psql cli 中键入以下命令:
\?
从这里开始,您可以开始仅使用 SQL 来解决任务。笔记所有点都需要 SELECT 语句。