بسم الله نبدأ الدرس الحادي عشر من مادة CONCEPTS
أنواع المحددات
1/ في البداية يكون محدد PK هو أهم المحددات الموجودة وهو مكون من شرطين
ا ) NOT NULL ( NN )
ب ) UNIQUE ( UK )
2/ FK هو محدد يكون على العمود بحيث يقوم هذا المحدد يربط هذا العمود بعامود أخر على شرط ان يكون العمود الأخر من نوع
3/ CK يقوم باستخدام ووضع شرط محدد على العامود لحظة انشاء الجدول
4/ المحدد NN بالامكان استخدامه بشكل مستقل بحيث يمنع وجود فراغ على العامود المضاف عليه
5/ UK محدد يقوم بمنع عملية التكرار على العامود المضاف عليه
طرق استخدام المحددات
لإنشاء جدول الدوائر على شرط ان يكون عامود رقم الدائرة من نوع PK الحل بالامكان حل المثال التالي بطريقتين كما يلي
1} CREATE TABLE DEPT
( DEPT NO NUMBER (2) PRIMARY KEY,
D NAME VARCHAR 2 (30),
LOC VARCHAR 2 (20)) ;
على مستوى العامود
2} CREATE TABLE ( DEPT
DEPT NO NUMBER (2) PRIMARY KEY,
D NAME VARCHAR 2 (30) NOT NULL,
LOC VARCHAR 2 (20) UNIQUE,
CONSTRAINT PK_DEPT NO PRIMARY KEY (DEPT NO)) ;
لحذف جدول معين نقوم باستخدام الجملة التالية
DROP TABLE DEPT
DROP TABLE EMP
للتعديل على تكوين جدول نقوم باستخدام أمر يدعى ALTER TABLE وينقسم الى أربع أجزاء
1/ ADD ( إضافة عامود جديد )
ALTER TABLE DEPT
ADD E DATE DATE ;
2/ MODIFY ( التعديل على حجم ونوع البيانات )
ALTER TABLE DEPT
MODIFY E DATE NUMBER (30) ;
3/ DROP COLUMN ( حذف عامود )
ALTER TABLE DEPT
DROP COLUMN ( E DATE ) ;
مؤشر الاستعلام على جمل DML CURSOR SQL
في حال الاستعلام عن جدول معين او التعديل على جدول او الحذف من الجدول فان كل هذه العمليات تتم داخل بيئة خاصة ومؤقتة تقوم بحفظ البيانات بشكل مؤقت والتي يتم في داخلها استرجاع البيانات المطلوبة ومعالجتها ثم عرضها داخل SQL وهي عبارة عن مجموعة نشطة وتسمى ACTIVE SET او ما يدعى PRIVTE AREA ويمكن انشاء ما يسمى SQL CURSOR اما يدويا او اتوماتيكيا بحيث يقوم مؤشر معين بتعيين جميع القيم التي تم دخولها على البيئة الخاصة PRIVAT AREA ثم يقوم بفحصها ومعالجتها
المرجعية التكاملية في المحددات INTEGRITY CONSTRAINTS
DOMAIN CONSTRAINTS
هو عبارة عن نطاق يتم انشاء مجموعة من العناصر داخل هذا النطاق مثل الجداول والنوافذ والاجراءت والفهرسة والأرقام المتسلسلة
في هذه الوحدة سوف يتم التكلم عن التكاملية للنطاق وهي كيفية انشاء المحددات على نطاق معين
مثال / قم بإنشاء جدول يسمى EMPLOYEE والذي يحتوي في داخله على عدة أعمدة
• EMP NO ( PK )
• E NAME ( NN )
• SAL ( CK )
• COMM
• JOB
• HIREDATE ( UK )
• DEPT NO ( FK )
• MGR
وقبل انشاء هذا الجدول قم بإنشاء جدول آخر يخص الدوائر وأعطيه اسم DEPARTMENT والذي يحتوي على ثلاثة أعمدة وهي
• DEPT NO ( PK )
• D NAME
• LOC
ثم قم بربطه مع جدول الموظفين
طريقة الحل
CREATE TABLE DEPARTMENT
( DEPT NO NUMBER ( 2 ),
D NAME VARCHAR 2 ( 10 ),
LOC VARCHAR 2 ( 10 ),
CONSTRAINT PK_DEPT NO PRIMARY KEY ( DEPT NO ) ;
العمود المراد وصفه نوع المحدد اسم المحدد المحدد
CREATE TABLE EMPLOYEE
( EMP NO NUMBER ( 4 ),
E NAME VARCHAR 2 ( 20 ) NOT NULL,
SAL NUMBER ( 7.2 ),
COMM NUMBER ( 4 ),
JOB VARCHAR 2 ( 10 ),
DEPT NO NUMBER ( 12 ),
CONSTRAINT PK_EMP NO PEIMARY KEY ( EMP NO ),
CONSTRAINT CK_SAL CHECH ( SAL > 1500 ),
CONSTRAINT UK_HIREDATE UNIQE ( HIREDATE ),
CONSTRAINT FK_DEPT NO FOREGN KEY ( DEPT NO ) ,
REFERENCES DEPT ( DEPT NO )) ;