منتديات مرسا اسكندرية
دعوه للانضمام لاسره مرسا اسكندرية
عزيزى الزائر الكريم.... زيارتك لنا أسعدتنا كثيرا....ولكن لن تكتمل سعادتنا الا بانضمامك لاسرتنا لذا نرجو منك التسجيل لتصبح من أسره منتدانا المتواضع منتديات مرسا اسكندرية........
تعلم الاوراكل من الصفر .. الدرس الاول  7c2d5d03c

انضم إلى المنتدى ، فالأمر سريع وسهل

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

اذهب الى الأسفل
اوراق تداعب قلبي
اوراق تداعب قلبي
 
 
تعلم الاوراكل من الصفر .. الدرس الاول  P60tur5o60jd
تعلم الاوراكل من الصفر .. الدرس الاول  Pi-ca-19
انثى
عدد المساهمات : 173
نقاط : 459
التقييم : 0
تاريخ التسجيل : 22/08/2011
تعلم الاوراكل من الصفر .. الدرس الاول  Img_1311621145_606
العمل/الترفيه العمل/الترفيه : لا اعمل

تعلم الاوراكل من الصفر .. الدرس الاول  Empty تعلم الاوراكل من الصفر .. الدرس الاول

الإثنين 26 ديسمبر 2011, 9:03 am
سوف اعرض في هذا الدرس كيفية تعلم الاوراكل

1-تعريف الاوراكل
2- ما هي الخطوات اللازمة لتعلم الاوراكل
3-ماهي نسخ الاوراكل المطلوبة للتعلم
4-ماهي الكتب المطلوبة للتعلم
5-كيفية تسطيب الاوراكل من الالف الى الياء
6-كيفية البداية ووضع مثل انشاء الجدول عمل علاقات بين الجدول
7-كيفية الحذف والاضافة والتعديل على الجدول من خلال ال SQL
8-كيفية انشاء ال procedure و الTrigger و ال functions و ال views
9-كيفية التعامل مع ال constraints والتعديل عليها وعرضها
10-كيفية التعامل مع الشاشات وعمل برنامج صغير
11-كيفية التعامل مع التقارير وانشاءها

وساضيف بعض المواضع التي لم تطرح في المنتدى وكيفية حل المشاكل التي نتعرض لها بالاوراكل
وسوف انشئ مكتبة تكون مرتبة لمعظم مواضيع اوراكل
طبعا سوف يؤخذ بعين الاعتبار عرض روابط المهمة التي تمت المشاركة بها من
قبل الاخوة الاعضاء والمشرفين وافضل التعليقات والاجابات لكي نتفادى
التكرار

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


تعريف الاوراكل :
لغة الاوراكل معنى كلمة اوراكل هي الوحي وهي شركة قامت بانشاء مبادئ قاعدة
البيانات وطرق تخزين البيانات حيث تمت البداية بعمل برامج تقوم على تخزين
البيانات واسترجاعها بطرق معينه واعتمدت بالبداية على هذه الطرق باستخدام
SQL
و SQL معناها STRUCTURED QUERY LANGUAGE وبعدها قامت بعمل وتطوير وايجاد
PL/SQL وهي معناها PROGRAM LANGUAGE ثم ايجاد الديفلوبر والريبورت

الخطوات اللازمة لتعلم الاوراكل
1- ان يكون الشخص عنده المام ولو قليل بطرق البرمجة والمقصود بها اساسيات البرمجة
2- اتقان ال SQL بشكل عام والتي سوف نستعرض طرق التعلم والاساسيات المطلوبة

النسخ المطلوبة للتعلم
1- قاعدة بيانات DATABASE 9i
2-DEVLOPER 9i
3-REPORT 9i
4-SQL 9i
تم اختيار الديفلوبر 9i لكي يستطيع اكبر عدد التعلم وهي سهلة وفي متناول الجميع

كيفية تسطيب اوراكل 9i
اتبع الرابط التالي

https://mrsa.hooxs.com/t10196-topic
بعد تسطيب اوراكل من هنا سوف نبدأ ان شاء الله





الدرس رقم 1


--------------------------------------------------------------------------
--------------------------------------------------------------------------

وهي تشغيل ال PL/SQL
ادخال اليوزر SYSTEM
الباسورد التي اعتمدتها اثناء التنزيل

ثم كتابة الامر
CODE




CREATE USER OUG IDENTIFIED BY "123"



هذا الامر CREATE يقوم بانشاء USER مستخدم على قاعدة البيانات
ويجب وضع اسم اليوزر والذي هو OUG ثم يأتي بعدها IDENTIFIED BY وهي كلمة السر
وهي 123

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




