بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
سنبعد في درسنا هذا عن TSQL مؤقتاً عن جو البحث وسنتحدث عن اضافة وحذف الجداول في قواعد البيانات .
سنبدأ أولاً بصيغة انشاء جدول وذلك بالشكل التالي :
- اقتباس :
- CREATE TABLE tb1 ( colum type, colum type,........);
وكمثال على ذلك ... لننشئ جدولاً تحت اسم Tb2 يحتوي على حقلين : الإسم Name من نوع ( نص - String ) والآخر Age من نوع Number :
- اقتباس :
- CREATE TABLE tb1 (name text,age number );
إذن ماذا لو أردنا أن نحدد حجم حقل العمر Name بخمس خانات فقط ... إذن ضع عدد الخانات بين قوسين مع تعيين نوع بيانات الاسم ك Text وذلك بالشكل التالي :
- اقتباس :
- CREATE TABLE tb1 (name text(6),age number );
آخر نقطة سأشرحها في انشاء الجداول هي كيف نجعل الحقل لا يقبل فراغ - Null ... ولنجرب هذا المثال مع الإسم أيضاً :
- اقتباس :
- CREATE TABLE tb1 (name text(6) Not Null,age number );
ولكن ماذا عن الحذف ... في الواقع هذا الكود يقوم بحذف الجدول الذي قمنا بإنشاءه تواً :
- اقتباس :
-
DROP Table tb1;
ولو كان هذا الجدول مرتبطاً بعلاقات فلا بد من تحديثها باضافة CASCADE إلى آخر الكود وذلك بالشكل التالي :
- اقتباس :
-
DROP Table tb1 CASCADE;
لا تنسى أن تنشأ الجدول بعد حذفه لأننا سوف نعمل عليه مجدداً
والآن سنبدأ في اضافة حقول إليه وذلك بعد عملية الانشاء - أعتقد أن الفرق بين الجدول وقاعدة البيانات والحقول أصبح واضحاً - .
نستطيع اضافة الحقول بصيغة عامة بالطريقة التالية :
- اقتباس :
-
ALTER TABLE tb1 ADD colum type;
فلنضف حقلين جديدين : الأول هو تاريخ الميلاد ، والثاني النوع ( ذكر - أنثى ) .
- اقتباس :
- ALTER TABLE tb1 ADD birth_Date date,Gender Text;
والآن لنحذف أحد هذه الحقول وليكن حقل Gender ... لاحظ أننا دائماً نضيف كلمة CASCADE لتحديث العلاقات - في حال وجودها - ، وذلك بالشكل التالي :
- اقتباس :
-
ALTER TABLE tb1 DROP gender CASCADE;
والآن سوف نتعلم اضافة السجلات ، وسوف نستخدم Tb_Main كجدول لنجرب أوامرنا عليه ، والآن إلى الصيغة العامة لأمر الإضافة :
- اقتباس :
- INSERT INTO table VALUES (v1, v2,......);
لاحظ أننا سنمرر القيم واحداً وراء الثاني وتفصل بينهم فاصلة ، مع مراعاة وضع النصوص بين علامتي تنصيص "" والتواريخ بين علامتي ## .
سنمرر القيم التالية : الرقم - الإسم الأول - الإسم الأخير
- رقم الهاتف - العمر - العنوان - البريد الإلكتروني - السنة - اللغة -
الموقع - متزوج/لا - ملاحظات .
وذلك بالشكل التالي :
- اقتباس :
- Insert into tb_main values(11,'ahmed','gamal',6666666,18,'Cairo','Hammada2091','First Year','','',false,'');
تواحهنا مشكلة وهو أننا جعلنا الرقم حقلاً وحيداً - لا
تتكرر قيمه - لذا وجب علينا في كل مرة أن نغير الرقم ... برمجياً يمكننا
ذلك ولكن من خلال الأكسيس جرب ازالة رقم 11 ووضع كلمة MyNumber بالشكل التالي :
- اقتباس :
- Insert into tb_main values(MyNumber,'ahmed','gamal',6666666,18,'Cairo','Hammada2091','First Year','','',false,'');
جرب تنفيذ جملة الإستعلام وستظهر لك رسالة تطلب منك ادخال قيمة MyNumber . ضع قيمة بشرط ألا تكون مكررة وسوف يتم اضافتها في الجدول .
* ملاحظة :
إن هذا الجزء في الأكسيس سيقابله متغير في الفيجوال بيسك .. كذا الامر بالنسبة للبحث .
هل تتذكر جملة البحث التالية :
- اقتباس :
-
Select * From Tb_Main where name='ahmed';
جرب أن تزيل Ahmed وضع متغيراً MyName بالشكل التالي :
- اقتباس :
-
Select * From Tb_Main where name = myname;
وهذا يعطيك تحكماً فيما ترغب في البحث عنه ...
التعديل :
الصيغة العامة لتعديل بيانات سجل بالشكل التالي :
- اقتباس :
- UPDATE table_name SET colum1 = v1 , colum2 = v2 WHERE colum = v;
سنجرب الآن مثالاً لجعل العمر = 28 والموقع = www.telbana.alafdal.net للشخص الذي اسمه الأول ( Ahmed ) والاخير ( Gamal ) : - اقتباس :
- Update tb_main set age=25 , site='www.telbana.alafdal.net' where fname='ahmed' and lname='Gamal';
ولكن ماذا لو كان الأمر يشمل أكثر من سجل . في الواقع هذا الأمر شائع ويشبهه المثال التالي :
- اقتباس :
- Update tb_main set fname='Ahmad' where fname='ahmed';
قد يستخدم مثل هذا المثال لتوحيد
الأسماء خصوصاً مع اللغة العربية ، كما يمكن أن يستخدم أيضاً لتجاهل تأثير
الهمزة في عمليات البحث ، فمثلاً يصبح أحمد = احمد .
ولكن ماذا لو أردنا تعميم التغييرات ... في هذه الحالة لن نضع الشرط ، ويمكن وضع أمر شبيه بالأمر التالي لزيادة الأعمار 5 سنوات :
- اقتباس :
-
Update tb_main set age=age+5;
يعتبر هذا الأمر من أكثر الأوامر شيوعاً في قواعد بيانات
الشركات ... فمثلاً يستخدم لزيادة رواتب الموظفين بنسبة معينة ( يمكن أن
تكون زيادة ثابته أو نسبيه ) .
ولكن ماذا عن الحذف ... في الواقع تتخذ جملة البحث صيغة عامة كالتالي :
- اقتباس :
- DELETE FROM table WHERE colum = value;
ويمكن أن يكون الحذف تحت تأثير تحقق أكثر من شرط .. في المثال التالي سوف نحذف جميع الأشخاص الذين تزيد أعمارهم عن الأربعين :
- اقتباس :
-
Delete from tb_main where age>40;
ولكن ماذا عن حذف كامل محتويات جدول ما ... هذه هي الطريقة :
- اقتباس :
-
DELETE * FROM table;
يتبع في الجزء القادم ...