السلام عليكم , احمدالله الذي اعانني في آتابة هذا الكتاب للامه العربيه و الاسلاميه , و احمده على
توفيقي في تعلم هذه اللغه , اتمنى ان اآون قد قدمت ولو القليل للامه العربيه و الاسلاميه على
الانترنت , نتمنى لهذه الامه دائما الرقي و الازدهار في الانترنت , و ها انا اآتب هذا الكتاب البسيط لكي
تتعلم هذه الامه و تعتمد على نفسها , و نتمنى التوفيق للجميع ,,,
اهدي هذا الكتاب إلى آل اخ غالي على قلبي و اهديه إلى آل اساتذتي في هذه اللغه و في غير هذه
اللغه , ولا اريد ذآر اي اسم لكي لا انسى احد ,,,
و هذا الكتاب مجاني ولا يحق لأي ,
www.el7zn.com جميع الحقوق محفوظه لموقع و منتديات الحزن
. MaaSTaaR شخص بيعه , هذا الكتاب من تأليف
3
عن هذا الفصل :
معلومات سوف تفيدك بإذن الله و تزيد من رصيد SQL يحتوي هذا الفصل على مقدمه بسيطه عن ال
معلوماتك في الانترنت و لغات قواعد البيانات
ما هو اس آيو ال ؟
و معناها (لغة الاستعلام البنيويه) , تستخدم Structured Query Language هي اختصار SQL الكلمه
هذه اللغه في التعامل مع قواعد البيانات تستخدم لاستخراج و تحديث و اضافة البيانات من قاعدة
البيانات و غالبا ما يتم استخدام هذا النوع من قواعد البيانات في المواقع التي تستخدم التقنيات
من خلال المحرك الشهير SQL و آما نرى ان اغلب برامج الويب تعتمد على ال , PHP الشهيره مثل ال
,,, MySQL
؟ MySQL أين يمكنني الحصول على معلومات عن ال
, MySQL لا بد ان تحتوي على معلومات ولو آانت بسيطه عن ال PHP اغلب المواقع التي تهتم في ال
عامه قد تفيدك هذه الوصلات :
http://www.rafiaphp.com/news.php?action=list&cat_id=10http://www.phpvillage.com/p.php?page=0&idp=48&search=mysql&total=8371http://www.phpvillage.com/p.php?page=0&idp=49&search=mysql&total=8831http://www.phpvillage.com/p.php?page=0&idp=52&search=mysql&total=7058http://www.phpvillage.com/p.php?page=0&idp=55&search=mysql&total=5400http://www.mysql.comليس موضوعنا , حسناً لا بأس من اخذ بعد المعلومات عن هذا المحرك , دعونا MySQL مهلا !! ال
ننطلق إلى الخطوه التاليه ,,
التي سوف ندرسها في هذا الكتاب ؟ SQL أين يمكنني تطبيق اوامر
في الحقيقه هنالك عده طرق و سوف اذآر اثنين منها ,,
من قبل يمكنك تطبيق الاوامر التي سوف ندرسها من خلال الداله PHP الطريقه الاولى : اذا آنت مبرمج
لكن يجب علينا الاتصال بقاعدة البيانات و انشاء القاعده , فإذا آنت مبتدئ لا انصحك mysql_query();
بهذه الطريقه , لنرى الطريقه الثانيه فهي افضل ,,,
الطريقه الثانيه : من خلال برنامج اآسس الذي يأتي مع حزمة مايكروسوفت اوفيس , سوف نشرح
طريقة الاآسس بالصور بإذن الله ,,,
4
؟ SQL ما الذي سوف استفيده من تعلم
سؤال جيد , في الحقيقه اذا آنت مبرمج احد لغات الويب فسوف تستفيد آثيراً , لانك سوف تتعلم
و ذلك يساعدك في استعمال قواعد البيانات في برنامجك , ايضا سوف SQL طريقه صيغة الاوامر في
مثل SQL تتكمن من استخدام الاآسس و جميع البرامج و محرآات قواعد البيانات التي تعتمد على
,,, SQL أي انك سوف تجيد استخدام اي شئ يتعامل مع ال MySQL , PostgerSQL , SQL Server
؟ SQL ما الذي يمكنني فعله في ال
1\ إنشاء جدول بالمواصفات التي تحتاجها
2\ اضافة حقول او حذف حقول بعد انشاء الجدول
3\ تفريغ الجدول
4\ حذف الجدول
5\ ادخال المعلومات
6\ تحرير المعلومات
7\ حذف المعلومات
8\ إنشاء قاعدة بيانات
9\ حذف قاعدة بيانات
10 \ استخراج المعلومات
11 \ استخدام الشروط في استخراج المعلومات (تصاعدي , تنازلي , 10 معلومات , معلومات عن
مستخدم معين إلخ ...)
هل تشوقت لتتعلم المزيد عن هذه اللغه ؟ اذاً ارح عينيك قليلاً لا بأس
من فنجان قهوه او آوب شاي , بعدما تنتهي اتبعني إلى الفصل القادم
...
5
عن هذا الفصل :
,,, SQL يتحدث هذا الفصل عن قاعدة البيانات و ما تحتوي وما اهمية قواعد البيانات بالنسبه ل
ما هي قواعد البيانات ؟
قاعدة البيانات عباره عن قاعدة تحتوي على عدة جداول او جدول واحد و هذه الجداول تحتوي على
المعلومات التي تمت اضافتها من خلال المستخدمين ,,,
؟ SQL ما اهمية قواعد البيانات ل
من دون قاعدة بيانات تحتوي SQL لانه و في الحقيقه , لا يمكننا العمل بال SQL يمكننا وصفها بعصب ال
على جداول ,,,
؟ SQL هل يمكنني إنشاء قاعدة بيانات من خلال ال
طبعاً يمكن ذلك ,,
آيف ؟
من خلال الاوامر التي سوف تنطرق إليها في الفصول القادمه بإذن الله .
ما هي الجداول ؟
هي عباره عن جداول تحتوي على حقول و يمكن اضافة المعلومات حسب الحقول الموجوده , مثلا يوجد
يمكننا من خلال هذا الحقل اضافة اسمنا في الجدول ,,, name لدينا حقل في الجدول بإسم
؟ SQL ما اهمية الجداول ل
لاننا من خلال الجداول يمكننا التعامل مع البيانات و هذا الذي SQL يمكنني ان اصفها بالعصب الثاني ل
نوده , ان نتعامل مع البيانات الموجوده و ان نضيف بيانات جديده .
6
؟ SQL هل يمكنني إنشاء الجداول من خلال ال
نعم يمكن ذلك طبعاً ,,,
آيف ؟
لا تتعجل الامور في الفصول القادمه بإذن الله سوف يتم شرح ذلك و بالتفصيل الممل بإذن الله ,,
حسناً آم عدد البيانات التي يمكنني اضافتها في الجدول الواحد ؟
يمكنك اضافة عدد شبه لا نهائي , قد تتسائل آيف ؟ شبه لا نهائي لانك تقريبا يمكنك ان تضيف
9999999999 معلومه او اآثر من ذلك , يمكنك اضافة آم هائل من المعلومات .
هل الكم الهائل من المعلومات سيضغط على قاعدة البيانات ؟
لا اعتقد ان ذلك سوف يؤثر ولكن سوف يكون عمل نسخه احتياطيه من قاعدة البيانات صعبه , او تأخذ
وقتاً طويلاً .
حسناً بعد ان اخذنا معلومات عن قاعدة البيانات و الجداول لنذهب إلى
الفصل التالي ,,,
7
عن هذا الفصل :
عن طريق هذا الفصل سوف تتعلم آيفية آتابة اوامر الاس آيو ال في مايكروسوفت اآسس .
,,, New و اضغط على Microsoft Access اولاً قم بتشغيل برنامج
سوف تظهر لك هذه الشاشه : , Blank Database الآن اختر
الشرح واضح في الصوره ,,
بعد إنشاء قاعدة البيانات سوف تظهر لك هذه النافذه :
8
بعد الضغط سوف تظهر هذه النافذه ,,,
بعد الضغط سوف تظهر هذه النافذه
(7)
9
بعد الضغط لاحظ في الاعلى , شريط الادوات , اول اداة تكون بهذا الشكل :
بكل بساطه اضغط على هذه الاداة , سوف تظهر هذه لك هذه النافذه ,,
بعد آتابة الامر تضغط على هذا الزر لكي يتم تنفيذه :
10
الآن و بعد ان تعرفنا على طريقة آتابة الاوامر في الاآسس سوف نبدأ
بإستخدام الاوامر بإذن الله
11
عن الفصل :
من خلال هذا الفصل سوف تتعلم آيفية إنشاء و حذف قاعدة البيانات , تفضل و تابع معنا .
إنشاء قاعدة بيانات جديده :
و من خلالها يتم إنشاء الجداول و تعبئة SQL آما فهمنا سابقاً ان قاعدة البيانات هي عصب لغة ال
المعلومات , في هذا الفصل سوف نتعلم آيف نقوم بإنشاء قاعدة بيانات جديده ,
طريقة آتابة الامر :
آود :
CREATE DATEBASE dbname;
. (dbname سوف نقرأ هذا الامر باللغه العربيه , آأنك تقول (أنشئ قاعدة البيانات التي اسمها
db او SQL يمكنك تغيره إلى اسم قاعدة البيانات التي تريده مثلاً تود اسم القاعده dbname طبعاً ال
dbname سوف نبدل ال SQLDataBase مثلاً , أي اي اسم تريده ,, لنفرض اننا نود اسم قاعدة البيانات
إلى اسم القاعده التي نريدها ,,
لكن في الحقيقه لن يفيدنا هذا الامر في الاآسس ,,
قد تسأل .
لماذا ؟
في هذه الخطوه قمنا حقاً Blank Database ثم new هل تتذآر في الفصل الثالث عندما ضغطنا على
بإنشاء قاعدة البيانات و تسميتها من دون اوامر الاس آيو ال , الآن حاول آتابة امر الاضافه سوف يظهر
لك خطأ , لانه في الحقيقه قمنا بإنشاء القاعده سابقاً ,,
قد تتسائل ,
اذا آنت استخدم الاآسس ما الفائده من امر انشاء قاعدة بيانات ؟
آما ذآرنا اننا في الاآسس نقوم بإنشاء القاعده في اول البرنامج لكن هذا الامر سوف يفيدك في ال
مثلاً , حاول تحميل نسخه من الماي اس آيو ال و جرب ذلك , سوف يتم انشاء قاعدة البيانات MySQL
ان شاء الله ,
لماذا ؟
بكل بساطه لانه الماي اس آيو ال لا ينشئ قاعدة البيانات عند تشغيله بل يطلب منك ان تكتب الامر
لكي تنشئ قاعدة البيانات .
12
حذف قاعدة البيانات :
بعدما تعرفنا آيفية انشاء قاعدة البيانات الآن سوف نتعلم آيف نحذف قاعدة البيانات ,
طريقة آتابة الامر :
آود :
DROP DATABASE dbname;
dbname و آما ذآرنا سابقا , DROP و تحولت إلى CREATE آما تلاحظ لم يتغير من الامر سوا آلمة
إسم قاعدة البيانات التي تود حذفها ,,
• تحذير هام : سوف يتم جميع المعلومات و الجداول في القاعده المحذوفه أي لا تفرط
بإستخدام هذا الامر .
الآن وبعدما تعرفنا على آيفية انشاء و حذف قاعدة البيانات , لننتقل
للفصل الذي بعده لكي نتعرف على آيفية إنشاء الجداول و معرفة انواع
الحقول ,,
13
عن الفصل :
سوف نتعلم من هذا الفصل آيفية إنشاء الجداول و أخذ فكره عن انواع الحقول و بعدها سوف نتعلم آيف
نفرغ الجدول من جميع المعلومات الموجوده فيه و اخيرا سوف نتعلم آيف نحذف الجدول نهائيا من قاعدة
البيانات ,,
إنشاء جدول في قاعدة البيانات :
آما درسنا مسبقا ان الجداول تعتبر العصب الثاني للغة اس آيو ال لانه من خلال الجداول يمكننا تخزين
المعلومات و نحن نستخدم الاس آيو ال اساسا للتحكم في المعلومات , سوف نتعرف اولا على
طريقة آتابة الامر :
آود :
CREATE TABLE tablname (
Falid1 type null or not null ,
Falid2 type null or not null ,
);
طبعاً يمكننا tablname حسناً , لنبدأ الشرح خطوه بخطوه , في اول السطر نقول بإننا نود إنشاء الجدول
تغيير هذه الكلمه إلى اسم الجدول الذي نود اضافته , بعده سوف نقوم بإضافة الحقول التي سوف
نستخدمها لتعبئة المعلومات ,,
هذان الاثنان يعنيان انهم اسماء للحقول و ها نحن نود اضافة حقلان الاول بمسمى : Falid1 , Falid2
بعدها نبدأ بوصف مميزات هذا الحقل و نوع البيانات و سيتم شرح نوع البيانات Falid و الثاني 2 Falid1
في السطور القادمه .
انواع البيانات او الحقول و سيتم شرحها قريبا بإذن الله : Type
هذا يعني انه هل تريد ان يكون الحقل خالي ؟ مثلا هل تريد ان اسم المستخدم هل : Null or not null
يجب ان يكتبه المستخدم ام اختياري .
حسناً , بعدما رأينا آيف نقوم بإنشاء جدول و تعرفنا ان هنالك انواع للحقول او البيانات , حسناً تمعّن في
الجدول التالي الذي سوف يشرح انواع الحقول ,,
14
النوع نوعية البيانات التي يمكن تخزينها
ارقام صحيحه صغيره جداً TINYINT()
ارقام صحيحه صغيره SMALLINT()
ارقام صحيحه متوسطة الحجم MEDIUMINT()
ارقام صحيحه اعتياديه INT()
INT مرادف ل INTEGER()
ارقام صحيحه آبيره جداً BIGINT()
جدول لانواع الارقام الصحيحه
النوع نوع البيانات التي يمكن تخزينها
YYYY-MM-DD تاريخ ,, سيظهر آ DATE
HH:MM:SS وقت ,, سيظهر TIME
تاريخ ووقت ,, سيظهر آ
YYY-MM-DDHH:MM:SS
DATETIME
ختم زمني TIMESTAMP()
سنه YEAR()
جدول انواع بيانات التاريخ و الوقت
النوع الوصف
صغير جدا BLOB حقل آائن TINYBLOB
صغير جدا TEXT حقل TINYTEXT
حجمه عادي BLOB حقل BLOB
حجمه عادي TEXT حقل TEXT
متوسط الحجم BLOB حقل MEDIUMBLOB
متوسط الحجم TEXT حقل MEDIUMTEXT
طويل BLOB حقل LONGBLOB
طويل TEXT حقل LONGTEXT
BLOB و TEXT الانواع
النوع الوصف
حقل يقوم بتخزين 1 إلى 255 حرف CHAR
نفس عمل السابق VARCHAR
انواع السلاسل الاعتياديه
الآن و قد تناولنا انواع الاعمده الآن يمكننا انشاء جدول للبيانات , حيث نقوم بإستخدام هذه الانواع
حسب بيانات الجدول , حسناً الآن نريد انشاء جدول لكن ما هو موضوعه , لنفكر ......
اها وجدتها لنفرض إن لدينا شرآة إستضافه لإستضافة المواقع , و نريد جدول يقوم بتخزين اسماء و
ارقام هواتف زبائننا , حسناً لنفكر ما هي الحقول .
حسنا لنفرض اننا بحاجه إلى 4 حقول , و سنعدد ماهي :
الحقل الاول : وسوف يكون المعرف الخاص لكل زبون , حيث يكون رقم خاص للزبون يميزه عن غيره من
الزبائن .
الحقل الثاني : اسم الزبون , طبعاً معروفه ولا تحتاج لشرح
الحقل الثالث : رقم هاتف الزبون
الحقل الرابع : عنوان موقع الزبون
15
حسناً الآن و بعد تحديد الحقول ووظائفها يجب علينا ان نحدد نوعها .
الحقل الاول : بما انه حقل يحمل رقم خاص لكل زبون اذاً سوف نرجع إلى جدول انواع الارقام , سوف
بحيث يكون رقم اعتيادي صحيح INT() نختار النوع
حسناً , الآن لدينا مشكله ؟!.. نفرض اردنا اضافة زبون طبعا الزبون الاول سوف يكون رقمه 1 حسناً ,
نريد اضافة زبون ثاني و سوف نكتب في الحقل الاول رقم 2 , لكن ماذا لو وصلوا عدد زبنائنا مليون زبون !!
هل سوف نكتب في الحقل الاولى مليون مليون وواحد مليون و اثنين !! طبعاً لا يمكننا ذلك بل سوف
نهرب من هذه اللغه و من قواعد البيانات .
قد تتسائل ماهو حل هذه المشكله الكبيره التي قد تعرقلنا , قد يقول البعض لا نحتاج الحقول الاولى ولا
نريد ترقيم هذا الزبون .
ولكنني ارد عليهم و اقول بل يمكننا ترقيمه و بسهوله بالغه و من دون اي تعب او شقاء الحمدلله
وهي اوتوماتيكيه حيث آلما قمت بإضافة زبون يكتب رقم آخر زبون auto_increment هناك خاصيه بإسم
. SQL 1 , يعني لا تشقى ولا تتعب اجعل عملية اعطاء الزبون رقم خاص للغة ال +
تكلمت آثيراً صح ؟
حسناً الآن قمنا بوصف جدولنا , او ما يسمى بهندسة الجدول (عن الفلسلفه يا ماستر ) , الآن نريد
آتابة امر لإنشاء جدولنا و لكن !! نريد تحديد اسماء الحقول .
و المقصود رقم المعرف آما ذآرنا مسبقاً سوف يكون نوعه identify اي id لنفرض ان الحقل الاول إسمه
لكي يكون اوتوماتيكياً . auto_increment : اي عدد صحيح و سوف نشغل فيه الخاصيه INT
اي varchar طبعاً يكون نوعه من name لنفرض ان الحقل الثاني الذي هو إسم الزبون ويكون اسمه
سلسله .
اي رقم صحيح (لانه عمري INT طبعاً يكون نوعه phone لنفرض ان الحقل الثالث وهو رقم الهاتف إسمه
ما شفت رقم تيلفون فيه حروف )
. domin لانه تعتبر سلسله واسمه varchar لنفرض ان الحقل الرابع و الاخير و هو عنوان موقعه يكون ال
نسيت ان اذآر شئ مهم و ان السلسله تخزن ارقام و حروف .
الآن لنكتب الامر المنتظر
client لحظه !! نسينا شئ مهم جدا وهو اسم الجدول , لنفرض ان اسمه
(14)
16
حسناً الآن لنكتب الامر :
آود :
CREATE TABLE client (
id INT(9) NOT NULL auto_increment ,
name varchar(200) NOT NULL ,
phone INT(9) NOT NULL ,
domin varchar(150) NOT NULL ,
primary key (id)
);
قد تكون لاحظت الآتي :
في الامر يكون هناك اآثر من آلمه :
الكلمه الاولى : اسم الحقل
الكلمه الثانيه : نوع الحقل
و تم شرحها من قبل NOT NULL او NULL الكلمه الثالثه : قد تكون
الكلمه الرابعه : و هنا تكون الخصائص الاضافيه
حسناً و اخيراً انشئنا الجدول
طبعا بعد إنشاء الجدول نضيف المعلومات و نحذفها و نحدّثها , ولكن لن نتناول الآن طريقة اضافة
المعلومات و حذف و تحديثها , بل سوف نكمل طريقنا مع الجداول ثم بإذن الله نبدأ بالمعلومات .
تفريغ محتويات الجدول :
نفترض اننا قمنا بإضافة المعلومات !! , و نريد حذفها جميعها .
حسناً لنفرض ان الحل هو آتابة اوامر حذف المعلومات لكل زبون حتى نحذفهم آلهم , ولكن !! نفرض ان
لدينا 1000 زبون !! هل سنكتب الامر 1000 مره ؟!..
. DELETE بل يوجد حل اسمه تفريغ الجدول بواسطة الامر
طريقة آتابة الامر :
آود :
DELETE FROM tablename;
اسم الجدول , حسناً الآن عند آتابة هذا الامر سوف يحذف آل المعلومات. tablename طبعاً المقصود ب
قد تتسائل هل يمكنني حذف معلومه واحد فقط !
التي سوف ندرسها في WHERE الجواب طبعاً نعم و بإستخدام نفس الامر لكن بإضافة الجمله الشرطيه
الفصول القادمه ان شاء الله.
17
حذف الجدول :
حسناً , لنفرض اننا انشائنا جدول ولا نريده (توهقنا فيه و ما نبيه ) هناك امر بسيط لحذف المعلومات
و حذفه نهائياً من قاعدة البيانات .
الآن لنعرف طريقة آتابة هذا الامر :
آود :
DROP TABLE tablename;
اسم الجدول الذي نريد حذفه . tablename طبعاً يُقصد بال
هل اتعبك هذا القسم ؟!.. حسناً الآن ارتاح قليلاً لندخل بالفصل
السادس .
18
عن الفصل :
في هذا الفصل سوف نتعلم طريقة اضافة المعلومات في قاعدة البيانات , بالإضافة إلى حذف و تحديث
هذه المعلومات .
اضافة المعلومات :
حسناً آما درسنا في الفصول السابقه عن طريقة انشاء قاعدة بيانات ثم قمنا بإنشاء جدول , و
افترضنا ان لدينا شرآة استضافه و قمنا بإنشاء جدول على هذا الاساس , حسناً لا يعقل جدول بلا
. client معلومات نفرض ان لدينا زبون جديد و نريد تسجيل معلوماته في الجدول
حيث يسمح لنا بإضافة المعلومات . , SQL هناك امر خاص في ال
طريقة آتابة الكود :
آود :
INSERT INTO tablename VALUES ('info1','info2');
اسم الجدول الذي نريد اضافة المعلومات فيه : tablename طبعاً المقصود ب
هم المعلومات , طبعا لا تكون المعلومات بعدد ثابت , مثلا لدينا بالمثال السابقه info و 2 info بالنسبه ل 1
اضفنا معلومتين , لكن ليس آل جدول يتم اضافة معلومتين له بل حسب عدد الحقول .
اعلم انك لم تفهم لان الكلام غير واضح 100 % لكن سوف يكون اوضح عندما اعطيك مثال على
جدولنا الخاص بشرآة الاستضافه .
حسناً نفرض اتى لنا احد العملاء و طلب منّا مساحه , و نريد تسجيل معلوماته في الجدول , سوف
نكتب امر الاضافه , لكن !!
آيف سيكون ترتيب المعلومات عند الاضافه ؟!..
و آل معلومه سوف نضيف ؟!..
آما ذآرنا سابقاً ان عدد المعلومات حسب حقول الجدول , نحن عرفنا سابقاً ان جدولنا يحتوي على
اربعة حقول , اي سوف نضيف 4 معلومات .
و اتفقنا إن الحقول هي :
و ذآرنا انه الاسم الخاصه للزبون حيث يكون رقم اوتوماتيكي : id
وآما ذآرنا انه اسم الزبون : name
وذآرنا انه رقم هاتف العميل : phone
وذآرنا انه عنوان موقع العميل : domin
19
حسناً الآن بعد ما عرفنا اننا نريد اضافة 4 معلومات , يجب ان نكتبها بالترتيب حسب الحقل ,
هو الثاني و name هو الاول و id يعني عندما انشئنا الجدول آان هناك ترتيب خاص للحقول , آان الحقل
حسب الترتيب التالي سوف نكتب المعلومات لانه الترتيب الذي , domin و الاخير هو phone الثالث هو
قمنا بإنشاء الجدول به .
حسناً , الآن نفترض ان احد العملاء اتى إلى الشرآه و طلب استضافة موقعه و زودنا بالمعلومات
التاليه :
nawaf : اسمه
رقم هاتفه : 1234567
مثال فقط ) ) yahoo.com : عنوان موقعه
. SQL آما ذآرنا انه رقم اوتوماتيكي تضعه لغة ال id لاتسألني عن ال
الآن نكتب الامر
آود :
INSERT INTO client VALUES ('NULL','nawaf','1234567','yahoo.com');
على فكره , قد تتسائل اولاً عن سبب آتابتي للإسم باللغه الانجليزيه قد تتسائل ان اللغه لا تدعم
العربيه , بل تدعمها دعم آامل ان شاء الله , لكنني آتبت الاسم باللغه الانجليزيه لكي يظهر المثال
واضح في الكتاب .
ها نحن نذآرها مره id في مكان حقل ال NULL بالنسبه للتسائل الثاني الذي قد تتسائله هو وضع
أي فارغ) لكي ) NULL اخرى , آما ذآرنا انه رقم اوتوماتيكي ولا يجب تحديد قيمة الحقل فقط نضع الكلمه
بوضع رقم مميز خاص به . SQL تقوم لغة ال
حسناً , نفرض ان احد العملاء لا يريد اعطائنا رقم هاتفه (ثقيل دم صح ) آيف نتصرف ؟!.. هل نضع
مكان رقم هاتفه اصفار مثلاً ؟!..
لا طبعاً يوجد حل افضل من هذا الحل , و هو تعبئة حقول معينه فقط , مثلاً , اريد ان اضيف معلومات احد
الزبائن و اريد آتابة اسمه فقط و اريد تجاهل رقم هاتفه و عنوان موقعه , او مثلاً انا لا احفظ ترتيب الحقول
للجدول , و اريد ان اآتب المعلومات حسب ترتيبي الخاص للحقول , طبعاً يمكن ذلك و من خلال اضافة
قوسين بعد اسم الجدول و آتابة اسماء الحقول المطلوبه .
لنأخذ مثال , آما ذآرنا لا نريد اضافة رقم الهاتف للزبون نواف مثلاً :
آود :
INSERT INTO client(id,name,domin) VALUES ('NULL','nawaf','yahoo.com');
20
لقد اضفنا الزبون نواف بدون رقم هاتفه , و يمكنا ترتيب اماآن الحقول آما نشاء , مثلاً :
آود :
INSERT INTO client(id,domin,name) VALUES ('NULL','yahoo.com','nawaf');
آما ترى !! جعلنا عنوان موقع الزبون نواف قبل اسمه , و ذلك بتغيير بسيط جداً .
بعدما انتيهنا من طريقة اضافة المعلومات لنرى آيف يمكننا حذف هذه المعلومات
حذف المعلومات :
الآن , بعد ان اضفنا الزبائن , لنفرض ان احدهم يريد سحب استضافته من الشرآه ولا يريد المساحه
الموجوده , و قمنا بحذفها مع ملفاتها طبعاً لا بد من حذف سجل الزبون من جدول قاعدة البيانات .
مع استخدام احد اوامر الشرط الذي DELETE طبعاً يمكننا ذلك من خلال الامر الذي تناولناه سابقاً وهو
. WHERE سوف ندرسه في الفصول القادمه بإذن الله وهو
طبعاً نحن نعرف ان الحقل yahoo.com حسناً الآن نفرض اننا نريد حذف الزبون نواف الذي عنوان موقعه
يريد منّا اسم الحقل و القيمه . WHERE حسناً الامر , domin الخاص بإسم الموقع هو
حسناً لنكتب الامر :
آود :
DELETE FROM client WHERE domin='yahoo.com';
الآن قد تسأل لماذا لم نحذف الزبون بدلالة الاسم ؟!..
. nawaf و بعد = نضع name اي لماذا لم نضع في الامر الحقل
حسناً لاجيبك , لنفرض ان جدولنا يحتوي على 100 زبون , 10 من هؤلاء الزبائن اسمائهم (نواف) !!
اذا آنّا قد حذفنا هذا الزبون بدلالة الاسم , اي نواف سوف يتم حذف ال 10 زبائن !! لان اسمائهم (نواف) ,
. nawaf.com الذي يليه yahoo.com و لكن عنوان الموقع لن يكون متكرر , مثلا عنوان موقع نواف رقم 1
ها قد حان وقته , لقد ذآرنا id حسناً قد يكون هناك تشابه في عنواين المواقع !! , هل تتذآر الحقل
سابقاً ان في هذا الحقل رقم مميز , أي لكل زبون رقم مميز في هذا الحقل .
ها قد قمنا بحل المشكله من جذورها .
الآن لننتقل للتالي .
21
تحديث المعلومات :
ها نحن نفرض فرضاً جديداً , لنفرض ان احد الزبناء قام بتغيير رقم هاتفه !! ويريدنا ان نضع رقم هاتفه
الجديد لدينا , أي سنبدل رقم هاتفه القديم بالجديد .
قد يفترض احداً ان الحل هو حذفه و اعادة اضافته إلى الجدول بالمعلومات الجديده .
. UPDATE طبعاً هذا الحل غير مناسب , هناك حل افضل منه وهو امر بإسم
طريقة آتابة هذا الامر :
آود :
UPDATE tablename SET field='newinfo';
هو اسم الجدول tablename المقصود آالعاده ب
اسم الحقل الموجود به القيمه التي نريد تغييرها field المقصود ب
المعلومه الجديده newinfo المقصود ب
سوف اشرحها بالتفصيل . , field اعرف انك لم تفهم معنى
نحن ذآرنا ان احد العملاء قام بتغيير رقم هاتفه , و ذآرنا آذلك ان الحقل الخاص برقم الهاتف اسم
هل وصلت الآن . , phone
حسناً سوف اآتب لك الكود لكي تفهمها اآثر :
آود :
UPDATE client SET phone='87654321' WHERE domin='yahoo.com';
هل فهمت الآن .
لنفرض , yahoo.com و خصصنا التغيير للزبون نواف صاحب الموقع WHERE الآن لاحظ اننا وضعنا الشرط
اننا لم نضع هذه الجمله !!
سوف تتغير هواتف آل الزبائن لدينا .
في SQL اتذآر في مره من المرات و عندما آنت اطور احد السكربتات طبعاً آنت (ولا زلت) استخدم ال
فذهبت جميع المعلومات WHERE سكربتاتي , آنت اريد عمل تحديث لحقل واحد , نسيت الكلمه
المهمه و اضطريت لاعادة آتابتها , فنصيحتي ان لا تتسرع في آتابة الامر و لا تتعجل الامور , ففي
العجله الندامه و في التأني السلامه
حسناً , الآن انتيهنا من هذا الفصل , لننتقل إلى الفصل التالي .
22
عن الفصل :
في هذا الفصل سوف نتعلم طريقة استخراج المعلومات التي خزناها , سواء آل المعلومات , او بعض
المعلومات , او اي معلومه محدده .
إستخراج المعلومات :
ها نحن نعود إلى الافتراضات , لنفرض اننا نريد استخراج معلومات الزبائن لدينا ؟!..
الذي يكتب بهذه الطريقة : SELECT هذا بسيط جداً , و هو من خلال الامر
آود :
SELECT * FROM tablename;
هو الجدول . tablename المقصود ب
عند آتابتنا هذا الامر تلقائياً , سوف تظهر اسماء آل الحقول و المعلومات المخزنه فيها .
حسناً , لنفرض انك تريد فقط استخراج ارقام هواتف العملاء .
. phone طبعاً يمكنك ذلك و هو من خلال تغيير * إلى اسم الحقل وهو
FROM و SELECT نستنتج من ذلك انه اذا اردنا استخراج جميع الحقول و معلوماتها نكتب * بين الكلمتين
آما هو موضح اعلاه , و اذا اردنا استخراج معلومات حقل معين نقوم بكتابة اسم الحقل بدلاً من النجمه .
مثال :
آود :
SELECT phone FROM client;
لنفرض اننا نريد استخراج معلومات اآثر من حقل يمكن ذلك بوضح فاصله بين آل حقل ,
مثال :
آود :
SELECT phone,id FROM client;
23
لنفرض اننا نريد استخراج معلومات آل العملاء الذين يحملون الاسم نواف .
الذي تعرفنا عليه مسبقاً بهذه الطريقه : WHERE طبعاً نستخدم الشرط
آود :
SELECT * FROM client WHERE name='nawaf';
هكذا نكون قد انتهينا
فصل قصير صح عموماً هذا الفصل هو قبل الاخير , و الفصل الذي يليه
هو الاخير .
24
عن الفصل :
ها نحن في آخر فصل من هذا الكتاب بعد ان تناولنا و درسنا اساسيات هذه اللغه , في هذا الفصل
في ندرس اشياء اضافيه مكمله لبعض الاساسيات .
: WHERE الجمله
لقد تعرفنا مسبقاً على هذه الجمله و لكن بشكل بسيط جداً .
سوف نتعرف عليها الآن بشكل مفصل ان شاء الله , تستخدم هذه الكلمه لشرط معين .
مثلما ذآرنا مسبقاً , مثلاً نريد حذف موقع معين او نريد تحديث موقع معين الحل الوحيد في مثل هذه
. WHERE الحالات هي الجمله
في اي لغه من لغات البرمجه . if آأنها الجمله الشرطيه SQL في ال WHERE نعتبر جملة
بمعنى انها ليست فقط للقيم المتساويه , بل WHERE حسناً , هناك عدة عمليات تتم من خلال جملة
لعدّة قيّم مثلا غير متساويه او اآبر من او يساوي او غيره و هذا الجدول يوضح آل العمليات التي يمكننا
. WHERE استخدامها في جملة
العمليه وصفها
= يساوي
<> او != لا يساوي
< اآبر من
> اصغر من
=< اآبر من او يساوي
=> اصغر من او يساوي
خاصه لعمليات البحث LIKE
قد تتسائل عن طريقة استخدامها , سوف نأخذ مثال لاول عمليتين فقط .
العمليه الاولى وهي المساواة , نعود إلى عملينا نوّاف , نريد استخراج معلومات عن آل المسجلين و
سوف نستخدم المساواة , nawaf اسمائهم
لاحظ الكود :
آود :
SELECT * FROM client WHERE name='nawaf';
حسناً نريد استخدام لا يساوي , مثلا نريد ان نستخرج آل معلومات العملاء ما عدا الذي اسمائهم
حسناً بسيط , nawaf
25
لاحظ الكود التالي :
آود :
SELECT * FROM client WHERE name<>'nawaf';
حسناً , اعتقد قد توضحت هذه الجمله , لننتقل إلى التالي
استخراج البيانات بواسطة الترتيب التصاعدي او التنازلي :
حسناً قد تكون هذه الفقره غير مهمه لديك لكنها لزيادة معلوماتك على الاقل و قد تحتاجها في احد
الايام .
ORDER BY لنفرض انك تريد استخراج البيانات تصاعدياً او تنازلياً , يمكنك ذلك من خلال الجمله
و هناك عاملين هما :
يستخرج البيانات تنازلياً : DESC •
يستخرج البيانات تصاعدياً : ASC •
الذي يحتوي على الارقام المميزه id طريقة الاستخدام , مثلاً نريد ان نوجد البيانات تنازلياً حسب الحقل
آود :
SELECT * FROM client ORDER BY id DESC;
حسناً , اعتقد ان الآن آل شئ واضح , و ها قد وصلنا إلى النهايه , آمل ان تكون قد استمتعت و
استفدت من هذا الكتاب ولا نطلب سوى دعواتكم .
انا واثق انك الآن اصبحت تفهم لقواعد البيانات و بإذن الله سوف يمكنك التعامل مع انواع قواعد البيانات
حسناً لا اريد ان اطيل عليك . , SQL التي تعتمد على
بالتوفيق