CREATE USER NAMEOF USER IDENTIFIED BY "YOUR PASSWORD"


ولكي نستطيع الدخول الى هذا المستخدم يجب اعطاءه الصلاحيات وهذه
الصلاحيات تسمى ب GRANTS حيث من خلالها يتم تفويض المستخدم للدخول الى
قاعدة البيانات
لذلك نكتب الامر التالي
CODE
GRATN CONNECT TO OUG

ويجب ان يعطيك التالي
Grant succeeded.

قاعدة استخدام GRANT
CODE




GRANT OBJECTNAME TO YOURUSERNAME



وهي تعني اعطي الصلاحية GRANT الاتصال CONNECT الى TO المستخدم OUG
وتعطى صلاحيات اخرى للمستخدم منها RECOURCE وتعني مورد
وكذلك DBA وتعني DATABASE ADMINISTRATION مدير قاعدة البيانات
لذلك نعطي المستخدم OUG اللذي ذكرناه كما في الشكل التالي
CODE




GRANT RESOURCE,DBA TO OUG



لاحظوا معي انه تم اعطاء المستخدم الخاصيتين معا من خلال الفاصلة , يعني نقدر ان نعطي عدد من الصلاحيات بسطر واحد وباستخدام الفاصلة


بعد ذلك للدخول الى المستخدم

اطبع الامر
CODE




CONNECT OUG/123


هنا اعطينا امر CONNECT اتصل بالمستخدم المسمى ب OUG و/ وتعين كلمة السر وهي 123
وسوف يظهر لك
Connected. انه تم الاتصال
لتعرف انك قد اتصلت او صرت على مستخدم OUG
اطبع الامر التالي
CODE




SHOW USER


هذا الامر يبين لك اسم اليوزر
user is "OUG"

سوف نتعامل الآن مع جدول يقوم يسمى DUMMY TABLE وهو جدول انشئته اوراكل لكي
تستعين به بعمل عمليات من خلال هذا الجدول وهو يتعامل مع قاعدة البيانات
مباشرة مثل استعراض التاريخ
واسم هذا الجدول هو DUAL
ولنستعرض تاريخ اليوم نطبع الامر التالي
CODE




SELECT SYSDATE FROM DUAL


حيث نقول له احضر SELECT تاريخ اليوم او تاريخ الجهاز SYSDATE من FROM الجدول DUAL
اذا قاعدة استخدام ال SELECT ه
CODE



SELECT FIELDNAME FROM TABLENAME





ملاحظة لتنفيذ اي امر على SQL بعد كتابته
اما ان تضع اخر السطر فاصلة منقوطة او شرطه / او اتكتب RUN او ان تكتب R
وللتعديل على امر اطبع الامر EDIT




الاسئلة

1- قم بانشاء مستخدم باسم ABC واعطه كلمة سر 123
2-قم باعطاء الصلاحيات التالية للمستخدم ABC وهي CONNECT/ RESOURCE/ DBA
على ان تكون جملة الصلاحيات في سطر واحد
3-ماهو الامر الذي يقوم باظهار المستخدم
4-اكتب جملة تستخدم فيها ال SELECT لعرض تاريخ الجهاز

انتهت الاسئلة







انتهى الدرس الاول


تم بحمد الله

يتبع الدرس الثانى
اوراق تداعب قلبي
اوراق تداعب قلبي
 
 
تعلم الاوراكل من الصفر .. الدرس الاول  P60tur5o60jd
تعلم الاوراكل من الصفر .. الدرس الاول  Pi-ca-19
انثى
عدد المساهمات : 173
نقاط : 459
التقييم : 0
تاريخ التسجيل : 22/08/2011
تعلم الاوراكل من الصفر .. الدرس الاول  Img_1311621145_606
العمل/الترفيه العمل/الترفيه : لا اعمل

تعلم الاوراكل من الصفر .. الدرس الاول  Empty رد: تعلم الاوراكل من الصفر .. الدرس الاول

الإثنين 26 ديسمبر 2011, 9:07 am
بسم الله الرحمن الرحيم
الدرس الثاني
في هذا الدرس سنتناول ان شاء الله طرق انشاء الجداول وطرق الربط بين هذه الجداول وتعرف المحددات

