📖 Scenario: You are managing a small store's sales data. You want to calculate the total sales for a specific product category and store this value in a variable for later use.
🎯 Goal: Create a SQL script that declares a variable, sets it to the total sales amount for the 'Electronics' category, and then updates the variable with a discount amount.
📋 What You'll Learn
Declare a variable named @totalSales of type DECIMAL(10,2).
Set @totalSales to the sum of sales amounts from the Sales table where the category is 'Electronics'.
Declare a variable named @discount of type DECIMAL(10,2) and set it to 100.00.
Update @totalSales by subtracting @discount using a SET statement.
💡 Why This Matters
🌍 Real World
Variables in SQL help store temporary values like totals or counters during data processing, making queries more flexible and readable.
💼 Career
Knowing how to use variables and SET statements is essential for writing dynamic SQL scripts, stored procedures, and performing calculations in database jobs.
Progress0 / 4 steps
1
Declare the @totalSales variable
Declare a variable called @totalSales with the data type DECIMAL(10,2).
SQL
Hint
Use the DECLARE statement to create a variable with the specified name and type.
2
Set @totalSales to sum of sales for 'Electronics'
Write a SET statement to assign @totalSales the sum of the Amount column from the Sales table where the Category is 'Electronics'.
SQL
Hint
Use a SELECT statement inside parentheses to calculate the sum and assign it with SET.
3
Declare and set the @discount variable
Declare a variable called @discount with the data type DECIMAL(10,2) and set it to 100.00 using a SET statement.
SQL
Hint
Declare the variable first, then assign the value with SET.
4
Update @totalSales by subtracting @discount
Use a SET statement to update @totalSales by subtracting the value of @discount.
SQL
Hint
Use SET to assign the new value by subtracting @discount from @totalSales.
Practice
(1/5)
1. What is the purpose of using variables in SQL with DECLARE and SET statements?
easy
A. To store temporary values that can be used later in the query
B. To permanently save data in the database
C. To create new tables automatically
D. To delete rows from a table
Solution
Step 1: Understand variable usage in SQL
Variables declared with DECLARE hold temporary values during query execution.
Step 2: Identify the purpose of SET
SET assigns values to these variables for use later in the query.
Final Answer:
To store temporary values that can be used later in the query -> Option A
Quick Check:
Variables = Temporary storage [OK]
Hint: Variables hold temporary data during query execution [OK]
Common Mistakes:
Thinking variables save data permanently
Confusing variables with table creation
Assuming variables delete data
2. Which of the following is the correct syntax to declare an integer variable named @count and set its value to 10 in SQL?
In SQL, DECLARE @variable_name TYPE; declares a variable.
Step 2: Assign value using SET
SET @variable_name = value; assigns the value.
Final Answer:
DECLARE @count INT; SET @count = 10; -> Option A
Quick Check:
DECLARE then SET = correct syntax [OK]
Hint: Declare first, then set value with SET [OK]
Common Mistakes:
Using SET before DECLARE
Mixing declaration and assignment in wrong order
Incorrect placement of data type
3. Consider the following SQL code:
DECLARE @x INT; SET @x = 5; SET @x = @x + 3; SELECT @x;
What will be the output of the SELECT statement?
medium
A. 5
B. 8
C. 3
D. NULL
Solution
Step 1: Initialize variable @x
@x is declared as integer and set to 5.
Step 2: Update @x by adding 3
@x = 5 + 3 = 8.
Final Answer:
8 -> Option B
Quick Check:
5 + 3 = 8 [OK]
Hint: Add values stepwise to variable [OK]
Common Mistakes:
Forgetting to update variable value
Assuming variable resets after SET
Confusing initial and updated values
4. Identify the error in the following SQL code:
DECLARE @total INT SET total = 100; SELECT @total;
medium
A. Missing semicolon after DECLARE statement
B. SELECT statement syntax is incorrect
C. Variable name missing '@' in SET statement
D. Variable @total not declared
Solution
Step 1: Check variable declaration
@total is declared correctly with DECLARE @total INT.
Step 2: Check SET statement
SET statement uses total without '@', which is incorrect; it should be @total.
Final Answer:
Variable name missing '@' in SET statement -> Option C
Quick Check:
Variable names need '@' prefix [OK]
Hint: Always use '@' before variable names [OK]
Common Mistakes:
Omitting '@' in variable usage
Forgetting semicolons (usually optional)
Misreading SELECT syntax
5. You want to calculate the total price for 3 items each costing 15, 20, and 25 using variables. Which SQL code correctly declares variables, sets their values, and calculates the total?
hard
A. DECLARE @item1 INT = 15, @item2 INT = 20, @item3 INT = 25; SET @total = @item1 + @item2 + @item3; SELECT @total;
B. DECLARE @total INT; SET total = 15 + 20 + 25; SELECT @total;
C. SET @item1 = 15; SET @item2 = 20; SET @item3 = 25; SET @total = @item1 + @item2 + @item3; SELECT @total;
D. DECLARE @item1 INT; DECLARE @item2 INT; DECLARE @item3 INT; DECLARE @total INT; SET @item1 = 15; SET @item2 = 20; SET @item3 = 25; SET @total = @item1 + @item2 + @item3; SELECT @total;
Solution
Step 1: Declare all variables before use
Variables @item1, @item2, @item3, and @total must be declared first.
Step 2: Assign values and calculate total
Assign each item price with SET, then sum them into @total.
Step 3: Select the total value
Use SELECT to output the total price.
Final Answer:
DECLARE @item1 INT; DECLARE @item2 INT; DECLARE @item3 INT; DECLARE @total INT; SET @item1 = 15; SET @item2 = 20; SET @item3 = 25; SET @total = @item1 + @item2 + @item3; SELECT @total; -> Option D
Quick Check:
Declare then set all variables before calculation [OK]
Hint: Declare all variables first, then assign and calculate [OK]
Common Mistakes:
Assigning values without declaring variables
Trying to declare and assign in one line incorrectly
Missing variable declarations
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.