EDUCBA Logo

EDUCBA

MENUMENU
  • Explore
    • EDUCBA Pro
    • PRO Bundles
    • Featured Skills
    • New & Trending
    • Fresh Entries
    • Finance
    • Data Science
    • Programming and Dev
    • Excel
    • Marketing
    • HR
    • PDP
    • VFX and Design
    • Project Management
    • Exam Prep
    • All Courses
  • Blog
  • Enterprise
  • Free Courses
  • Log in
  • Sign Up
Home Data Science Data Science Tutorials SQL Tutorial SQL BIGINT
 

SQL BIGINT

Updated March 14, 2023

SQL BIGINT

 

 

Introduction to SQL BIGINT

BIGINT is a data type in standard query language (SQL) that is used to store exact number values. It is used to store values that exceed the upper bound supported by the INT data type. BIGINT data type ranges from -2 ^63 to 2^63-1 i.e (-9, 223, 372, 036, 854, 775, 808) to (9, 223, 372, 036, 854, 775, 807) for signed numeric values. In case of unsigned values it ranges from 2^64-1 i.e (18, 446, 744, 073, 709, 551, 615). BIGINT data type represents large range integers, and hence its storage size is 8 bytes.

Watch our Demo Courses and Videos

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more.

Syntax:

BIGINT;

BIGINT is a data type, and hence whenever we have to use it in any SQL query like CREATE, CONVERT or CAST, just use the keyword BIGINT.

Examples of SQL BIGINT

Given below are the examples of SQL BIGINT:

Example #1

SQL query to illustrate the creation of a BIGINT type field in a table.

In order to illustrate the usage and range of BIGINT data types, let us see a few examples on a dummy table. Here is a CREATE TABLE statement for the account_details table containing details such as a very large account_number, account holder’s age and amount in the account. We have used three different types of numeric data types to illustrate the basic difference between them.

Code:

CREATE TABLE Account_details (
account_number BIGINT,
age SMALLINT,
amount INT
);

Output:

SQL BIGINT 1

The table has been successfully created. In this table, since the account_numbers are large in size, we have used BIGINT for it; the age of a person cannot be a large figure like 2000 or 3000; hence we have kept SMALLINT data type for this field and finally, the amount is an INT type field.

The next task is to insert a few records in it to work with.

Here is an introductory INSERT statement.

Code:

INSERT INTO public.account_details(
account_number, age, amount)
VALUES (9223372036854775805,67,4512345);

Output:

Query returned successfully in 53 msec

Since all the numeric values were well within the range specified for them, let’s try a few examples where the values to be inserted are not within the permitted range.

Example #2

SQL queries to illustrate upper and lower bounds of various number data types.

Code:

INSERT INTO public.account_details(
account_number, age, amount)
VALUES (9223372,67,9223372036854775805);

Output:

SQL BIGINT 3

In this example, when we tried inserting a BIGINT value in an INT data type, the server prompted an error, as shown in the image.

Code:

INSERT INTO public.account_details(
account_number, age, amount)
VALUES (9223372036854775810,67,4512345);

Output:

out of range

Similar to the previous illustration, we tried inserting a numeric value just a few numbers ahead of BIGINT upper bound. The server throws an error. Hence, we should note that when using INT or BIGINT data types, one should keep in mind their specific ranges.

Example #3

SQL query to illustrate BIGINT range overflow while performing mathematical operations and methods to hand it.

In order to illustrate range overflow while performing aggregate operations on numeric values, let us insert a few more records in the account details table using the following INSERT statement.

Code:

INSERT INTO public.account_details(
account_number, age, amount)
VALUES (9223372036854775806,32,45123),
(9223372036854775801,52,2147403648);

Output:

SQL BIGINT 5

The new rows have been successfully inserted.

Now we are all set to try a few examples.

a. Find the total sum of the amount present in all the accounts.

Code:

SELECT SUM(amount)
FROM account_details;

Output:

SQL BIGINT 6

Note: The conversion to a higher data type in cases of range overflow is a very subjective matter. It varies across SQL database servers. You might even receive different results for the same query in two different database servers.

In this example, we have compared results obtained from an aggregate query in PostgreSQL and SQL server databases. In PostgreSQL, the result was automatically converted to BIGINT from INT in case of range overflow.

Output:

aggregate query in PostgreSQL and SQL server databases

But when we execute the same query in an SQL server, there is no automatic transition to a bigger data type. Instead, the server throws the error as shown in the image.

Now you must be wondering how we should handle such situations in SQL server. First, we can use the CAST function to cast or convert the values to BIGINT, DECIMAL or NUMERIC data type from INT data type as shown below.

Code:

SELECT SUM(CAST(amount AS BIGINT))
FROM account_details;

Output:

SQL BIGINT 8

Code:

SELECT SUM(CAST(amount AS DECIMAL))
FROM account_details;

Output:

SQL BIGINT 9

b. Find the total sum of the account_numbers present in the database table.

Code:

SELECT SUM(account_number)
FROM account_details;

Output:

total sum of the account_numbers present in the database table

Similar to the previous example, in POSTGRESQL, there is a smooth transition from BIGINT to NUMERIC data type in case of range overflow. But in the SQL server case, their server throws a range overflow error, as shown below.

Output:

SQL BIGINT 11

Note: We should note that the range of various numeric functions varies across database servers. So the numeric data type of two different servers might not be of the same storage capacity.

The server could not accommodate the new value when we tried explicit casting of BIGINT data type to NUMERIC data type.

Code:

SELECT SUM(CAST(account_number AS NUMERIC))
FROM account_details;

Output:

explicit casting

Conclusion

In this article, we saw BIGINT data type, a numeric data type in SQL. It has a storage size of 8 bits and ranges from -2 ^63 to 2^63-1 in most database servers.

Recommended Articles

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

  1. SQL Select Top
  2. SQL Cluster
  3. SQL Merge Two Tables
  4. SQL Virtual Table

Primary Sidebar

Footer

Follow us!
  • EDUCBA FacebookEDUCBA TwitterEDUCBA LinkedINEDUCBA Instagram
  • EDUCBA YoutubeEDUCBA CourseraEDUCBA Udemy
APPS
EDUCBA Android AppEDUCBA iOS App
Blog
  • Blog
  • Free Tutorials
  • About us
  • Contact us
  • Log in
Courses
  • Enterprise Solutions
  • Free Courses
  • Explore Programs
  • All Courses
  • All in One Bundles
  • Sign up
Email
  • [email protected]

ISO 10004:2018 & ISO 9001:2015 Certified

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

EDUCBA

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

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

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 Login

Forgot Password?

🚀 Limited Time Offer! - 🎁 ENROLL NOW