فعند القيام بعمل انشاء للجدول نستخدم الامر
CREATE TABLE ويعني انشأ الجدول وبهذا نهئ قاعدة البيانات الى انشاء الجدول
وبعد ذلك يجب وضع اسم الجدول فنقول CREATE TABLE STUDENTS مثلا ونضع بعدها
قوس ليشمل عدد الحقول الى هذا الجدول وينصح دائما بعمل باتخاذ اول ثلاثة
حروف من اسم الجدول عند تسمية اي حقل تابع لهذا الجدول والهدف هو معرفة ان
هذا الحقل تابع للجدول الفلاني ويبقى ان نحدد نوع الحقل او مايسمى ب
DATATYPE وسوف نتناول ثلاثة انواع هي
1-VARCHAR2 وهي تأخذ ارقام وحروف في الحقل ويجب تحديد طول الحقل ونقصد بطول الحقل هو عدد الاحرف في هذا الحقل فنقول
VARCHAR2(20) من هذا التعريف نرى ان طول الحقل 20 حرف

2- NUMBER وهي تأخذ ارقام سواء كانت ارقام عادية او ارقام عشرية ويجب ايضا
تحديد طول الحقل فيه وهي عدد الخانات فنقول NUMBER(4) ويعني رقم مكون من
اربع خانات كالتالي 1234

3- DATE وهو التاريخ كما هو معروف
اذا القاعدة لانشاء الجدول هي
CODE





CREATE TABLE table_name
(column1 datatype ,
column2 datatype ,
..
)


ناخذ الآن نبذه عن طريقة ربط الجداول بعد ان تعرفنا على طريقة
انشاءها وانا اتطرق الى رؤوس اقلام وليس بشكل تفصيلي والهدف هو فهم ما يجري
قبل الخوض في ادق التفاصيل
ولربط الجداول نستخدم المحددات او ما يسمى ب CONSTRAINTS طبعا المحددات
انواع واشكال سوف نطرق الى ما يلزمنا وهو ال PRIMARY KEY وهو المفتاح
الاساسي وهو عبارة عن حقل وحيد يتم تحديده بالجدول وهذا الحقل نقوم بتعيينه
بهدف عدم تكرار البيانات وهو لا يأخذ قيمة فارغة وانما يأخذ مجموعة وكذلك
يمكن تحديد اكثر من حقل في الجدول لتعينهم على انهم لا يتكررون ولكن كوحدة
واحدة وعموما الجدول دائما يحتوي على PRIMARY KEY واحد
وطريقة انشاءه تتم بالشكل التالي
CONSTRAINT وتعني محدد وهنا نهئ الجدول الي وجود محدد ونذكر اسمه ثم نذكر
نوعه وماهي الحقول التي تريد تحديدها مع الاخذ بعين الاعتبار ان هذه الحقول
لايمكن ان تتكرر ولنوضح شيئا مهما اننا لو حددنا مثلا رقم الموظف وتاريخ
ميلاده مثلا على انها مفتاح اساسي فهنا نلاحظ شيئا
لو ادخلنا رقم الموظف مثلا E00001 وتاريخ الميلاد 01-01-1970
وادخلنا رقم الموظف مثلا E00001 وتاريخ الميلاد 01-01-1971
هل يا ترى سوف تقبل قاعدة البيانات هذه العملية الجواب نعم والسبب انك حددت
في المفتاح الاساسي ان رقم الموظف وتاريخ ميلاده هما وحده واحد ويمنع
التكرار في حالة تشابهما لذلك يجب ان نكون حذرين في حالة تحديد المفتاح
الاساسي
CODE





CONSTRAINT constraint_name PRIMARY KEY (column1, column2, . column_n)



اما النوع الثاني فهو FOREIGN KEY وهو مفتاح المرجع
وهذا النوع فقط تحدد ان الحقل الذي بجدول الاول تابع للحقل الاساسي في الجدول الثاني
ولتوضيح اكثر مثلا رقم الجنسية في جدول الموظفين تابع رقم الجنسية في جدول
الجنسيات لذلك والفروض ان يكون اساسي والهدف من هذا كله هو الزام المستخدم
بادخال ارقام او بيانات محدده وتفادي ادخال بيانات غير موجود وتصبح بياناتك
اقوى وبرنامجك اقوى
مع ملاحظة انه عند انشاء هذا النوع من المحددات يجب ان يكون الجدول المنشأ
موجود على قاعدة البيانات مثلا عند نريد ربط رقم الجنسية بجدول الموظفين
برقم الجنسية بجدول الجنسيات يجب ان يكون جدول الجنسيات منشأ قبل جدول
الموظفين وهكذا ويمكن الرجوع الى اكثر من حقل في كلا الجدولين وكذلك يجب ان
يكون من نفس النوع

وسوف نوضح طريقة افضل لتفادي هذه الاشياء ان شاء الله
وطريقة انشاءه تتم بوضع CONSTRAINT CONSTRAINT_NAME FOREIGN KEY (column1,
column2, ... column_n)هنا نحدد اسماء الحقول في الجدول الحالي
REFERENCES parent_table (column1, column2, ... column_n)وهنا نحدد اسماء الحقول مع ذكر اسم الجدول المراد الرجوع اليه
وتكون القاعدة بالشكل التالي
CODE





CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
);




نأتي الى انشاء الجداول


جدول الجنسيات وهو يتكون من
1- رقم الجنسية 2- وصف الجنسية 3-تاريخ الانشاء 4- اسم المستخدم

جدول الادارات وهو يتكون من
1- رقم لاادارة 2- اسم الادارة 3-تاريخ الانشاء 4- اسم المستخدم

جدول الموظفين وهو يتكون من
1- رقم الموظف 2- اسم الموظف 3- تاريخ الميلاد 4- الجنس 5- الجنسية 6-
تاريخ التعيين 6-الراتب الاساسي 7-بدلات الاخرى 8-1لادارة التابع لها
9-تاريخ الانشاء 10-اسم المستخدم

جدول الجنسيات
CODE





CREATE TABLE NATIONALITY(
NAT_NO VARCHAR2(5),
NAT_NAME VARCHAR2(20),
NAT_CRE_DATE DATE,
NAT_CRE_NAME VARCHAR2(50),
CONSTRAINT NAT_PK PRIMARY KEY(NAT_NO)
)
/



اما بالنسبة الى NAT_CRE_DATE , فهي تفيد في حالة تاريخ انشاء الحقل
اما NAT_CRE_NAME فتفيد باضافة اسم المستخدم الذي قام بانشاء هذا الحقل

جدول الادارات
CODE





CREATE TABLE DEPARTMENTS(
DPT_NO VARCHAR2(5),
DPT_NAME VARCHAR2(20),
DPT_CRE_DATE DATE,
DPT_CRE_NAME VARCHAR2(50),
CONSTRAINT DPT_NO_PK PRIMARY KEY(DPT_NO)
)
/



جدول الموظفين
CODE





CREATE TABLE EMPLOYEES(
EMP_ID VARCHAR2(10),
EMP_NAME VARCHAR2(50),
EMP_BIRTH_DATE DATE,
EMP_SEX VARCHAR2(1),
NAT_NO VARCHAR2(5),
EMP_HIRE_DATE DATE,
EMP_BASIC_SALARY NUMBER(4),
EMP_ADD_EXCHANGE NUMBER(4),
DPT_NO VARCHAR2(5),
EMP_CRE_DATE DATE,
EMP_CRE_NAME VARCHAR2(20),
CONSTRAINT EMP_ID_PK PRIMARY KEY(EMP_ID),
CONSTRAINT NAT_NO_FK FOREIGN KEY (NAT_NO) REFERENCES NATIONALITY (NAT_NO),
CONSTRAINT DPT_NO_FK FOREIGN KEY (DPT_NO) REFERENCES DEPARTMENTS (DPT_NO)
)
/


لا حظوا معي NAT_NO وهو رقم الجنسية وضعته باسم مختلف لأنه تابع لجدول اساسي
وهو جدول الجنسيات وكذلك الحا بالنسبة ل DPT_NO وهو يرمز الى رقم الادارة
اما بالنسبة الى EMP_CRE_DATE , فهي تفيد في حالة تاريخ انشاء الحقل
اما EMP_CRE_NAME فتفيد باضافة اسم المستخدم الذي قام بانشاء هذا الحقل
طبعا يجب الاخذ بعين الاعتبار اننا عندما نريد ان ان نربط حقل في جدول معين بحقل اخر فيجب ان يكون من نفس النوع


لعرض محتويات الجدول الذي قمت بانشائه استخدم الامر DESCRIBE
YOUR_TABLENAME وهو امر يقوم بعرض الحقول التي بالجدول ونوع كل حقل وسوف
تلاحظ هذه القيمة NOT NULL اي انه لايقبل قيمة فارغة وهو المفتاح الاساسي
الذي قمنا بتحديده سابقا ويمكن كتابته بالاختصار DESC EMPLOYEES وسوف يعرض
يالشكل التالي
SQL> DESCRIBE EMPLOYEES
CODE






NAME NULL? TYPE
------------------------------- -------- ----
EMP_ID NOT NULL VARCHAR2(10)
EMP_NAME VARCHAR2(50)
EMP_BIRTH_DATE DATE
EMP_SEX VARCHAR2(1)
NAT_NO VARCHAR2(5)
EMP_HIRE_DATE DATE
EMP_BASIC_SALARY NUMBER(4)
EMP_ADD_EXCHANGE NUMBER(4)
DPT_NO VARCHAR2(5)
EMP_CRE_DATE DATE
EMP_CRE_NAME VARCHAR2(20)


