Bird
Raised Fist0
PostgreSQLquery~5 mins

CREATE TABLE with PostgreSQL types - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the CREATE TABLE statement do in PostgreSQL?
It creates a new table in the database where you can store data in rows and columns.
Click to reveal answer
beginner
Name three common PostgreSQL data types used when creating a table.
Some common types are INTEGER for whole numbers, TEXT for text strings, and BOOLEAN for true/false values.
Click to reveal answer
intermediate
What is the difference between VARCHAR(n) and TEXT in PostgreSQL?
VARCHAR(n) limits the text length to n characters, while TEXT allows any length of text without a limit.
Click to reveal answer
intermediate
How do you define a column that automatically increases its value for each new row in PostgreSQL?
Use the SERIAL type, which creates an auto-incrementing integer column.
Click to reveal answer
beginner
What PostgreSQL data type would you use to store date and time information?
You can use DATE for dates, TIME for time of day, and TIMESTAMP for both date and time together.
Click to reveal answer
Which PostgreSQL data type is best for storing true or false values?
ATEXT
BINTEGER
CBOOLEAN
DDATE
What does the SERIAL type do in a PostgreSQL table?
ALimits text length
BStores large text data
CStores date and time
DCreates an auto-incrementing integer column
Which data type should you use to store a person's full name without length limit?
ATEXT
BVARCHAR(50)
CINTEGER
DBOOLEAN
How do you specify a column to store only date (no time) in PostgreSQL?
ADATE
BTIMESTAMP
CTIME
DBOOLEAN
Which of these is NOT a valid PostgreSQL data type?
AINTEGER
BSTRING
CTIMESTAMP
DBOOLEAN
Explain how to create a table in PostgreSQL with columns for an ID, name, and birth date using appropriate data types.
Think about what kind of data each column holds and pick the right type.
You got /4 concepts.
    Describe the difference between VARCHAR(n) and TEXT types in PostgreSQL and when to use each.
    Consider if you want to restrict how long the text can be.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which PostgreSQL data type is best to store a person's full name in a CREATE TABLE statement?
      easy
      A. INTEGER
      B. VARCHAR or TEXT
      C. BOOLEAN
      D. DATE

      Solution

      1. Step 1: Understand the data type purpose

        Names are text data, so we need a type that stores characters.
      2. Step 2: Choose appropriate text type in PostgreSQL

        VARCHAR or TEXT types store strings of characters, perfect for names.
      3. Final Answer:

        VARCHAR or TEXT -> Option B
      4. Quick Check:

        Text data = VARCHAR or TEXT [OK]
      Hint: Use VARCHAR or TEXT for any text data like names [OK]
      Common Mistakes:
      • Using INTEGER for text data
      • Using BOOLEAN for names
      • Using DATE for text fields
      2. Which of the following is the correct syntax to create a table named employees with an integer primary key id and a text column name?
      easy
      A. CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT);
      B. CREATE employees TABLE (id INT PRIMARY, name STRING);
      C. CREATE TABLE employees {id INT PRIMARY KEY, name TEXT};
      D. CREATE TABLE employees (id INT, name TEXT PRIMARY KEY);

      Solution

      1. Step 1: Check the basic CREATE TABLE syntax

        PostgreSQL uses: CREATE TABLE table_name (column definitions); with commas separating columns.
      2. Step 2: Verify data types and constraints

        INTEGER or INT is valid; PRIMARY KEY follows the column type; TEXT is valid for strings.
      3. Final Answer:

        CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT); -> Option A
      4. Quick Check:

        Correct syntax and types = CREATE TABLE employees (id INTEGER PRIMARY KEY, name TEXT); [OK]
      Hint: Use parentheses and commas correctly in CREATE TABLE [OK]
      Common Mistakes:
      • Wrong keyword order like PRIMARY before type
      • Using curly braces instead of parentheses
      • Wrong data types like STRING instead of TEXT
      3. Given the table creation:
      CREATE TABLE products (product_id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, price NUMERIC(10,2));
      What will be the data type of product_id and what does SERIAL do?
      medium
      A. product_id is an auto-incrementing integer used as a unique ID
      B. product_id is a string that stores numbers
      C. product_id is a floating-point number
      D. product_id is a boolean flag

      Solution

      1. Step 1: Understand SERIAL type in PostgreSQL

        SERIAL creates an integer column that auto-increments with each new row, perfect for unique IDs.
      2. Step 2: Confirm data type and purpose

        It is an integer type, not string or float, used as a primary key to uniquely identify rows.
      3. Final Answer:

        product_id is an auto-incrementing integer used as a unique ID -> Option A
      4. Quick Check:

        SERIAL = auto-increment integer [OK]
      Hint: SERIAL means auto-increment integer primary key [OK]
      Common Mistakes:
      • Thinking SERIAL is a string type
      • Confusing SERIAL with floating-point
      • Assuming SERIAL is a boolean
      4. Identify the error in this table creation statement:
      CREATE TABLE orders (order_id INT PRIMARY KEY, order_date DATE NOT NULL, total_amount FLOAT(10,2));
      medium
      A. Missing comma between columns
      B. PRIMARY KEY cannot be used on INT columns
      C. FLOAT(10,2) is invalid syntax in PostgreSQL
      D. DATE cannot be NOT NULL

      Solution

      1. Step 1: Check FLOAT data type usage

        PostgreSQL FLOAT accepts at most one precision argument (1-53 digits); FLOAT(10,2) uses two arguments like NUMERIC, which is invalid syntax for FLOAT. Use NUMERIC(10,2) for precise money values.
      2. Step 2: Verify other parts of the statement

        INT can be PRIMARY KEY, DATE can be NOT NULL, commas are correctly placed.
      3. Final Answer:

        FLOAT(10,2) is invalid syntax in PostgreSQL -> Option C
      4. Quick Check:

        FLOAT(p,s) invalid; use NUMERIC(p,s) [OK]
      Hint: FLOAT(p) ok, but not FLOAT(p,s); use NUMERIC(p,s) for money [OK]
      Common Mistakes:
      • Using FLOAT(10,2) in PostgreSQL
      • Thinking PRIMARY KEY can't be INT
      • Assuming DATE can't be NOT NULL
      5. You want to create a table users with columns: user_id as a UUID primary key, email as unique and not null, and created_at as timestamp with default current time. Which is the correct CREATE TABLE statement?
      hard
      A. CREATE TABLE users (user_id SERIAL PRIMARY KEY, email VARCHAR UNIQUE, created_at TIMESTAMP);
      B. CREATE TABLE users (user_id UUID, email TEXT NOT NULL, created_at DATE DEFAULT NOW());
      C. CREATE TABLE users (user_id UUID PRIMARY KEY, email VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT NOW());
      D. CREATE TABLE users (user_id UUID PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

      Solution

      1. Step 1: Check UUID primary key syntax

        UUID is a valid type for unique IDs; PRIMARY KEY constraint is correctly placed.
      2. Step 2: Validate email constraints and type

        VARCHAR(255) with UNIQUE and NOT NULL ensures emails are unique and always present.
      3. Step 3: Confirm timestamp default value

        DEFAULT CURRENT_TIMESTAMP sets creation time automatically; this is correct syntax.
      4. Final Answer:

        CREATE TABLE users (user_id UUID PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP); -> Option D
      5. Quick Check:

        UUID PK, UNIQUE email, timestamp default = CREATE TABLE users (user_id UUID PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP); [OK]
      Hint: Use UUID for IDs, UNIQUE + NOT NULL for emails, CURRENT_TIMESTAMP for defaults [OK]
      Common Mistakes:
      • Using SERIAL instead of UUID for user_id
      • Missing UNIQUE on email
      • Using NOW() instead of CURRENT_TIMESTAMP in DEFAULT
      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