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

من الصفر الى النهاية Oracle 10g /sql

رائج
بدأه saf aldeen في 11 مايو 2009 · 102 رد · 48,226 مشاهدة · في قسم لغة الاستفسارات SQL
مشاركة: واتساب X فيسبوك تيليجرام
#26
IGBSpeed كتب:
بســم الله الـرحمــن الرحيــم

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

شكراً لك اخي الكريم سيف الدين وجزاك الله خيراً على الإهتمام والتنسيق

بالنسبة لموضوعك اخي فيصل فقم بالتالي :

بخانة إسم المستخدم أكتب التالي ثم أضغط إنتر

/nolog

post-54955-1242250281_thumb.jpg

وبعدها قم بكتابة الأوامر التالية :

connect sys as sysdba

المفترض انه يسجلك تلقائياً كـ sys as sysdba

post-54955-1242250349_thumb.jpg

ومن هنا قم بكتابة الأمر التالي :

Alter User Scott identified by tiger account unlock

ومن ثم للذهاب إلى المستخدم Scott قم بكتابة الأمر التالي :

Conn Scott/tiger

طبعاً conn إختصاراً للأمر Connect

post-54955-1242250427_thumb.jpg

بالتوفيق ،،

دخلت بالامر /nolog

ثم

Alter User Scott identified by tiger account unlock

فطلب مني كلمة المرور القديمة الخاصة بـ scott

ثم أدخلت كلمة مرور جديدة و أكدت عليها فدخل إلى محرر SQL Plus

بارك الله فيكما

===

نتابع الدروس معاكم

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#27

بسم الله الرحمن الرحيم

STRUCTURE QUEREY LANGUAGE (SQL)

لغة الاستعلام البنيوية

هو نظام يستخدم قواعد البيانات العلائقية وتمتاز بالكفاءة العالية والسرعة والأمان وسهولة الأوامر وهي قريبة من لغة الانسان.

يتم كتابة أوامر SQL من خلال المحث التالي ( SQL> )

وتخزن هذه الأوامر داخل SQL Buffer إلى أن يتم كتابة أمر جديد

تقسم أوامر SQL الى :

post-202460-1242252117_thumb.png

أنواع البيانات Data Type :

post-202460-1242252183_thumb.png

ويوجد انواع اخرى لكن نكتفي بالسابق

القيود Constraints

وهي قيود (شروط) معينة توضع على الجدول او حقول الجدول لتنظيمها

انواع القيود :

· Not Null : حيث يمنع ترك الحقل فارغاً عند ادخال البيانات أي لا بد من ادخال قيمة في هذا الحقل.

· Unique : يمنع تكرار القيم داخل الحقل ويطبق على مستوى الجدول ايضاً.

· Primary Key : هو مفتاح رئيسي في الجدول ويتميز بعدم تكرار القيم (Unique) وعدم ترك الحقل فارغاً (Not Null)

ويطبق على مستوى الجدول ايضاً.

· Foreign Key المفتاح الاجنبي: هو عبارة عن حقل او اكثر يستخدم للربط بين الجداول ويكون Primary Key في جدوله الاصلي ويطبق على مستوى الجدول ايضاً.

ملاحظة: يجب ان يكون المفتاح الاجنبي من نفس نوع البيانات للمفتاح الرئيسي.

· Check التحقق (الفحص): يستخدم للتحقق من قيمة حقل معين عند الادخال حسب الشرط الذي تم وضعه في ال Check

يطبق على مستوى الجدول ايضا.

· Null : وتعني يمكن عدم الادخال في الحقل وهي افتراضية حتى لو لم تكتبها .

ملاحظة هامة جداً اخواني :

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

كالتالي Sys_999 وعندها ستجد صعوبة أين حدث الخطأ بالضبط.

طرق انشاء القيود عند انشاء الجداول

1) طريقة In Line أي على مستوى الاعمدة

2) طريقة Out Line أي على مستوى الجدول

الدرس القادم ان شاء الله سيكون عن قسم DDL (انشاء الجداول , التعديل على الجداول, حذف ...الخ)

ربنا تقبل منا انك انت السميع العليم

