EDUCBA

EDUCBA

MENUMENU
  • Blog
  • Free Courses
  • All Courses
  • All in One Bundle
  • Login
Home Data Science Data Science Tutorials SQL Tutorial SQL While Loop

SQL While Loop

Priya Pedamkar
Article byPriya Pedamkar

Updated March 13, 2023

SQL While Loop

Introduction to SQL While Loop

While Loop in standard query language (SQL), is a control structure that lets us execute a set of statements/functions repeated until the loop invariant or loop condition returns false. It is really helpful when we are not sure how many times a set of statements should run. SQL While Loop starts with a given set of keywords like BEGIN in SQL server, or LOOP in PostgreSQL and ends with END or END LOOP. If the condition mentioned for the While Loop is true, then the body of the loop gets executed. Otherwise, the loop gets terminated.

Start Your Free Data Science Course

Hadoop, Data Science, Statistics & others

Flowchart of SQL While Loop

Let us understand the work flow of the loop with the flow chart mentioned below:

WHILE LOOP in SQL flowchart

Syntax

The syntax for SQL While Loop server is as follows :

WHILE condition_expression BEGIN
{statements} END

The syntax for WHILE LOOP in MYSQL is as follows :

[label_name] WHILE condition_expression DO
{statements}
END WHILE [label_name]

The parameters used in the above syntax are as follows :

  • WHILE condition_expression: It is the condition expression that if evaluated to TRUE, the loop will be executed. If the condition evaluates to FALSE, the loop will be terminated.
  • Statements: Defines the body of a while loop.

Examples to Implement SQL While Loop

Here are some examples mentioned:

Example #1

Write a Fibonacci function using a SQL While loop in PostgreSQL:

In this example, we will try to create a Fibonacci series, which is nothing but a series of numbers where each new number is the sum of the first two numbers ahead of it.

For example,

0, 1,1, 2,3,5,8,13,21, …… etc.

Code:

CREATE OR REPLACE FUNCTION fibonacci(num integer) RETURNS integer AS $$
DECLARE
i integer = 0; j integer = 0; k integer = 1; BEGIN
IF (num < 1) THEN RETURN 0;
END IF;
WHILE(i < num)
LOOP
i = i+1;
SELECT k, j+k into j,k;
END LOOP; RETURN j; END;
$$ LANGUAGE plpgsql;

Output:

Fibonacci function

The SQL query has been successfully executed. Now, we may check if the function is created under the functions tab in the schema section of the browser.

functions tab

Yes, indeed a new function called “Fibonacci” has been created successfully.

Next, we can check its functionality. Let us start with Fibonacci of the first 0 numbers.

SELECT fibonnaci( 0 );

Output:

SQL while Loop3

The function returns 0, as mentioned in the function, i.e., if the value of the numbers is less than 1, then return 0. Now, let’s check the working of the WHILE loop as well.

SELECT fibonnaci( 1 );

Output:

working of the WHILE loop

The Fibonacci of the first 1 number is returned as 1, which is correct. Going ahead let us check for Fibonacci of the first 7 numbers.

SELECT fibonnaci( 7 );

Output:

SQL while Loop5

The function returns 13 as Fibonacci of number 7, which is also correct.

Example #2

Write a function to find the sum of natural numbers using a while loop:

In this example, we will try to find the sum of first n natural numbers using a while loop. The formula for the same is n(n+1)/2.

Code:

CREATE OR REPLACE FUNCTION nautral_sum(num integer) RETURNS integer AS $$
DECLARE
sum integer = 0; i integer = 1; BEGIN
IF (num <= 1) THEN RETURN 1;
END IF;
WHILE(i <= num) LOOP
sum = sum + i; i = i+1;
END LOOP; RETURN sum; END;
$$ LANGUAGE plpgsql;

Output:

sum of natural numbers

The SQL query has been successfully executed. Now, we may check if the function is created under the functions tab in the schema section of the browser.

