গত পর্বে আমরা আলোচনা করেছি যে SQL কি এবং এর প্রাথমিক কিছু ধারনা। আজকে আমরা আলোচনা করব SQL এর সকল ধরনরে data type সম্পর্কে।
আমরা জানি যে, database এ ডাটা সংরক্ষন করে রাখার জন্য আমরা একটি programming language ব্যবহার করি তার নাম হচ্ছে SQL। আমরা আরো জানি যে, database অনেক ধরনের হয়ে থাকে তবে সবচেয়ে বেশি জনপ্রিয় হলো MySQL Database।
এখন এই MySQL Database এ data সংরক্ষন করে রাখার জন্য আমাদেরকে প্রথমে একটি Database তৈরী করতে হবে। এই Database এর ভিতরে আমাদেরকে প্রয়োজন মত table তৈরী করতে হবে এবং এই table এর ভিতরেই আমাদের সকল ধরনের ডাটাগুলো সংরক্ষন করতে হবে।
এই table গুলো তৈরী করতে হলে আমাদের কতগুলো columns তৈরী করতে হবে যেমন- Users নামে একটি নতুন table তৈরী করে তার মধ্যে আমরা ৪ টি columns দিব যার নাম হচ্ছে- user_id, first_name, last_name, joined_date।
এখন এই যে columns গুলো তৈরী করলাম সে জন্য প্রত্যেকটি column এর জন্য আমাদেরকে data type বলে দিয়ে আসতে হবে। তাতে করে আমরা নির্ধারন করতে পারব যে কোন column কোন ধরনের data type সংরক্ষন করবে। বোঝা গেল:)
SQL এর সকল ধরনের data type
আমরা জানি যে, SQL এ table এ আমরা বিভিন্ন ধরেনের data সংরক্ষন করেতে পারি। যেমন – কারো নাম, বয়স, জন্ম তারিখ বা কোন নাম্বার। এর উপর ভিত্তি করেই SQL এ ৬ ধরনের data type রয়েছে। যেমন-
১। Exact Numeric Data Types
২। Approximate Numeric Data Types
৩। Date and Time Data Types
৪। Character Strings Data Types
৫।Unicode Character Strings Data Types
৬।Binary Data Type
১। Exact Numeric Data Types
এই ধরনের Data Types আমরা যে কোন নাম্বার column এর জন্য ব্যবহার করে থাকি। যেমন- user_id। এই user_id column এর value সাধারনত নাম্বার হয়ে থাকে আবার অমরা যদি বলি কোন ছাত্রের Roll Nuber তাও কিন্তু নাম্বার হয়ে থাকে, তাই না। এই number value এর জন্য আমাদেরকে Exact Numeric Data Type ব্যবহার করতে হবে।
এই Exact Numeric Data Type ৯ ধরনের হয়ে থাকে। নিচের টেবিলটি লক্ষ্য করুন-
Data Type | From | To |
---|---|---|
bigint | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
int | -2,147,483,648 | 2,147,483,647 |
smallint | -32,768 | 32,767 |
tinyint | 0 | 255 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^38 -1 |
money | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 |
smallmoney | -214,748.3648 | +214,748.3647 |
এখানে Data Type কলামে দেখতে পাচ্ছি bigint, int, smallint, tinyint ইত্যাদি। এগুলোই হচ্ছে Exact Numeric Data Type। এখানে From এবং To column দিয়ে বুঝানো হচ্ছে যে এই column এর value সর্বনম্নি কত থেকে সর্বোচ্চ কত হতে পারবে।
২। Approximate Numeric Data Types
উপরের যে সকল data type আমরা দেখেছি তা শুধুমাত্র Fixed value এর জন্য ব্যবহার করা হয় কিন্তু আমরা যদি চাই যে column এর value ভগ্নাংশ আকারে হবে তাহলে? হ্যা তার জন্য আমরা এই Approximate Numeric Data Types গুলো ব্যবহার করব। যেমন-
Data Type | From | To |
---|---|---|
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
৩। Date and Time Data Types
এখন কোন একটি column এর ভ্যালূ যদি আপনি date অথবা date time দিতে চান তাহলে এই Date and Time Data Types ব্যবহার করতে হবে। যেমন-
Data Type | From | To |
---|---|---|
datetime | Jan 1, 1753 | Dec 31, 9999 |
smalldatetime | Jan 1, 1900 | Jun 6, 2079 |
date | Stores a date like June 30, 1991 | |
time | Stores a time of day like 12:30 P.M. |
উপরের Data Types গুলো দেখেই বুঝতে পারছেন যে কোন Data Type ব্যবহার করলে কি রকম value আপনি পাবেন। যেমন –
আমরা যদি date নামের data type টি ব্যবহার করি তাহলে ঐ column এর value এভাবে দেখাবে – September 6, 2020
আবার আমরা যদি time নামের data type টি ব্যবহার করি তাহলে ঐ column এর value এভাবে দেখাবে – 09:30 P.M
৪। Character Strings Data Types
আমরা যদি কোন column এর value ক্যারেক্টার আকারে বা string আকারে চাই যেমন- we are learning sql, what is your name? মানে Alphanumeric আকারে চাই তাহলে এই Character Strings Data Types ব্যবহার করব।
Data Type | Description |
---|---|
char | সর্বোচ্চ ৮,০০০ characters। ( Fixed length non-Unicode characters ) |
varchar | সর্বোচ্চ ৮,০০০ characters। ( Variable-length non-Unicode data ) |
varchar(max) | Maximum length of 2E + 31 characters, Variable-length non-Unicode data (SQL Server 2005 only). |
text | Variable-length non-Unicode data with a maximum length of 2,147,483,647 characters. |
৫।Unicode Character Strings Data Types
আমরা যদি database এ unicode character সংরক্ষন করতে চাই তাহলে এই Unicode Character Strings Data Types ব্যবহার করতে হবে। যেমন-
Data Type | Description |
---|---|
nchar | Maximum length of 4,000 characters.( Fixed length Unicode) |
nvarchar | Maximum length of 4,000 characters.(Variable length Unicode) |
nvarchar(max) | Maximum length of 2E + 31 characters (SQL Server 2005 only).( Variable length Unicode) |
ntext | Maximum length of 1,073,741,823 characters. ( Variable length Unicode ) |
৬।Binary Data Type
Database table এ আমরা যদি কোন binary value রাখতে চাই তাহলে এই Binary Data Types ব্যবহার করতে হবে। যেমন-
Data Type | Description |
---|---|
binary | Maximum length of 8,000 bytes(Fixed-length binary data ) |
varbinary | Maximum length of 8,000 bytes.(Variable length binary data) |
varbinary(max) | Maximum length of 2E + 31 bytes (SQL Server 2005 only). ( Variable length Binary data) |
image | Maximum length of 2,147,483,647 bytes. ( Variable length Binary Data) |