تم تعديل هذه المشاركة بواسطة saf aldeen في 14 مايو 2009 في 01:23

1

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#28
فيصل الحربي كتب:
بسم الله الرحمن الرحيم

تقريبا متقاربة

و الاسماء هي نفس الاسماء و أزلت علامة الصح من أمام اليوزر scott

===

السلام عليكم

اخي الكريم يجب ان تدخل على user administrator built in account في نظام التشغيل الخاص بك

و الا سوف تحدث معك مشاكل و ده عن خبرة

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

ســـيف الدين

#29

مشكور استاذي شرح وافي وكافي

و في انتظار الدروس القادمة

#30

انشاء الجداول

شروط تأخذ بعين الاعتبار عند كتابة اوامر SQL:

- يمكن كتابة الاوامر على سطر واحد او على عدة اسطر.

- يمكن كتابة الاوامر باحرف صغيرة او كبيرة

- يجب ان ينتهي الامر بالفاصلة المنقوطة.

شروط تأخذ بعين الاعتبار عند كتابة اسم الجدول:

- يجب ان يبدأ اسم الجدول بحرف.

- لا يجوز تكرار اسم الجدول في نفس قاعدة البيانات

- لا يجوز استخدام اسم الجدول ككلمة محجوزة keywords في الاوراكل.

الصيغة العامة لانشاء الجداول

CREATE TABLE Table Name (

, قيد او بدون قيد (حجم الحقل) نوع البيانات اسم الحقل

, قيد او بدون قيد (حجم الحقل) نوع البيانات اسم الحقل

............

............

;( قيد او بدون قيد (حجم الحقل) نوع البيانات اسم الحقل

مثال : انشاء جدول بطريقة Inline مع استخدام جميع القيود:

SQL> CREATE TABLE mycode


(id NUMBER (6) PRIMARY KEY ,


Name VARCHAR2(25) NOT NULL ,


Birth_date Date ,


Salary NUMBER(4,2) CHECK(salary>1000) ,


Card_no NUMBER(12) UNIQUE ,


Dept_no NUMBER(2) REFERENCES Depart(Dept_no) ) ;

تعني ان الحقل REFERENCES

Dept_no NUMBER(2)
مفتا ح رئيسي (Dept_no)للحقل Departهو مفتاح اجنبي يعود بمرجعية على جدول اخر اسمه

مثال : انشاء جدول بطريقة Outline

(id NUMBER (6) ,
Name VARCHAR2(25) ,

Birth_date Date ,
Salary NUMBER(4,2) ,

Card_no NUMBER(12) ,

Dept_no NUMBER(2) ,

CONSTRAINT id_mycode_pk PRIAMERY KEY(id),

CONSTRAINT deptno_mycode_fk FORIEGN KEY(dept_no) REFERENCES Depart(dept_no));

SQL> CREATE TABLE mycode

CONSTRAINT : تعني قيد

id_mycode_pk : اسم القيد

PRIAMERY KEY(id) :حقل مفتاح رئيسي

ملاحظة طريقة Outline هي الافضل حسب رأي الكثيرين.

لعرض عملية بناء الجدول هيكلية الجدول

SQL > DESC اسم الجدول

ALTER TABLE

التعديل على عملية بناء الجدول هيكلية الجدول

وعن طريق هذا الامر نستطيع عمل مايلي

- اضافة حقل جديد الى جدول منشأ سابقاً.

- التعديل في صفة حقل ما.

- الاضافة والتعديل والحذف في القيود.

اضافة حقل جديد الى جدول :

ADD (قيد او بدون قيد (حجم الحقل) نوع البيانات اسم الحقل );

SQL> ALTER TABLE اسم الجدول

مثال:

ADD (place VARCHAR2(40) NOT NULL );

SQL> ALTER TABLE mycode

اضافة قيد جديد الى جدول :

ADD(CONSTRAINT place_chk CHECK( palce IN('A','B'));

SQL> ALTER TABLE mycode

التعديل على حقل او قيد في الجدول:

MODIFY (قيد او بدون قيد (حجم الحقل) نوع البيانات اسم الحقل);

SQL> ALTER TABLE اسم الجدول

مثال : التعديل على حقل

MODIFY(id NUMBER(10) );

SQL> ALTER TABLE mycode

هنا تم التعديل على حجم الحقل من 8 الى 10 ويمكن التعديل على نوع البيانات ايضاً.

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

الغاء ( حذف ) حقل من جدول :

DROP Column اسم الحقل
مثال

SQL> ALTER TABLE mycode

DROP Column place ;


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

SQL> ALTER TABLE اسم الجدول

إعادة تسمية الجدول :

SQL>RENAME old name TO new name


SQL>RENAME mycode TO firstcode

ربنا تقبل منا انك انت السميع العليم

تم تعديل هذه المشاركة بواسطة saf aldeen في 15 مايو 2009 في 14:25

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#31

بســم الله الـرحمــن الرحيــم

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

إستخدم الزر code.gif لإدراج الأكواد فهو يعمل بصورة ممتازة

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#32

السلام عليكم

اخواني الي متابعين الدروس

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

ارجو الاهتمام والتفاعل للموضوع

مع خالص احترامي للجميع

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#34

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

نحن متابعين كل دروسك بإذن الله, وماشاء الله أنت بذلت مجهود جداً رائع

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

لكن لدي سؤال: كيف يتم تحديد حجم للبيانات ؟؟؟

#35

مشكورين اخواني على الردود

وقريبا سأضع نشاط للدروس الماضية

اقتباس
لكن لدي سؤال: كيف يتم تحديد حجم للبيانات ؟؟؟

اخي الكريم عذراً لم افهم ما تقصد ب حجم البيانات ؟

ارجو التوضيح

مع خالص احترامي للجميع

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#36

السلام عليكم

ارجو الاجابة على النشاط بذكر رمز السؤال والاجابة كالتالي

أ) الاجابة

ب) الاجابة

......وهكذا

نشاط رقم 1

ادخل على user scott قاعدة البيانات اوراكل

أ‌) قم بإنشاء الجدولين التاليين مع ربط الجدولين عن طريق العلاقة فيما بينهما 5 علامات

