الانتقال إلى المحتوى

نواصل سلسلة دروس " تعلم SQL ORACLE 9i بسهولة "


الأسيف

Recommended Posts

أعذتر عن عدم التواجد لظروف الزواج ................ ثم وفاة الوالد رحمه الله ........

أخوكم الأسيف .......

رابط هذا التعليق
شارك

أعذتر عن عدم التواجد لظروف الزواج ................ ثم وفاة الوالد رحمه الله ........

أخوكم الأسيف .......

47156[/snapback]




اخي في الله / الاسيــــــف

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

اولا مبارك الزواج الميمون ورزقك الله الذرية الصالحة الطيبة

ثانيا تقبل خالص تعازي في وفاة والدك رحمة الله عليه

وادعو لك التثبيت

اخوك في الله
احمد

اللهم ارحم والداي كما ربياني صغيرا
رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم
السلام عليكم اخي الاسيف
اولا بارك الله لك في زواجك المميمون
ورزقك الذريه الصالحه
وتغمد الله والدك بواسع رحمته ونسال الله لكم العوض با الخير
وغفر الله لنا ولكم

رابط هذا التعليق
شارك

<div align="center">
bism.gif


خطوات تتمة سلسلة دروس


تعلم SQL ORACLE 9i  بسهولة



السلام عليكم ورحمة الله وبركاته أعضاء وعضوات المنتدى الكرام ..

أعود إليكم بعد غياب طويل كانت له أسبابه الخاصة ، ونكمل هذه الدروس في SQL ORACLE  9i ..

( رابط الدروس من 1 وحتى 8 )

وصلنا في هذه السلسلة إلى الدرس الثامن ولله الحمد ، وسنكمل هذه السلسلة ولكن بطريقة تختلف عن السابق .

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

نبدأ على بركة الله ..  :)
</div>


طبعاً سنعمل على بيئة الـ9i والمسماه SQL Plus 8 ولا مانع من العمل على بيئة أقدم منها ، لكننا لن نستطيع تطبيق جميع الأوامر عليها .

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

نقوم أولاً  بإنشاء مساحة جدولية ( فضاء ) أو حيز على القرص ، وذلك لأن عند إنشائنا لأي كائن (table، index ، functaion...الخ ) ستأخذ حيز من مساحة الـ system .

لن نستطيع أن ننشئ مساحة جدولية (tablespace ) بواسطة المستخدمين العاديين كـ scoot او hr أو غيرها .. لنجرب  :

إذا لم تكن الـSQL Plus  قيد العمل فقم بتشغيلها وادخل بالمستخدم scott والذي كلمة المرور الخاصة به  tiger ..

أما إذا كنت قيد العمل حالياً على الـSQL Plus  بمستخدم آخر ، فاكتب الأمر :

SQL> connect scott/tiger



وقم بالضغط على مفتاح الإدخال (Enter) .. لتحصل على رسالة التأكيد أنك قيد الاتصال بقاعدة البيانات .. 

Connected.



الآن لنجرب إنشاء tablespace  ،  نكتب الصيغ التالية :

SQL> create tablespace lesson 
  2  datafile 'd:\lesson.dbf'
  3  size 10m;



ونقوم بالضغط على مفتاح الإدخال (Enter) .. لتحصل على رسالة الخطأ التالية ، والتي مفادها أنه ليس من صلاحيات المستخدم scoot  إنشاء هذا الكائن :

create tablespace lesson
*
ERROR at line 1:
ORA-01031: insufficient privileges



لذلك يجب الاتصال بمستخدم لديه هذه الصلاحيات ، وليكن الـ system ..

نقوم بكتابة الأمر التالي لكي نتصل بالـ system ..

SQL> connect system



ونضغط Enter لنطالب بكلمة المرور للمستخدم system هكذا :

Enter password:

فنقوم بإدخال الكلمة :  manager

عند ذلك  تظهر لنا رسالة تأكيد الاتصال 

Connected.



الآن يمكننا إنشاء مساحة جدولية خاصة بهذه الدروس على القرص ، وذلك عندما ننفذ الصيغة التالية :

SQL> create tablespace lessons_ts 
  2  datafile 'd:\lessons.dbf'
  3  size 50 m;



ونضغط على Enter  لتأتينا رسالة تأكيد الإنشاء :

Tablespace created.



والآن أصبح لدينا مساحة جدولية خاصة بنا على القرص :