وهنا تم انشاء وربط الجداول مع بعضها


الاسئلة
1-بين كيف يتم انشاء جدول للطلاب مكون من ثلاثة حقول حيث يقبل رقم الطالب
احرف وارقام وطوله 5 واسم الطالب يقبل احرف وارقام ومكون من 20 حرف وتاريخ
ميلاد الطالب

2- ما المقصود بالمحددات التالية أ- المفتاح الاساسي PRIMARY KEY ب-المفتاح المرجعي FOREIGN KEY
3- بيّن بمثال كيف يتم ربط جدولين ببعضهما باستخدام ال FOREIGN KEY

4-اجب بنعم او لا مع ذكر السبب ،يوجد لدينا جدول مكون من حقلين اساسيين
PRIMARY KEY ولنفرض انهما رقم الموظف ورقم ادارته فهل تقبل قاعدة البيانات
الاضافة لو قمنا باضاف البيان
رقم الموظف = e0001 و رقم الادارة = 10 واضافة رقم الموظف= e0002 ورقم الادارة= 10





انتهى الدرس الثاني


يتبع الدرس الثالث
اوراق تداعب قلبي
اوراق تداعب قلبي
 
 
تعلم الاوراكل من الصفر .. الدرس الاول  P60tur5o60jd
تعلم الاوراكل من الصفر .. الدرس الاول  Pi-ca-19
انثى
عدد المساهمات : 173
نقاط : 459
التقييم : 0
تاريخ التسجيل : 22/08/2011
تعلم الاوراكل من الصفر .. الدرس الاول  Img_1311621145_606
العمل/الترفيه العمل/الترفيه : لا اعمل

تعلم الاوراكل من الصفر .. الدرس الاول  Empty رد: تعلم الاوراكل من الصفر .. الدرس الاول

الإثنين 26 ديسمبر 2011, 9:09 am
بسم الله الرحمن الرحيم
الدرس الثالث
سوف ندرس اليوم العمليات التي تتم على الجداول
من اضافة insert تعديل update حذف Delete وبشكل تفصيلي


1- الاضافة insert


المقصود بالاضافة هو عملية اضافة مجموعة من البيانات على مجموعة من الحقول في جدول معين

وتكون طريقة الاضافة بطباعة الامر insert ثم نكتب into ثم اسم الجدول ونفتح قوس
ثم نكتب اسماء الحقول المراد ادخال البيانات فيها مع الاخذ بعين الاعتبار
ان نضيف ايضا الى الجداول التي لا تقبل القيم الفارغة مثل المفتاح الاساسي
Primary key وكذلك الحقول المربوطة بحقول اخرى ال foriegn key
وبعدها نكتب الامر values ونفتح قوس ويجب ان يكون ترتيب القيم بنفس ترتيب الحقول في البداية
مع الاخذ بعين الاعتبار ان نوع الحقل VARCHAR2 يوضع بين علامتين 'VALUE' والتاريخ DATE يجب ان تضعه ايضا بين علامتين 'VALUE '
اما الارقام فتوضع بدون علاميتن SINGLE CUTAION
ويجب عمل commit; وهو امر يطبع لتخزين معلومة على قاعدة البيانات وهي تستخدم بعد الاضافة او الحذف او التعديل لتأكيد العملية
ويمكن استخدامها ايضا بعد مجموعة من العمليات مثلا اضافة عدد واحد من السطور او مجموعة من السطور
القاعدة
CODE





INSERT INTO table
(column-1, column-2, ... column-n)
VALUES
(value-1, value-2, ... value-n);


لاحظوا هنا اننا نستخدم الفاصلة بين كل قيمة واخرى
لنأخذ مثال وهي اضافة على جدول الجنسيات حيث يتألف من
NAT_NO رقم الجنسية
NAT_NAME اسم الجنسية
NAT_CRE_DATE تاريخ الاضافة
NAT_CRE_NAME تاريخ التعديل

CODE





INSERT INTO NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE_N AME)
VALUES('001','SAUDI',SYSDATE,USER);

INSERT INTO NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE_N AME)
VALUES('002','JORDAN',SYSDATE,USER);

INSERT INTO NATIONALITY(NAT_NO,NAT_NAME,NAT_CRE_DATE,NAT_CRE_N AME)
VALUES('003','EGYPT',SYSDATE,USER);

INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE_D ATE)
VALUES ('DP01','EMPLOYEES',USER,SYSDATE);

INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE_D ATE)
VALUES ('DP02','ACCOUNT',USER,SYSDATE);

INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME,DPT_CRE_NAME,DPT_CRE_D ATE)
VALUES ('DP03','COMPUTER',USER,SYSDATE)

