أنواع بيانات SQL Server مع الأمثلة
⚡ ملخص ذكي
تحدد أنواع بيانات SQL Server نوع القيمة التي يمكن أن يخزنها عمود أو متغير، مثل عدد صحيح، أو عدد عشري، أو حرف، أو تاريخ، أو عدد ثنائي. ويضمن اختيار النوع الصحيح صحة البيانات واستخدام الذاكرة بكفاءة.

ما هو نوع البيانات؟
نوع بيانات في مرض التصلب العصبي المتعدد مزود خدمة يُعرَّف بأنه نوع البيانات التي يمكن لأي عمود أو متغير تخزينها. وهو نوع البيانات التي يحتويها الكائن، مثل الأعداد الصحيحة أو الأحرف أو السلاسل النصية. عند إنشاء أي جدول or متغيربالإضافة إلى تحديد الاسم، يمكنك أيضًا تحديد نوع البيانات التي سيتم تخزينها.
كيفية استخدام نوع البيانات MS SQL
يجب تحديد نوع البيانات التي يمكن تخزينها في العمود أو المتغير مسبقًا. كما أن تحديد نوع البيانات يمنع المستخدم من إدخال أي بيانات غير متوقعة أو غير صالحة.
يمكنك الاستفادة بكفاءة من الذاكرة عن طريق تعيين نوع بيانات مناسب لمتغير أو عمود، مما يخصص فقط مقدار ذاكرة النظام المطلوبة لبيانات ذلك العمود.
توفر لغة MS SQL مجموعة واسعة من أنواع البيانات الأساسية في SQL لتلبية احتياجات المستخدم، مثل التاريخ، والبيانات الثنائية، والصور، والمزيد.
لماذا استخدام أنواع البيانات؟
لنأخذ مثالاً على صفحة تسجيل بسيطة لتطبيق موقع ويب. الحقول الثلاثة المدخلة هي: الاسم الأول، واسم العائلة، ورقم الهاتف.
وهنا تجدر الإشارة إلى أنه في السيناريوهات الواقعية:
- سيكون "الاسم الأول/اسم العائلة" دائمًا أبجديًا.
- ستكون كلمة "جهة الاتصال" دائمًا رقمية.
يوضح المثال أدناه هذه الحقول في نموذج التسجيل.
من الصورة أعلاه، من المنطقي تعريف "الاسم الأول/الاسم الأخير" كحرف و"جهة الاتصال" كعدد صحيح.
من الواضح أنه في أي تطبيق، تحتوي جميع الحقول على نوع أو آخر من البيانات، على سبيل المثال البيانات الرقمية، والأبجدية، والتاريخ، وغيرها الكثير.
تجدر الإشارة أيضًا إلى أن أنواع البيانات المختلفة تتطلب ذاكرة مختلفة. لذا، من الأنسب تعريف العمود أو المتغير بنوع البيانات التي سيحتويها، وذلك لتحقيق الاستخدام الأمثل للذاكرة.
نوع البيانات المتوفرة في MS SQL Server
فيما يلي قائمة بأنواع البيانات في خادم MS SQL. يدعم خادم MS SQL الفئات التالية من أنواع البيانات:
- رقمية دقيقة
- عددية تقريبية
- التاريخ والوقت
- سلاسل الأحرف
- سلاسل أحرف Unicode
- سلاسل ثنائية
- أنواع البيانات الأخرى
يُصنّف الرسم البياني أدناه أنواع بيانات خادم MS SQL إلى هذه الفئات.
أنواع البيانات الرقمية الدقيقة في SQL
يحتوي نوع البيانات Exact numeric على تسعة أنواع فرعية في SQL Server. يخزن كل نوع منها أعدادًا صحيحة أو أعدادًا ذات فاصلة ثابتة ضمن نطاق محدد.
| نوع البيانات | الوصف | الحد الأدنى | الحد الأعلى | ذاكرة |
|---|---|---|---|---|
| BIGINT | يخزن الأعداد الصحيحة في النطاق المحدد | −2^63 (−9,223,372,036,854,775,808) | 2^63−1 (9,223,372,036,854,775,807) | بايت 8 |
| مادبا | يخزن الأعداد الصحيحة في النطاق المحدد | −2^31 (−2,147,483,648) | 2^31−1 (2,147,483,647) | بايت 4 |
| com.miniint | يخزن الأعداد الصحيحة في النطاق المحدد | −2^15 (−32,768) | 2^15−1 (32,767) | بايت 2 |
| الدقيقة | يخزن الأعداد الصحيحة في النطاق المحدد | 0 | 255 | بايت 1 |
| بت | يمكن أن يستغرق الأمر قيمًا 0 أو 1 أو NULL. | 0 | 1 | عمود 1 بايت / 8 بت |
| عدد عشري | يستخدم للأرقام ذات المقياس والدقة الثابتة | −10^38+1 | 10^38−1 | 5 إلى 17 بايت |
| الرقمية | يستخدم للأرقام ذات المقياس والدقة الثابتة | −10^38+1 | 10^38−1 | 5 إلى 17 بايت |
| مال | تُستخدم للبيانات النقدية | -922,337,203,685,477.5808 | 922,337,203,685,477.5807+ | بايت 8 |
| مبلغ صغير | تُستخدم للبيانات النقدية | -214,478.3648 | 214,478.3647+ | بايت 4 |
أنواع البيانات الرقمية الدقيقة في SQL Server مع أمثلة:
الاستعلام:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
الإخراج:
2
بناء الجملة:
Decimal (P,S)
هنا، P هي الدقة و S هي المقياس.
الاستعلام:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
الإخراج:
2.31
أنواع البيانات الرقمية التقريبية في SQL
تشمل فئة البيانات العددية التقريبية في لغة SQL القيم العشرية والقيم الحقيقية. وتُستخدم هذه الأنواع من البيانات في الغالب في الحسابات العلمية.
| نوع البيانات | الوصف | الحد الأدنى | الحد الأعلى | ذاكرة | دقة |
|---|---|---|---|---|---|
| تعويم (ن) | يستخدم لرقم الدقة العائمة | -1.79E+308 | 1.79E + 308 | يعتمد على قيمة ن | 15 أرقام |
| حقيقي | يستخدم لرقم الدقة العائمة | -3.40E+38 | 3.40E + 38 | بايت 4 | 7 أرقام |
يستخدم نوع البيانات العشري الصيغة التالية:
Syntax: FLOAT [(n)]
هنا، يمثل n عدد البتات المستخدمة لتخزين الجزء الكسري من العدد العشري بالصيغة العلمية. القيمة الافتراضية لـ n هي 53.
عند تعريف نوع بيانات مثل float، يجب أن تكون قيمة n بين 1 و 53. يتعامل SQL Server مع n كواحدة من قيمتين محتملتين: إذا كان 1<=n<=24، فسيتم التعامل مع n على أنها 24؛ إذا كان 25<=n<=53، فسيتم التعامل مع n على أنها 53.
مثال للاستعلام:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
الإخراج:
22.1234
أنواع بيانات التاريخ والوقت في SQL
تخزن هذه الفئة بيانات من نوع التاريخ والوقت.
| نوع البيانات | الوصف | حجم التخزين | الدقة | المدى المنخفض | النطاق العلوي |
|---|---|---|---|---|---|
| التاريخ والوقت | يستخدم لتحديد التاريخ والوقت من 1 يناير 1753 إلى 31 ديسمبر 9999. تبلغ دقته 3.33 مللي ثانية. | بايت 8 | تم التقريب إلى زيادات .000، .003، .007 | 1753-01-01 | 9999-12-31 |
| com.smalldatetime | يستخدم لتحديد التاريخ والوقت من 1 يناير 1900 إلى 6 يونيو 2079. دقته دقيقة واحدة. | 4 بايت، ثابتة | 1 دقيقة | 1900-01-01 | 2079-06-06 |
| تاريخ | يُستخدم لتخزين تاريخ واحد فقط من 1 يناير 0001 إلى 31 ديسمبر 9999 | 3 بايت، ثابتة | 1 يوم | 0001-01-01 | 9999-12-31 |
| الوقت | يستخدم لتخزين قيم الوقت فقط بدقة تصل إلى 100 نانوثانية. | بايت 5 | 100 نانو ثانية | 00:00:00.0000000 | 23:59:59.9999999 |
| datetimeoffset | يشبه التاريخ والوقت ولكنه يحتوي على فرق التوقيت | بايت 10 | 100 نانو ثانية | 0001-01-01 | 9999-12-31 |
| التاريخ والوقت 2 | يستخدم لتحديد التاريخ والوقت من 1 يناير 0001 إلى 31 ديسمبر 9999 | بايت 6 | 100 نانو ثانية | 0001-01-01 | 9999-12-31 |
مثال للاستعلام:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
الإخراج:
'2030-01-01'
أنواع بيانات سلاسل الأحرف في SQL
تتعلق هذه الفئة بأنواع الأحرف، وتتيح لك تعريف بيانات الأحرف ذات الطول الثابت والمتغير. وتتضمن أربعة أنواع من أنواع البيانات. فيما يلي أنواع بيانات سلاسل الأحرف مع أمثلة توضيحية.
| نوع البيانات | الوصف | الحد الأدنى | الحد الأعلى | ذاكرة |
|---|---|---|---|---|
| دبابة | إنها سلسلة أحرف ذات عرض ثابت. يقوم بتخزين ما يصل إلى 8,000 حرف كحد أقصى. | 0 حرفًا | 8000 حرفًا | ن بايت |
| VARCHAR | هذا عبارة عن سلسلة نصية ذات عرض متغير. | 0 حرفًا | 8000 حرفًا | ن بايت + 2 بايت |
| فارتشار (الحد الأقصى) | هذه سلسلة أحرف ذات عرض متغير. يقوم بتخزين ما يصل إلى 1,073,741,824 حرفًا كحد أقصى. | 0 حرفًا | 2^31 حرف | ن بايت + 2 بايت |
| نص | هذا عبارة عن سلسلة نصية ذات عرض متغير. يخزن ما يصل إلى 2 جيجابايت من البيانات النصية. | 0 حرفًا | 2,147,483,647 حرفًا | ن بايت + 4 بايت |
مثال للاستعلام:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
الإخراج:
هذا هو نوع بيانات الشخصية
أنواع بيانات سلاسل أحرف Unicode في SQL
تخزن هذه الفئة النطاق الكامل لأحرف Unicode، والتي تستخدم ترميز الأحرف UTF-16.
| نوع البيانات | الوصف | الحد الأدنى | الحد الأعلى | ذاكرة |
|---|---|---|---|---|
| NCHAR | إنها سلسلة يونيكود ذات عرض ثابت. | 0 حرفًا | 4000 حرفًا | 2 مرات ن بايت |
| NVARCHAR | إنها سلسلة يونيكود ذات عرض متغير. | 0 حرفًا | 4000 حرفًا | 2 مرات ن بايت + 2 بايت |
| NTEXT | إنها سلسلة يونيكود ذات عرض متغير. | 0 حرفًا | 1,073,741,823 حرفًا | 2 أضعاف طول السلسلة |
مثال للاستعلام:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
الإخراج:
هذا هو نوع بيانات nCharacter
أنواع بيانات السلسلة الثنائية في SQL
تحتوي هذه الفئة على سلاسل ثنائية ذات طول ثابت ومتغير.
| نوع البيانات | الوصف | الحد الأدنى | الحد الأعلى | ذاكرة |
|---|---|---|---|---|
| ثنائي | هو عبارة عن سلسلة ثنائية ذات عرض ثابت. يخزن بحد أقصى 8,000 بايت. | بايت 0 | بايت 8000 | ن بايت |
| فاربيناري | هذه سلسلة ثنائية ذات عرض متغير. تخزن بحد أقصى 8,000 بايت. | بايت 0 | بايت 8000 | الطول الفعلي للبيانات المدخلة + 2 بايت |
| صورة | هذا عبارة عن سلسلة ثنائية ذات عرض متغير. يخزن ما يصل إلى 2 جيجابايت. | بايت 0 | بايت 2,147,483,647 | - |
مثال للاستعلام:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
الإخراج:
0x000C
أنواع البيانات الأخرى في SQL
هذه هي أنواع البيانات الأخرى في SQL Server، مع وصفها أدناه:
| نوع البيانات | الوصف |
|---|---|
| المؤشر | يُخرج هذا الأمر عمودًا يحتوي على sp_cursor_list و sp_describe_cursor. ويعيد اسم متغير المؤشر. |
| نسخة الصف | يقوم هذا البرنامج بوضع طوابع إصدار على صفوف الجدول. |
| التسلسل الهرمي | يمثل هذا النوع من البيانات موقعًا في التسلسل الهرمي. |
| معرف فريد | يخزن معرفًا فريدًا عالميًا (GUID)، غالبًا ما يتم تحويله من تعبير حرفي. |
| Sql_variant | يقوم بتخزين قيم أنواع البيانات التي يدعمها خادم SQL. |
| XML | يقوم بتخزين بيانات XML في عمود. |
| نوع الهندسة المكانية | وهو يمثل البيانات في نظام الإحداثيات المسطحة. |
| نوع الجغرافيا المكانية | وهو يمثل البيانات في نظام الإحداثيات المستديرة للأرض. |
| جدول | يقوم بتخزين مجموعة النتائج لمعالجتها لاحقًا. |
حقائق مثيرة للاهتمام!
- يُعد نوع البيانات CHAR أسرع من نوع البيانات VARCHAR عند استرجاع البيانات، لأن عرضه الثابت يتجنب مشكلة طول البيانات.ping.


