📖 Scenario: You are a new database administrator for a small company. You need to learn how to use the psql command-line tool to interact with a PostgreSQL database. This will help you manage data and run queries efficiently.
🎯 Goal: Learn the basic commands to connect to a PostgreSQL database using psql, list tables, describe table structure, and run simple SQL queries.
📋 What You'll Learn
Connect to a PostgreSQL database using psql with a database name
List all tables in the connected database using a psql command
Describe the structure of a specific table using a psql command
Run a simple SQL query to select data from a table
💡 Why This Matters
🌍 Real World
Database administrators and developers use psql to manage PostgreSQL databases efficiently from the command line.
💼 Career
Knowing psql commands is essential for database management, troubleshooting, and running queries in many IT and data roles.
Progress0 / 4 steps
1
Connect to the PostgreSQL database
Use the psql command to connect to a PostgreSQL database named company_db. Write the exact command to connect.
PostgreSQL
Hint
Use psql followed by the database name to connect.
2
List all tables in the database
After connecting to company_db, use the psql meta-command to list all tables in the current database. Write the exact command starting with a backslash.
PostgreSQL
Hint
Use \dt to list tables in psql.
3
Describe the structure of a table
Use the psql meta-command to describe the structure of the table named employees. Write the exact command starting with a backslash.
PostgreSQL
Hint
Use \d employees to see the table structure.
4
Run a simple SQL query
Write a SQL query to select all columns from the employees table. End the query with a semicolon.
PostgreSQL
Hint
Use SELECT * FROM employees; to get all data from the table.
Practice
(1/5)
1. What is the primary purpose of the psql command-line tool in PostgreSQL?
easy
A. To connect to a PostgreSQL database and run SQL commands interactively
B. To create new PostgreSQL database clusters
C. To backup PostgreSQL databases automatically
D. To monitor server hardware performance
Solution
Step 1: Understand the role of psql
psql is a command-line interface tool designed to connect to PostgreSQL databases and allow users to run SQL commands interactively.
Step 2: Differentiate from other tools
Other options like creating clusters or backups are done by different tools or commands, not psql.
Final Answer:
To connect to a PostgreSQL database and run SQL commands interactively -> Option A
2. Which of the following is the correct way to start psql and connect to a database named mydb as user alice?
easy
A. psql start mydb alice
B. psql --connect mydb alice
C. psql connect mydb user alice
D. psql -d mydb -U alice
Solution
Step 1: Recall psql connection syntax
The correct syntax to connect is psql -d database -U user.
Step 2: Match options to syntax
psql -d mydb -U alice matches this syntax exactly, while others use invalid or unsupported flags.
Final Answer:
psql -d mydb -U alice -> Option D
Quick Check:
psql -d db -U user = connect [OK]
Hint: Use -d for database and -U for user [OK]
Common Mistakes:
Using unsupported flags like --connect
Writing commands without dashes
Mixing command words incorrectly
3. Inside psql, what will be the result of running the command \dt?
medium
A. It lists all tables in the current database
B. It deletes the current table
C. It displays the current database connection info
D. It shows the last query execution plan
Solution
Step 1: Understand psql meta-commands
Commands starting with a backslash (\) are special psql commands. \dt lists tables.
Step 2: Identify what \dt does
\dt shows all tables in the current database schema, not deleting or showing connection info.
Final Answer:
It lists all tables in the current database -> Option A
Quick Check:
\dt = list tables [OK]
Hint: Backslash commands show info; \dt lists tables [OK]
Common Mistakes:
Thinking \dt deletes tables
Confusing \dt with connection info commands
Expecting \dt to show query plans
4. You try to run psql -d mydb -U alice but get an error: psql: FATAL: password authentication failed for user "alice". What is the most likely cause?
medium
A. The database mydb does not exist
B. The psql command is misspelled
C. The password entered for user alice is incorrect or missing
D. The PostgreSQL server is not running
Solution
Step 1: Analyze the error message
The error says "password authentication failed for user alice," indicating a login problem.
Step 2: Identify the cause
This usually means the password is wrong or not provided, not that the database or command is missing.
Final Answer:
The password entered for user alice is incorrect or missing -> Option C
Quick Check:
Password error = authentication failed [OK]
Hint: Password errors mean wrong or missing password [OK]
Common Mistakes:
Assuming database doesn't exist from this error
Thinking psql command is wrong
Ignoring server status
5. You want to list all databases available on your PostgreSQL server using psql. Which command should you run inside the psql prompt?
hard
A. SHOW DATABASES;
B. \l
C. \listdb
D. SELECT * FROM pg_databases;
Solution
Step 1: Recall psql meta-commands for listing databases
The command \l (or \list) lists all databases in psql.
Step 2: Evaluate other options
SHOW DATABASES; is MySQL syntax, \listdb is invalid, and SELECT * FROM pg_databases; is incorrect because the catalog table is pg_database, not pg_databases.
Final Answer:
\l -> Option B
Quick Check:
\l = list databases [OK]
Hint: Use \l inside psql to list databases [OK]
Common Mistakes:
Using MySQL syntax SHOW DATABASES;
Typing wrong meta-command \listdb
Querying wrong system table name
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.