0% found this document useful (0 votes)
26 views21 pages

Lab 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views21 pages

Lab 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

‫‪Data Base‬‬

‫اوال االنواع البيانية‪/‬‬


‫‪ :Varchar2‬اقصى طول يبلغه هو ‪ byte 2000-1‬وهو متغير الطول‬
‫‪ :Char‬اقصى طول يبلغه هو ‪ byte 255-1‬وهو ثابت الطول‬
‫‪ :Number‬يقبل اعداد سواء صحيحة او عشرية‬
‫‪ :Date‬يخزن تواريخ‬
‫‪ :Long Row‬يستخدم لخزن صورة او فديو او موسيقى يخزن بيانات ثنائية وطول متغير من ‪GB 2-15‬‬
‫عند التعامل مع عمود من هذا النوع يجب مراعاة ما يلي‬
‫ال يمكن ان يحتوي الجدول على اكثر من عمود من هذا النوع‬ ‫‪-1‬‬
‫ال يمكن وضع محددات على هذا النوع سوى ‪not null‬‬ ‫‪-2‬‬
‫ال يمكن عمل فهرس عليه‬ ‫‪-3‬‬
‫ال يمكن وضعه في جملة شرطية (‪ )where‬او جملة ترتيب او جملة تجميع او مع ايعاز ايجاد‬ ‫‪-4‬‬
‫المختلف‬
‫ال يمكن نسخ جدول يحتوي على هذا العمود اال في حالة استثناء هذا العمود‬ ‫‪-5‬‬
‫ال يمكن عمل ‪ trigger‬عليه‬ ‫‪-6‬‬

‫اقسام ال‪SQL‬‬

‫‪SQL‬‬

‫‪DDL‬‬ ‫‪DCL‬‬
‫‪DML‬‬