post-202460-1242572890_thumb.png

5 علامات

ب) اعرض هيكلية الجدول (بناء الجدول)ا

ج) اضف حقل جديد على جدول A اسمه Hplace بحجم 40 وبدون قيود

د) اضف قيد جديد على حقل TEL في جدول A بحيث لاتتكرر بياناته

ل) عدل حجم الحقل لاسم الموظف في جدول A من 50 الى 40

و) احذف الحقول التالية من جدول A ( Emp_s , TEL)

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

بانتظار الردود

مع كل الاحترام

تم تعديل هذه المشاركة بواسطة saf aldeen في 17 مايو 2009 في 18:20

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#37

كيف الحال استاذ

استاذي هل الاجابات تكون هنا ام يتم ارسالها لك على الخاص

#38

السلام عليكم

اخي الكريم الاجابات تكون على نفس الصفحة حتى نستطيع مناقشتها ويستفيد الاخرين من اجاباتكم

مع الاحترام

تم تعديل هذه المشاركة بواسطة saf aldeen في 18 مايو 2009 في 16:52

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#39

الاجابة

create table B (

Deptno number(2),

name varchar2(50) not null,

location varchar2(40),

constraint b_Deptno_PK PRIMARY KEY (Deptno));

create table A(

empno number(5),

Ename varchar2(50) not null,

Emp_s char(1),

Comm. number(2,2),

Deptno number(2),

Tel varchar2(15),

constraint A_empno_PK PRIMARY KEY(empno),

constraint A_Emp_s_CH CHECK (Emp_s in ('M','F')),

constraint A_Deptno_FK FOREIGN KEY(Deptno) REFERENCES B(Deptno));

ب-الاجابة

DESC A;

DESC B;

ج-الاجابة

alter table A ADD(Hplace varchar2(40));

د-الاجابة

alter table A ADD(constraint A_TEL_UK UNIQUE(Tel));

ل-الاجابة

alter table A MODIFY (name varchar2(40));

و-الاجابة

alter table A DROP Column Tel;

alter table A DROP Column Emp_s;

ملاحظة

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

سؤال استاذي