- اسمها المنطقي هو  lessons_ts  .
- واسمها الفيزيائي ( مكان تواجدها على القرص) هو lessons.dbf  .
- وحجمها على القرص 50 ميجا بايت .

الآن ننشئ مستخدم خاص بهذه الدروس له صلاحية العمل على الـ leesons_tb
والمنشأة قبل لحظات :

SQL> create user student
  2  identified by good
  3  default tablespace lessons_ts ;



ونضغط على Enter  لتأتينا رسالة تأكيد الإنشاء :

User created.

مفادها أنه تم إنشاء المستخدم student ..

والآن أصبح لدينا مستخدم خاص نستطيع الدخول به للـ SQL والقيام بجميع العمليات التي نريدها في  نطاق ما نحدد له لا حقاً :

- اسم المستخدم هو student .
- كلمة مروره هي  good .
- المساحة الجدولية الافتراضية له هي lessons_ts .

الآن المستخدم student ليس له الحق في الاتصال بقاعدة البيانات وبالتالي ليس له الحق في إجراء أي عملية ..

وبما أننا أنشأناه بواسطة المستخدم system لذلك نستطيع من خلال system منحه الصلاحيات الضرورية ..

أولاً : نمنحه صلاحية الاتصال بقاعدة البيانات :

SQL> grant connect to student;



لتظهر لنا الرسالة :

Grant succeeded.



والدالة على أنه قد تم منح المستخدم student  صلاحية الاتصال ..


ثانياً : نقوم بمنحه صلاحية الإنشاء والحذف والإضافة وغيرها من العمليات :

SQL> grant resource to student;



لتظهر لنا الرسالة :


Grant succeeded.



والدالة على قد تم منحهه صلاحية العمليات المختلفة .

الآن لنجرب الاتصال بالمستخدم student :

SQL> connect student
Enter password: **** 

Connected.



ولكي نتأكد أننا متصلين بالمستخدم student نكتب :

SQL> show user;



ليظهر لنا :   

user is "STUDENT"



الآن يمكننا إنشاء الجدوال والدوال والإجراءات والفهارس والتعامل معها وحذفها وتعديلها ،  وغيرها من العمليات ..

لنجرب مثلاً إنشاء الجدول التالي :

create table school
(school_id number(5) ,
school_name varchar2(50)
);



ليظهر لنا :   

Table created.



نقوم مثلاً بحذفه :

SQL> drop table school;



ليظهر لنا : 

Table dropped.



وكتأكيد أخير على نجاحنا ، لنقم بالخروج من الـ SQL Plus ثم ندخل بالمستخدم  student وكلمة مرروه good لتأتينا رسالة الاتصال ويكون مؤشر الـSQL متحفز للأوامر ..

<div align="center">
شرح تمهيدي مهم لأمر الاستعلام select
</div>

و قبل البدء بأوامر الـ  DML نتعلم أمر مهم هو أمر الاستعلام select والذي لا نستطيع بدونه استعراض أي بيانات من قاعدة البيانات .

- هذا الأمر يجب التدرب عليه واتقانه كاتقان كتابة الاسم ! إذ أنه سيتكرر استخدامه كثيراً في الـ SQL ( لأنها لغة استعلام ) ، لذلك سنؤجل شرحه بالتفصيل لدروس أخرى قادمة ، ولكننا سنوضح فيما يلي صيغة بسيطة له حتى يتسنى لنا فهم أوامر الـ DML وتطبيقها ..

وقبل أن نبد أ أيضاً : آمل تحري الدقة في كتابة الشفرات البرمجية ، لأن أدنى خطأ في حرف أو زيادة أو نقصان أو وجود فراغ يعرضك لإضاعة الوقت  .

- نبدأ الآن بتشغيل  الأداة SQL Plus ( أي إصدار ) وندخل بواسطة المستخدم student والذي أنشناه في الدرس السابق بكلمة المرور good .

- ثم نقوم بكتابة الأمر select  والذي سيعطينا جميع الجدوال الموجودة تحت سيطرة وصلاحية المستخدم student .

SQL> select * from tab;



ومعناه استعرض لي ( قم بجلب) جميع الجدوال الموجودة في قاعدة البيانات ( تحت نطاق المستخدم student  طبعاً ) .

- أما علامة الـ * فتدل على جميع الجدوال tab .

طبعا النتيجة لا شيء .. حيث تظهر هذه الرسالة :

no rows selected



ومفادها أنه لا يوجد أي معطيات (جدوال ) موجودة .. والسبب بالطبع ؛ أن المستخدم student منشأ قريباً ولم ينشئ هو أي الـ student  جداول حتى نستعرضها !