COMMIT;





2- الحذف DELETE


وهي حذف مجموعة من السجلات ضمن شرط معين او من غير شرط
نكتب الامر DELETE ثم اسم الجدول وهذه طريقة
او تكتب الامر DELETE ثم تكتب FROM ثم تكتب اسم الجدول
القاعدة
CODE





DELETE FROM table_name
DELETE TBALE_NAME


مثال
هنا يقوم بحذف جميع سجلات جدول الادرات وجدول الجنسيات

CODE





DELETE DEPARTMENTS;
DELETE FROM NATIONALITY;
COMMIT;



ولكن يفضل استخدام الشرط حيث تحدد الحقل الذي تريد حذفه
باستخدام WHERE CONTION
وهو شرط لا ينفذ عملية الحذف الا بتحققه
ويمكن وضع اكثر من شرط والفصل بينهما عن طريق AND

CODE





DELETE FROM DEPARMENTS
WHERE DPT_NO='DP02'
COMMIT;




3- التعديل UPDATE


التعديل هو القيام بعمل تعديل على الحقول ايضا على الجدول كاملا او تحديدها باستخدام WHERE CONDITION
للقيام بالتعديل تكتتب
UPDATE ثم نكتب اسم الجدول ثم نكتب SET ثم اسم الحقل المراد تعديله
CODE





update table_name set field_name = value


مثال
CODE





UPDATE DEPARTMETS SET DPT_NAME='ALL'


ويمكن ان نعدل اكثر من قيمة باستخدام الفاصلة
وكذلك باستخدام ال where condtion لنحدد الحقول المراد التعديل عليها
كما في الشكل التالي
CODE





update table_name set field_name = value,field_name2=value



مثال
CODE





UPDATE DEPARTMETS SET DPT_NAME='ALL' ,DPT_NO='02' WHERE DPT_NO='DPT02'



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


الأسئلة

1- اضف القيم التالية الى جدول الادارات رقم الادارة =DP04 اسم الادارة =marketing
2-ما هي افضل الطرق في عملية الحذف او التعديل اهي باستخدام ال where condtion او بالطريقة العادية ولماذا ؟
3- بيّن كيف يمكن تعديل اكثر من قيمة في جدول في جملة تعديل واحدة وباستخدام الشرط
4-ما اسم الدالة التي تقوم بتثبيت البيانات








انتهى الدرس



تابع الدرس الرابع


عدل سابقا من قبل اوراق تداعب قلبي في الإثنين 26 ديسمبر 2011, 9:13 am عدل 1 مرات
اوراق تداعب قلبي
اوراق تداعب قلبي
 
 
تعلم الاوراكل من الصفر .. الدرس الاول  P60tur5o60jd
تعلم الاوراكل من الصفر .. الدرس الاول  Pi-ca-19
انثى
عدد المساهمات : 173
نقاط : 459
التقييم : 0
تاريخ التسجيل : 22/08/2011
تعلم الاوراكل من الصفر .. الدرس الاول  Img_1311621145_606
العمل/الترفيه العمل/الترفيه : لا اعمل

تعلم الاوراكل من الصفر .. الدرس الاول  Empty رد: تعلم الاوراكل من الصفر .. الدرس الاول

الإثنين 26 ديسمبر 2011, 9:11 am
بسم الله الرحمن الرحيم
الدرس الرابع

سوف نتحدث في هذا الدرس ان شاء الله عن استخدام Select Statment وانواعها وكيف يمكن التعامل معها

تعرّف ال Select Statmnet على انها امر من خلاله يتيح لنا احضار بيان او
مجموعة بيانات من جدول واحد او اكثر من جدول وبطرق مختلفة وحسب الشرط الذي
تضعه ليس هذا فحسب بل يمكن استخدام ال select statment في معالجة العمليات
على الجداول التي تطرقنا لها في الدرس السابق الا وهي Update Delete Insert

وكذلك يمكن استخدامها مع عدة function واقصد بها معادلات جاهزة وسوف نطرق لها بالتفصيل ان شاء الله


1- جملة SELECT البسيطة
فكتب SELECT ثم اسم الحقول او اذا كنت تريد عرض كل الحقول اكثب * اي نجمة ثم FROM وهنا
تعطي ايعاز ان تحدد اسم الجدول بعد ال FROM فتصبح بالشكل التالي

CODE





SELECT *
FROM ;



مثال
CODE





SELECT * FROM NATIONALITY


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

2- جملة ال SELECT التي تحدد فيها اسماء الحقول في الجدول
فهي لا تختلف عن التي بالنقطة الاولى وانما تستبدل النجمة * باسماء حقول

CODE






SELECT
FROM ;



