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) );
النتيجة
النتيجة تعني أنه تم تنفيذ الإستعلام بنجاح.
بعد تنفيذ الإستعلام السابق في 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
النتيجة تعني أنه تم إضافة 5 أسطر بنجاح.
الآن، أنقر على إسم الجدول users
لرؤية جميع الأسطر التي أضفتها فيه كما يلي.
لاحظ كيف تم إعطاء رقم موحد لكل سطر في الحقل id
بشكل تلقائي.
في الدرس التالي سترى كم هو مهم وضع رقم موحد لكل سطر و كيف نتعامل معها.