لذلك سوف نفهم الأمر select أكثر من خلال استعراضنا لجداول الـ scoot .

- قم الان بالاتصال بالمستخدم scoot ( لن أكتب الطريقة لأنها بسيطة وأصبحت معروفة ) ..

-  ثم نتأكد أننا متصلون بالمستخدم scoot وذلك بكتابة الأمر :

SQL> show user;



فإذا ظهرت لنا الرسالة :

user is "SCOTT"



فيدل ذلك أننا متصلون ..

- الآن نقوم بكتابة الأمر :

SQL> select * from tab;



لتظهر لنا النتيجة :

TNAME                          TABTYPE CLUSTERID
------------------------------ ------- ---------
BONUS                          TABLE
DEPT                           TABLE
EMP                            TABLE
SALGRADE                       TABLE



وهذا يعني ان للمتسخدم scott أربعة جداول ، لنقم الآن باستعراض سجلات الجدول EMP وذلك بكتابة الـ select التالية :

SQL> select * from emp;



أي أننا نستعرض جميع البيانات ( السجلات ) الموجودة في جدول (emp ) ..

فنحصل على السجلات التالية ..

EMPNO ENAME      JOB             MGR HIREDATE        SAL      COMM    DEPTNO
--------- ---------- --------- --------- --------- --------- --------- ---------
     7369 SMITH      CLERK          7902 17-DEC-80       800                  20
     7499 ALLEN      SALESMAN       7698 20-FEB-81      1600       300        30
     7521 WARD       SALESMAN       7698 22-FEB-81      1250       500        30
     7566 JONES      MANAGER        7839 02-APR-81      2975                  20
     7654 MARTIN SALESMAN       7698 28-SEP-81      1250      1400        30
     7698 BLAKE      MANAGER        7839 01-MAY-81      2850                  30
     7782 CLARK      MANAGER        7839 09-JUN-81      2450                  10
     7788 SCOTT      ANALYST        7566 19-APR-87      3000                  20
     7839 KING       PRESIDENT           17-NOV-81      5000                  10
     7844 TURNER     SALESMAN       7698 08-SEP-81      1500         0        30
     7876 ADAMS      CLERK          7788 23-MAY-87      1100                  20
     7900 JAMES      CLERK          7698 03-DEC-81       950                  30
     7902 FORD       ANALYST        7566 03-DEC-81      3000                  20
     7934 MILLER     CLERK          7782 23-JAN-82      1300                  10

14 rows selected.



أتمنى بعد هذه المقدمة أن نكون قد فهمنا بعض الشيء عن الأمر select والذي سيؤهلنا إن شاء الله للدخول على أوامر DML ..


<div align="center">


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

وفق الله الجميع لما يحب ويرضى ..
:D

</div>


30238[/snapback]


رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم
فى البدايه احب ان اهنئك على مجهودك هذا الذى تبذله ووفقك الله فيما تحب وترضى وارجو منك سيدى ان تعلمنا دروسا فى ال fund2 وال tunning وجزاك الله كل خير

رابط هذا التعليق
شارك

والله الجزء من 1الى 8
أكثر من رائع
وتنظيم ونركيز شيقان جدا

بس اقترح
ملف pdf أيضــا يضم الدروس ما بعد ال الثــامن ليسهل تصفحهـــا


جزاك الله خيرا جزيلا

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

:) :) جزاكم الله خيره اخى الكريم

قال صلى الله عليه وسلم :

"من سلك طريقا يلتمس فية علماً سهل الله له به طريقا الى الجنة "

جعلة الله فى ميزان حسناتك

وأنار الله عقلك بالعلم

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