schema section

Yes, indeed a new function called “natural_sum” has been created successfully. Next, we can check its functionality. Let us start with finding the sum of the first 5 natural numbers.

SELECT public.natural_sum( 5 );

Output:

SQL while Loop8

Sum of first five natural numbers = (1+2+3+4+5) = 15.

Next, let’s try to find the sum of the first 10 and 100 natural numbers respectively.

SELECT public.natural_sum( 10 );

Output:

SQL while Loop9

SELECT public.natural_sum( 100 );

Output:

SQL while Loop10

Example #3

Write a function to find the factorial of a number using a while loop:

In this example, we will try to find out the factorial of a number using a while loop. Factorial of a number n is a product of all the numbers from 1 to n.

Code:

CREATE OR REPLACE FUNCTION factorial(num integer) RETURNS integer AS $$
DECLARE
factorial integer = 1; i integer = 1; BEGIN
WHILE(i <= num) LOOP
factorial = factorial*i; i = i+1;
END LOOP;
RETURN factorial; END;
$$ LANGUAGE plpgsql;

Output:

SQL while Loop11

Let us check if the function has been created.

SQL while Loop12

We can see that the function has been successfully created in the functions section of the concerned schema. Next, let us check the functionality of the factorial function by trying some examples. First, we can start by finding the factorial of ‘0’.

SELECT public.factorial( 0 );

Output:

SQL while Loop13

The function returns 1, which is correct. Next, let us check the factorial of 5.

SELECT public.factorial( 5 );

Output:

SQL while Loop14

The factorial function returns 120, which is also correct. The factorial of a number greater than 0 is the product of all the numbers before the number and number itself. Hence, the factorial of 5 will be given by :

5*4*3*2*1 = 120

Finally, let us try to find the factorial of 12.

SELECT public.factorial( 12 );

Output:

factorial

The function returns 479001600 which is also correct. The factorial of 12 is calculated as follows: 12*11*10*9*8*7*6*5*4*3*2*1 = 479001600

Conclusion

While loop in SQL is a control structure, that executes a set of statements based on a condition. It executes a body of statements only if the condition expression mentioned is found to be TRUE. Otherwise, it terminates and exits the loop. WHILE LOOP helps perform repetitive and recursive tasks efficiently.

Recommended Articles

We hope that this EDUCBA information on “SQL While Loop” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

  1. PL/SQL Collections
  2. SQL Keywords
  3. Cursor in MySQL
  4. Loops in PL/SQL
All in One Excel VBA Bundle
500+ Hours of HD Videos
15 Learning Paths
120+ Courses
Verifiable Certificate of Completion
Lifetime Access
Financial Analyst Masters Training Program
2000+ Hours of HD Videos
43 Learning Paths
550+ Courses
Verifiable Certificate of Completion
Lifetime Access
All in One Data Science Bundle
2000+ Hour of HD Videos
80 Learning Paths
400+ Courses
Verifiable Certificate of Completion
Lifetime Access
All in One Software Development Bundle
5000+ Hours of HD Videos
149 Learning Paths
1050+ Courses
Verifiable Certificate of Completion
Lifetime Access
Primary Sidebar
All in One Data Science Bundle2000+ Hour of HD Videos | 80 Learning Paths | 400+ Courses | Verifiable Certificate of Completion | Lifetime Access
Financial Analyst Masters Training Program2000+ Hours of HD Videos | 43 Learning Paths | 550+ Courses | Verifiable Certificate of Completion | Lifetime Access
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Database Management
  • Machine Learning
  • All Tutorials
Certification Courses
  • All Courses
  • Data Science Course - All in One Bundle
  • Machine Learning Course
  • Hadoop Certification Training
  • Cloud Computing Training Course
  • R Programming Course
  • AWS Training Course
  • SAS Training Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA
Free Data Science Course

Hadoop, Data Science, Statistics & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more