مثال

CODE





SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS


هنا حددنا بالSELECT اسم الادراة ورقمها فقط وهذا هو الفرق

3-جملة ال SELECT مع ال WHERE CONDTION
وهي تحضع شرط مع WHERE CONDITION


CODE





SELECT *
FROM
WHERE ....



مثال

CODE





SELECT * FROM DEPARTMENTS
WHERE DPT_NO='DP01'



4- استخدام الSELECT مع UPDATE و INSERT و DELETE وكذلك انشاء الجدول
CREATE TABLE



أ- استخدام ال SELECT مع INSERT
يتم الاضافة على الجدول باستخدام جملة ال INSERT وتحدد بالمقابل جملة ال
SELECT وهذه الحالة تؤخذ اذا كنت تريد نسخ بيانات جدول من آخر الاضافة داخل
نفس الجدول ولك حسب البيان الذي يأتي من SELECT

CODE






INSERT INTO TABLE_NAME
(COLOUMN1...,COLOUMN2...)
SELECT COLOUMN1...,COLOUMN2...)
FROM OTHER_TABLE_NAME
WHERE .....



مثال


CODE





INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME)
SELECT NAT_NO,NAT_NAME
FROM NATIONALITY;


على افتراض ان نوع الحقول في كل جدول متساوية

ب- استخدام ال SELECT مع DELETE

CODE





