0Pricing
SQL Academy · درس

نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN

تعلّم أنواع بيانات SQL الأساسية: الأعداد الصحيحة، وvarchar/text، والتواريخ والطوابع الزمنية، والقيم المنطقية، والكسور العشرية، وكيف تختار النوع المناسب لكل عمود.

نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

لماذا تهم الأنواع؟

لكل عمود نوع ثابت. ويحدّد النوع ما يلي:

  • القيم الصالحة
  • مقدار التخزين الذي يستخدمه كل صف
  • العوامل والدوال التي يمكن تطبيقها
  • كيفية اختيار المخطِّط للفهرسة وعمليات الربط

أنواع الأعداد الصحيحة

توفّر PostgreSQL ثلاثة أحجام للأعداد الصحيحة:

SMALLINT  -- 2 bytes,  -32768 to 32767
INTEGER   -- 4 bytes,  ±2.1 billion       (alias: INT)
BIGINT    -- 8 bytes,  ±9.2 quintillion

-- Auto-incrementing variants:
SMALLSERIAL  BIGSERIAL  SERIAL

Numeric / Decimal

للأموال والأعداد العشرية الدقيقة، استخدم NUMERIC(precision, scale) — ولا تستخدم FLOAT مطلقًا.

CREATE TABLE invoices (
  id BIGSERIAL PRIMARY KEY,
  amount NUMERIC(12, 2) NOT NULL,   -- up to 10 digits + 2 decimals
  tax_rate NUMERIC(5, 4) NOT NULL   -- 0.0875 = 8.75%
);

Float مقابل Numeric

إن REAL (بحجم 4 بايت) وDOUBLE PRECISION (بحجم 8 بايت) غير دقيقين — إذ يقرّبان الكسور الثنائية. وهما مناسبان للعلوم، لكنهما سيئان جدًا للأموال.

-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT;   -- 0.30000000000000004

-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC;  -- 0.3

أنواع النصوص: VARCHAR مقابل TEXT

توفّر PostgreSQL نوعين أساسيين للنصوص:

-- VARCHAR(n) — variable-length, max n characters
email VARCHAR(255)

-- TEXT — variable-length, no declared limit
description TEXT

-- In PostgreSQL both have the same performance.
-- VARCHAR(n) just adds a length check.
-- CHAR(n) (fixed-length, blank-padded) — avoid.

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

استخدم أنواع التاريخ والوقت — ولا تخزّن التواريخ كسلاسل نصية مطلقًا:

DATE         -- 2024-03-15
TIME         -- 14:30:00
TIMESTAMP    -- 2024-03-15 14:30:00      (no time zone)
TIMESTAMPTZ  -- 2024-03-15 14:30:00+02   (recommended)
INTERVAL     -- 1 day, 3 hours

-- Prefer TIMESTAMPTZ unless you have a strong reason not to.

القيم المنطقية

يخزّن BOOLEAN القيم TRUE أو FALSE أو NULL.

CREATE TABLE tasks (
  id BIGSERIAL PRIMARY KEY,
  done BOOLEAN NOT NULL DEFAULT false
);

SELECT * FROM tasks WHERE done;        -- shorthand for done = true
SELECT * FROM tasks WHERE NOT done;

UUID

للمعرّفات الفريدة عالميًا:

CREATE TABLE api_keys (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id BIGINT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

JSON وJSONB

للمستندات شبه المهيكلة:

-- JSON   — text, preserves whitespace, no index
-- JSONB  — binary, deduplicated keys, indexable with GIN

CREATE TABLE events (
  id BIGSERIAL PRIMARY KEY,
  payload JSONB NOT NULL
);

المصفوفات

يمكن أن تكون أعمدة PostgreSQL مصفوفات من أي نوع أساسي:

CREATE TABLE posts (
  id BIGSERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  tags TEXT[] NOT NULL DEFAULT '{}'
);

INSERT INTO posts (title, tags) VALUES
  ('Hello', ARRAY['sql', 'intro']);

SELECT * FROM posts WHERE 'sql' = ANY(tags);

اختيار النوع المناسب

قواعد عامة:

  • الأموال ← NUMERIC (لا تستخدم FLOAT مطلقًا)
  • المعرّفات ← BIGSERIAL أو UUID
  • التواريخ ← TIMESTAMPTZ للأحداث، وDATE لأيام التقويم
  • الرموز القصيرة ← VARCHAR(n)؛ والنصوص الطويلة ← TEXT
  • العلامات ← BOOLEAN

مراجعة

اختر أضيق نوع يلائم احتياجاتك.

  • الأنواع الصحيحة = فهارس أصغر وإحصاءات أفضل وأخطاء أقل
  • استخدم NUMERIC للأعداد العشرية الدقيقة
  • استخدم TIMESTAMPTZ للطوابع الزمنية للأحداث
  • تجنّب تخزين البيانات ذات الأنواع المحددة كسلاسل نصية — إذ ستفقد التحقق والفهرسة

تحقق سريع

تحتاج إلى تخزين سعر منتج. أي نوع ينبغي أن تختار؟

الأسئلة الشائعة

هل درس «نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN» مجاني؟

نعم — نص درس «نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN»؟

تعلّم أنواع بيانات SQL الأساسية: الأعداد الصحيحة، وvarchar/text، والتواريخ والطوابع الزمنية، والقيم المنطقية، والكسور العشرية، وكيف تختار النوع المناسب لكل عمود. تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما هو RDBMS ولماذا تهم الجداول
  2. المفاتيح الأساسية والتفرّد
  3. NULL: قيمة الحقيقة الثالثة
  4. نظرة عامة على أنواع البيانات: INT وVARCHAR وDATE وBOOLEAN
← العودة إلى SQL Academy