Bird
Raised Fist0
MySQLquery~5 mins

CREATE TABLE syntax in MySQL

Choose your learning style10 modes available
Introduction

We use CREATE TABLE to make a new table in a database. Tables store data in rows and columns, like a spreadsheet.

When starting a new project and you need to save information like users or products.
When you want to organize data into categories with specific details.
When you need to prepare a place to store data before adding any records.
When designing a database to keep track of things like orders, employees, or events.
Syntax
MySQL
CREATE TABLE table_name (
  column1 datatype [constraints],
  column2 datatype [constraints],
  ...
);

table_name is the name you give your table.

Each column has a name and a type, like numbers or text.

Examples
This creates a table named users with three columns: id, name, and email.
MySQL
CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);
This table products stores product details with a price that has two decimal places.
MySQL
CREATE TABLE products (
  product_id INT PRIMARY KEY,
  product_name VARCHAR(50) NOT NULL,
  price DECIMAL(10,2)
);
The orders table has an auto-incrementing order_id and stores the date of the order.
MySQL
CREATE TABLE orders (
  order_id INT PRIMARY KEY AUTO_INCREMENT,
  user_id INT,
  order_date DATE
);
Sample Program

This query creates a table called employees with columns for ID, first and last names, and hire date.

MySQL
CREATE TABLE employees (
  employee_id INT PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50),
  hire_date DATE
);
OutputSuccess
Important Notes

You must choose the right data type for each column to store the correct kind of data.

Primary keys help uniquely identify each row in the table.

Some columns can have constraints like NOT NULL to make sure they always have a value.

Summary

CREATE TABLE makes a new table to store data.

Define columns with names and data types inside parentheses.

Use constraints like PRIMARY KEY to organize and protect your data.

Practice

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

Solution

  1. Step 1: Understand the role of CREATE TABLE

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

    Commands like INSERT, DELETE, and UPDATE modify data but do not create tables.
  3. Final Answer:

    To create a new table in the database -> Option A
  4. Quick Check:

    CREATE TABLE = create new table [OK]
Hint: CREATE TABLE always makes a new table [OK]
Common Mistakes:
  • Confusing CREATE TABLE with INSERT or UPDATE
  • Thinking CREATE TABLE modifies data
  • Mixing CREATE TABLE with DROP TABLE
2. Which of the following is the correct syntax to create a table named users with an integer id column as primary key?
easy
A. CREATE TABLE users (id PRIMARY KEY INT);
B. CREATE TABLE users (id INT PRIMARY KEY);
C. CREATE TABLE users id INT PRIMARY KEY;
D. CREATE users TABLE (id INT PRIMARY KEY);

Solution

  1. Step 1: Check the basic CREATE TABLE syntax

    The correct syntax starts with CREATE TABLE table_name (column definitions);
  2. Step 2: Verify column definition order

    Column name first, then data type, then constraints like PRIMARY KEY.
  3. Final Answer:

    CREATE TABLE users (id INT PRIMARY KEY); -> Option B
  4. Quick Check:

    CREATE TABLE + (column datatype constraints) [OK]
Hint: Table name follows CREATE TABLE, columns inside parentheses [OK]
Common Mistakes:
  • Placing keywords in wrong order
  • Missing parentheses around columns
  • Using incorrect keyword order
3. Given the SQL statement:
CREATE TABLE products (
  product_id INT PRIMARY KEY,
  name VARCHAR(50),
  price DECIMAL(5,2)
);

What will be the data type of the price column?
medium
A. Integer number
B. String of 50 characters
C. Decimal number with 5 digits total and 2 after decimal
D. Boolean value

Solution

  1. Step 1: Identify the data type of price column

    The column price is declared as DECIMAL(5,2).
  2. Step 2: Understand DECIMAL(5,2)

    This means total 5 digits, with 2 digits after the decimal point (e.g., 123.45).
  3. Final Answer:

    Decimal number with 5 digits total and 2 after decimal -> Option C
  4. Quick Check:

    DECIMAL(5,2) = decimal with 2 decimal places [OK]
Hint: DECIMAL(m,n) means m digits total, n after decimal [OK]
Common Mistakes:
  • Confusing VARCHAR with DECIMAL
  • Assuming DECIMAL is integer
  • Ignoring precision and scale in DECIMAL
4. Identify the error in this CREATE TABLE statement:
CREATE TABLE employees (
  emp_id INT,
  name VARCHAR(100),
  PRIMARY KEY emp_id
);
medium
A. Incorrect data type for emp_id
B. No error, statement is correct
C. Table name is missing
D. Missing parentheses around PRIMARY KEY column

Solution

  1. Step 1: Check PRIMARY KEY syntax

    The PRIMARY KEY constraint must list columns inside parentheses, like PRIMARY KEY (emp_id).
  2. Step 2: Identify the error in the statement

    The statement uses PRIMARY KEY emp_id without parentheses, which is invalid syntax.
  3. Final Answer:

    Missing parentheses around PRIMARY KEY column -> Option D
  4. Quick Check:

    PRIMARY KEY columns must be in parentheses [OK]
Hint: PRIMARY KEY columns always inside parentheses [OK]
Common Mistakes:
  • Omitting parentheses for PRIMARY KEY
  • Using wrong data types for keys
  • Forgetting commas between columns
5. You want to create a table orders with columns order_id (integer, primary key), customer_id (integer), and order_date (date). Which statement correctly creates this table with order_id as the primary key and ensures customer_id cannot be empty?
hard
A. CREATE TABLE orders (order_id INT PRIMARY KEY, customer_id INT NOT NULL, order_date DATE);
B. CREATE TABLE orders (order_id INT, customer_id INT, order_date DATE, PRIMARY KEY order_id, NOT NULL customer_id);
C. CREATE TABLE orders (order_id INT PRIMARY KEY, customer_id INT, order_date DATE NOT NULL);
D. CREATE TABLE orders (order_id INT PRIMARY KEY, customer_id INT NULL, order_date DATE);

Solution

  1. Step 1: Define primary key correctly

    The order_id column must be declared as INT PRIMARY KEY inside the column definition.
  2. Step 2: Ensure customer_id is NOT NULL

    To prevent empty values, add NOT NULL after customer_id INT.
  3. Step 3: Check order_date data type

    order_date should be DATE without NOT NULL if empty dates allowed.
  4. Final Answer:

    CREATE TABLE orders (order_id INT PRIMARY KEY, customer_id INT NOT NULL, order_date DATE); -> Option A
  5. Quick Check:

    Primary key + NOT NULL constraint syntax correct [OK]
Hint: Use NOT NULL to prevent empty columns [OK]
Common Mistakes:
  • Placing NOT NULL outside column definition
  • Incorrect PRIMARY KEY syntax
  • Confusing NULL and NOT NULL
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