منتدى وملتقى طلاب جامعة تشرين
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

رحلة متقدمة مع SQL

2 مشترك

اذهب الى الأسفل

رحلة متقدمة مع SQL Empty رحلة متقدمة مع SQL

مُساهمة من طرف الجنرال *أبو جعفر* الجمعة يوليو 09, 2010 6:43 pm

الفصل الأول

مدخل إلى لغة الاستعلام المهيكلة SQL

الكلمات المفتاحية:
جدول، حقل، عمود، بيانات، علاقة، قواعد بيانات علائقية، نظام إدارة قاعدة بيانات، خواص، سجلات، نطاق، محرك قاعدة البيانات، دليل قاعدة البيانات، لغة معالجة البيانات، لغة تعريف البيانات، لغة التحكم بالبيانات.
ملخص:
يتضمن هذا الجزء مقدمة سريعة عن محتوى المادة ككل ومجموعة من التفاصيل حول لغة الاستعلامات المهيكلة SQL من حيث التطور و بيئة الاستخدام وطريقة تصنيف تعليماتها.
أهداف تعليمية:
نتعرف في هذا الفصل على:
• مقدمة سريعة لمحتوى المادة.
• تعريف بلغة SQL.
• نشأة وتطوير اللغة.
• لمحة سريعة عن برامج قواعد البيانات العلائقية.
• تصنيف تعليمات اللغة.

1. مدخل إلى محتوى المادة

تُعرَّف لغة الاستعلام المهيكلة SQL بأنها لغة التعامل مع قواعد البيانات وتعتمد عليها كافة التطبيقات التي تتعامل مع قواعد البيانات العلائقية.
تهدف هذه المادة إلى تغطية أوجه استخدام لغة SQL وتوضيح إمكانياتها التي تساعد على استثمار أفضل وأسهل لقواعد البيانات.
سنبدأ بمقدمة عن اللغة ثم نستعرض تعليمات اللغة ابتداء من أبسط التعليمات، خصوصاً تلك التي تغطي عمليات الإضافة والحذف والاستعلام عن السجلات، مروراً بالتوابع وعمليات ربط الجداول والاستعلامات الفرعية، وانتهاء بإدارة الجداول وإدارة المستخدمين والسماحيات.

سنتعرف أيضاً على بعض أجزاء اللغة الإجرائية PL/SQL وعلى كيفية إدارة الأخطاء وتجاوزها.
سيتم دعم كافة الأفكار بأمثلة عملية وواضحة إضافةً إلى مشروع يساعد على تجميع كافة الأفكار ووضعها ضمن قالب تطبيقي مباشر.


2. ما هي لغة SQL
تُعرف SQL بأنها لغة تساعد على التعامل مع قواعد البيانات العلائقية. وقد تم تطوير لغة SQL انطلاقاً من النموذج العلائقي لـ كودد(CODD) المعتمد على الجبر العلائقي.
تُعتبر لغة SQL لغة معيارية تتبع معايير ISO وANSI، وقد تم دعمها من قبل عدد كبير من الشركات العاملة في مجال تطوير برامج إدارة قواعد البيانات العلائقية مثل Microsoft وOracle.
4. قواعد البيانات العلائقية
تمتلك قواعد البيانات العلائقية، حسب ما ورد في نموذج كودد، ما يلي:
• مجموعة من بنى المعطيات المُستَخدَمة في قاعدة البيانات، أهمها:
• العلاقة ويتم تمثيلها بالجدول.
• الخواص ويتم تمثيلها بالأعمدة أو حقول الجدول.
• الصفوف ويتم تمثيلها بالسجلات في الجداول.
• البيانات ويتم تمثيلها بالمعلومات المحتواة ضمن حقول الجدول.
• النطاق ويتم تمثيلها بالمجال الذي يمكن لقيم الخواص أن تتحرك ضمنه.
• توابع تساعد على الوصول إلى البيانات وتساعد على تعديلها واسترجاعها.
• مجموعة من القواعد التي تنظم العمليات التي يمكن إجرائها على قاعدة البيانات.

5. أنظمة إدارة قواعد البيانات العلائقية
من الأخطاء الشائعة، إطلاق اسم قواعد البيانات على أنظمة إدارة قواعد البيانات العلائقية.
فأنظمة MS SQL Server، وOracle، وMS Access هي أنظمة إدارة قواعد بيانات وليست قواعد بيانات.