‫‪1‬‬
‫‪Data Definition Language (DDL):‬‬
‫ـ‬ ‫‪CREAT‬‬
‫ـ‬ ‫‪DESC‬‬
‫ـ‬ ‫‪ALTER‬‬
‫ـ‬ ‫‪RENAME‬‬
‫ـ‬ ‫‪DROP‬‬
‫ـ‬ ‫‪TRANCATE‬‬
‫;)‪CREATE TABLE ga (no NUMBER(10), name VARCHAR2(20),bd DATE‬‬
‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬

‫‪ :CREATE‬امر انشاء‬
‫‪ :TABLE‬معناها االمر السابق جان لتيبل‬
‫‪ :ga‬اسم التيبل‬
‫‪ : no‬اسم احد الجداول‬
‫)‪ :NUMBER(4‬النوع البياني للجدول الي هو رقم وممكن خزن ‪ 4‬ارقام يعني اكبر رقم يخزنه ‪9999‬‬
‫‪ :name‬اسم عمود‬
‫)‪ :VARCHAR2(20‬نوع بياني يقبل ‪ 20‬كاركتر‬
‫‪ :bd‬اسم عمود‬
‫‪ :DATE‬نوع بياني يخزن تواريخ‬

‫;‪DESC ga‬‬
‫‪ :DESC‬امر طلب وصف‬
‫‪ :ga‬اسم الجدول‬

‫‪2‬‬
‫;))‪ALTER TABLE ga ADD(age NUMBER(3‬‬
‫‪no‬‬ ‫‪name‬‬ ‫‪Bd‬‬ ‫‪age‬‬

‫‪ :ALTER‬امر تعديل‬
‫‪ :TABLE‬جدول‬
‫‪ :ga‬اسم الجدول‬
‫‪ :ADD‬امر اضافة‬
‫‪ :age‬اسم العمود الراغب باضافته‬
‫)‪ :NUMBER(3‬النوع البياني للعمود واكبر رقم يخزنه هو ‪999‬‬

‫;))‪ALTER TABLE ga MODIFY(age VARCHAR2(3‬‬


‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬ ‫‪Age‬‬

‫‪ :ALTER‬امر تعديل‬
‫‪ :TABLE‬جدول‬
‫‪ :ga‬اسم الجدول‬
‫‪ :MODIFY‬امر تعديل‬
‫‪ :age‬اسم العمود الراغب بتعديله‬
‫)‪ :NUMBER(3‬النوع البياني الجديد للعمود واكبر رقم يخزنه هو ‪999‬‬

‫‪3‬‬
‫;)‪ALTER TABLE ga DROP(age‬‬
‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬
‫‪ :ALTER‬امر تعديل‬
‫‪ :TABLE‬جدول‬
‫‪ :ga‬اسم الجدول‬
‫‪ :DROP‬امر حذف‬
‫‪ :age‬اسم العمود المراد حذفه‬

‫;‪RENAME ga TO gc‬‬
‫‪ :RENAME‬امر اعادة تسمية جدول‬
‫‪ :ga‬اسم الجدول المراد اعادة تسميته‬
‫‪ :TO‬كلمة محجوزة هنا تشير لالسم الجديد‬
‫‪ :gc‬االسم الجديد‬

‫;‪DROP TABLE gc‬‬


‫‪ :DROP‬امر حذف‬
‫‪ :TABLE‬جدول‬
‫‪ :gc‬اسم الجدول المراد حذفه‬

‫;‪TRUNCATE TABLE gc‬‬


‫‪ :TRANCUT‬امر تفريغ بيانات جدول‬
‫‪ :TABLE‬الجدول‬
‫‪ :gc‬اسم الجدول المراد تفريغه‬

‫سؤال؟ شنو الفرق بين الحذف والتفريغ؟‬


‫‪4‬‬
‫)‪Data manipulation language )DML‬‬
‫ـ‬ ‫‪INSERT‬‬
‫ـ‬ ‫‪SELECT‬‬
‫ـ‬ ‫‪UPDATE‬‬
‫ـ‬ ‫‪DELETE‬‬
‫ـ‬ ‫‪COPY‬‬
‫اكو طريقتين الضافة صف االولى هي عن طريق انك تملي كل االعمدة العرفتهن بال‪ CRATE‬الثانية انك‬
‫تملي جزء بس من االعمد العرفتهن‪:‬‬
‫;)’‪1. INSERT INTO gc VALUES(1,’ahmed’,’1/dec/2000‬‬
‫‪ :INSERT‬امر اضافة‬
‫‪ :INTO‬كلمة محجوزة تشير للجدول الراح نضيف اله‬
‫‪ :gc‬اسم الجدول‬
‫‪ :VALUES‬تشير للقيم الراح نحفظهن بالجدول‬
‫‪ :1‬القيمة بالعمود االول العرفناه‬
‫’‪ :’ahmed‬القيمة بالعمود الثاني العرفناه‬
‫’‪ :’1/dec/2000‬القيمة بالعمود الثالث العرفناه‬
‫;)’‪2. INSERT INTO gc(no, name) VALUES(2,’ali‬‬
‫‪ :INSERT‬امر اضافة‬
‫‪ :INTO‬كلمة محجوزة تشير للجدول الراح نضيف اله‬
‫‪ :gc‬اسم الجدول‬
‫‪ :no‬اسم اول عمود راح نضيفله قيمة‬
‫‪ : name‬اسم ثاني عمود راح نضيفله قيمة‬
‫‪ :VALUES‬تشير للقيم الراح نحفظهن بالجدول‬
‫‪ :2‬القيمة بالعمود االول الشرنا اله‬
‫‪ :ali‬القيمة بالعمود الثاني الشرنا اله‬

‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬


‫‪1‬‬ ‫‪ahmed‬‬ ‫‪1-dec-23‬‬

‫‪2‬‬ ‫‪ali‬‬

‫‪5‬‬
‫;‪SELECT * FROM gc‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gc‬اسم الجدول الراح نعرض منه‬

‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬


‫‪1‬‬ ‫‪ahmed‬‬ ‫‪1-dec-23‬‬

‫‪2‬‬ ‫‪ali‬‬

‫;‪SELECT no , name FROM gc‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :no‬اسم العمود االول‬
‫‪ :name‬اسم العمود الثاني النريده ينعرض‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gc‬اسم الجدول الراح نعرض منه‬

‫‪no‬‬ ‫‪name‬‬
‫‪1‬‬ ‫‪ahmed‬‬

‫‪2‬‬ ‫‪ali‬‬

‫‪6‬‬
‫;‪UPDATE gc SET name=’ahmed’ , no=1‬‬
‫‪ :UPDATE‬امر تحديث بيانات الجدول‬
‫‪ :Gc‬اسم الجدول‬
‫‪ :SET‬كلمة محجوزة تشير لالعمدة الراح نحدث بياناتهن‬
‫‪ :name‬اسم العمود االول‬
‫’‪ :‘ahmed‬القيمة النريدها تصير بهذا العمود‬
‫‪ :no‬اسم العمود الثاني‬
‫‪ :1‬القيمة النريدها تصير بهذا العمود‬

‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬


‫‪1‬‬ ‫‪ahmed‬‬ ‫‪1-dec-23‬‬

‫‪1‬‬ ‫‪ahmed‬‬

‫;‪DELETE FROM gc WHERE no=1‬‬


‫‪ :DELETE‬امر حذف صف‬
‫‪ :FROM‬كلمة محجوزة تشير السم الجدول الهيجري الحذف منه‬
‫‪ :gc‬اسم الجدول‬
‫‪ :WHERE no=1‬اداة شرط دتكول احذفلي الصف الي بيه عمود ال‪ no‬يساوي ‪1‬‬

‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬

‫‪7‬‬
‫;‪CREATE TABLE gb AS SELECT * FROM gc‬‬
‫‪ :CREATE‬امر انشاء‬
‫‪ :TABLE‬معناها االمر السابق جان لتيبل‬
‫‪ :gb‬اسم التيبل‬
‫‪ :AS‬كلمة محجوزة هنا دتكول اصنعلي جدول نسخة عن ‪....‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gc‬اسم الجدول الراح ننسخ بياناته لل‪gb‬‬

‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬ ‫‪no‬‬ ‫‪name‬‬ ‫‪bd‬‬

‫‪SELECT‬‬

‫;‪SELECT no+5 FROM gb‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :no+5‬العمود النريد نعرض قيمه وتكون كل قيمه ‪5+‬‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪no+5‬‬

‫‪8‬‬
‫;‪SELECT 5+5 FROM DUAL‬‬
‫‪ :SELECT‬امر عرض‬
‫‪ :5+5‬الشي الي نريد نعرضه‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ : Dual‬جدول تخلقه اللغة يستخدم لالستعالم عن ايشي ما موجود باي جدول مثل عملية الجمع اعاله‬

‫‪5+5‬‬
‫‪10‬‬

‫;‪SELECT SYSDATE FROM DUAL‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :SYSDATE‬كلمة محجوزة تعرض تاريخ اليوم‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ : Dual‬جدول تخلقه اللغة يستخدم لالستعالم عن ايشي ما موجود باي جدول مثل عرض تاريخ اليوم‬

‫‪SYSDATE‬‬
‫‪23-NOV-23‬‬

‫;‪SELECT no+5 no FROM gb‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :no+5‬العمود النريد نعرض قيمه وتكون كل قيمه ‪5+‬‬
‫‪ :no‬االسم الراح تنعرض تحته القيم‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪9‬‬
‫‪no‬‬

‫;‪SELECT no+5 AS no FROM gb‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :no+5‬العمود النريد نعرض قيمه وتكون كل قيمه ‪5+‬‬
‫‪ :AS‬كلمة محجوزة تشير لالسم الراح تنعرض تحته القيم‬
‫‪ :no‬االسم الراح تنعرض تحته القيم‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪no‬‬

‫;‪SELECT no+5 “no” FROM gb‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :no+5‬العمود النريد نعرض قيمه وتكون كل قيمه ‪5+‬‬
‫"‪ :" no‬االسم الراح تنعرض تحته القيم‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪no‬‬

‫‪10‬‬
‫;‪SELECT no||’ ‘||name from gb‬‬
‫‪ :SELECT‬امر عرض‬
‫‪ :no‬العمود النريد نعرض قيمه‬
‫||‪:‬معامل الدمج اليدمج عمودين او عمود ونص او عمود ورقم‬
‫‪ :name‬العمود النريد نعرضه وي العمود ‪no‬‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪no||’ ‘||name‬‬

‫;‪SELECT DISTINCT name FROM gb‬‬


‫‪ :SELECT‬امر عرض‬
‫‪ :DISTINCT‬كلمة محجوزة تستخدم لعرض البيانات بدون تكرار‬
‫‪ :name‬العمود النريد نعرضه بدون تكرار‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬

‫‪name‬‬

‫‪Relational Operators‬‬
‫<‬ ‫اقل من‬
‫>‬ ‫اكبر من‬
‫=<‬ ‫اقل او يساوي‬
‫=>‬ ‫اكبر او يساوي‬
‫<> او =!‬ ‫ال يساوي‬
‫=‬ ‫يساوي‬

‫‪11‬‬
‫‪Logical Operators‬‬
‫‪AND‬‬ ‫اذا الشرطين تحققن ترجع‬
‫ترو‬
‫‪OR‬‬ ‫يكفي انو احد الشرطين‬
‫يتحقق حتى ترجع ترو‬
‫ترجع عكس الشي اليجي‬
‫‪NOT‬‬ ‫بعدها يعني اذا ترو تطي‬
‫فولس والعكس‬

‫;‪SELECT * FROM gb WHERE no BETWEEN 1 AND 5‬‬


‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :WHERE‬اداة شرط‬
‫‪ :No‬اسم العمود الراح نعرض القيم حسبه‬
‫‪ :BETWEEN 1 AND 5‬كلمة محجوزة تطلع النتائج بين العنصرين الحدنناهن‬
‫;)‪SELECT * FROM gb WHERE no IN (1 ,5,6‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :WHERE‬اداة شرط‬
‫‪ :no‬اسم الجدول النريد نطلع االرقام منه‬
‫)‪ :IN(1,5,6‬كلمة محجوزة تطلع العناصر الي حددناهن‬

‫‪12‬‬
‫;‪SELECT * FROM gb WHERE no IS NULL‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :WHERE‬اداة شرط‬
‫‪ :no‬اسم الجدول النريد نطلع االرقام منه‬
‫‪ :IS NULL‬كلمة محجوزة تطلع االندكسات الفارغة‬
‫;’‪SELECT * FROM gb WHERE name LIKE ‘A%‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :WHERE‬اداة شرط‬
‫‪ :name‬اسم الجدول النريد نطلع االرقام منه‬
‫’‪ :Like ‘A%‬كلمة محجوزة تطلع العناصر من الجدول الحددناه اليبدن ب‪A‬‬
‫;’_‪SELECT * FROM gb WHERE name LIKE ‘A‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :WHERE‬اداة شرط‬
‫‪ :name‬اسم الجدول النريد نطلع العناصر منه‬

‫‪13‬‬
‫’_‪ :Like ‘A‬كلمة محجوزة تطلع العناصر من الجدول الحددناه اليبدن ب‪ A‬ووراه اكو حرف واحد‬
‫;‪SELECT * FROM gb ORDER BY no DESC‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :ORDER BY‬كلمة محجوزة تستخدم لترتيب العناصر‬
‫‪ :no‬اسم الجدول النريد نطلع العناصر منه‬
‫‪ :DESC‬كلمة محجوزة ترتب تنازليا‬
‫;‪SELECT * FROM gb ORDER BY no ASC‬‬
‫‪ :SELECT‬امر عرض‬
‫*‪ :‬كلشي‬
‫‪ :FROM‬كلمة محجوزة تشير للجدول الراح نعرض منه‬
‫‪ :gb‬اسم الجدول الراح نعرض منه‬
‫‪ :ORDER BY‬كلمة محجوزة تستخدم لترتيب العناصر‬
‫‪ :no‬اسم الجدول النريد نطلع العناصر منه‬
‫‪ :ASC‬كلمة محجوزة ترتب تنازلي‬

‫‪Functions‬‬

‫عدة صفوف‬
‫عدة صفوف‬ ‫عدة صفوف‬

‫دوال ذات‬ ‫صف واحد‬


‫دوال متعددة‬
‫الصف الواحد‬ ‫الصفوف‬

‫‪14‬‬
‫الصيغة العامة };‪{Select FunctionName from TableName‬‬

‫دوال متعددة الصفوف‬


‫‪Math functions:‬‬
‫)‪ :Ceil(2.3‬دالة التقريب الكبر عدد صحيح يعني هنا الناتج راح يكون ‪3‬‬
‫)‪ :Floor(2.8‬دالة التقريب الصغر عدد صحيح يعني هنا الناتج راح يكون ‪2‬‬
‫)‪:Exp(2‬هاي الدالة تطلع االكسموشينال هنا الناتج راح يكون ‪7.3890561‬‬
‫)‪ :Power(2,3‬هاي الدالة ترفع الرقم االول اساس لالسس الرقم الثاني يعني هنا الناتج راح يكون ‪8=23‬‬
‫)‪ :Abs(-4‬هاي الدالة تنطي المطلق يعني هنا الناتج راح يكون ‪4‬‬
‫)‪:Sqrt(4‬هاي الدالة تنطي الجذر التربيعي يعني الناتج هنا راح يكون ‪2‬‬
‫)‪ Mod(10,2‬هاي الدالة تنطي باقي قسمة الرقم االول عالثاني يعني هنا الناتج راح يكون ‪0‬‬
‫)‪:Round(2.279,1‬هاي الدالة تقرب تقريب عادي القرب عدد صحيح والبعد الفارزة رقم اختياري تحطه‬
‫او ما تحطه اذا حطيته راح يقربلك القرب رقم بعد الفارزة وحسب الرقم االنت خاله يعني هنا الناتج راح‬
‫يطعلع ‪ 2.3‬واذا جنت حاط ‪ 2‬بدل ال‪ 1‬بوكتها راح يكون الناتج ‪2.28‬‬
‫)‪:Trunc(222.799,1‬يقتطع االرقام بعد الفارزة حسب الرقم الثاني اما اذا اجان الرقم الثاني ما موجود‬
‫يستقطعهن كلهن فهنا الناتج راح يكون ‪ 222.7‬اما اذا اجان الرقم الثاني ‪ -1‬فراح يكون الناتج ‪220‬‬

‫‪Date functions:‬‬
‫)’‪ :Months_between(‘1/dec/2003’,’1/dec/2004‬يطلع عدد االشهر بين التاريخين التدخلهم فهنا‬
‫الناتج راح يكون ‪ -12‬اما اذا جنت مدخلهن بالعكس راح يطلع الناتج ‪12‬‬
‫)‪ :Add_months(‘1/dec/2003’,12‬ينطيك التاريخ بعد اضافة االشهر الحددتهن انت يعني هنا الناتج‬
‫راح يكون ‪1/dec/2005‬‬
‫)’‪ :Last_day(‘1/dec/2003‬تطلع اخر يوم بالشهر الحددته يعني هنا الناتج راح يكون ‪31/dec/2003‬‬
‫)‪ :Next_day(‘1/dec/2003’,2‬تطلعلك يوم االسبوع الجاي االنت حددته مثال هنا كلنا يا يوم اثنين يجي‬
‫بعد ‪ 1/dec/2003‬فراح يكون الناتج هنا ‪ 8/dec/2003‬وااليام تكون ‪=1‬االحد ‪=2‬االثنين ‪=3‬الثالثاء‬
‫‪=4‬االربعاء ‪=5‬الخميس ‪=6‬الجمعة ‪=7‬السبت‬
‫)’‪ :Round(to_Date(‘1/dec/2003’),’year‬يقرب التاريخ التدخله حسب الشي التدخله بالخانة الثانية‬
‫يعني هنا الناتج راح يكون ‪1/dec/2004‬‬

‫‪15‬‬
‫)’‪ :Trunk(to_Date(‘1/dec/2003’),’year‬هنا راح يلغي كل االشهر ويرجع السنة الول يوم بيها ولو‬
‫حطينا كلمة ’‪ ‘month‬بدل كلمة ’‪ ‘year‬راح يرجع بس االيام الول يوم وماله عالقة باالشهر والسنين‬

‫‪String functions:‬‬
‫)’‪ :Initcap(‘hi‬تحول اول حروف داخل السترنج الى حرف كبير يعني هنا راح يكون الناتج ‪Hi‬‬
‫)’‪ :Concat(‘hi’,’hh‬تضيف السترنج الثاني عاالول يعني هنا الناتج راح يكون ‪hihh‬‬
‫)’‪ :Lower(‘Hma‬تحول كل الحروف الى حروف صغيرة يعني هنا الناتج راح يكون ‪hma‬‬
‫)’‪ :Upper(‘hma‬تحول كل الحروف الى حروف كبيرة يعني هنا الناتج راح يكون ‪HMA‬‬
‫)’‪ :Length(‘hma‬ترجع طول السترنج يعني هنا الناتج راح يكون ‪3‬‬
‫)’‪ :Replace(‘hi its me’,’me’,’hma‬تبدل المقطع الموجود بالخانة الثانية بالمقطع الموجود بالخانة الثالثة‬
‫من السترنج بالخانة االولى فيكون الناتج ‪hi its hma‬‬
‫)’‪ :Ltrim(‘xyxhma’,’xy‬تحذف الحروف الي نخليهن بالخانة الثانية من الجهة اليسار للخانة االولى فيكون‬
‫الناتج ‪hma‬‬
‫)’‪ :Rtrim(‘hmaxyx’,’xy‬تحذف الحروف النخليهم بالخانة الثانية من الجهة اليمين للخانة االولى فيكون‬
‫الناتج ‪hma‬‬
‫)‪ :Substr(‘string’,3,3‬ترجع جزأ من السترنج التدزه بالخانة االولى يبدي من الموقع التدزه بالخانة الثانية‬
‫ويستمر لعدد الحروف التدزه بالخانة الثالثة فهنا راح يرجع الناتج ‪rin‬‬
‫)’‪ :To_number(‘5‬تحول السترنج الى رقم بس شرط يكون هو رقم يعني مو حرف او رمز او شي‬
‫)’‪ :To_Date(‘1/dec/2003‬تحول السترنج الى تاريخ بس شرط يكون هو تاريخ مو كلمة او رقم او شي‬
‫)’‪ :To_char(‘1/dec/2003’,’dd/mm/yyyy‬تحول السترنج الى كاركتر هنا تكدر تتحكم بنمط عرضه‬
‫مثال هنا راح يطلع الناتج ‪1/12/2003‬‬
‫)’‪:To_char(1.23,’0.9‬تحول الرقم الى النمط التدزه الها بعدها فراح يكون الناتج ‪1.2‬‬

‫دوال ذات الصف الواحد‬


‫)‪ :Max(deg‬ترجع اكبر رقم بالعمود التدخله الها‬
‫)‪ :Min(deg‬ترجع اصغر رقم بالعمود التدخله الها‬
‫)‪ :Sum(deg‬ترجع مجموع االرقام داخل العمود التدخله الها‬
‫)‪ :Avg(deg‬ترجع معدل االرقام داخل العمود التدخله الها‬

‫‪16‬‬
‫)‪ :Count(deg‬ترجع عدد البيانات داخل العمود التدخله الها‬
‫)’‪ :NVL(deg,’fail‬يبدل ال‪ null‬بالقمية الندخلها بالخانة الثانية‬
‫)’‪ :Decode(gender,’m’,’mail’,f,’female’,’error‬يبدل القيم من العامود الندخله حسب القيم الدخلناهن‬
‫بعده واذا ضفنا قيمة باالخير فاي قيمة عدا القمي الدخلناهن بالبداية راح ينحط بمكانها هالقيمة‬
‫;‪Select count(deg) from TableName having deg>=50 GROUP BY gender‬‬
‫‪ :Select count(deg) from TableName‬امر عرض عدد االصفوف بالعمود ‪deg‬‬
‫‪ :having deg>=50‬هذا شرط يكول عد الصفوف بس للصفوف القيمتها اكبر من ‪50‬‬
‫‪ :GROUP BY gender‬هاي اداة تجزيء راح تقسم العمود لجزأين حسب العمود التمرره الها وهنا مررنا‬
‫العمود ‪ gender‬فراح تجزأهم حسب جنسهم وتنطيك تعداد الصفوف لكل جنس‬

‫‪Male‬‬ ‫‪Female‬‬
‫‪90‬‬ ‫‪90‬‬
‫‪80‬‬ ‫‪80‬‬
‫‪70‬‬
‫‪60‬‬

‫‪count(deg) from‬‬
‫‪4‬‬
‫‪2‬‬

‫‪17‬‬
Join
‫وهو استرجاع بيانات الكثر من جدول‬
‫ انواع له‬4 ‫وتوجد‬

‫ـ‬ equal join


‫ـ‬ non equal join
‫ ـ‬Outer join
‫ ـ‬Self join

Students Stages

id name group stage id Stage


1 hussein a 2 1 Firs stage

2 ahmed a 3 2 Second stage

3 hussein a 4 3 Third stage

4 Fourth stage

Select students.name, students.group , stages.stage from students,


stages where students.stage = stages.stage ;

name group stage


hussein a Second stage

ahmed a Third stage

hussein a Fourth stage

18
non equal join‫ال‬
Select employ.name, employ.salary , details.stage from employ, details
where employ.salary between details.highest AND details.lowest ;
Self join‫ال‬
‫الي هو حرفيا ارتباط الجدول بنفسه‬
Self
id name Manger_id
1 Wesam
2 Sura 1
3 sara 2

Select e.name employ , m.name manger from self e, self m where m.no =
e.no_manger ;

employ manger

sura wesam

sara sura

‫ امر تحديد عادي بس ضفنا اسم الجدول قبل اسم‬:Select e.name employ , m.name manger
‫العمود حتى ال يصير اشتباه‬
‫ هنا انطينا لكل جدول اسم مستعار نكدر نستخدمه داخل هذا االستعالم‬:from self e, self m
‫ شرط عادي‬:where m.no = e.no_manger ;

‫ الي هو‬outer join ‫) على يمين او يسار اليساوي باالستعالم وكتها راح يكون‬+( ‫في حال ضفت‬
equal ‫المفروض يضهرلك كل الحاالت حتى الما مشتركة حسب الجهة التحط العالمة بيها على عكس ال‬
‫ الي يضهر بس الحاالت المشتركة‬join

19
Select e.name employ , m.name manger from self e, self m where m.no)+( =
e.no_manger ;

employ manger

sura wesam

sara sura

wesam

‫او‬
Select e.name employ , m.name manger from self e, self m where m.no =
e.no_manger)+( ;

employ manger

sura wesam

sara sura

sara

Sub Query
‫اكتب استعالم يعرض رواتب الموظفين الذين يستلمون راتب اكبر من راتب الموظف علي؟‬
SELECT salary FROM company WHERE sal>(SELECT sal FROM company WEHRE
name=”ali”);
‫اعرض درجات الطالب التي تكون مساوية الكبر درجة؟‬
SELECT degrees FROM students WHERE degrees=(SELECT MAX(degrees) FROM
students);
‫قم بعرض ارقام االدارات واقل راتب ياخذه الموظف فيها بحيث يكون اقل راتب فيها اكبر من اقل راتب في‬
‫؟‬20 ‫االدارة رقم‬
SELECT dep_num, MIN(salary) FROM departments HAVING MIN(salary) >( SELECT MIN(salary) FROM
departments WHERE dep_num=20) GROUP BY dep_num;

20
‫اعرض اسماء ووظائف الموظفين الذين يعملون نفس وظيفة الموظف رقم ‪ 70‬ويأخذون مرتب اكبر من‬
‫مرتب الموظف رقم ‪90‬؟‬
‫‪SELECT names,jobs FROM employ WHERE jobs=( SELECT jobs FROM employ‬‬
‫‪WHERE emp_id=70) AND salary>( SELECT salary FROM employ WHERE‬‬
‫;)‪emp_id=90‬‬
‫االستعالمات التي ترجع اكثر من قيمة‬
‫‪ :ALL‬الزم كل القيم تحقق الشرط‬
‫‪ :ANY‬الزم وحدة من القيم على االقل تحقق الشرط‬
‫‪ :IN‬الزم وحدة من القيم على االقل تحقق التساوي‬

‫قم بعرض اسماء ورواتب وارقام ادارات الموظفين الذين يأخذون رواتب مساوية القل راتب لكل ادارة؟‬
‫)‪SELECT name,salary,no_mange FROM hma WHERE salary IN(SELECT min(salary‬‬
‫;)‪from hma group by no_mange‬‬

‫قم بعرض ارقام واسماء ووظائف ورواتب الموظفين الذين يأخذون رواتب اقل من راتب الموظفين‬
‫المحاسبين ؟‬
‫‪SELECT no, name, job, salary FROM company WHERE salary<ALL(SELECT salary‬‬
‫;)’‪FROM company WHERE job=’accouter‬‬

‫‪21‬‬

You might also like