Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

SQLالترقيم التلقائي

  • مفهوم الترقيم التلقائي للأسطر
  • تجهيز قاعدة البيانات التي سنطبق عليها
  • إنشاء جدول يعطي ترقيم تلقائي لكل سطر يضاف فيه
  • إضافة سطر في جدول يعطي ترقيم تلقائي

مفهوم الترقيم التلقائي للأسطر

الترقيم التلقائي هو أن يتم وضع رقم موحد و بشكل تلقائي لكل سطر يتم إضافته في الجدول مما يمكنك لاحقاً من العودة إلى هذا السطر بكل سهولة من خلال رقمه.

أي جدول ننشئه في العادة نضيف فيه حقل يتم ترقيمه بشكل تلقائي و في العادة نقوم بتسميته رقم التعرفة ( ID ) مما يتيح لنا تمييز الأسطر عن بعضها من خلال هذا الرقم.

أي حقل يتم إضافته في الجدول بهدف أن يتم استخدامه للتمييز بين الأسطر يتم تعريفه كحقل تلقائي التعداد ( Auto Increment ) و كفتاح أساسي ( Primary Key ).


الحصول على ترقيم تلقائي

طريقة إنشاء عمود في الجدول يتم إعطاء ترقيم تلقائي لكل سطر فيه تختلف من قاعدة بيانات لأخرى كما يلي:

  • في قواعد بيانات MySQL نستخدم AUTO_INCREMENT.
  • في قواعد بيانات Access و SQLite نستخدم AUTOINCREMENT.
  • في قواعد بيانات SQL Server نستخدم IDENTITY(1,1).
  • في قواعد بيانات Oracle نستخدم الأمر التالي.
CREATE SEQUENCE seq-name MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10;

في هذه الدورة سنعتمد الدمج بأسلوب قواعد بيانات MySQL.


إنشاء مفتاح يترقم تلقائياً

بهدف أن يتم جعل قيمة الحقل تزداد بشكل تلقائي في كل سطر و ضمان أن تكون قيمته موحدة سنقوم دائماً بتعريفه على النحو التالي.

column_name INT NOT NULL PRIMARY KEY AUTO_INCREMENT
  • مكان الكلمة column_name نضع إسم العمود الذي سيتم إنشاؤه في الجدول.
  • INT تعني أن العمود سيوضع فيه أعداد صحيحة.
  • NOT NULL تعني أن العمود لا يمكن أن يكون فارغ و هذا الأمر منطقي لأنه سيتم وضع عدد بشكل تلقائي لكل سطر يتم إضافته.
  • PRIMARY KEY تعني أن هذا الحقل لا يمكنه أن يحتوي على قيم مكررة و لهذا يعتبر المفتاح الرئيسي للتمييز و الوصول لأي سطر موجود في الجدول.
  • AUTO_INCREMENT تعني أن القيم في العمود ستزداد بشكل تلقائي في كل سطر جديد.

تجهيز قاعدة البيانات التي سنطبق عليها

بما أننا سنتعلم كيف ننشئ عمود في الجدول يتم إعطاء كل سطر فيه عدد بشكل تلقائي، سنقوم بتجهيز قاعدة البيانات التي سنتعامل معها.
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash.

مثال

-- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها
DROP DATABASE IF EXISTS harmash;

-- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها
CREATE DATABASE harmash;

بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash و إنشاء الجدول users بداخلها كما يلي.

تجهيز قاعدة البيانات التي سنطبق عليها

الآن، قم بالنقر على إسم قاعدة البيانات harmash من القائمة اليسرى حتى تبدأ بالتعامل معها.

إنشاء جدول يعطي ترقيم تلقائي لكل سطر يضاف فيه

قم بتنفيذ الإستعلام التالي لإنشاء جدول جديد إسمهusers و يتألف من 3 أعمدة.
لاحظ أننا قمنا بوضع خاصية AUTO_INCREMENT للعمود الأول لأننا نريد جعل قيمته تزيد بشكل تلقائي في كل سطر نضيفه في الجدول.

مثال

CREATE TABLE users (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    email VARCHAR(100)
);

النتيجة

0 row(s) affected

النتيجة تعني أنه تم تنفيذ الإستعلام بنجاح.


بعد تنفيذ الإستعلام السابق في phpMyAdmin سيظهر الجدول في قاعدة البيانات كما يلي.

رؤية الجدول الذي تم إنشاؤه

إضافة سطر في جدول يعطي ترقيم تلقائي

قم بتنفيذ الإستعلام التالي لإضافة خمسة أسطر جديدة في الجدول users.
لاحظ أننا لم نذكر إسم العمود id و لم نمرر له قيمة و ذلك لأن قاعدة البيانات ستضع قيمة في الحقل id لكل سطر يتم إنشاؤه.

مثال

INSERT INTO users (username, email) VALUES ('mhamad', 'mhamad@example.com');
INSERT INTO users (username, email) VALUES ('hassan', 'hassan@example.com');
INSERT INTO users (username, email) VALUES ('sara', 'sara@example.com');
INSERT INTO users (username, email) VALUES ('rami', 'rami@example.com');
INSERT INTO users (username, email) VALUES ('maria', 'maria@example.com');

النتيجة

1 row(s) affected
1 row(s) affected
1 row(s) affected
1 row(s) affected
1 row(s) affected

النتيجة تعني أنه تم إضافة 5 أسطر بنجاح.


الآن، أنقر على إسم الجدول users لرؤية جميع الأسطر التي أضفتها فيه كما يلي.

رؤية كيف ترقمت الأسطر تلقائياً


لاحظ كيف تم إعطاء رقم موحد لكل سطر في الحقل id بشكل تلقائي.
في الدرس التالي سترى كم هو مهم وضع رقم موحد لكل سطر و كيف نتعامل معها.