أنواع البيانات في SQL

من موسوعة حسوب
< SQL

تختلف أنواع البيانات بحسب محرك البيانات المستخدَم وستُذكر تباعًا.

دورة علوم الحاسوب
  • 62 ساعة فيديو تدريبية
  • من الصفر دون الحاجة لخبرة مسبقة
  • شهادة معتمدة من أكاديمية حسوب
  • متابعة أثناء الدورة من فريق مختص

في محرك البيانات MySQL

أنواع البيانات العددية Numeric

النوع بداية المجال نهاية المجال مساحة التخزين
TINYINT ‎-128 127 1 بايت
SMALLINT ‎-32768 32767 2 بايت
MEDIUMINT ‎-8388608 8388607 3 بايت
INT ‎-2147483648 2147483647 4 بايت
BIGINT ‎-9223372036854775808 9223372036854775807 8 بايت
BIT 0 1 بت واحد

البيانات العددية الثابتة مع الفاصلة العشرية

النوع الوصف
DECIMAL(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية.

مثل: DECIMAL(5,2)‎ يتحدد بالمجال ما بين ‎-999.99 و ‎+999.99

FLOAT(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية.

مثل: FLOAT(7,3)‎ يتحدد بالمجال ما بين ‎-9999.999 و ‎+9999.999

DOUBLE(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية.

مثل: DOUBLE(1,1)‎ يتحدد بالمجال ما بين ‎-9.9 و ‎+9.9

أنواع بيانات التاريخ والتوقيت Date and Time

النوع الوصف
DATE التاريخ بالشكل 'YYYY-MM-DD'
DATETIME التاريخ والتوقيت بالشكل 'YYYY-MM-DD HH:MM:SS'
TIME التوقيت بالشكل 'HH:MM:SS'
YEAR[(2|4)]‎ العام بخانتين أو 4 خانات

أنواع السلاسل String

النوع الوصف
CHAR(size)‎ سلسلة محرفية بطول ثابت size
VARCHAR(size)‎ سلسلة محرفية بطول متغيّر وبحد أقصى size
TINYTEXT(size)‎ إذ يعبر size عن عدد المحارف التي ستُخزّن في السلسلة
TEXT(size)‎ إذ يعبر size عن عدد المحارف التي ستُخزّن في السلسلة
MEDIUMTEXT(size)‎ إذ يعبر size عن عدد المحارف التي ستُخزّن في السلسلة
LONGTEXT(size)‎ إذ يعبر size عن عدد المحارف التي ستُخزّن في السلسلة
BINARY(size)‎ سلسلة من الخانات الثنائية بطول ثابت إذ يعبر size عن عدد الخانات في السلسلة
VARBINARY(size)‎ سلسلة من الخانات الثنائية بطول متغير إذ يعبر size عن عدد الخانات الأقصى في السلسلة

في محرك البيانات PostgreSQL

أنواع البيانات العددية Numeric

النوع المجال مساحة التخزين
smallint ‎-32768 حتى ‎+32767 2 بايت
integer ‎-2147483648 حتى ‎+2147483647 4 بايت
bigint ‎-9223372036854775808 حتى ‎+9223372036854775807 8 بايت
decimal يصل إلى 131072 خانة قبل الفاصلة العشرية و 16383 خانة بعد الفاصلة العشرية متغيرة
numeric يصل إلى 131072 خانة قبل الفاصلة العشرية و 16383 خانة بعد الفاصلة العشرية متغيرة
real بدقة 6 خانات عشرية 4 بايت
double precision بدقة 15 خانة عشرية 8 بايت
smallserial 1 حتى 32767 2 بايت
serial 1 حتى 2147483647 4 بايت
bigserial 1 حتى 9223372036854775807 8 بايت

أنواع البيانات الماليّة Monetary

النوع المجال مساحة التخزين
money ‎-92233720368547758.08 حتى ‎+92233720368547758.08 8 بايت

أنواع البيانات المحرفية Character

النوع الوصف
varchar(n) سلسلة محرفية متغيرة الطول بحدٍّ أقصى n
character(n), char(n)‎ سلسلة محرفية ثابتة الطول n
text سلسلة محرفية غير محدودة

أنواع البيانات الثنائية Binary

النوع الوصف
bytea سلسلة ثنائية متغيرة الطول

أنواع بيانات التاريخ والتوقيت Date and Time

النوع الوصف بداية المجال نهاية المجال مساحة التخزين
timestamp [ (p) ] [ without time zone ]‎ التاريخ والتوقيت (بدون المنطقة الزمنية) 4713 قبل الميلاد 294276 بعد الميلاد 8 بايت
timestamp [ (p) ] with time zone التاريخ والتوقيت مع المنطقة الزمنية 4713 قبل الميلاد 294276 بعد الميلاد 8 بايت
date التاريخ بدون التوقيت 4713 قبل الميلاد 5874897 بعد الميلاد 4 بايت
time [ (p) ] [ without time zone ]‎ التوقيت بدون التاريخ 00:00:00 24:00:00 8 بايت
time [ (p) ] with time zone التوقيت بدون التاريخ مع المنطقة الزمنية 00:00:00+1459 24:00:00-1459 12 بايت
interval [ fields ] [ (p) ]‎ مجال زمنيّ ‎-178000000 سنة 178000000 سنة 16 بايت

إذ إن المتحول p يعبّر عن عدد الخانات الكسرية في حقل الثواني.

أنواع البيانات المنطقية Boolean

النوع الوصف مساحة التخزين
boolean تقبل قيمة TRUE أو FALSE بايت واحد

في محرك البيانات Oracle

أنواع البيانات العددية Numeric

النوع الوصف
number(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية
numeric(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية
float لتخزين الأعداد بوجود الفاصلة العشرية
dec(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية
decimal(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد الخانات المسموحة ما بعد الفاصلة العشرية
integer لتخزين الأعداد الصحيحة
int لتخزين الأعداد الصحيحة
smallint لتخزين الأعداد الصحيحة
real بدقة 6 خانات عشرية
double precision بدقة 15 خانة عشرية

أنواع البيانات المحرفية Character

النوع الوصف
char(size)‎ سلسلة نصية ثابتة الطول بطول أقصى size
nchar(size)‎ سلسلة نصية ثابتة الطول بطول أقصى size
nvarchar2(size)‎ سلسلة نصية متغيرة الطول بطول أقصى size
varchar2(size)‎ سلسلة نصية متغيرة الطول بطول أقصى size
long سلسلة نصية متغيرة الطول
raw سلسلة من الخانات الثنائية binary متغيرة الطول
long raw سلسلة من الخانات الثنائية binary متغيرة الطول

أنواع بيانات التاريخ والتوقيت Date and Time

النوع الوصف
timestamp (precision) لتخزين التاريخ والتوقيت بدقة precision للثانية
timestamp (precision) with timezone لتخزين التاريخ والتوقيت بدقة precision للثانية مع اعتبار المنطقة الزمنية
interval year (year precision) to month تحديد مجال يُعرَّف بالسنوات والأشهر بدقة precision للسنوات
interval day (precision) to second (sec_precision)‎ تحديد مجال يُعرَّف بالأيام والثواني بدقة precision للأيام، ودقة sec_precision للثواني

في محرك البيانات SQLite

يمتاز محرك البيانات SQLite بقلّة أنواع بياناته، وهي:

النوع الوصف
INTEGER لتخزين الأعداد الصحيحة
REAL لتخزين الأعداد مع الفاصلة العشرية
NUMERIC لتخزين القيم المنطقية boolean والتاريخ والتوقيت
TEXT لتخزين السلاسل النصية

إذ يُمكن أيضًا تخزين بيانات التاريخ والتوقيت بنوع البيانات TEXT بالشكل "YYYY-MM-DD HH:MM:SS.SSS"

في محرك البيانات SQL Server

البيانات العددية المحدَّدة

النوع بداية المجال نهاية المجال
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

البيانات العددية التقريبيّة

النوع بداية المجال نهاية المجال
float ‎-1.79E + 308 1.79E + 308
real ‎-3.40E + 38 3.40E + 38

بيانات التاريخ والتوقيت

النوع بداية المجال نهاية المجال
datetime 1 كانون الثاني 1753 31 كانون الأول 9999
smalldatetime 1 كانون الثاني 1900 6 حزيران 2079
date لتخزين التاريخ فقط
time لتخزين التوقيت فقط

بيانات السلاسل النصية المحرفية

النوع الوصف
char يصل لطولٍ أقصى 8,000 محرف (طول ثابت من محارف non-Unicode)
varchar يصل لطولٍ أقصى 8,000 محرف (طول متغير من محارف non-Unicode)
varchar(max)‎ يصل لطولٍ أقصى 231 محرف، وبطول متغير من محارف non-Unicode
text بطولٍ متغيّر من محارف non-Unicode بطول أقصى 2,147,483,647 محرف

بيانات السلاسل النصّية المحرفيّة وفق Unicode

النوع الوصف
nchar يصل لطولٍ أقصى 4,000 محرف (طول ثابت من محارف Unicode)
nvarchar يصل لطولٍ أقصى 4,000 محرف (طول متغير من محارف Unicode)
nvarchar(max)‎ يصل لطولٍ أقصى 231 محرف وبطول متغير من محارف Unicode
ntext بطولٍ متغير من محارف Unicode بطول أقصى 1,073,741,823 محرف

البيانات الثنائية

النوع الوصف
binary يصل لطولٍ أقصى 8,000 بايت (طول ثابت من البيانات الثنائية)
varbinary يصل لطولٍ أقصى 8,000 بايت (طول متغير من البيانات الثنائية)
varbinary(max)‎ يصل لطولٍ أقصى 231 بايت وبطول متغير من البيانات الثنائية
image بطولٍ متغير من البيانات الثنائية، بطول أقصى 2,147,483,647 بايت

مصادر