أنظمة إدارة قواعد البيانات العلائقية الرئيسية:
• DB2
• Firebird
• Informix
• Microsoft SQL Server
• MySQL
• Oracle
• PostgreSQL
• Daffodil DB
• HSQLDB

تتكون هذه الأنظمة مما يلي:
• محرك قاعدة البيانات ويعتبر العنصر الأهم المسؤول عن تخزين البيانات ومعالجتها.
• دليل قاعدة البيانات الذي يحتوي كافة المعلومات التي تخص قاعدة البيانات والجداول والحقول وأنواعها.
• واجهات مرئية لإدارة المعطيات وتقديم نماذج وتقارير واستعلامات.
• أدوات خاصة بقواعد البيانات تشمل التوليد التلقائي لمخططات قواعد البيانات.
• أدوات تطوير التطبيقات.

6. SQL
تعمل SQL بمبدأ توجيه طلب إلى محرك قاعدة البيانات والحصول على جواب من محرك قاعدة البيانات الذي يُرجع مجموعة نتائج.
توفر SQL مجموعة من التعليمات بحيث يمكن تقسيمها إلى ثلاث لغات فرعية:

لغة معالجة البيانات التي تتضمن التعليمات الخاصة باستعادة البيانات و تعديلها مثل:
SELECT: وهي مخصصة لقراءة البيانات و استخلاصها من قاعدة البيانات.
INSERT: وهي مخصصة لإضافة سجلات جديدة إلى قاعدة البيانات.
DELETE: وهي مخصصة لحذف سجل أو مجموعة سجلات من قاعدة البيانات.
UPDATE: وهي مخصصة لتعديل سجل أو مجموعة من السجلات في قاعدة البيانات.

لغة تعريف البيانات المخصصة لتعريف بنية البيانات، وتتضمن تعليمات مثل:
CREATE TABLE: وهي مسؤولة عن توليد جدول
DROP TABLE: وهي مسؤولة عن حذف جدول
ALTER TABLE: وهي مسؤولة عن تعديل جدول
CREATE INDEX: وهي مسؤولة عن توليد مؤشرات

لغة التحكم بالبيانات التي تُستخدم للتحكم و ضبط السماحيات على قاعدة البيانات مثل:
GRANT
REVOKE


لغة معالجة المعطيات

الكلمات المفتاحية:
تعليمة ، صيغة، جدول ، حقل ، سجل، عمود، استعلام، استعلام فرعي.
ملخص:
تم تصنيف تعليمات لغة SQL إلى ثلاثة أصناف رئيسية ضمن ثلاث لغات فرعية: لغة معالجة المعطيات، ولغة تعريف المعطيات، ولغة التحكم بالمعطيات. و من بين هذه التعليمات تعتبر تعليمات معالجة المعطيات الأكثر استخداماً. سنستعرض تعليمات المعالجة والتي تشمل SELECT, INSERT, DELETE, UPDATE و بعض الكلمات المفتاحية المُستخدمة معها.
أهداف تعليمية:
نتعرف في هذا الفصل على:
• استخدام تعليمة SELECT لاستعادة البيانات من قاعدة البيانات.
• استخدام تعليمة INSERT لإدراج سجلات ضمن جدول في قاعدة البيانات.
• استخدام تعليمة DELETE لحذف سجل أو مجموعة من السجلات.
• استخدام تعليمة UPDATE لتعديل سجل أو مجموعة من السجلات.
• التعرف على الإطار التطبيقي لاستخدام هذه التعليمات مع الكلمات المفتاحية المرافقة لها.

1. تعليمة SELECT
تُعتبر تعليمة SELECT من أشهر تعليمات اللغة وأكثرها استخداماً. تُستخدَم هذه التعليمة لاستعادة و انتقاء مجموعة من البيانات من قاعدة البيانات و ذلك بإعادة جدول يحتوي مجموعة البيانات المطلوبة.
تأخذ تعليمة SELECT الصيغة:




SELECT [field_1,field_2,..] FROM [table_name];


• تُستخدم إشارة * كبديل لأسماء الحقول.
• يُستخدم تعبير DISTINCT لاستعادة جميع السجلات مع إلغاء التكرار في السجلات المعادة.
• يُستخدم التعبير ORDER BY لترتيب السجلات المٌعادة ترتيباً تصاعدياً أو تنازلياً حسب التعبير المرافق المستخدم: ASC للترتيب التصاعدي أو DESC للترتيب التنازلي.
• في حال الرغبة باستخدام أسماء بديلة لحقول جدول القيم المعادة نستخدم التعبير AS.


