الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

SQL*PLUS معلومات وشرح

مغلق
بدأه Mo7B في 24 نوفمبر 2002 · 1 رد · 3,509 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

إخواني وأخواتي رواد هذا المنتدى قد باركنا لكم في بداية هذا الشهر الكريم وألان

في أواخر أيامه نقول اللهم اجعلنا من الذين تعتقهم من النار

خطرت لي فكرة ليس بجديدة ولكن إنها مستوحاة من كثير من الفكر

ألا وهي وضع مصطلحات وأوامر تخص SQL*PLUS القصد منها جمع اكبر قدر ممكن من

المعلومات عن هذه الأداة داخل Oracle وسوف أبدا في وضع ما بداخل جعبتي وهو قليل

اقل قدر ممكن ولكن لتعم الفائدة فربما شخص لا يعرف ما هي ويريد أن يتثقف أو شخص يريد

إثراء معلوماته عن هذه الأداة ولا يهم أن تكون المعلومة صغيرة بقدر ما هي مهم

ولا تستحقر شي من هذه المعلومات سواء معلومة أو أوامر

وهذه أول الأوامر التي اعرفها وأتمنى أن تحوز على رضاكم

أولا أداة SQL*PLUS تحتوي على عدة مستخدمين نذكر منهم وهو أكثرهم شيوعا

scott/tiger

وهو يحتوي بداخل عدة جداول ومنها

emp and dept

وهو الذي سوف تكون عليه أمثلتي

SELECT *

FROM emp ;

لإظهار جميع المعلومات عن هذا الجدول

مثال

select ename,job

from emp;

لتحديد الاسم و الوظيفة من جدول emp

select ename , sal,sal+100 from emp;

إجراء عملية حسابية على جدول الرواتب ومقدارها زيادة 100 - أبسطو يا لموظفين-

list اختصارها L وضيفتها عرض أخر عملية مثال

l عرض أخر عملية

l3 عرض السطر رقم 3 وهكذا

فلو أردت عرض السطر رقم 3 وإدراج سطر أخر بعده لابد من كتابة

l3

input dd

قصدت ب dd أمر أو جملة أو شي ثاني

المثال هذا

select ename , sal,sal+100

from emp;

نريد أن نضيف سطر بين السطرين السابقين ونطلب منه إظهار الوظيفة

ندخل الأوامر هذه

l1

input ,job

عند التنفيذ يضاف لنا سطر جديد ويحوي job

وحينما نريد أن ننفذ العملية نكتب الحرف r

ومعناه نفذ ما حدث وهو اختصار للكلمة run

نأتي إلى الجملة التالية وهي جملة change ومعناها تبديل

مثال أثناء كتابتك لتعبير معين وأثناء التنفيذ حصل خطاء إملاء كتبت جملة خاظئة فلا تحتاج إلى كتابة التعبير من جديد فقط حدد السطر المراد عن

طريق l ثم اكتب

c/old/new

وقصدت في old الكلمة القديمة و new الكلمة الجديدة

ولا انصح في تغيير حرف معين لأنه يأخذ اقرب حرف مشابه للحرف الذي كتبت مثال

select empno,emame,job

from emp;

هذا المثال يوجد فيه خطاء وهو emame المفروض ename فلو استخدمت

l1

c/m/n

r

لتغير empno وليس emane

سوف تصبح الجملة هكذا

select enpno,emane,job

from emp;

إذا الطريقة السليمة هي تغيير الكلمة بأكملها

l1

c/emane/ename

r

وهناك طريقة أخرى لتغيير الأخطاء وهي

كتابة الكلمة edit وهي تضيف أخر تعبير كنبتة إلى المفكرة وتستطيع من خلال تغيير الحرف الخاطئة وإضافة سطور جديدة

الأمر الأخر وهو أمر del ووظيفة هذا الأمر حذف سطر معين من تعبير

del num

r

نكتب الأمر كما هو مضاف إلية رقم السطر المراد حذفه ثم بعد ذلك نكت الأمر r وهو أمر التشغيل

وأمر r أمر ضروري في كل عملية فرعية تجريها على العملية الأساسية من حذف وتعديل وإضافة

افففف تعب

سوف أبدى في اقرب فرصة إن أعطاني الله عمر في جملة where

أسال الله العلى القدير أن يعنني على الكتابة

#2
select distinct comm 



[code]from emp



/

distinct

وظيفتها استخراج البيانات بدون تكرار

select ename , job



from emp



where job='CLERK'



/

[coloer=darkblue]

WHERE 1

تستخدم لتحديد الاسم والوظيفة للموظفين الذين

أسماء وظائفهم

CLERK

ويمكن استخدامها مع أي شي محدد ويجب

الانتباه إلى حالة الحروف

[/coloer]

SELECT *  



FROM EMP



WHERE DEPTNO='30'



/

WHERE2

استخدمنا في هذا الاستعلام حقل رقمي

و أرجعنا جميع المعلومات عن الموظف

ويمكن استخدام أي جدول لجعله معيار ل

WHERE

SELECT *



FROM EMP



WHERE SAL > 2300



/

WHERE 3

في هذا المثال استخدمنا عملية المقارنة

في الراتب وطلبنا الموظفين الذين رواتبهم

اكبر من 2300 وتقدر أن تستعلم عن أي شي أخر رقمي