السلام عليكم
سيدي الاسيف كيف حالك طال اننتظارك
عشمتنا بباقي الدروس وانا كل يوم اتابع فلا اجد شئ إلما الانتظار اين شرحك الجبار لا تبخل علينا بباقي الشروح فشرحك في المنتدي يلوح ويرفرف بجناج يبعث فينا الفهم ويبني في عقولنا صروح جزاك الله خيرا عنا خير الجزاء ونتمني ان انشغالك من غير شر ولا عناء فلا تنسي ان لك احباب ينتظرون شرحك اكرمك العزيز الوهاب رزقك بالابكار وهنئت باللي والنهار بذاكر الهادي الستار نشتاق لنرتوي عطشانا لا يزول ليل نهار إلا من نبع صادق به ينبوع يتفجر بالاسرار وينمي عندنا ملكه الافكار بحبك في الله لان دروسك تعطي انطباع انك تعمل ذلك العمل لوجه الله
جزاك من بغيت وجهه عشت سعيداً وموت شهيداً ونم انت مرتاح البال .
الله يرزقك من نعيمه في الدنيا والاخره
اخوك ومحبك اشرف فتحي مصري يعمل بالكويت it وبفضل الله وشروحك انتقلت للاوراكل مع اني عمري 33 سنه وكنت مبرمج فيجوال بيسك ولكن لما اياس وسوف اتم السلسله ان شاء الله واحصل على الشهادات وسوف اكون مبرمج اوراكل ان شاء الله
ملحوظه : لقد قمت بتجميع المشاركات في منتدي pl/sql ولكن ارجو منك رغم ضيق وقتك ان ارسله لك على اميلك وتري من يقوم بالمراجعه والفهرسه والتنسيق لتعم الفائده للجميع ارجو الاهتمام واعانك الله وايانا علي نصرة دينه كل في مجاله اخوك اشرف فتحي
[email protected]
[email protected]

رابط هذا التعليق
شارك

السلام عليكم
اشكر الاخوه الاعزاء علي هذا الجهد واحب اضيف حاجه جديده
جرب دي من
start --->run
أكتب
cmd
سوف تظهر شاشه الاوامر للويندوز
أكتب
sqlplus
وأنتظر
سوف يطلب منك أدخال أسم المستخدم
أدخل
scott
بعد ذللك الباسورد
tiger
ثم انتر
واشتغل زي اي اديتور لل
sql
مع تحياتي

رابط هذا التعليق
شارك

السلام عليكم
سيدي الاسيف كيف حالك طال اننتظارك
عشمتنا بباقي الدروس وانا كل يوم اتابع فلا اجد شئ إلما الانتظار اين شرحك الجبار لا تبخل علينا بباقي الشروح فشرحك في المنتدي يلوح ويرفرف بجناج يبعث فينا الفهم ويبني في عقولنا صروح جزاك الله خيرا عنا خير الجزاء ونتمني ان انشغالك من غير شر ولا عناء فلا تنسي ان لك احباب ينتظرون شرحك اكرمك العزيز الوهاب رزقك بالابكار وهنئت بالليل والنهار بذكر الهادي الستار نشتاق لنرتوي ـ عطشانا لا يزول ليل نهار إلا من نبع صادق به ينبوع يتفجر بالاسرار وينمي عندنا ملكه الافكار ـ
بحبك في الله لان دروسك تعطي انطباع انك تعمل ذلك العمل لوجه الله
جزاك من بغيت وجهه عشت سعيداً وموت شهيداً ونم انت مرتاح البال .
الله يرزقك من نعيمه في الدنيا والاخره
اخوك ومحبك اشرف فتحي مصري يعمل بالكويت it وبفضل الله وشروحك انتقلت للاوراكل مع اني عمري 33 سنه وكنت مبرمج فيجوال بيسك ولكن لما اياس وسوف اتم السلسله ان شاء الله واحصل على الشهادات وسوف اكون مبرمج اوراكل ان شاء الله


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

والحمد لله رب العالمين الرحمن الرحيم الذي أعان على نشر هذه الدروس ووصولها للكثيرين ...

وإنقطاعي جاء لظروف خاصةً جداً تعلمها إدراة المنتدى ..

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

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

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...
  • بعد 3 أسابيع...

أخونا الحبيب جزاك الله الف خير على ماتقوم به
ونسأل الله ان يجعل ذلك في ميزان حسناتك
ولكن عندي مشكلة وهي اني عندما اعمل التعليمة
connect system
ويطلب مني كلمة السر
ادخل كلمة
manager
ولكن لايقبلها ويقول انها غلط
ولا أدري اين المشكلة
وحين اعمل
scott
tiger
يقبلها
انشاء الله المشكلة تكون واضحة
وشكرا

رابط هذا التعليق
شارك



الاخوة الاعزاء

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

اشكركم على هذا الموقع الرائع والذي استطعت من خلاله فهم نقاط كثيرة كانت غائبة عني

سيدي الاسيف اشكرك على مجهودك الرائع وارجوا منك ان تستقطع جزء من وقتك لاستكمال هذه الدروس
جزاك الله عنا خير الجزاء

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

رابط هذا التعليق
شارك

  • بعد 3 أسابيع...

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

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية