- تحديد نوع البيانات المسموح بها: يضمن أن البيانات المُدخلة في العمود مطابقة للنوع المُحدد، مما يمنع إدخال بيانات خاطئة أو غير متوقعة.
- توفير المساحة التخزينية: يُساعد اختيار نوع البيانات المُناسب على توفير المساحة التخزينية، حيث أن بعض الأنواع تستهلك مساحة أكبر من غيرها.
- تحسين الأداء: يُساعد تحديد نوع البيانات على تحسين أداء الاستعلامات، حيث يُمكن لقاعدة البيانات التعامل مع البيانات بشكل أسرع عندما يكون نوعها مُحددًا.
تختلف أنواع البيانات المُتاحة بين أنظمة إدارة قواعد البيانات المختلفة (مثل MySQL، PostgreSQL، SQL Server، Oracle)، ولكن هناك بعض الأنواع الأساسية المُشتركة بينها:
1. الأنواع العددية (Numeric Types):
تُستخدم لتخزين الأرقام.
- INT (INTEGER): أعداد صحيحة.
- TINYINT: أعداد صحيحة صغيرة (عادةً من -128 إلى 127).
- SMALLINT: أعداد صحيحة أصغر من INT.
- BIGINT: أعداد صحيحة أكبر من INT.
- DECIMAL (NUMERIC): أعداد عشرية بدقة مُحددة (عدد الأرقام الكلية وعدد الأرقام بعد الفاصلة). تُستخدم لتخزين القيم المالية بدقة.
- FLOAT (REAL): أعداد عشرية بتقريب.
- DOUBLE (DOUBLE PRECISION): أعداد عشرية بدقة أكبر من FLOAT.
2. أنواع السلاسل النصية (String Types):
تُستخدم لتخزين النصوص.
- CHAR (CHARACTER): سلاسل نصية ثابتة الطول. يتم حجز مساحة ثابتة لكل قيمة، حتى لو كانت أقصر من الطول المُحدد.
- VARCHAR (CHARACTER VARYING): سلاسل نصية متغيرة الطول. يتم حجز مساحة فقط للبيانات الفعلية.
- TEXT: سلاسل نصية طويلة.
- CLOB (Character Large Object): لتخزين نصوص طويلة جدًا، مثل محتوى الكتب أو المستندات.
3. أنواع التاريخ والوقت (Date/Time Types):
تُستخدم لتخزين التواريخ والأوقات.
- DATE: تاريخ (سنة، شهر، يوم).
- TIME: وقت (ساعة، دقيقة، ثانية).
- DATETIME (TIMESTAMP): تاريخ ووقت.
- YEAR: سنة.
4. أنواع البيانات الثنائية (Binary Types):
تُستخدم لتخزين البيانات الثنائية، مثل الصور والملفات.
- BINARY: بيانات ثنائية ثابتة الطول.
- VARBINARY: بيانات ثنائية متغيرة الطول.
- BLOB (Binary Large Object): لتخزين بيانات ثنائية كبيرة جدًا.
5. أنواع أخرى:
- BOOLEAN: قيم منطقية (TRUE أو FALSE).
- ENUM: قائمة مُحددة من القيم المسموح بها.
- JSON: بيانات بتنسيق JSON.
- XML: بيانات بتنسيق XML.
أمثلة على تعريف الأعمدة مع أنواع البيانات في SQL:
CREATE TABLE Employees ( id INT PRIMARY KEY, name VARCHAR(255), salary DECIMAL(10, 2), hire_date DATE, is_active BOOLEAN);
في هذا المثال:
id
من نوع INT (عدد صحيح).name
من نوع VARCHAR(255) (سلسلة نصية متغيرة الطول بحد أقصى 255 حرفًا).salary
من نوع DECIMAL(10, 2) (عدد عشري بـ 10 أرقام كحد أقصى، و 2 منها بعد الفاصلة).hire_date
من نوع DATE (تاريخ).is_active
من نوع BOOLEAN (قيمة منطقية).
يجب اختيار نوع البيانات المُناسب لكل عمود بناءً على نوع البيانات التي سيتم تخزينها فيه. هذا يُساعد على ضمان سلامة البيانات وتوفير المساحة وتحسين الأداء. يُنصح بالرجوع إلى وثائق نظام إدارة قواعد البيانات المُستخدم للحصول على قائمة كاملة بأنواع البيانات المُتاحة فيه وتفاصيلها.