لدينا الحقل Emp_s قمنا بوضع قيد check له هل هكذا يتم ملئ الحقل بالشرط ام انه يبقى فارغا لني قريت احد ملاحظاتك في تعديل الحقل انه يجب ان يكون فارغا ليتم حذفه و نحن لدينا عملية حذف لحقل Epm_s و الذي يحتوي على قيد check

وشكرا

تم تعديل هذه المشاركة بواسطة moh4algeriaprog في 18 مايو 2009 في 17:09

#40

بارك الله بك اخي moh4algeriaprog على الرد بالاجابات وهذا يدل على متابعتك واهتمامك بالموضوع

وسوف ترى نتيجة اجابتك قريبا

اما بالنسبة لتغير الحقل رقم الهاتف من رقم الى نص جائز

وبالنسبة لحقل الذي عليه قيد Check فهي قيد فقط وليست عملية ادخال اي انه يبقى فارغأ

شكرا لك

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#41

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

و لابد ان اغتنم هذه الفرصة خصوصا معك استاذ

#42

ان شاء الله متابعتك للموضوع ستفيدك كثيرا وتجعلك خبيرا كما تريد

واهم شيء التطبيق المستمر للأوامر

اخي لكل شيْ اساس واساس الاوراكل هي SQL اذا ابدعت بها ابدعت فيما بعدها ك PL/SQL و Developer

تم تعديل هذه المشاركة بواسطة saf aldeen في 18 مايو 2009 في 17:40

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#43

ساحاول استاذ وننتظر منك المزيد

#44

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

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

أ)

SQL>create Table A(empno Number(5) PRIMARY KEY,Ename varchar2(50) NOTNULL,Emp_s varchar2(1),Hirdate,comm Number(2,2),Deptno Number(2) FOREIGN KEY,TEL Number(15));

SQL>create Table B(Deptno Number(2) FOREIGN KEY,name varchar2(50) NOTNULL,location varchar2(40));

ب)

SQL>Desc A;

SQL>Desc B;

ج)

SQL>Alter Table A ADD(Hplace varchar2(40));

د)

SQL>Alter Table A ADD(CONSTRAINT TEL_1 UNIQUE(TEL));

ل)

SQL>Alter Table A MODIFY(Ename varchar2(40));

و)

SQL>Alter Table A Drop column TEL;

SQL>Alter Table A Drop column Emp_s;

إذا في عندي أخطاء ياريت تقول لي وين الخطأ بالضبط وتصححها لي إذا مافيها تعب

لك مني جزيل الشكر والإحترام

تم تعديل هذه المشاركة بواسطة ~SH~ في 18 مايو 2009 في 21:17

#45

السلام عليكم

بارك الله بكما على المتابعة والردود

ابدعتم اخواني في اجاباتكم

جميع اجاباتك كانت صحيحة الاخ moh4algeriaprog

