You are on page 1of 5

‫تلخيص ‪SQL‬‬

‫?‪- What is the difference between Where and Having‬‬


‫✓ ‪: Where‬تستخدم مع الحقول العادية التي من قاعدة البيانات‪.‬‬
‫✓ ‪: having‬تستخدم مع الحقول التجميعية فهي تعمل نفس عمل ال ‪ Select‬ولكن على‬
‫النتائج التي ظهرت من جملة ال ‪ Group By‬يعني أن وجودها مرهون بوجود ‪.Group By‬‬
‫الفرق بين المفتاح األساسي واألجنبي؟‬ ‫‪-‬‬
‫✓ المفتاح األساسي ‪ :PK‬العمود االساسي والمميز للجدول ويكون فريد وغير مكرر‪.‬‬
‫✓ المفتاح األجنبي ‪ :FK‬العمود االساسي في جدول آخر يعني مفتاح اساسي في جدول‬
‫ونذكره في جدول آخر للربط بين أكثر من جدول ويجب فيه ان تكون له نفس صفات‪.‬‬
‫ما هو الفرق بين برنامج اكسل وبرنامج اكسس؟‬ ‫‪-‬‬
‫✓ االكسس‪ :‬برنامج خاص بقواعد البيانات وتنظيمها وعمل التقارير ((إدارة))‬
‫✓ االكسيل‪ :‬برنامج خاص بالحسابات وتسهيل عمل الجداول مهما طالت من صفوف‬
‫وعمليات حسابيه (الميزانيات ‪-‬التكاليف ‪-‬االيرادات)‪.‬‬
‫ما الفرق بين ال هيكل الجدول والبيانات؟‬ ‫‪-‬‬
‫✓ ‪ :Structure‬هيكل الجدول وده االساس اللي بيشيل األعمدة ‪.‬‬
‫✓ ‪ :Data‬البيانات اللي بتبقي جوه الجدول زي العفش اللي جوه البيت‪.‬‬
‫ماهي‪ DBMS‬؟‬ ‫‪-‬‬
‫✓ اختصار ل ‪ Data Base Management system‬أي نظم ادارة قواعد البيانات‪.‬‬
‫ماهي ‪SQL‬؟‬ ‫‪-‬‬
‫✓ هي اختصار ل )‪(STRUCTUER QUERY LANGUAGE‬‬
‫الفرق بين ‪ SQL‬و‪NOSQL‬؟‬ ‫‪-‬‬
‫✓ ‪ : Sql‬هي قاعدة بيانات تقليدية تعتمد على الجداول في تخزين البيانات وهذه الجداول‬
‫ترتبط فيما بينها باستخدام العالقات وتعتبر لغة فعالة في ادارة قواعد البيانات‬
‫✓ ‪: NoSql‬هي تقنية تعتمد في تخزينها للبيانات على ‪ documentation‬وليس على‬
‫الجداول بطريقة ‪ Json‬او‪ XML‬وتعمل مع ال ‪ Big Data‬البيانات الضخمة بكفاءة عالية وهي‬
‫ال تتبع تصميم محدد في هيكليتها ‪،‬ايضا التكرار ليست مشكلة في‪NoSql‬‬
‫ايه هي‪ PL / SQL‬؟‬ ‫‪-‬‬
‫✓ ‪ Procedural Language‬هي امتداد ل‪، SQL‬تستخدم في انشاء الدوال وتعريف ‪Data type‬‬
‫و ‪ loop‬واالستعالم عن شرط مثل ‪ IF‬وتمكننا الـ ‪ PL/SQL‬من التعريف والتعامل مع‪:‬‬
‫▪ اإلجراءات‪Procedure‬‬
‫▪ الدوال‪Function‬‬
‫▪ التحكمات الشرطية ‪IF – Condition‬‬
‫▪ التكرار ‪Loops‬‬
‫▪ متغيرات الذاكرة ‪Memory Variables‬‬
‫لغة ‪ SQL‬تقوم بعمل االتي‬ ‫‪-‬‬
‫✓ استرجاع البيانات من قاعدة البيانات‬
‫✓ حذف او تعديل او اضافة بيانات جديدة‬
‫انشاء كيانات جديدة مثل الجداول او االستعالمات‬ ‫✓‬
‫منح صالحيات جديدة للمستخدم او حذف صالحيات‬ ‫✓‬
‫‪- Drop VS Truncate VS Delete‬‬
‫‪ :Drop‬تعتبر ‪ )Data Definition Language( DDl‬ودي بتشتغل ع ال ‪ Structure‬يعنى‬ ‫✓‬
‫بتدمر الجدول كله لما اجى اعمله ‪Select‬مش هتالقى ليه وجود نهائي‪.‬‬
‫‪Truncate & Delete‬‬ ‫✓‬
‫‪Truncate‬‬ ‫‪Delete‬‬
‫✓ ال تستخدم ‪Where‬‬ ‫✓ تستخدم ‪ Where‬لحذف بيانات معينة‬
‫✓ أسرع ألنها تتعامل مع الجدول ككل‪.‬‬ ‫✓ بطيئة ألنها تتعامل ‪Row By Row‬‬
‫✓ يتم حذف ال ‪the data pages‬‬ ‫✓ تترك ال ‪the data pages‬‬
‫✓ بتعمل ‪Identity Resting‬‬ ‫✓ بتعمل ‪Keep Identity‬‬
‫✓ تعتبر من أوامر ‪DDL‬‬ ‫✓ تعتبر من أوامر ‪DML‬‬
‫✓ مسح ال ‪Object Static‬‬ ‫✓ ليس لها عالقة اال بال ‪Data‬‬
‫✓ بتعمل ‪ Lock‬لل ‪Table‬‬ ‫✓ بتعمل ‪ Lock‬لل ‪Row‬‬
‫✓ حذف نهائي ال يمكن التراجع عنه‬ ‫✓ يمكن استرجاع البيانات‬
‫✓ ال ‪ Data Pages‬هي اللي شائلة الجدول ع الهارد لما بعمل ‪ Truncate‬بتدمر المساحة‬
‫دي اما ‪ Delete‬فبتفضل المساحة زي ماهي‪.‬‬
‫✓ ‪ Identity‬هي خاصية موجوده ف الجدول زي الترقيم مع ‪Truncate‬بتمسح كل ال‬
‫‪ identity‬لكن ال ‪ delete‬بتخلي قيمة الترقيم زي ماهي و بتمسح البيانات فقط‪.‬‬
‫‪ -‬أنواع العالقات‪ Relationship types :‬او ‪Cardinality‬‬
‫✓ العالقة ‪ One to Many‬وهي األكثر شيوعاً بين العالقات‪ ،‬يمكن لصف من العمود أ أن‬
‫يحتوي العديد من الصفوف المتطابقة فى الجدول ب‬
‫✓ عالقة ‪ Many-to-Many‬الصف فى الجدول أ يمكن أن يكون له العديد من الصفوف‬
‫المتطابقة فى الجدول والعكس صحيح يمكنك إنشاء هذه العالقة عن طريق جدول ثالث‪،‬‬
‫(الجدول الوسيط)‪ ،‬والذي يكون مفتاحه األساسي عباره عن مفتاحين أجنبيين‬
‫✓ عالقة ‪ One to One‬الصف فى جدول أ يمكن له أن يحتوي على صف واحد مطابق فى‬
‫الجدول ب والعكس صحيح‪ ،‬العالقة ‪ One-to-One‬تنشأ فى كال الجدولين المرتبطين‪ ،‬في‬
‫حاله إذا كان كال العمودين هما مفتاح أساسي (ال يتكرر)‬
‫‪ -‬ماهي ‪ Joins‬وما أنواعها؟‬
‫✓ هي مجموعة بيانات ناتجة من عمليات ربط تمت بين جدولين أو أكثر‪ ،‬ولها عدة أنواع‪:‬‬
‫▪ الربط الداخلي‪: inner join‬النوع االفتراضي ويحدد أنه إذا كان سجالن متوافقان‬
‫من جدولين مختلفين‪ ،‬ولكنهما يوافقان شرط ‪ ON‬الذي يربط بينهما‬
‫▪ الربط الخارجي الكامل‪ : full Outer join‬السجالت غير المتطابقة )التي ال تحقق‬
‫شرط ‪ (ON‬السجالت المتطابقة (التي تحقق الشرط) هي التي يتم اختيارها جميعا‪.‬‬
‫بالنسبة للسجالت غير المتطابقة ستظهر القيمة ‪ null‬فيها‬
‫▪ االرتباط الخارجي األيسر ‪: left outer join‬يرجع السجالت المطابقة للشرط‪،‬‬
‫ومعها كل السجالت من الجدول المحدد يسار كلمة‪join‬‬
‫▪ االرتباط الخارجي األيمن ‪ :right outer join‬ويرجع السجالت المطابقة للشرط‪،‬‬
‫ومعها كل السجالت من الجدول المحدد يمين كلمة ‪join‬‬
‫▪ االرتباط المتقاطع ‪: cross join‬وهو حاصل االختيار من كال من الجدولين في حالة‬
‫عدم تحديد فقرة‪ ، where‬وفي هذه الحالة يتم ربط كل سجل من الجدول األول مع‬
‫كل سجل في الجدول الثاني‪.‬‬
‫▪ الربط في نفس الجدول ‪: Self-Join‬هذا النوع من الربط يجب أن نتعامل مع‬
‫الجدول على أنه جدولين‪ ،‬أحدها جدول الموظفين العاديين والثاني جدول المدراء‪،‬‬
‫وبعد ذلك نقوم بربط الجدولين باستخدام ربط التساوي‪.‬‬
‫‪- Trigger‬‬
‫✓ هو كائن في قاعدة بيانات مرتبط بجدول في العديد من الجوانب هو مشابه لإلجراء‬
‫المخزن )‪ (stored procedure‬في الواقع‪ ،‬ويشار إليها أنها "نوع خاص من اإلجراء المخزن‪.‬‬
‫الفرق الرئيسي بين الـ ‪ Trigger‬والـ ‪stored procedure‬‬ ‫‪-‬‬
‫✓ ‪Trigger‬مرتبط بجدول محدد ويتم إطالق هذا الـ ‪ Trigger‬فقط عند حدوث‬
‫إجراءات‪ DELETE،UPDATE ،INSERT‬يمكنك تحديد إجراءات التي تقوم بإطالق‬
‫هذا الـ ‪ Trigger‬عند إنشائه‪.‬‬
‫✓ ‪ : Stored procedure‬هو مجموعة اكواد بيتم تنفيذها داخل قاعدة البيانات وبنعمل‬
‫‪ declare‬عشان نستخدم متغير داخل االجراء عشان نعمل بيه عمليات معينه‬
‫وميزة االجراء انه بيتم داخل القاعدة وده معناه اننا بنعمل ‪ request‬واحد من الواجهة‪.‬‬
‫ال ‪view‬‬ ‫‪-‬‬
‫✓ هو عبارة عن نافذة او جدول خيالي او وهمي الذي يسمح لعرض البيانات من خالله‬
‫وكيفية التعديل عليها ‪.‬يسمى ‪object‬قواعد البيانات التي يوجد داخل خادم قواعد البيانات‬
‫والذي يقوم فقط بتخزين ‪ query‬عبر االمر ‪ select query‬في حين ان اي تغييرات تعمل‬
‫من خالل ‪ view‬فأنها سوف تعمل تلك التغييرات على الكائنات االخرى في قواعد البيانات‬
‫مثل الجداول مثال‪.‬‬
‫ماهي الميزات في‪ view‬؟‬ ‫‪-‬‬
‫✓ يقوم بتزويد ودعم الحماية‪.‬‬
‫✓ يقوم بتحسين االداء والتنفيذ في قواعد البيانات‪.‬‬
‫✓ يقوم بدعم والتزويد على امكانية االداء والتنفيذ على اوامر ‪ DML‬وعملياتها‪ .‬مثل ‪INSERT‬‬
‫✓ يقوم بتبسيط ‪complex queries‬حتى تسهل امكانية استخدامها‪.‬‬
‫✓ يقوم بمساعدة الوصول الى قواعد البيانات عن طريق فقط مستخدمين محددين في ذلك‬
‫ماهي العيوب في‪ view‬؟‬ ‫‪-‬‬
‫✓ االعتماد على الجدول‪ :‬يمكن ان تنشئ ‪ view‬معتمدا على ذلك في الجدول‪ .‬لكن في‬
‫حين أنك قمت بتغيير التركيب في الجدول اقصد االعمدة التي هي مرتبطة مع ‪ view‬فالبد‬
‫ان تقوم بتغيير ذلك ايضا في‪view‬‬
‫ما هو الفرق بين الجدول وال‪ view‬؟‬ ‫‪-‬‬
‫✓ الجدول‪:‬‬
‫▪ يحتوي على بيانات‪.‬‬
‫▪ الجداول دائما تكون محددة ومقيدة‪.‬‬
‫▪ مستقلة‪.‬‬
‫▪ يقوم بدعم تنفيذ عمليات واومر ‪ DML‬على اي بيانات‪.‬‬
‫✓ ‪:VIEW‬‬
‫▪ ال تحتوي على بيانات‪.‬‬
‫▪ غير محددة‪.‬‬
‫▪ معتمدة على غيرها اي إذا حصل تغيير في الجدول سوف تتغير البيانات‪.‬‬
‫▪ تدعم عمليات ‪ DML‬على البيانات المرتبطة‪.‬‬
‫‪ -‬ماهي انواع ال‪VIEW-‬‬
‫‪✓ Simple View‬‬
‫‪✓ Complex View‬‬
‫‪ -‬تعريف االستعالم‪:‬‬
‫✓ هو سؤال عن البيانات المخزنة في الجداول أو طلب القيام بإجراء على البيانات‪ .‬وقد يجمع‬
‫االستعالم بيانات من جداول متعددة لكي تعمل كمصدر للبيانات لنموذج أو تقرير أو صفحة‪.‬‬
‫‪ -‬ما هو االستعالم‪:‬‬
‫✓ ما هو إال سؤال تسأله عن بياناتك لتحصل على إجابة عليه عن طريق تشغيل االستعالم‪.‬‬
‫‪ -‬العمليات‪Transactions‬‬
‫✓ هي مجموعة من التعديالت التي تتم في قاعدة البيانات وفق تسلسل منطقي وينتج‬
‫عنها بعض التغييرات في القاعدة كحذف سجل أو تعديل بيانات أو إنشاء سجل جديد‪،‬‬
‫فذت‬‫ما من قاعدة البيانات إذا نُ َّ‬‫هذه كلها عبارة عن عمليات‪ ،‬وتصبح هذه التغييرات جز ًءا دائ ً‬
‫ي خطأ ف ُيتراجَع عن هذه التغييرات‪.‬‬ ‫م دون أخطاء‪ ،‬أما في حال حدوث أ ّ‬ ‫بشكل تا ّ‬
‫‪ -‬التحكم بالعمليات‬
‫✓ توجد أربعة أوامر للتحكم بالعمليات وهي‪:‬‬
‫▪ ‪ :COMMIT‬لحفظ التغييرات‪.‬‬
‫▪ ‪ :ROLLBACK‬للتراجع عن التغييرات واستعادة البيانات بحالتها السابقة‪.‬‬
‫▪ ‪ :SAVEPOINT‬إلنشاء نقاط استعادة ضمن مجموعات العمليات‪.‬‬
‫▪ ‪ :SET TRANSACTION‬لتسمية العملية‪.‬‬
‫‪ -‬األمر ‪ COMMIT‬في‪SQL‬‬
‫مجراة على قاعدة البيانات نتيجة لتنفيذ‬ ‫✓ يستخدم هذا األمر بهدف حفظ التغييرات ال ُ‬
‫العمليات‪ ،‬إذ تحفظ كافة التغييرات منذ آخر أمر ‪ COMMIT‬أو ‪.ROLLBACK‬‬
‫‪ -‬األمر ‪ROLLBACK‬‬
‫✓ يستخدم هذا األمر إللغاء العمليات التي تم اجراءها على قاعدة البيانات مما يعني تجاهل‬
‫التغييرات التي طرأت عليها‪.‬‬
‫‪Index -‬‬
‫✓ هو أحد مكونات الجداول في قواعد البيانات الذي يعمل على تسريع عملية البحث وهو‬
‫مهم جدا ويظهر أثره بشكل واضح في القواعد الكبيرة وإذا تم اعداده بشكل خطي فسوف‬
‫يعيق البحث بشكل كبير جدا‪.‬‬
‫‪ -‬انواعه‬
‫✓ ‪: Non clustered index‬فهرس يحفظه ال ‪ server‬خارج ال ‪ table‬ودليله هو الحقول‬
‫التي تحددها في الفهرس‪ .‬ويمكنك عمل أكثر من فهرس من هذا النوع‪.‬‬
‫✓ ‪:clustered index‬ي قوم ال ‪ server‬بترتيب السجالت فعليا داخل ال ‪ table‬بعد كل‬
‫عملية تحديث أي أن البيانات داخل ال ‪ table‬مرتبة فعليا حسب هذا الفهرس لذلك ال‬
‫يمكنك عمل أكثر من فهرس واحد لكل‪ table‬لذلك هو أبطأ من األول في التحديث ألنه‬
‫يقوم بترتيب البيانات على ‪ HD‬حسب هذا الفهرس كل مره تقوم بعملية تحديث‪ .‬ولكنه‬
‫أسرع في االستعالم)‪(select‬‬
‫‪ -‬نظرية التسوية)‪(Normalization‬‬
‫✓ عملية تعيين صفات لجدول ما مثل تحديد صفات لجدول الموظفين‪ :‬حيث من صفاته‬
‫األساسية وجود رقم للموظف‪ ،‬أسم الموظف ‪.‬وتمر هذه العملية بعدة مراحل تسمى‬
‫شكل التسوية)‪(Normal Forms‬‬
‫‪ -‬تقنية ‪Demoralization‬‬
‫✓ تكرار البيانات التي يتم االستعالم عنها بكثرة في قاعدة البيانات محاوال أن يتم تلبية‬
‫استعالمات البرنامج قدر االمكان من جدول واحد فقط‪.‬‬
‫‪:Cursors -‬‬
‫✓ زي ال ‪ Pointer‬تشير ل ‪ row‬معين‪ .‬ومن خالله أقدر اعمل ‪ loop‬تمشي ‪row by row‬‬

You might also like