Bird
Raised Fist0
PostgreSQLquery~20 mins

Creating databases and connecting in PostgreSQL - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Database Creator Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
What is the output of this database creation query?
Consider the following SQL command executed in PostgreSQL:

CREATE DATABASE testdb WITH OWNER = alice ENCODING = 'UTF8' CONNECTION LIMIT = 5;

What will be the result of this command?
PostgreSQL
CREATE DATABASE testdb WITH OWNER = alice ENCODING = 'UTF8' CONNECTION LIMIT = 5;
ASyntax error due to incorrect use of CONNECTION LIMIT.
BError because owner 'alice' does not exist.
CDatabase 'testdb' is created but with default encoding and unlimited connections.
DDatabase 'testdb' is created with owner 'alice', UTF8 encoding, and max 5 connections.
Attempts:
2 left
💡 Hint
Check the syntax for CREATE DATABASE and the parameters allowed.
📝 Syntax
intermediate
1:30remaining
Identify the syntax error in this database connection command
Which option shows a correct way to connect to a PostgreSQL database named 'shopdb' using psql command line?
Apsql -d shopdb -U admin
Bpsql --database shopdb --user admin
Cpsql -database shopdb -user admin
Dpsql -db shopdb -username admin
Attempts:
2 left
💡 Hint
Check the correct short options for database and user in psql.
❓ optimization
advanced
2:00remaining
Which command optimizes database creation for a template?
You want to create a new database 'analytics' that is an exact copy of an existing database 'template_db'. Which command achieves this efficiently?
ACREATE DATABASE analytics COPY template_db;
BCREATE DATABASE analytics AS template_db;
CCREATE DATABASE analytics TEMPLATE template_db;
DCREATE DATABASE analytics CLONE template_db;
Attempts:
2 left
💡 Hint
PostgreSQL supports creating a database from a template using a specific keyword.
🔧 Debug
advanced
1:30remaining
Why does this connection attempt fail?
A user tries to connect to PostgreSQL using:

psql -d salesdb -U john

But gets the error:

psql: FATAL: role "john" does not exist

What is the most likely cause?
AThe database 'salesdb' does not exist.
BThe user 'john' has not been created as a PostgreSQL role.
CThe password for 'john' is incorrect.
DThe psql command is missing the host parameter.
Attempts:
2 left
💡 Hint
The error message mentions the role does not exist.
🧠 Conceptual
expert
2:30remaining
What is the effect of connecting to a database with the wrong encoding?
If a client connects to a PostgreSQL database that was created with ENCODING = 'UTF8' but the client uses a different encoding like LATIN1, what is the most likely outcome?
AData sent or received may be corrupted or cause errors due to encoding mismatch.
BPostgreSQL automatically converts all data to the client encoding without issues.
CThe connection will be refused by the server immediately.
DThe database encoding changes to match the client encoding for the session.
Attempts:
2 left
💡 Hint
Think about how character encoding affects data interpretation.

Practice

(1/5)
1. What does the CREATE DATABASE command do in PostgreSQL?
easy
A. It deletes a database permanently.
B. It connects to an existing database.
C. It creates a new database to store data.
D. It lists all databases available.

Solution

  1. Step 1: Understand the purpose of CREATE DATABASE

    This command is used to create a new database in PostgreSQL where data can be stored.
  2. Step 2: Differentiate from other commands

    Connecting to a database uses \c, deleting uses DROP DATABASE, and listing uses \l.
  3. Final Answer:

    It creates a new database to store data. -> Option C
  4. Quick Check:

    CREATE DATABASE = create new database [OK]
Hint: Remember: CREATE DATABASE makes a new database [OK]
Common Mistakes:
  • Confusing CREATE DATABASE with connecting commands
  • Thinking it deletes or lists databases
  • Using wrong command for creating database
2. Which of the following is the correct syntax to connect to a database named shopdb in PostgreSQL?
easy
A. \c shopdb
B. \\c shopdb
C. CONNECT TO shopdb;
D. USE shopdb;

