السلام عليكم ورحمة الله ,, لقد قرأت مؤخرا اقتراح السيد عمر باعقيل حول دروس عن ال oracle constraints
انا اسفة لانني قرات الاقتراح من فترة قريبة فقط ,,،،،،،،،
سوف نبدأ ب سلسلة من الدروس عن oracle constraints
المقصود ب constraint هي طريقة لاجبار تنفيذ rule على مستوى الملف
او العمود ..
the following constraints are vaild in oracle:
not null
unique
primaryk key
foreignh key
check
سوف نتناول كل موضوع منها بالتفصيل ,,
لكن بداية يجب ان نحيط علما ببعض الأمور :
1) انه اذا لم نعطي اسما لل constraint الذي نبنيه فأن oracle
تعطيه اسما يبدأ ب SYS_Cn format
لذلك يفضل تعريف كل constraint يتم بناؤه باسم خاص فيه يسعل الرجوع له لاحقا
2) لعرض جميع الconstraint على مستوى الuser
select * from user_constraints
اما اذا اردنا معرفة كل ال constraints +owner
dba_constraints all_constraints data dictionary tables
3) نستطيع بناء ال constraint
at column level
or at table level
والفرق بينهما انه بحالة ال column نعمل
refernece only for single column+and can define any type of constraints
بينما بحالة table نستطيع
refernece for one or more column +can define any constraint except not null constraint
لان ال not null على مستوى column فقط
the general syntax is
column constraint :
CREATE TABLE [SCHEMA.] TABLE (COLUMN DATATYPE [DEFAULT EXPR ] [COLUMN CONSTRAINT ] .... ..... [TABLE CONSTRAINT] (;
FOR EXAMPLE
CREATE TABLE EMP( EMPNO NUMBER(4), ENAME VARCHAR2(10), ..... DEPTNO NUMBER(3) NOT NULL CONSTRAINT EMP_EMPNO_PK PRIMARY KEY(EMPNO)
سنبدا بالحالة الأولى NOT NULL :
هذا ال CONSTRAINT لا يسمح بادخال nULL VALUES TO NOT NULL COLUMN
يتم تعريف هذا ال CONSTRAINT فقط على مستوى COLUMN
نستطيع اعطاؤه اسم كما قلنا سابقا حتى نستطيع الرجوع له لاحقا ..
CONSTRAINT EMP_dEPTNO_NN NOT NULL