Sunday, May 1, 2011
تجريبببب
القيد UNIQUE:
القيد UNIQUE يتطلب بأن كل قيمة في العمود أو مجموعة الأعمدة تكون وحيدة أي أن ليس هناك سجلين يحويان قيم متكررة في عمود أو مجموعة من الأعمدة في الجدول.
العمود أو مجموعة من الأعمدة المتضمنة في تعريف القيد UNIQUE تدعى UNIQUE key.
إذا المفتاح UNIQUE يتضمن أكثر من عمود واحد فمجموعة الأعمدة تدعى a composite UNIQUE key
قيد المفتاح UNIQUE تسمح بإدخال قيم NULL ما لم يحدد القيد NOT NULL على نفس الأعمدة. في الحقيقة أي عدد من السجلات يمكن أن يتضمن قيم NULL للأعمدة بدون قيود NOT NULL لأن NULL لا تعتبر مساوية لأي شيء.
مثال:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE (dname));
القيود UNIQUE تعرف على المستوى الجدول أو العمود. أما المفتاح UNIQUE المركب ينشأ على مستوى الجدول .
القيد PRIMARY KEY:
القيد PRIMARY KEY ينشأ المفتاح الأساسي للجدول, فقط مفتاح أساسي وحيد يمكن إنشائه لكل جدول.
القيدPRIMARY KEY هو عمود أو مجموعة من الأعمدة التي تعرف بشكل وحيد كل سجل في الجدول
هذا القيد يجبر العمود أو تركيبة الأعمدة أن تكون وحيدة ويؤكد بأنه لا يوجد أي عمود يشكل جزء من المفتاح الأساسي يحتوي قيم NULL.
يمكن أن يعرف هذا القيد على مستوى العمود أو على مستوى الجدول. المفتاح الأساسي المركب ينشأ على تعريف مستوى الجدول.
مثال:
CREATE TABLE dept(
deptno NUMBER(2),
dname VARCHAR2(14),
loc VARCHAR2(13),
CONSTRAINT dept_dname_uk UNIQUE (dname),
CONSTRAINT dept_deptno_pk PRIMARY KEY (deptno));
يعرف هذا المثال قيد PRIMARY KEY على عمود deptno للجدول DEPT اسم هذا القيد هو dept_deptno_pk.
القيد FOREIGN KEY:
القيد المتكامل المرجعي أو المفتاح الغريب (الثانوي) يعين العمود أو مجموعة من الأعمدة كمفتاح ثانوي ويؤسس العلاقة بين المفتاح الأساسي أو المفتاح الفريد في نفس الجدول أو في جدول مختلف.
قيمة FOREIGN KEY يجب أن تطابق قيمة موجودة في جدول الابن أو تكون NULL.
القيد FOREIGN KEY يعرف على مستوى العمود أو الجدول, المفتاح الثانوي المركب يجب أن يعرف باستخدام تعريف مستوى الجدول.
مثال:
CREATE TABLE emp(
empno number (4) ,
ename varchar2(10) NOT NULL,
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm. number(7,2),
deptno number(7,2) NOT NULL,
CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)
REFERENCES dept (deptno));
يعرف هذا المثال قيد FOREIGN KEY على العمود DEPTNO من الجدول EMP اسم القيد هو EMP_DEPTNO_FK.
المفتاح الثانوي يعرف في جدول الابن والجدول الذي يحتوي العمود المرجعي هو جدول الأب.
المفتاح الثانويFOREIGN KEY يعرف باستخدام مجموعة من الكلمات المفتاحية التالية:
FOREIGN KEY يعرف العمود في جدول الابن على مستوى الجدول.
REFERENCES يحدد الجدول والعمود للجدول الأب.
ON DELETE CASCADE يشير بأنه عندما يحذف سجل في جدول الأب فإن السجلات المعتمدة أو المرتبطة وفق هذا القيد في جدول الابن أيضاً ستحذف.
بدون الخيار ON DELETE CASCADE لا يمكن حذف السجل في جدول الأب إذا ذكر في جدول الابن.
القيد CHECK :
يعرف هذا القيد شرط محدد يجب أن يحققه كل سطر من الجدول . الشرط يستخدم نفس معاملات المقارنة المستخدمة في شروط عبارة SELECT .
مثال :
........., deptno NUMBER (2)
CONSTRAINT emp-deptno _ck
CHECK (deptno BETWEEN 10 AND 99) ,.....
إضافة القيد إلى الجدول :
يمكن إضافة القيد إلى جداول موجودة باستخدام عبارة ALTER TABLE مع عبارة ADD كما في الشكل:
ALTER TABLE table
ADD [CONSTRAINT constraint ] type (column);
حيث:
Table اسم الجدول.
Constraint اسم القيد.
Type نوع القيد.
Column اسم العمود المتأثر بالقيد.
اسم القيد هو اختياري بالرغم من أنه يفضل تسميته. إذا لم تسمي قيودك النظام سيولد أسماء افتراضية.
مثال:
ALTER TABLE emp
ADD CONSTRAINT emp_mgr_fk
FOREIGN KEY(mgr) REFERENCES emp(empno)
هذا المثال ينشأ قيد FOREIGN KEY على جدول EMP , القيد يؤكد بأن المدير موجود كموظف فعلي في جدول EMP.
إرشادات:
يمكنك إضافة وحذف وتفعيل أو إلغاء تفعيل القيد. ولكن لا يمكن تعديل بنيته.
يمكنك إضافة القيد NOT NULL لعمود موجود باستخدام الجزء MODIFY لعبارة ALTER TABLE.
ملاحظة هامة:
يمكنك إنشاء قيد NOT NULL جديد فقط إذا كان الجدول لا يحتوي سجلات لأن المعطيات لا يمكن تحديدها لسجلات موجودة في نفس وقت إضافة العمود.
حذف القيد من الجدول :
لحذف قيد يمكنك معرفة اسمه من
USER_CONSTRAINTS and USER_CONS_COLUMNS data dictionary views
ثم استخدم عبارة ALTER TABLE مع عبارة DROP.
خيار CASCADE لعبارة DROP ستحذف أي قيود تابعة أيضاً.
ALTER TABLE table
DROP PRIMARY KEY | UNIQUE (column) |
CONSTRAINT constraint [CASCADE];
حيث : table اسم الجدول.
Column اسم العمود المتأثر بالقيد.
Constraint اسم القيد.
مثال:
حذف قيد المدير من جدول emp.
ALTER TABLE emp
DROP CONSTRAINT emp_mgr_fk ;
مثال:
ALTER TABLE dept
DROP PRIMARY KEY CASCADE;
هذا المثال يحذف القيد PRIMARY KEY على جدول dept ويحذف القيد FOREIGN KEY المتشارك على عمود emp.deptno .
إلغاء تفعيل القيد :
يمكنك إلغاء تفعيل القيد بدون حذفه أو إعادة إنشائه باستخدام عبارة ALTER TABLE مع الجزء DISABLE.
ALTER TABLE emp
DISABLE CONSTRAINT constraint [CASCADE];
حيث: table اسم الجدول.
Constraint اسم القيد.
إرشادات:
يمكنك استخدام عبارة DISABLE في عبارة CREATE TABLE و عبارة ALTER TABLE.
عبارة CASCADE يلغي تفعيل القيود المتكاملة التابعة لغيرها.
مثال:
ALTER TABLE emp
DISABLE CONSTRAINT emp_empno_pk CASCADE;
تفعيل القيد :
يمكنك تفعيل القيد بدون حذفه أو إعادة إنشائه باستخدام عبارة ALTER TABLE مع جزء ENABLE
ALTER TABLE table
ENABLE CONSTRAINT constraint;
إرشادات:
إذا فعّل القيد عندها سيطبق هذا القيد على كل المعطيات في الجدول ,كل المعطيات في الجدول يجب أن توافق القيد.
يمكن استخدام عبارة ENABLE في عبارة CREATE TABLE و عبارة ALTER TABLE.
- Labels: oracle, test
- (0) تعليقات
Wednesday, March 23, 2011
aaaaaaa
تعليم البرمجة بالدوت نت (سي شارب وفيجوال بيسيك) إضافة إلى المزيد من الامثلة والكتب والمقالات التي تقودك في طريقك إلى تعلم البرمجة بالدوت نت
Subscribe to:
Posts (Atom)