Solution

  1. Step 1: Identify the correct psql command for connecting

    In PostgreSQL's psql tool, the command to connect to a database is \c database_name.
  2. Step 2: Check syntax correctness

    \c shopdb uses the correct backslash and no extra backslashes or SQL keywords.
  3. Final Answer:

    \c shopdb -> Option A
  4. Quick Check:

    Connect command = \c [OK]
Hint: Use single backslash \c to connect in psql [OK]
Common Mistakes:
  • Using double backslashes instead of one
  • Using SQL commands like USE which is not PostgreSQL
  • Adding semicolons to psql meta-commands
3. What will be the result of running the following commands in psql?
CREATE DATABASE testdb;
\c testdb
SELECT current_database();
medium
A. An error because \c cannot be used after CREATE DATABASE
B. It connects to testdb and shows 'testdb' as current database
C. It shows the default database name instead of testdb
D. It creates testdb but does not connect, so current_database() shows nothing

Solution

  1. Step 1: Understand command sequence

    The first command creates a new database named testdb. The second command connects to it. The third command queries the current database name.
  2. Step 2: Predict output of current_database()

    Since connection switched to testdb, current_database() returns 'testdb'.
  3. Final Answer:

    It connects to testdb and shows 'testdb' as current database -> Option B
  4. Quick Check:

    CREATE + \c + current_database() = 'testdb' [OK]
Hint: After CREATE DATABASE, use \c to switch and check with current_database() [OK]
Common Mistakes:
  • Thinking \c cannot be used after CREATE DATABASE
  • Assuming current_database() shows default database
  • Believing connection does not change automatically
4. You run the command CREATE DATABASE mydb but get an error. Which of these is the most likely cause?
medium
A. You do not have permission to create a database.
B. You forgot the semicolon at the end of the command.
C. You are already connected to the database you want to create.
D. You used the wrong command; CREATE DATABASE is not valid in PostgreSQL.

Solution

  1. Step 1: Check command syntax

    The command CREATE DATABASE mydb is valid and semicolon is optional in some clients but recommended.
  2. Step 2: Identify common permission issues

    Most errors creating databases happen because the user lacks the CREATE DATABASE privilege.
  3. Final Answer:

    You do not have permission to create a database. -> Option A
  4. Quick Check:

    Permission error = CREATE DATABASE fails [OK]
Hint: Check user permissions if CREATE DATABASE fails [OK]
Common Mistakes:
  • Assuming missing semicolon always causes error
  • Thinking you cannot create database while connected to it
  • Believing CREATE DATABASE is invalid in PostgreSQL
5. You want to create a new database named salesdb and immediately connect to it using psql commands. Which sequence is correct?
hard
A. CREATE DATABASE salesdb; CONNECT salesdb;
B. \c salesdb; CREATE DATABASE salesdb;
C. CREATE DATABASE salesdb \c salesdb;
D. CREATE DATABASE salesdb; \c salesdb

Solution

  1. Step 1: Understand command order

    You must first create the database, then connect to it. So CREATE DATABASE salesdb; comes before \c salesdb.
  2. Step 2: Verify command syntax

    CREATE DATABASE salesdb; \c salesdb uses correct SQL and psql meta-command syntax. \c salesdb; CREATE DATABASE salesdb; tries to connect before creation. CREATE DATABASE salesdb \c salesdb; combines commands incorrectly. CREATE DATABASE salesdb; CONNECT salesdb; uses invalid CONNECT command.
  3. Final Answer:

    CREATE DATABASE salesdb; \c salesdb -> Option D
  4. Quick Check:

    Create then connect = correct sequence [OK]
Hint: Create first, then connect with \c [OK]
Common Mistakes:
  • Trying to connect before database exists
  • Using invalid commands like CONNECT
  • Combining commands on one line incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard