Bird
Raised Fist0
Supabasecloud~20 mins

Creating tables via SQL editor in Supabase - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
SQL Table Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding SQL Table Creation Syntax

What will be the result of running this SQL command in Supabase SQL editor?

CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE);
Supabase
CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE);
AA table named 'users' is created but 'email' column allows duplicate values.
BA new table named 'users' is created with three columns: 'id' as auto-incrementing primary key, 'name' as required text, and 'email' as unique text.
CAn error occurs because 'SERIAL' is not supported in Supabase SQL editor.
DThe table is created but 'id' column is not set as primary key.
Attempts:
2 left
💡 Hint

Check the meaning of 'SERIAL', 'PRIMARY KEY', 'NOT NULL', and 'UNIQUE' in SQL.

❓ Configuration
intermediate
2:00remaining
Identifying Error in Table Creation

What error will this SQL command produce when run in Supabase SQL editor?

CREATE TABLE products (product_id INT PRIMARY KEY, name VARCHAR, price DECIMAL(10));
Supabase
CREATE TABLE products (product_id INT PRIMARY KEY, name VARCHAR, price DECIMAL(10));
AError because PRIMARY KEY cannot be assigned to INT type.
BError because DECIMAL requires two parameters for precision and scale.
CSyntax error because VARCHAR requires a length specification.
DTable created successfully with columns 'product_id', 'name', and 'price'.
Attempts:
2 left
💡 Hint

In PostgreSQL, VARCHAR without a length specifier is valid and equivalent to TEXT.

❓ Architecture
advanced
2:00remaining
Choosing Best Primary Key Design

You want to create a table 'orders' in Supabase to store order data. Which option is the best design for the primary key column?

AUse a column 'order_id' with type UUID generated by default with gen_random_uuid() function.
BUse a composite primary key of 'user_id' and 'order_date' columns.
CUse a text column 'order_code' where users manually enter unique codes.
DUse an integer column 'order_number' with auto-increment (SERIAL) as primary key.
Attempts:
2 left
💡 Hint

Consider uniqueness, scalability, and ease of use for primary keys.

❓ security
advanced
2:00remaining
Preventing SQL Injection in Table Creation Scripts

Which practice helps prevent SQL injection when creating tables via Supabase SQL editor?

ANever accept user input directly in SQL commands; use parameterized queries or predefined scripts.
BEscape all single quotes in user input manually before inserting into SQL commands.
CUse dynamic SQL concatenation with user input but sanitize inputs with regex.
DAllow users to write their own SQL commands to create tables for flexibility.
Attempts:
2 left
💡 Hint

Think about how SQL injection happens and how to avoid it.

❓ service_behavior
expert
2:00remaining
Effect of Dropping a Table with Dependent Foreign Keys

Given two tables in Supabase:

CREATE TABLE customers (id UUID PRIMARY KEY, name TEXT); CREATE TABLE orders (id UUID PRIMARY KEY, customer_id UUID REFERENCES customers(id));

What happens if you run DROP TABLE customers; without any additional options?

Supabase
DROP TABLE customers;
AThe 'customers' table is dropped and 'orders' table remains unchanged with broken foreign key references.
BThe 'customers' table is dropped and foreign key constraints in 'orders' are automatically removed.
CThe command fails with an error because 'orders' table depends on 'customers' via foreign key.
DThe 'customers' table is dropped and all rows in 'orders' with matching customer_id are automatically deleted.
Attempts:
2 left
💡 Hint

Consider how foreign key constraints affect dropping tables in PostgreSQL (used by Supabase).

Practice

(1/5)
1. What is the main purpose of the CREATE TABLE statement in Supabase SQL editor?
easy
A. To insert data into an existing table
B. To delete an existing table from the database
C. To update data in an existing table
D. To create a new table with specified columns and data types

Solution

  1. Step 1: Understand the purpose of CREATE TABLE

    The CREATE TABLE command is used to make a new table structure in the database.
  2. Step 2: Differentiate from other SQL commands

    Deleting, inserting, or updating data uses different commands like DROP TABLE, INSERT INTO, or UPDATE.
  3. Final Answer:

    To create a new table with specified columns and data types -> Option D
  4. Quick Check:

    CREATE TABLE means create table [OK]
Hint: Remember: CREATE TABLE makes new tables, not data changes [OK]
Common Mistakes:
  • Confusing CREATE TABLE with INSERT or UPDATE commands
  • Thinking CREATE TABLE deletes tables
  • Assuming CREATE TABLE modifies existing data
2. Which of the following is the correct syntax to create a table named users with columns id (integer) and email (text) in Supabase SQL editor?
easy
A. CREATE users TABLE (id INT, email STRING);
B. CREATE TABLE users (id INTEGER, email TEXT);
C. TABLE CREATE users (id INT, email TEXT);
D. CREATE TABLE users id INTEGER, email TEXT;

Solution

  1. Step 1: Check the correct SQL syntax for table creation

    The correct syntax is CREATE TABLE table_name (column_name data_type, ...); with parentheses around columns.
  2. Step 2: Validate data types and order

    Use INTEGER and TEXT as valid data types. The statement must start with CREATE TABLE followed by the table name.
  3. Final Answer:

    CREATE TABLE users (id INTEGER, email TEXT); -> Option B
  4. Quick Check:

    Correct SQL syntax = CREATE TABLE users (id INTEGER, email TEXT); [OK]
Hint: Use parentheses and correct data types for columns [OK]
Common Mistakes:
  • Missing parentheses around columns
  • Wrong order of keywords
  • Using invalid data types like STRING instead of TEXT
3. Given the SQL command:
CREATE TABLE products (product_id SERIAL PRIMARY KEY, name TEXT NOT NULL, price NUMERIC);

What will be the behavior of the product_id column?
medium
A. It stores text values
B. It must be manually entered for each new product
C. It will automatically generate a unique number for each new row
D. It allows duplicate values

Solution

  1. Step 1: Understand the SERIAL PRIMARY KEY usage

    The SERIAL type auto-increments numbers for new rows, and PRIMARY KEY ensures uniqueness.
  2. Step 2: Analyze column behavior

    Because of SERIAL PRIMARY KEY, product_id auto-generates unique numbers; manual entry is not required.
  3. Final Answer:

    It will automatically generate a unique number for each new row -> Option C
  4. Quick Check:

    SERIAL PRIMARY KEY = auto unique number [OK]
Hint: PRIMARY KEY with SERIAL auto-increments IDs [OK]
Common Mistakes:
  • Thinking SERIAL requires manual input
  • Assuming duplicates are allowed in PRIMARY KEY
  • Confusing data types for this column
4. You wrote this SQL to create a table:
CREATE TABLE orders (order_id INT PRIMARY KEY, order_date DATE, customer_id INT);

The table creates successfully, but when inserting rows without specifying order_id, Supabase gives an error. What is the most likely cause?
medium
A. No SERIAL type for auto-incrementing primary key
B. Missing semicolon at the end of the statement
C. No column defined as UNIQUE
D. Using INT instead of INTEGER for data type

Solution

  1. Step 1: Check the primary key column definition

    The order_id is INT PRIMARY KEY but lacks auto-increment, so inserting rows without specifying order_id causes errors.
  2. Step 2: Understand SERIAL usage for auto-increment

    Using SERIAL instead of INT for primary key allows automatic unique number generation, preventing insert errors.
  3. Final Answer:

    No SERIAL type for auto-incrementing primary key -> Option A
  4. Quick Check:

    Primary key needs SERIAL for auto-increment [OK]
Hint: Use SERIAL for auto-increment primary keys [OK]
Common Mistakes:
  • Assuming INT auto-increments automatically
  • Ignoring missing semicolon errors
  • Confusing UNIQUE with PRIMARY KEY requirements
5. You want to create a table employees with columns id (auto-incrementing primary key), name (text, required), and email (text, unique). Which SQL command correctly achieves this in Supabase?
hard
A. CREATE TABLE employees (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE);
B. CREATE TABLE employees (id INT PRIMARY KEY, name TEXT, email TEXT UNIQUE NOT NULL);
C. CREATE TABLE employees (id SERIAL, name TEXT NOT NULL, email TEXT);
D. CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE);

Solution

  1. Step 1: Define auto-incrementing primary key

    Use SERIAL PRIMARY KEY for id to auto-generate unique IDs.
  2. Step 2: Set constraints for name and email

    name must be NOT NULL to be required; email must be UNIQUE to avoid duplicates.
  3. Step 3: Verify all constraints and syntax

    CREATE TABLE employees (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE); correctly includes all required constraints and syntax.
  4. Final Answer:

    CREATE TABLE employees (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE); -> Option A
  5. Quick Check:

    Auto-increment + NOT NULL + UNIQUE = CREATE TABLE employees (id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE); [OK]
Hint: Combine SERIAL, NOT NULL, and UNIQUE for correct constraints [OK]
Common Mistakes:
  • Forgetting NOT NULL on required columns
  • Using INT without SERIAL for auto-increment
  • Missing UNIQUE constraint on email
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