SELECT *



FROM EMP



WHERE JOB='MANAGER'



AND SAL > 2500



/

WHERE 4

استخدمنا في هذه الحالة معاملين مقارنة في جملة

WHERE

الأولى الذين وظائفهم أسمائها

MANAGER

الثانية رواتبهم اكبر من 2500

وجمعنا بينهم ب

AND

اصبح ألان لابد أن يكون أسماء الوظائف

MANAGER

و رواتبهم اكبر من 2500

لو وجد شخص يحمل نفس مسمى الوظيفة ولكن راتبه اصغر من 2500 فلن يظهر هنا

لو عملنا استعلام للجدول لوجدنا شخص لم يظهر والسبب هو أن راتبه اصغر من 2500

الترتيب ضرورتي فانظر لو عكست الترتيب ماذا يحد

يعني وضعت علامة المقياس- اكبر من- قبل مقياس الوظيفة

SELECT *



FROM EMP



WHERE JOB='MANAGER'



OR SAL > 2500



/

WHERE 5

إذا رجعنا للمثال السابق لجدنا انه نفس المثال هذا ولكن الاختلاف فقط في

AND ==> OR

أند أصبحت أو

ولقد تغير الكثير

حيث استخرج لنا ليس فقط الذين أسماء وظائفهم

MANAGER

بل أناس مختلفين

اخذ الاعتبار على الذين رواتبهم اكبر من 2500

الترتيب ضروري انظر لو عكست كما في المثال السابق

SELECT *



FROM EMP



WHERE JOB='MANAGER'



OR NOT SAL >2500



/

WHERE 6

الجملة هذا عكست المقدار حيث وضعنا

واصبح العكس SAL قبل NOT

كأننا عكسنا علامة الأكبر من إلى علامة اصغر من

SELECT *



FROM EMP



WHERE NOT JOB='MANAGER'



OR SAL > 2500



/

WHERE 7

في المثال السابق طلبنا من البرنامج عدم استخراج الذين وظائفهم

MANAGER

أو الذين رواتبهم اكبر من 2500 في القابل استخرج أناس اسماهم

MANAGER

و رواتبهم اقل واكبر من 2500 لماذا

الجواب

في الاستعلام الأول طلبت جميع الأناس الذين ليس أسماء وظائفهم

MANAGER

استخرج الذين ليست أسماء وظائفهم

MANAGER

وفي المقابل في الاستعلام هذا أناس رواتبهم اقل من 2500 سوف يستخرجها

ثم خزن العملية في الذاكرة وذهب وطلب الاستعلام الثاني وهو الذين رواتبهم اكبر من 2500

إذا سوف يطلب الناس الذين رواتبهم اكبر من 2500 ومن ضمنهم

MANAGER

و استخرجهم وجمع العمليتين واظهر الناتج

الذي يضم الأسماء والرواتب

SELECT *



FROM EMP



WHERE NOT (JOB='MANAGER' 



OR SAL > 2500(



/

WHERE 8

في هذا المثال استعملنا أقواس و كلمة النفي

NOT

في العمليات البرمجية ينفذ أول شي الذي داخل القوس ثم الذي خارج القوس

كما حصل في العملية هذه

حيث نفذ أول شي واستخرج الذين وظائفهم تسمى MANAGER

أو رواتبهم اكبر من 2500

ثم عمل لهم عملية نفي التي هي في خارج القوس

هذا ما حصل بكل سهولة

select *



from emp



where NOT((job='MANAGER' AND SAL > 2400)OR EMPNO > 7500(



/

WHERE 9

المثال هذا معقد شوي بس أحاول أن أسهله إلى ابعد حد

في البداية بعد كلمة WHERE كتبنا

أي معامل نفي NOT

ونفينا كل شي داخل الأقواس

فألان نبدأ في تحليل ما بداخل القوسين كذكرنا من قبل

عملية البدء سوف تكون من القوس الداخلي ثم القوس الخارجي

نباد بالقوس الداخلي طلبنا أن يخرج الذين وظائفهم هي MANAGER

وطلبنا أيضا مع هذا الطلب الذين رواتبهم اكبر من 2400

هذا هوا طلبنا إذا اصبح السؤال هكذا

استخرج أسماء الموظفين الذين أسماء وظائفهم MANAGER و رواتبهم اكبر من 2400

وفي القوس الثاني طلبت وقلت له أو EMPNO

الذي هو رقم الموظف اكبر من 7500 في هذا الشرط سوف يستخرج جميع الذين أرقامهم اكبر من 7500

مجموعه النتيجة على الاستعلام الأول

إذا اصبح السؤال هنا يقول

استخرج أسماء الموظفين الذين أسماء وظائفهم MANAGER و رواتبهم اكبر من 2400 أو أرقامهم اكبر من 7500

سوف يستخرجهما لا سوف يرجع إلى العملية الأولى وهي النفي حيث نفينا هذه العملية بكلمة NOT

إذا اصبح السؤال يقول

لا تستخرج أسماء الموظفين الذين أسماء وظائفهم MANAGER ولا تستخرج الذين رواتبهم اكبر من 2400 ولا تستخرج الذين أرقامهم الوظيفية اكبر من 7500

تمنى من الله العلي القدير أن أكون وقفت في هذا الشرح

هذا الموضوع مغلق.

مواضيع مشابهة