DELETE FROM TABLE_NAME
WHERE COLOUMN_NAME IN (SELECT COLUMN FROM TABLE NAME
WHERE ....


هنا استخدمنا FUNCTION تستخدم مع WHERE CONDTION وهي IN
ويقصد بها ان هل القيمة معينة موجودة ضمن جملة ال SELECT
طبعا سوف نأتي لها بالتفصيل ان شاء الله ولكن نستعرضها هنا فقط بشكل مختصر

ج - استخدام ال SELECT مع ال UPDATE

CODE





UPDATE TABLE_NAME SET COUMN_NAME= SELECT CLOUMN_NAME FROM TABLE_NAME WHERE ....


على اساس ان جملة ال SELECT ترجع قيمة واحدة لا اكثر

د- استخدام ال SELECT مع CREATE TABLE
القاعدة
CODE





CREATE TABLE new_table
AS (SELECT column_1, column2, ... column_n
FROM old_table_1, old_table_2, ... old_table_n);


وهنا تنشئ جدول باستخدام جملة ال SELECT
مثال
CREATE TABLE DEPT
AS (SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
WHERE DPT_NO='DP001')
لاحظوا ان هذا المثال يوضح انك تقدر ان تنشئ جدول وكذلك اضافة البيانات معه
وتم استخدام WHERE CONDITION لتحديد هذه البيانات واذا اردنا اضافة
البيانات كلها نلغي ال WHERE


سوف نتحدث عن الفانكشن التي تساعد فلترت البيانات وكذلك الفانكشن التي تساعد في ترتيب البيانات
1- الفانكشن التي تساعد في فلترت البيانات هي
* ALIASES وتسمى بالاسماء المستعارة يعني تستبدل اسم الحقل باي اسم انت تحدده كي تعرض في العناوين

CODE





select sysdate as "My Date" from dual;


My Date
--------
28-03-06

* DISTINCT وتستخدم لفلترت البيانات المتكررة وتأتي بعد جملة ال SELECT
مباشرة ومن [U]مميزاتها انها تفلتر البيانات المتشابهه بالحقول التي تأتي
بجملة ال SELECT او بالاحرى بالحقول التي تأتي بعدها يعني لو كانت لدينا
البيانات التالية
اسم الموظف محمد تاريخ ميلاده 20-10-1970
اسم الموظف محمد تاريخ ميلاده 20-10-1971
واستخدمنا جملة ال SELECT في احضار اسم الموظف وتاريخ ميلاده مع DISTINCT
لاحظوا انه سوف يرجع القيمتين والسبب لأن تاريخ الميلاد مختلف بينما الاسم متشابه
لكن لو طلبنا احضار اسم الموظف فقط فسوف يحضر قيمة واحدة وهي اسم الموظف
وقاعدة استخدامها هي

CODE





SELECT DISTINCT CLOUMN1...,COLUMN2.. FROM TABLE_NAME




CODE





SELECT DISTINCT DPT_NAME FROM DEPARTMENTS



* UPPER و LOWER
وتستخدم لتحويل الاحرف الانجليزية الى CAPITAL باستخدام UPPER
والى SMMAL باستخدام LOWER
القاعدة

CODE





SELECT UPPER(CLOUMN OR STRING) FROM TABLE NAME
SELECT LOWER(CLOUMN OR STRING) FROM TABLE NAME


مثال
SELECT LOWER('ADMIN05') FROM DUAL;
SELECT UPPER('admin05') FROM DUAL;
وجدول ال DUAL شرحنا عنه سابقا ارجع الى الدرس الأول

CODE





SELECT UPPER('DPT_NAME'),LOWER(DPT_NAME FROM DEPARTMENTS


هنا نعرض اسم الادارة مرة CAPITAL ومرة SMALL
مع ملاحظة ان هذه الفانكشن لا تنطبق على احرف اللغة العربية

* initcap وتستخدم لتحويل او حرف من كل كلمة الى capital

CODE





select initcap(cloumname or string) from table_name




CODE





select initcap('admin05') from dual;



* NVL وتستخدم للتعويض عن القيم الفارغة ال NULL الى قيم نحن نحددها
واستخداماتها في الارقام والحروف


CODE





SELECT NVL(CLUMONAME,YOUR_VALUE) FROM TABLE NAME



مثال

CODE





SELECT NVL(dpt_name,'not found') from departments
select NVL(number,0) from dual



* to_char وهي تستخدم للتحويل كل شيء الى قيمة string او ترتيب مثلا تاريخ حسب قناع معين

CODE





select to_char(cloumn,'ur mask') from table name
select to_char(cloumn) from table name


select to_char(sysdate,'dd-mm-yyyy') from dual

select to_char(sysdate) from dual;

هذا مثال كامل على التعامل مع التاريخ وكيفية اظهاره
Parameter Explanation

CODE

YEAR Year, spelled out
YYYY 4-digit year
YYY
YY
Y Last 3, 2, or 1 digit(s) of year.
IYY
IY
I Last 3, 2, or 1 digit(s) of ISO year.
IYYY 4-digit year based on the ISO standard
Q Quarter of year (1, 2, 3, 4; JAN-MAR = 1).
MM Month (01-12; JAN = 01).
MON Abbreviated name of month.
MONTH Name of month, padded with blanks to length of 9 characters.
RM Roman numeral month (I-XII; JAN = I).
WW Week of year (1-53) where week 1 starts on the first day
of the year and continues to the seventh day of the year.
W Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.
IW Week of year (1-52 or 1-53) based on the ISO standard.
D Day of week (1-7).
DAY Name of day.
DD Day of month (1-31).
DDD Day of year (1-366).
DY Abbreviated name of day.
J Julian day; the number of days since January 1, 4712 BC.
HH Hour of day (1-12).
HH12 Hour of day (1-12).
HH24 Hour of day (0-23).
MI Minute (0-59).
SS Second (0-59).
SSSSS Seconds past midnight (0-86399).
FF Fractional seconds.



The following are date examples for the to_char function.

to_char(sysdate, 'yyyy/mm/dd'); would return '2003/07/09'
to_char(sysdate, 'Month DD, YYYY'); would return 'July 09, 2003'
to_char(sysdate, 'FMMonth DD, YYYY'); would return 'July 9, 2003'
to_char(sysdate, 'MON DDth, YYYY'); would return 'JUL 09TH, 2003'
to_char(sysdate, 'FMMON DDth, YYYY'); would return 'JUL 9TH, 2003'
to_char(sysdate, 'FMMon ddth, YYYY'); would return 'Jul 9th, 2003'



* ORDER BY وهي فانكشن تعنى بترتيب البيانات بشكل منظم اما تصاعدي او
تنازلي وتستخدم بجملة ال SELECT وتكتب في اخر جملة ال SELECT حيث نكتبها
ونكتب اسم الحقل ويكتب بعدها اذا كنت الترتيب تصاعدي ويرمز لها ب ASC ثم
تنازلي ويمز بها DESC


CODE





ORDER BY COLUMN_NAME ASC




CODE






SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
ORDER BY DPT_NO ASC



ان شاء الله سوف نكمل ما تبقى من فانكشن نحتاجها فيما بعد

الأسئلة

1- اكتب جملة select تعرض من خلالها الاسم الادارة ورقمها وترتبها حسب الادارة

2- اكتب جملة select تعرض البيانات غير المكررة لجنسية الموظف من جدول الجنسيات

3- اعطي مثال على انشاء جدول باستخدام جملة ال select على ان يكون الادارة رقم DP01

4- اعطي مثال على اضافة وحذف وتعديل الجدول باستخدام ال select statment

5- اعطي مثال تبين فيه شكل التاريخ 01-2006 حيث ان 01 هو الشهر و 2006 هو السنة من خلال استخدام فانكشن to_char
6-بين باستخدام الفانكشن التالي nvl و initcap كيف يمكن استغلالها في جملة select



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