المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس التاسع : استخدام لغة ( تقنية ) الإستعلامات بطريقة Tsql - الجزء الثالث



GeeK4aRaB
25-07-2009, 09:50 PM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .




سنبعد في درسنا هذا عن 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;


لا تنسى أن تنشأ الجدول بعد حذفه لأننا سوف نعمل عليه مجدداً http://www.geek4arab.com/vb/imgcache/2/4900_geek4arab.com.gif



والآن سنبدأ في اضافة حقول إليه وذلك بعد عملية الانشاء - أعتقد أن الفرق بين الجدول وقاعدة البيانات والحقول أصبح واضحاً - .


نستطيع اضافة الحقول بصيغة عامة بالطريقة التالية :


رمز:

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','Hamm ada2091','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.vb4arab.com للشخص الذي اسمه الأول ( Ahmed ) والاخير ( Gamal ) :


رمز:
Update tb_main set age=25 , site='www.vb4arab.com' 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;


يتبع في الجزء القادم ...

http://file7azm.info/do.php?img=807