الاخ SH جميع اجابتك صحيحة الا في عملية انشاء الجداول حيث يظهر اخطاء بالكود واضحة وهي كالتالي [

اقتباس
الملاحظات على جدول A

(Emp_s varchar2(1 ليس خطأ وانما لم تكمل حسب المطلوب في السؤال حيث يوجد عليه قيد

تصحيح كالتالي

['Emp_s varchar2(1) check (Emp_s IN('M','F

*************

Hirdate لم تذكر نوع البيانات لهذا الحقل

تصحيح كالتالي

Hirdate Date

****************

Deptno Number(2) FOREIGN KEY

هنا لم تعمل عملية الربط مع الجدول الثاني وهي كالتالي

Deptno Number(2) References B(Deptno)

***********************************

الملاحظات على جدول B

Deptno Number(2) FOREIGN KEY

هنا الحقل مفتاح رئيس وليس مفتاح اجنبي التصحيح كالتالي

Deptno Number(2) Primary Key

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

طبعا اترك النتيجة لكم

الى الامام والله يوفقكم

تم تعديل هذه المشاركة بواسطة saf aldeen في 19 مايو 2009 في 16:38

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#46

استاذي بارك الله فيك

لكني اود ان اوظح اني نسيت الحقل

hiredate من النوع date فعذرا استاذي

#47
اقتباس
لكني اود ان اوظح اني نسيت الحقل

hiredate من النوع date فعذرا استاذي

مشكور على ملاحظتك حيث لم انتبه لها

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

انتظروا الدروس القادمة

مع كل الاحترام

تم تعديل هذه المشاركة بواسطة saf aldeen في 19 مايو 2009 في 21:42

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#48

نعم استاذ ليس المهم النقطة المهم اننا نفهم طريقة عملنا و تسييرنا لقواعد البيانات

و ذكرتني بالنقطة و ايام الدراسة ايام ماكان الاساتذة و ليس الجميع يرغموننا بطريقتهم على التفكير الا في النقطة

المهم نحن بانتظار دروسك القادمة ان شاء الله تعالى

#49

بسم الله الرحمن الرحيم

تابع للدرس الماضي عن الجداول

حذف العلاقات بين الجداول

الامثلة ستكون على جدول A,B

SQL> ALTER TABLE B DROP Primary Key Cascade ;

حذف الجداول

الصيغة العامة

; اسم الجدولSQL>DROP TABLE

SQL>DROP TABLE A ;

هنا لم يتم الحذف نهائياً وانما تم الحذف مؤقتا والبيانات اصبحت في Recycle Bin الخاصة بالاوراكل حيث يمكن استعادة الجدول كالتالي

SQL> FlashBack Table B To Before Drop ;

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

SQL>DROP TABLE B Cascade Constraints ;

تعني احذف الجدول بغض النظر عن قيد الربط بالعلاقة معه

Truncate بتر الجدول

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

SQL>Truncate Table A ;

ملاحظة

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

انواع الجداول في بيئة الاوراكل

جداول يتم انشاؤها عن طريق المستخدمين

جداول يتم انشاؤها عن طريق خادم الاوراكل وتسمى Data dictionary وهي تحتوي على معلومات عن قاعدة البيانات كالمستخدمين ومسؤول قاعدة البيانات

لعرض جميع جداول للمستخدم

SQL> SELECT *FROM Tab ;

لعرض اسماء القيود وانواعها على الجداول كالتالي :

SQL> SELECT Constraint_Name , Constraint_Type Form user_Constraints WHERE Table_Name='A' ;

انواع الربط بين الجداول Types of Join وتفيد عمليات الربط بين الجداول للحصول على البيانات

- الربط بالتساوي Equijoine : يكون بين جدولين او اكثر .

الشروط :

يجب ان يكون الشرط في جملة SELECT بين مفتاح رئيسي و مفتاح اجنبي

يحتوي الشرط على (=) فقط .

يمنع استخدام المعامل OR في جملة الشرط ولكن يستخدم AND فقط.

الامثلة ستكون على جداول EMP ,DEPT للمستخدم Scott

مثال :

SQL> SELECT EMP.empno,EMP.ename,DEPT.deptno,DEPT.dname FROM EMP,DEPT WHERE EMP.deptno=DEPT.deptno

شرح للجملة الماضية:

SELECT: تعني عملية امر استعلام

EMP.empno : تعني ان حقل empno وهو رقم الموظف موجود داخل جدول EMP.( يعني تحديد الحقل واي جدول موجود فيه) والحقول الباقية نفس الشيء

WHERE : تعني شرط

EMP.deptno=DEPT.deptno: عملية التساوي بين الجدولين عن طريق حقل مشترك بينهما وهو deptno

حيث EMP.deptno : مفتاح اجنبي

حيث DEPT.deptno: مفتاح رئيسي

*************************************

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

ارجو التطبيق لدرس اليوم

ربنا تقبل منا انك انت السميع العليم

تم تعديل هذه المشاركة بواسطة saf aldeen في 20 مايو 2009 في 00:34

لا اله الا الله العلي العظيم لا اله الا الله الحليم الكريم

لا اله الا الله وحده لا شريك له له الملك وله الحمد وهو على كل شي قدير

#50

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

الله يجزيك كل خير أستاذي الفاضل على التصحيح,,,,

لدي سؤال في الدرس الماضي...

هل من الممكن تعديل أو إضافة أكثر من حقل في أمر واحد فقط؟؟؟

ولك جزيل الشكر

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