تمرين 1:
ما هي عبارة SQL التي تساعدنا على استعادة بيانات حقلي StudentName و StudentAge من جميع سجلات الجدول Students ؟


SELECT StudentName, StudentAge FROM Students; تمرين 2:
ما هي عبارة SQL التي تساعدنا على استعادة جميع السجلات من الجدول ؟


SELECT * FROM Students; تمرين 3:
ما هي عبارة SQL التي تساعدنا على استعادة جميع بيانات الحقل StudentName مع إلغاء التكرار في السجلات المُعادة ؟


SELECT DISTINCT StudentName FROM Students; تمرين 4:
ما هي عبارة SQL التي تساعدنا على استعادة جميع بيانات الحقول StudentName و StudentAge مرتبة ترتيباً تصاعدياً وفق الحقل StudentName؟


SELECT StudentName, StudentAge FROM Students ORDER BY StudentName ASC;

نستخدم الكلمة المفتاحية WHERE مع تعليمة SELECT لاستعادة مجموعة من السجلات التي تحقق شرط أو مجموعة من الشروط التي نعبر عنها بعبارة شرطية.
• تُعيد العبارة الشرطية قيمة منطقية (صح أو خطأ)
• يمكن للعبارة الشرطية أن تتضمن عمليات مقارنة مثل (= , < > , > , < , <= , >=) ويتم ضم السجل الذي يحققها إلى جدول النتائج.
الكلمات المفتاحية LIKE و BETWEEN
• تُستخدم الكلمة المفتاحية LIKE ضمن العبارة الشرطية، كشرط لوجود مثيل. غالباً ما تُستخدَم هذه الكلمة مع إشارة (%)، التي تضاف إلى القيمة التي نبحث عن مثيلاتها، كبديل عن أي رقم من الأرقام أوالأحرف.
• تُستخدم الكلمة المفتاحية BETWEEN ضمن العبارة الشرطية، كشرط لوجود قيمة محصورة بين قيمتين محددتين
• تقبل الكلمة المفتاحية WHERE أكثر من شرط يفصل بينها عمليات منطقية مثل AND أو OR ويمكن أن يسبق الشرط العملية NOT لنفيه.

تمرين 5:
نريد الحصول على قائمة بجميع السجلات التي تحتوي على السلسلة ‘SVU’ في حقل اسم الجامعة (universityName) ضمن جدول الجامعات (Universities).


SELECT * FROM Universities WHERE UniversityName LIKE ‘%SVU%’; تمرين 6:
نريد الحصول على قائمة بجميع الطلاب ذوي الإسم Sami في حقل الاسم الأول للطالب
(StudentFirstName) ضمن جدول طلاب الجامعة الافتراضية (SVUStudents) والذين تنحصر أعمارهم (StudentAge) بين 20 و 30 عام.


SELECT * FROM SVUStudents WHERE StudentFirstName LIKE ‘Sami’ AND StudentAge BETWEEN 20 AND 30;

2. تعليمة DELETE
تقوم تعليمة DELETE بحذف سجل أو مجموعة من السجلات من جدول ما.
تأخذ تعليمة DELETE الصيغة :


DELETE FROM [table_name];

تمرين:
نريد حذف السجل الخاص باسم المستخدم ‘Sami’ (الحقل StudentName) من جدول طلاب الجامعة الافتراضية SVUStudents:


DELETE FROM SVUStudents WHERE StudentName='Sami';

3. تعليمة INSERT
تُستخدم تعليمة INSERT لإدراج سجل في جدول محدد.
تأخذ تعليمة INSERT الصيغة:
INSERT INTO table_name
VALUES (value_1,value_2,value_3,..,value_n);
حيث تٌمثل value_1,..,value_n القيم التي سوف يتم تخزينها في السجل تبعاً لترتيب حقوله. كما يمكننا استخدام صيغة بديلة تُمكننا من تحديد حقول السجل التي نود إدراج البيانات فيها فقط:


INSERT INTO table_name (field_1,field_2,..,field_n)
VALUES(value_1,value_2,..,value_n);

يمكن لتعليمة INSERT إدراج أكثر من سجل بأمر واحد ولكن ستحتاج إلى استخدام ما ندعوه الاستعلامات الفرعية (Sub Queries) التي سنأتي على ذكرها لاحقاً.

