سمسمة مشرفة
عدد الرسائل : 4401 العمر : 35 تاريخ التسجيل : 03/07/2008
| موضوع: تعلم لغة sql في سبع دقائق بدون معلم الأربعاء نوفمبر 11, 2009 6:04 am | |
| تعريف sql الكلمه SQL هي اختصار Structured Query Language و معناها (لغة الاستعلام البنيويه) , تستخدم هذه اللغه في التعامل مع قواعد البيانات و لاستخراج و تحديث و اضافة البيانات من قاعدة البيانات و غالبا ما يتم استخدام هذا النوع من قواعد البيانات في المواقع التي تستخدم التقنيات الشهيره مثل الـ PHP , أو في تطبيقات الحاسوب التي تحتاج لقواعد بيانات , و كما نرى ان اغلب برامج الويب تعتمد على الــ SQL من خلال البرنامج الشهير MySQL , وماقد يخفي عليك أن تعلمك ل SQL يغنيك عن معرفة و access و Mysql و oracle و sql server ... كل شيء ستقوم به بواسطة SQL وتجدر الإشارة أن كل هذه البرامج إضافة أنها تدعم SQL فلكل منها لغة خاصة فالأكسس له لغته والأوراكل له لغة خاصة تدعى PLSQL .... ما الذي يمكنني فعله في الـ SQL ؟ بفضل SQL يمكنك عمل الكثير 1\ إنشاء جدول بالمواصفات التي تحتاجها 2\ اضافة حقول او حذف حقول بعد انشاء الجدول 3\ تفريغ الجدول 4\ حذف الجدول 5\ ادخال المعلومات 6\ تحرير المعلومات 7\ حذف المعلومات 8\ إنشاء قاعدة بيانات 9\ حذف قاعدة بيانات 10\ استخراج المعلومات 11\ استخدام الشروط في استخراج المعلومات (تصاعدي , تنازلي , 10 معلومات , معلومات عن مستخدم معين إلخ ...) أين يمكنني كتابة أوامر? سأعطي مثال بالأكسس وبالصور إنشاء قاعدة بيانات جديده : قاعدة البيانات هي عصب لغة الــ SQL و من خلالها يتم إنشاء الجداول و تعبئة المعلومات سوف نتعلم كيف نقوم بإنشاء قاعدة بيانات جديده طريقة كتابة الامر : CREATE DATEBASE mydbname; سوف نقرأ هذا الامر باللغه العربيه , كأنك تقول (أنشئ قاعدة البيانات التي اسمها mydbname) . طبعاً mydbname يمكنك تغيره إلى اسم قاعدة البيانات التي تريده مثلاً تود اسم القاعده brahim او db مثلاً , أي اي اسم تريده لكن لن يفيدنا هذا الامر في الاكسس لأن في الأكسس سوف تنشيء أنت القاعدة بالمقابل في البرامج الأخرى سيكون هذا الأمر ذا أهمية لحذف قاعدة البيانات نستعمل الكود الآتي : DROP DATABASE mydbname; لإضافة جدول للقاعدة CREATE TABLE tablname ( Falid1 type null or not null , Falid2 type null or not null , ); حسناً , لنبدأ الشرح خطوه بخطوه , في اول السطر نقول بإننا نود إنشاء الجدول tablname طبعاً يمكننا تغيير هذه الكلمه إلى اسم الجدول الذي نود اضافته , Falid1 , Falid2 : هذان الاثنان يعنيان انهم اسماء للحقول و ها نحن نود اضافة حقلان الاول بمسمى Falid1 و الثاني Falid2 بعدها نبدأ بوصف مميزات هذا الحقل و نوع البيانات و سيتم شرح نوع البيانات في السطور القادمه . Type : انواع البيانات او الحقول و سيتم شرحها قريبا بإذن الله Null or not null : هذا يعني انه هل تريد ان يكون الحقل خالي ؟ مثلا هل تريد ان اسم المستخدم هل يجب ان يكتبه المستخدم ام اختياري . حسناً , بعدما رأينا كيف نقوم بإنشاء جدول و تعرفنا ان هنالك انواع للحقول او البيانات , حسناً تمعّن في الجدول التالي الذي سوف يشرح انواع الحقول : النوع نوعية البيانات التي يمكن تخزينها TINYINT() ارقام صحيحه صغيره جداً SMALLINT() ارقام صحيحه صغيره MEDIUMINT() ارقام صحيحه متوسطة الحجم INT() ارقام صحيحه اعتياديه INTEGER() مرادف لــ INT BIGINT() ارقام صحيحه كبيره جداً جدول لانواع الارقام الصحيحه النوع نوع البيانات التي يمكن تخزينها DATE تاريخ ,, سيظهر كـ YYYY-MM-DD TIME وقت ,, سيظهر HH:MM:SS DATETIME تاريخ ووقت ,, سيظهر كـ YYY-MM-DDHH:MM:SS TIMESTAMP() ختم زمني YEAR() سنه جدول انواع بيانات التاريخ و الوقت النوع الوصف TINYBLOB حقل كائن BLOB صغير جدا TINYTEXT حقل TEXT صغير جدا BLOB حقل BLOB حجمه عادي TEXT حقل TEXT حجمه عادي MEDIUMBLOB حقل BLOB متوسط الحجم MEDIUMTEXT حقل TEXT متوسط الحجم LONGBLOB حقل BLOB طويل LONGTEXT حقل TEXT طويل الانواع TEXT و BLOB النوع الوصف CHAR حقل يقوم بتخزين 1 إلى 255 حرف VARCHAR نفس عمل السابق انواع السلاسل الاعتياديه حسنا لنفرض اننا بحاجه إلى 4 حقول , و سنعدد ماهي : الحقل الاول : وسوف يكون المعرف الخاص لكل زبون , حيث يكون رقم خاص للزبون يميزه عن غيره من الزبائن (ضروري) . الحقل الثاني : اسم الزبون الحقل الثالث : رقم هاتف الزبون الحقل الرابع : عنوان موقع الزبون حسناً الآن و بعد تحديد الحقول ووظائفها يجب علينا ان نحدد نوعها . الحقل الاول : بما انه حقل يحمل رقم خاص لكل زبون اذاً سوف نرجع إلى جدول انواع الارقام , سوف نختار النوع INT() بحيث يكون رقم اعتيادي صحيح حسناً , الآن لدينا مشكله ؟!.. نفرض اردنا اضافة زبون طبعا الزبون الاول سوف يكون رقمه 1 حسناً , نريد اضافة زبون ثاني و سوف نكتب في الحقل الاول رقم 2 , لكن ماذا لو وصلوا عدد زبنائنا مليون زبون !! هل سوف نكتب في الحقل الاولى مليون مليون وواحد مليون و اثنين !! طبعاً لا يمكننا ذلك بل سوف نهرب من هذه اللغه و من قواعد البيانات . قد تتسائل ماهو حل هذه المشكله الكبيره التي قد تعرقلنا , قد يقول البعض لا نحتاج الحقول الاولى ولا نريد ترقيم هذا الزبون . ولكنني ارد عليهم و اقول بل يمكننا ترقيمه و بسهوله بالغه و من دون اي تعب او شقاء الحمدلله هناك خاصيه بإسم auto_increment وهي اوتوماتيكيه حيث كلما قمت بإضافة زبون يكتب رقم آخر زبون + 1 , يعني لا تشقى ولا تتعب اجعل عملية اعطاء الزبون رقم خاص للغة الـSQL . لنفرض ان الحقل الاول إسمه id اي identify و المقصود رقم المعرف كما ذكرنا مسبقاً سوف يكون نوعه INT اي عدد صحيح و سوف نشغل فيه الخاصيه : auto_increment لكي يكون اوتوماتيكياً . لنفرض ان الحقل الثاني الذي هو إسم الزبون ويكون اسمه name طبعاً يكون نوعه من varchar اي سلسله . لنفرض ان الحقل الثالث وهو رقم الهاتف إسمه phone طبعاً يكون نوعه INT اي رقم صحيح لنفرض ان الحقل الرابع و الاخير و هو عنوان موقعه يكون ال varchar لانه تعتبر سلسله واسمه domin . نسيت ان اذكر شئ مهم و ان السلسله varchar تخزن ارقام و حروف . , لنفرض ان اسم الجدول client سيكون الأمر كالتالي : 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) ); نفترض اننا قمنا بإضافة المعلومات !! , و نريد حذفها جميعها سوف نستعمل الأمر التالي : DELETE FROM tablename; قد تتسائل هل يمكنني حذف معلومه واحد فقط ! الجواب طبعاً نعم و بإستخدام نفس الامر لكن بإضافة الجمله الشرطيه WHERE لنفرض أننا نود حذف الزبون الذي يحمل رقم تلفون 00123456 سوف نستعمل الأمر التالي : DELETE FROM tablename where phone = 00123456; أوامر أخرى لحذف جدول المعلومات نهائياً من قاعدة البيانات DROP TABLE tablename; لدينا زبون جديد و نريد تسجيل معلوماته في الجدول INSERT INTO tablename VALUES ('info1','info2'); مثال INSERT INTO client VALUES ('NULL','brahim','1234567','yahoo.com'); لإضافة حقول معينة فقط INSERT INTO client(id,name,domin) VALUES ('NULL','brahim','yahoo.com'); حذف المعلومات : DELETE FROM client WHERE domin='yahoo.com'; تحديث المعلومات : UPDATE client SET name='ahmed'; نفترض أن الزبون الذي يملك yahoo.com غير تلفونه سنعدله هكذا UPDATE client SET phone='87654321' WHERE domin='yahoo.com'; إستخراج المعلومات : SELECT * FROM tablename; لاستخراج حقل التلفون فقط SELECT phone FROM client; استخراج معلومات كل العملاء الذين يحملون الاسم brahim . SELECT * FROM client WHERE name='brahim'; حسناً , هناك عدة عمليات تتم من خلال جملة WHERE بمعنى انها ليست فقط للقيم المتساويه , بل لعدّة قيّم مثلا غير متساويه او اكبر من او يساوي او غيره و هذا الجدول يوضح كل العمليات التي يمكننا استخدامها في جملة WHERE . العمليه وصفها = يساوي <> او != لا يساوي < اكبر من > اصغر من =< اكبر من او يساوي => اصغر من او يساوي LIKE خاصه لعمليات البحث | |
|
العقرب العجوز المبرمج ادارة IT CLUB
عدد الرسائل : 6053 العمر : 34 تاريخ التسجيل : 19/11/2007
| موضوع: رد: تعلم لغة sql في سبع دقائق بدون معلم الأربعاء نوفمبر 11, 2009 6:17 am | |
| موضوع جامد جدا و مفيد جدا
خصوصا لاى حد معاه
نظم قواعد البيانات او حاسب الى 3
فى الاكسس
شكرا سمسمه
موضوع بجد قيم | |
|
سمسمة مشرفة
عدد الرسائل : 4401 العمر : 35 تاريخ التسجيل : 03/07/2008
| موضوع: رد: تعلم لغة sql في سبع دقائق بدون معلم الأربعاء نوفمبر 11, 2009 6:32 am | |
| يارب الكل يستفاد
شكرا ليك انت ياعقرب على المرور | |
|
زائر الليل ادارة IT CLUB
عدد الرسائل : 1022 العمر : 36 تاريخ التسجيل : 20/10/2007
| موضوع: رد: تعلم لغة sql في سبع دقائق بدون معلم الجمعة يناير 01, 2010 8:52 pm | |
| شكرا سمسمه جزاكى الله خيرا بجد مجهود متميز | |
|
زائر زائر
| موضوع: رد: تعلم لغة sql في سبع دقائق بدون معلم السبت يناير 02, 2010 12:27 am | |
| الله عليكي يا سمسمه جزاكي الله خيرا وبارك فيكي يارب بجد مجهود رااااااااااااااائع موضوع ممتاااااااااااااااااااااز تسلم ايدك يا قمر =============== بس انا عندي سؤال انا نزلت اكتر من كتاب لsql وبيجيب مثال ع الاكسس بس اكسس 2000 مفيش لاكسس2007 او 2003 |
|
نور مشرفه عامه
عدد الرسائل : 5392 العمر : 36 تاريخ التسجيل : 26/10/2007
| موضوع: رد: تعلم لغة sql في سبع دقائق بدون معلم السبت يناير 02, 2010 2:51 am | |
| انا عندى فيدوهات صوت وصورة لاكسس 203 شرح لو عايزة يانبض
وسمسم موضوع جميل بس على فكرة لغة الصور مش انجليزى دا فرنساوى باين | |
|
gegeali15 عضو جديد
عدد الرسائل : 2 العمر : 48 تاريخ التسجيل : 27/01/2010
| |