تمرين:
استخدم التعليمة اللازمة لإدراج سجل الطالب سامي في الجدول SVUStudents علماً أن البيانات التي تملكها عنه تقتصر على أسمه الأول (StudentFirstName) وهو Sami وعلى عمره (StudentAge) وهو 30.


INSERT INTO SVUStudents (StudentFirstName,StudentAge)
VALUES ('Sami', 30)

4. تعليمة UPDATE
تُستخدم تعليمة UPDATE لتعديل البيانات في سجل أو في مجموعة من السجلات.
ويمكن استخدام الكلمة المفتاحية WHERE مع تعليمة UPDATE لتحديد شروط التعديل. .تأخذ تعليمة UPDATE الصيغة:
UPDATE table_name
SET Field1= new_field_value1, Field2 = new_field_value2;
يمكن استخدام الكلمة المفتاحية WHERE مع تعليمة UPDATE لتصبح الصيغة:


UPDATE table_name
SET Field1= new_field_value1, Field2= new_field_value2
WHERE condition;

تمرين:
اكتب تعليمة تعديل سجل الطلاب الذين تزيد معدلاتهم (Average) عن 70 بحيث يوضعون جميعاً في الصف (Class) رقم 2 ضمن جدول طلاب الجامعة الافتراضية (SVUStudents).


UPDATE SVUStudents SET Class=2 WHERE Average>70;
5. بعض الملاحظات العملية
تتطلب بعض برامج إدارة قواعد البيانات إنهاء كل تعليمة SQL بـ ( ; ) بينما يضيفها البعض الآخر تلقائياً .
ومن المهم استخدام تعليقات SQL وخصوصاً عند كتابة نصوص SQL تحتوي على عدد كبير من الأسطر والتعليمات.
كذلك، من المهم تلافي استخدام أسماء أعمدة (حقول) حاوية على فراغات. أما في الحالات الاضطرارية، فيمكن استخدام إشارات تنصيص أو أقواس مربعة لإحاطة اسم الحقل (أقواس في Oracle و إشارة تنصيص في Access و SQL Server).

تمرين:
اكتب عبارة SQL التي تمكننا من استعادة جميع بيانات الحقول StudentName و StudentAge (من الجدول Students) الذين يدرسون في الصف (Class) رقم 3 والذين تبدأ أسماؤهم بالحرف 'M' أو الحرف 'S' وأن لا تقل أعمارهم عن 21 سنة. بحيث تكون النتيجة مرتبة تصاعدياً بالنسبة للاسم StudentName وتنازلياً بالنسبة للعمر. ماذا لو أردنا إلغاء التكرار بالبيانات (في حال وجوده)؟


الجنرال *أبو جعفر*
الجنرال *أبو جعفر*
المدير العام
المدير العام

الحالة : طالب
ساكن في : Great Jableh Kingdom
الهواية : تصميم مواقع ويب
الدراسة : المعهد التقاني للحاسوب
قناتك المفضلة : Sham FM &amp; National Geographic
الجنس : ذكر البرج الصيني : الماعز
عدد المساهمات : 253
تاريخ الميلاد : 28/01/1992
تاريخ التسجيل : 13/02/2010
العمر : 32
الموقع : السكن الجامعي بجامعة تشرين
العمل/الترفيه : طالب / مبرمج
المزاج : طيووب

http://www.tuc4u.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رحلة متقدمة مع SQL Empty رد: رحلة متقدمة مع SQL

مُساهمة من طرف Imad-aldeen الأحد يوليو 11, 2010 11:39 pm

شو عم تتعلم من ورا ضهرنا lol!
يسلموووو موضوع عنوانو شيق ماقريتو لسا بس نسختو عندي بقرا بعدين
Imad-aldeen
Imad-aldeen
عضو جديد

الحالة : طالب
ساكن في : Lattakia
الهواية : Computer At all, Guitar and Music
الدراسة : المعهد التقاني للحاسوب
قناتك المفضلة : National geographic abu dabi/jsc ducumentery
الجنس : ذكر البرج الصيني : القرد
عدد المساهمات : 93
تاريخ الميلاد : 24/07/1992
تاريخ التسجيل : 21/02/2010
العمر : 31
الموقع : www.lattakiaonline.com
العمل/الترفيه : Graphics Designer/beginner programmer
المزاج : You Decide

http://www.lattakiaonline.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى