Professional Documents
Culture Documents
1
مقدمة قواعد البيانات
فهرس الكتاب
الصفحة الموضوع م
4 الفصل الول :أساسيات لغة الستفسارات الهيكلية
5 •مقدمة 1-1
10 •لغة الستفسارات الهيكلية SQL 1-2
13 •استخدام SQL*PLUS 1-3
15 •جملة SELECT 1-4
21 •جملة الشرط Where 1-5
36 •ترتيب النتائج باستخدام order by 1-6
40 •القيمة nullوتأثيراتها 1-7
42 •استخدام محرر النصوص في SQL*PLUS 1-8
43 •السئلة والتمارين 1-9
50 الفصل الثاني :تقنيات لغة SQL
53 •الربط بين جدولين أو أكثر 2-1
65 •استخدام Multi-row functions 2-2
71 •استخدام single-row functions 2-3
82 •استخدام group by clause 2-4
86 •استخدام having clause 2-5
89 •استخدام و عمل إستعلم فرعي sub query 2-6
99 •السئلة والتمارين 2-7
105 الفصل الثالث :معالجة البيانات باستخدام SQL
108 مقدمة 3-1
110 •إضافة سجلت جديدة للجداول 3-2
113 •حذف بيانات موجودة في قاعدة البيانات 3-3
115 •تعديل بيانات موجودة في قاعدة البيانات 3-4
121 •إنشاء الجداول وإضافة المحددات لها 3-5
136 •السئلة 3-6
143 الفصل الرابع :ورشة عمل
147 التدريب العملي 4-1
2
مقدمة قواعد البيانات
3
مقدمة قواعد البيانات
الفصل الول
أساسيات لغة الستفسارات الهيكلية
SQL
4
مقدمة قواعد البيانات
الهداف:
إعطاء الطالب صورة موض حة عن أ ساسيات ل غة ال ستعلمات الهيكل ية SQLوكيف ية
المحتويات:
5
مقدمة قواعد البيانات
-1مقدمة
6
مقدمة قواعد البيانات
7
مقدمة قواعد البيانات
مقدمة
برا مج قوا عد البيانات من أو سع برا مج الحا سب انتشارا ويم كن أن ت ستخدم سواء في
المجالت التجاريمة أو الصمناعية ومنهما علي سمبيل المثال مجالت النظمم المحاسمبية والماليمة
ومجال شئون الفراد والمشتريات ،وتعتمبر لغمة السمتعلمات الهيكليمة ممن أهمم وأشهمر اللغات
المستخدمة في برم جة قوا عد البيانات من ح يث إنشاء ملفات قوا عد البيانات واسترجاع البيانات
من ها بطرق مختل فة ومتعددة تلئم مع ظم احتياجات ال مبرمجين وتتم يز ب سهولة تركيب ها و سهلة
الفهم للجميع.
وتسمتخدم لغمة السمتعلم ممع الكثيمر ممن التطمبيقات حيمث صمممت فمي الصمل لتسمتخدم لغات
البرمجة الخرى ،ولقد استطاعت SQLأن تحقق طموحات معظم مطوري أنظمة قواعد البيانات
حيث أنها لغة قياسية وفعالة في نفس الوقت لبناء ومعالجة قواعد البيانات ،ولهذا السبب فإن أي
ش خص ير يد الدخول عالم قوا عد البيانات أن يتعلم أول ،SQLويع تبر نظام أورا كل من أف ضل
نظمم قواعمد البيانات العلئقيمة وهمو يتميمز بإمكانيمة إدارة قواعمد البيانات العلئقيمة وهمو يتميمز
بإمكانيمة إدارة قواعمد بيانات كمبيرة جدا ممن المعلومات والتمي قمد تصمل حتمى تيرابايمت ممن
المعلومات وإمكان ية التعا مل مع عدد كبير جدا من الم ستخدمين بش كل متزا من بالضا فة إلي
ميزات المان والوثوقية العالية جدا ،وظهرت عدة إصدارات من Oracle Developer
وأخرها هو oracle9iوهو البيئة التي سنقوم بدراسة لغة الستعلمات الهيكلية من خللها.
8
مقدمة قواعد البيانات
-1قواعد البيانات
أو هي عبارة عن تجمع لكمية كبيرة جدا من البيانات والمعلومات وعرضها بطريقة تسهل من
الستفادة منها فعلي سبيل المثال فإن دليل الهاتف هو أبسط قاعدة بيانات يمكن أن تتعامل معها
جميع الوظائف والمهام المطلوبة من قاعدة البيانات فعلي سبيل المثال بعد إدخال بيانات العاملين
إلي قاعدة بيانات شئون العامل ين فإ نك قد تحتاج إلي ترت يب أ سماء العامل ين أبجديا فإن م ثل هذا
العممل يطلق عليمه إدارة قاعدة البيانات ،ويتكون نظام إدارة قواعمد البيانات ممن مجموعمة ممن
البراممج والملفات التمي تتشابمك ممع بعضهما لحمل مشكلة أو تحويمل نظام يدوي إلي نظام يعممل
بالحاسمب مثمل تحويمل حسمابات المخازن ممن أنظممة ودفاتمر يوميمة إلي نظام وملفات تسمتخدم
9
مقدمة قواعد البيانات
يقت صر ا ستخدام كلً من قوا عد البيانات الهرم ية والشبك ية علي الحا سبات ال كبيرة ،أ ما
( من إدارة قوا عد البيانات بش كل كا مل وإجراء جم يع العمليات القيا سية كإنشاء الجداول وتعبئت ها
بالبيانات ،أو إجراء ال ستعلمات علي ها وكذلك الر بط ب ين الجداول المختل فة ،ول كن ك يف يمكن نا
كما وضحنا سابقا فإن قاعدة البيانات عبارة عن مكان أو مستودع كبير لتخزين البيانات
المختلفة ،تريحك قاعدة البيانات من عناء تخزين بياناتك في ملفات منفصلة وكما أنك تحتاج إلى
إجراء عمليات البحث والتصنيف لهذه البيانات عن طريق خوارزميات البحث المعقدة فتسهل لك
ذلك بأنها تعطيك واجهة سهلة للتعامل مع البيانات ،بحيث ل تحتاج إلى كل هذا وتكون البيانات
فمي قاعدة البيانات مخزنمة فمي عدة جداول Tablesوكمما نعلم فالجدول يتكون ممن صمفوف
Rowsوأعمدة Columnsهكذا:
10
مقدمة قواعد البيانات
الجدول السابق يتكون من ثلثة صفوف وثل ثة أعمدة ،وفي قواعد البيانات فإننا نسمي
ال صفوف بال سجلت Recordsون سمي العمدة بالحقول ،Fieldsف ما هي الحقول و ما
هي السجلت ؟
يقوم الحقمل الواحمد فمي الجدول بتخزيمن معلوممة معينمة ،فمثل عندمما يكون لدينما قاعدة
بيانات بأرقام الهواتف فإننا سنحتاج إلى حقلين ( أو عامودين ) واحد للسم والثاني لرقم الهاتف،
الواحد في مثالنا يحتوي على معلومتين مختلفتين هما السم ورقم الهاتف ،لذلك يمكننا القول بأن
قاعدة البيانات تتكون من الجداول والجداول تتكون من ال سجلت والسجلت تتكون من الحقول،
وكل حقل يحتوي على معلومة واحدة ،أي أن الحقل هو أصغر وحدة قاعدة البيانات.
2-1عبــارات SQL
البيانات ،وتقوم هذه الواممر بإنشاء أو إسمقاط أو تغييمر كائن قاعدة البيانات ،وهمي اختصمارا
قاعدة البيانات من إدراج البيانات وتحديثها أو تحديد أو حذف البيانات ،وهي اختصارا للكلمات(
ما Insert,
مم أوامرهم
من أهم
،)Dataومم Manipulation Language
Update, Delete
وإيجازا للقول فإن الشكل التالي يوضح الفئات الرئيسية لعبارات SQL
12
مقدمة قواعد البيانات
INSERT
لغـة معالجة البيانات
UPDATE
DELETE
CREATE
ALTER
DROP
لغة تعريف البيانات
RENAME
TRUNCATE
GRANT
REVOKE لغة التحكم والصلحيات
COMMIT
ROLLBACK لغـة معالجة البيانات
SAVEPOINT Transaction control
-3استخدام SQL*Plus
قاعدة البيانات ،وي ستخدم في إنشاء قوا عد البيانات وم نح ال سماحيات ،وإنشاء الجداول وتعديل ها
3-1استخدام SQL*Plus
13
مقدمة قواعد البيانات
وكلمة المرور
المستخدم.
ممال (connect
مملسلة التصم
مممي بسم
قاعدة البيانات ،وتسم
الذي تريد الوصول إليه قد تم إعداده علي جهاز أخر غير الحاسب
-4جملة Select
14
مقدمة قواعد البيانات
الممر Selectيمكنمك ممن اسمتعادة البيانات ممن داخمل قاعدة البيانات ،وتأخمذ جملة
Selectالشكل التالي
* SQL> SELECT
;2 FROM emp
أكثر)
15
مقدمة قواعد البيانات
بعد عبارة ،Selectمع وضع فاصلة بين أسماء العمدة ،ثم تحدد الجدول بعد From
تلميح
تظهر العمدة المطلوبة بدءا من اليسار إلي اليمين بنفس ترتيب كتابتها في
عبارة Select
مثال3
SQL> SELECT deptno, dname, loc
2 FROM ;dept
16
مقدمة قواعد البيانات
حيث تستخدم التعبيرات الحسابية مع تلك العمدة التي نوع معطياتها عددي مثل
الرقام والتاريخ.
)2بعد ذلك ينفذ الجمع أو الطرح لحقا ،ومن اليسار إلي ومن اليسار
إلي ليمين.
تلميح
عند استخدام التعبيرات الحسابية يمكنك تغيير تسلسل أسبقية المعاملت
17
مقدمة قواعد البيانات
في هذا المثال يقوم باستخدام معامل الجمع لزيادة مرتبات جميع الموظفين ب 500ر،
تلميح
تلميح
المعاملت الحسابية.
في هذا المثال سيقوم طبقا لسبقية المعاملت كما وضحنا سابقا بحساب عملية الضرب
أولً وهي ،sal*12ثم إجراء عملية الجمع ثانيا وهي إضافة 500ر
تلميح
تلميح
18
مقدمة قواعد البيانات
ال سم الفعلي للح قل با سم اعتباري ي تم تحديده بوا سطة الم ستخدم ويكون ذلك مفيدا وخا صة ع ند
التعا مل مع الت عبيرات الح سابية ،وفي ما يلي عدة اعتبارات ل بد من مراعات ها ع ند إعادة ت سمية
روؤس العمدة
)1يتم كتابة aliasفي جملة Selectيلي اسم العمود أو التعبير الحسابي المراد
)3إذا احتوي aliasعلي مسافات أو أحرف وعلمات خاصة مثل ()$or #
19
مقدمة قواعد البيانات
مثال1
SQL> SELECT ename, sal AS Salary مثال1
2 FROM ;emp
اختياريا.
مبير
ممية التعم
تسم
الحسمممممابي
20
مقدمة قواعد البيانات
مثال1
* SQL> SELECT
2 FROM emp
3 WHERE ;'ename='tarek
في هذا المثال نريد استرجاع جميع العمدة بجدول ،empولكن بشرط أن يكون
21
مقدمة قواعد البيانات
في هذا المثال نريد استرجاع جميع العمدة بجدول ،empولكن بشرط أن يكون تاريخ
تعيين الموظف هو''JAN-82-23
تلميح
مثال3
SQL> SELECT ename, job, deptno
FROM emp
;'WHERE ename = 'MILLER
= يسممماوي
22
مقدمة قواعد البيانات
المثال قممممد
اسمتخدمنا أحمد
مثال2
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE ;sal <> 3000
;
23
مقدمة قواعد البيانات
Betweenممع جملة ،Whereفعلي سمبيل المثمل قمد ترغمب فمي اسمتعادة بيانات جميمع
الموظفين الذين يتقاضون راتب مابين 5000 ،2000يمكنك القيام بهذا وذلك بإجراء المثال
التالي
مثال
* SQL> SELECT
FROM emp
;WHERE sal BETWEEN 2000 AND 5000
24
مقدمة قواعد البيانات
يمك نك معا مل INالقيام بعمليات الب حث عن بنود دا خل إحدى القوائم ،ح يث يمك نك
استرجاع السجلت التي قيم عمود فيها (محدد في جملة ) Whereتساوي إحدى القيم المحددة
ضممن مجموعمة ،فعلي سمبيل المثال لظهار كافمة السمجلت الخاصمة بالموظفيمن ذوي الرقام
في هذا المثال السابق تم استرجاع السجلت التي فيها العمود empnoيساوي إما
* SQL> SELECT
2 FROM emp
3 WHERE empno=7369 or empno=7499
;or empno=7369
مثال2
25
مقدمة قواعد البيانات
* SQL> SELECT
2 FROM emp
;)'3 WHERE ename IN ('tarek','ayman', 'said
في هذا المثال سيتم استعادة كافة السجلت الخاصة بالموظفين الموجودين في القائمة التي
تلميح
وفيما يلي عدة اعتبارات لبد من مراعاتها عند إعادة استخدام معامل INمع جملة Where
عمود فيها تشابه سلسلة أحرف نبحث عنها ،ليس هذا فحسب بل يمكننا من استرجاع السجلت
التي تكون قيم عمود فيها مطابقة جزئيا لمجموعة أحرف نبحث عنها
مثال1
لسترجاع جميع السماء التي تبدأ بحرف ( )Aيتم كتابة الكود التالي
26
مقدمة قواعد البيانات
مثال2
للبحث عن السماء التي تشتمل علي أحرف areيتم ذلك من خلل كتابة الكود التالي:
مثال3
لسترجاع بيانات السم والوظيفة والمرتب للموظفين الذي تم تعينهم خلل عام 1982
من شهر يناير إلي شهر ديسمبر يتم كتابة الكود التالي
لسترجاع جميع السماء التي يكون حرف ( )Aفيها يأخذ الترتيب الثاني يتم كتابة الكود
التالي:
27
مقدمة قواعد البيانات
تلميح
تستخدم LIKEمع العمدة التي يكون نوع بياناتها
حرفي.
قبمل اسمتخدام معاممل IS NULLممع Whereلبمد ممن الجابمة علي ماهمي القيممة
NULL؟ تستخدم القيمة NULLللشارة إلي عمود ل يحتوي علي بيانات ،حيث ل تعني القيمة
مثال1
28
مقدمة قواعد البيانات
29
مقدمة قواعد البيانات
يستخدم ANDمع Whereلستعادة السجلت التي تحقق كافة الشروط المحددة في
جملة ،Whereحيث يعني ANDأنه لستعادة السجلت لبد من تحقق كافة الشروط.
مثال1
لسترجاع جميع بيانات الموظفين بالدارة رقم 10الذين يتقاضون مرتبا أكبر من
مثال2
لسترجاع جميع بيانات محللي النظم الذين يتقاضون مرتبا أكبر من 3000ر يتم كتابة
الكود التالي
SQL> SELECT ename, job, sal
2 FROM emp
3 WHERE sal>1000
4 AND ;'job='analyst
نستخدم معامل Orمع Whereلستعادة السجلت التي تحقق شرطا واحدا من عدة
شروط ،حيث يعني المعامل Orأن استعادة البيانات تتم إذا تحقق أي شرط من الشروط
30
مقدمة قواعد البيانات
مثال1
لسترجاع بيانات الموظفين(السم ،الوظفية ،المرتب) يتقاضون مرتبا أكبر من
تلميح
استخدام المعامل NOTيمكننا من استثناء سجلت معينة من اختيارنا ،حيث يمكننا من
ا سترجاع ال سجلت المعاك سة لختيار نا ،فعلي سبيل المثال لختيار كا فة ال سجلت من جدول
مثال1
SQL> SELECT ename, job
2 FROM emp
;3 WHERE comm IS NOT NULL
مثال2
31
SQL> SELECT ename, job
2 FROM emp مقدمة قواعد البيانات
3 WHERE job NOT IN
analyst, باستثناء الوظيفة،) المرتب، الوظفية،لسترجاع بيانات الموظفين(السم
('ANALYST','ACCOUNTANT','ENGINEER');
:يتم كتابة الكود التالي engineer, accountant
تلميح
مع المعاملت الخرى مثلNOT يتم استخدم معامل
32
مقدمة قواعد البيانات
تلميح
كما تعلمنا سابقا يمكنك تغيير تسلسل أسبقية المعاملت باستخدام القواس((
مثال1
SQL>SELECT ename, job, sal
2 FROM emp الثاني
'3 WHERE job='ANALYST
4 OR 'job=' MANAGER الول
5 AND ;sal >3000
33
مقدمة قواعد البيانات
ترتب السجلت باستخدام Order byوفقا لقيم العمود الذي نحدده ترتيبا تصاعديا أو
تنازليا ،ويمكن الترتيب بناءا علي قيم عمود أو عدة أعمدة ،وعند كتابة جملة Order by
مباشرة.
يمكن الترتيب علي أساس عدة أعمدة ،ويجب الفصل بين أسماء
)SELECT
34
مقدمة قواعد البيانات
مثال1
لستعادة بيانات جميع الموظفين مرتبة علي أساس تاريخ التعيين ،يتم كتابة الكود التالي
* SQL> SELECT
2 FROM emp
;3 ORDER BY hiredate asc
مثال2
* SQL>SELECT
2 FROM emp
;3 ORDER BY hiredate DESC
تلميح
35
مقدمة قواعد البيانات
يمكنك إجراء الترتيب باستخدام Order byعلي أساس قيم أعمدة ليست بجملة
أكثر من عمود.
36
مقدمة قواعد البيانات
بالمثال التالي:
مثال
SQL> SELECT empno, ename, sal*12 total
2 FROM emp
;3 ORDER BY total
-8القيمة Nullوتأثيراتها
تستخدم القيمة nullللشارة إلي عمود ل يحتوي علي بيانات بمعني وجود قيم فارغة
داخل الحقول ومن أشهر عيوب القيمة nullصعوبة إجراء أي عمليات حسابية على
37
مقدمة قواعد البيانات
مثال1
SQL> SELECT ename, sal, comm
2 FROM ;emp
مثال2
في هذا المثال نجد أن العمود commيحتوي قيما من النوع null
SQL> select ename,sal,comm,sal+comm
2 from emp
;'3 WHERE ename='SMITH
في هذا المثال تم تناول العمليات الحسابية علي القيم ،nullحيث أن ال commالخاص
38
مقدمة قواعد البيانات
بالموظف SMITHيأخذ القيمة ،nullوكما تعلمنا أن ناتج أي عملية حسابية طرفها القيمة
nullيكون null
التعليمة Listأو الحرف Lلظهار آخر تعليمة أرسلت إلي ،ORACLEويمكن إعادة تنفيذها
بإدخال الكلمة RUNأو الحرف ( ،)rويمكنك تعديل التعليمات التي تم إدخالها إلي الذاكرة
المؤقتة ،حيث يمتلك sql*plusسلسلة من التعليمات التي تسمح للمستخدم بتعديل محتوي
المؤقتة
start c:\t.sql تحميل الملف إلي الذاكرة المؤقتة Start filename
أو @filename
وتنفيذ التعليمات الموجودة به
edit c:\t.sql تشغل محرر النصوص الخارجي Edit filename
أو edit
مثل المفكرة ،فإذا تم تحديد إسم
أو ed
الملف يتم فتح محرر النصوص
متضمنا الملف
39
مقدمة قواعد البيانات
السئلة
المجموعة الولي:
) أمام العبارة الصحيحة وعلمة (×) أمام العبارة الخاطئة مع ضع علمة (
تصحيح الخطأ.
)1لغة DDLتستطيع من خللها معالجة البيانات الموجودة في قاعدة البيانات من
)3تظ هر العمدة المطلو بة بدءا من الي سار إلي اليم ين بن فس ترت يب كتابت ها في
عبارة .Select
40
مقدمة قواعد البيانات
الحسابية.
معين من القيم.
)8يمكنك معامل LIKEالقيام بعمليات البحث عن بنود داخل إحدى القوائم ،بيمنا
يمكنك استخدام INاستعادة واسترجاع السجلت التي قيم عمود فيها تشابه سلسلة
المجموعة الثانية:
أسئلة لتدريب الطلب على أسئلة الختيار المتعدد:
)1المصطلح DDLهو:ـ
. 2&1.4
41
مقدمة قواعد البيانات
)2المصطلح DMLهو:ـ
. 2&1.4
)3المر :updateـ
. 2&1.4
)4المر :Insertـ
. 3&1)4
)5المر :dropـ
. 3&2.4
)7المر Revokeمن:
-1أوامر .DDL
-2أوامر . DML
-3أوامر . DQL
-4أوامر PL/SQL
(8المر GRANTمن:
)1سجمل 1
)2سجمل 2
)3كمل السجملت
)4سجمل 4
)3سجمل 3
44
مقدمة قواعد البيانات
4 )سجمل4
4 و2 )سجمل1
4 و1 )سجمل2
3 )سجمل3
4 )سجمل4
4 و2 )سجمل1
4 و1 )سجمل2
3 و2 )سجمل3
4 )سجمل4
2 )سجمل1
4 و1 )سجمل2
3 )سجمل3
4 )سجمل4
45
مقدمة قواعد البيانات
الفصل الثاني
تقنيات لغة SQL
46
مقدمة قواعد البيانات
الهداف:
إعطاء الطالب صورة موض حة عن أ ساسيات الر بط ب ين الجداول في ،SQLا ستخدام
المحتويات:
.1الربط بين جدولين أو أكثر
47
مقدمة قواعد البيانات
.2اسمممممممممتخدام multi-row
functions
48
مقدمة قواعد البيانات
by، Having
49
مقدمة قواعد البيانات
مثل ذلك يتطلب منا إنشاء علقة بين الجدولين أو الجداول ،حيث تكمن القوة الحقيقية لقاعدة
بيانات علئقية في قدرتها علي استرجاع سجلت من جداول مختلفة في استعلم واحد،وتوجد
لدينا العديد من السباب التي تدعونا إلي إنشاء علقة بين الجداول منها:
)2اختيار أعمدة موجودة في جدول واحد بناء علي شرط يطبق علي عمود أخر(
.)self join
مثال1
SQL>SELECT emp.empno,emp.ename,dept.dname
2 FROM emp, dept
3 WHERE ;emp. deptno=dept.deptno
50
مقدمة قواعد البيانات
في هذا المثال تم استرجاع بيانات من جدولي dept, empبينهما علقة ،حيث تم كتابة
إسم الجدول قبل إسم العمود مع الفصل بينهما بنقطة في جملة ،selectكتابة الجداول
تلميح
deptnoوهذا يسبب ، في المثال السابق نجد أن أعمدة الربط لها نفس السم
مشاكل مع أوراكل حيث ل يعرف لي جدول تنتمي هذه العمدة ولذلك تم وضع اسم الجدول
1-2أنواع العلقات
وقيما مشتركة
51
مقدمة قواعد البيانات
الجدول مع نفسه
للحصول علي الرابطة الديكارتية قم بحذف شرط الربط بين الجدولين في جملة ،Where
سيقوم أوراكل بربط كل سجل في الجدول الول مع كل سجل في الجدول الثاني مع نفسه
1-2-1الرابطة المتكافئة
فعلي سبيل المثال إذا أردت تحديد اسم الدارة لكل موظف فما عليك سوي المقارنة بين قيم فإذا
متساوية بمعني أن جدول deptل يوجد به إدارة ليس بها عاملين ،بمعني أن كل الدارات
.يتم اختيارها في استعلم يربط الجدولين ،إن مثل تلك العلقة تسمي بالرابطة المتكافئة
مثال1
SQL>SELECT emp.empno, emp. ename, emp.deptno,
Dept.deptno, dept.loc
FROM emp, dept
;WHERE emp.deptno=dept.deptno
52
مقدمة قواعد البيانات
تلميح
.1في هذا المثال نجد أن جدول deptل يوجد به إدارة ليس بها عاملين في
،بعد شرط الربط ،كما بالمثال التالي ،فمثلً لسترجاع بيانات محللي النظم من الرقم ،السم
الوظيفة ،رقم الدارة ،موقع الدارة ،لبد من إضافة شرط في :whereكما بالمثال التالي
WHERE emp.deptno=dept.deptno
;'And job='ANALYST
Table Aliasesفي جملة WHEREفعلي سبيل المثال يمكننا إجراء مثال 1السابق ،
54
مقدمة قواعد البيانات
بيانات السم ورقم الطلبية والصناف وإجمالي الصناف ،إجمالي الطلبيات للعميل
تلميح
العلقة بين الجدولين في عمود salفي جدول empينحصر
بين عمودي
مثال
SQL>SELECT emp.ename, emp.sal, salgrade.grade
FROM emp, salgrade
WHERE emp.sal
;BETWEEN salgrade.losal AND salgrade.hisal
56
مقدمة قواعد البيانات
57
مقدمة قواعد البيانات
وبالتالي لن يتم استرجاعها في نتيجة الستعلم ،و حيث ل يوجد موظفين بالدارة
ذلك لبد من إنشاء رابطة خارجيةوذلك بوضع إشارة الجمع ( )+محاطة بقوسين وذلك بعد إسم
محدد شرط الربط في جملة Whereوذلك للجدول الذي يحتوي السجلت التي ل يقابلها سجل
مثال
58
مقدمة قواعد البيانات
في هذا المثال الدارة ENGINEERINGسيتم عرضها في نتيجة هذا الستعلم ،وذلك من
خلل إنشاء رابطة خارجية وذلك بوضع إشارة الجمع ( )+محاطة بقوسين بعد اسم محدد شرط
الربط في جملة Whereوذلك للجدول الذي يحتوي السجلت التي ل يقابلها سجل أو سجلت
مثال
59
مقدمة قواعد البيانات
SQL>SELECT worker.ename,manager.ename
FROM emp worker, emp manager
WHERE worker.mgr = manager.empno
للحصول علي الرابطة الديكارتية قم بحذف شرط الربط بين الجدولين في جملة ،Where
سيقوم أوراكل برط كل سجل في الجدول الول مع كل سجل في الجدول الثاني،هذا يجعل
أوراكل يقوم بإنشاء ومعالجة كمية كبيرة جدا من البيانات ل قيمة لها ،فعلي سبيل المثال إذا كان
جدول deptيحتوي 10سجلت وجدول empيحتوي 30سجل ،فإذا تم حذف شرط الربط
من جملة Whereفي نتيجة الستعلم تكون ()30*10وهي 300سجل ،ولحساب السجلت
60
مقدمة قواعد البيانات
2
-
استخدام الدوال Functions
2-1إستخدام Multi row Functions
تزودنا SQLبعدة دوال تجميع Group Functionsيمكن أن تنفذ علي مجموعة من
السجلت وهي:
الستخدام الدالة
عدد السجلت في جدول ما COUNT
تحديد القيمة العظمي لعمود ما MAX
تحديد القيمة الدنيا لعمود ما MIN
المتوسط الحسابي لعمود ما AVG
النحراف المعياري لعمود ما STDDEV
المجموع الكلي لعمود ما SUM
حساب التغاير لعمود ما VARIANCE
وتقدم النتيجة في شكل قيمة وحيدة تخص العمود المختار ،ويجب عليك إتباع التعليمات التالية
;)Select MAX(sal),MIN(SAL),SUM(sal
61
مقدمة قواعد البيانات
2-1-1استخدام count
نستخدم الدالة countلحساب عدد السجلت التي تحتوي قيما غير فارغة(not
)nullفي العمود المحدد في المجموعة ،فمثلً لحساب عدد السجلت في جدول empالذي
تلميح
تم وضع العمود المراد حساب عدد سجلته بين قوسين بعد الدالة
.count
2-1-1-1استخدام )*(count
عندما نستبدل إسم العمود بالنجمة (*) فعندئذ تقوم الدالة countبحساب عدد السجلت بما
فيها السجلت التي تحتوي علي قيم فارغة ،فعلي سبيل المثال:
62
مقدمة قواعد البيانات
سبيل المثال لحساب عدد السجلت في جدول empمع عدم استبعاد القيم الفارغة في العمود
2-1-2استخدام max
نستخدم الدالة MAXلحساب أكبر قيمة في مجموعة ما ،يمكن استخدام الدالة MAXمع القيم
تلميح
يمكن استخدام maxمع أي نوع من البيانات.
عند استخدام MAXمع البيانات الحرفية تعيد أعلي قيمة
ث في العمود.
2-1-3استخدام MIN
تعيد الدالة MINأصغر قيمة ل تساوي ،NULLكما أنها تستخدم مع أي نوع من البيانات،
فعلي سبيل المثال نستخدم الدالة MAXلتحديد أقل مرتب في الدارة رقم 10
2-1-4استخدام AVG
نستخدم AVGلحساب المتوسط الحسابي لعمود ما ،حيث يعيد AVGالقيمة الوسطي لجميع القيم
التي ل تساوي NULLفي العمود ،وهناك عدة اعتبارات يجب مراعاتها عند استخدام AVG
يهمل AVGالقيم المتكررة في العمود عند حسابه للقيمة الوسطي وذلك إذا
مثال1
يمكننا حساب المتوسط الحسابي لعمود SALفي جدول ،EMPوذلك بكتابة الكود التالي:
SQL>SELECT )AVG(SAL
; FROM emp
مثال2
يمكننا
64 مثال3
مقدمة قواعد البيانات
ي
مثال3
يمكننا حساب المتوسط الحسابي لعمود COMMفي جدول ،EMPوذلك بكتابة الكود التالي
SQL>SELECT )AVG(SAL
; FROM emp
استخدام sum
مثال
يمكننا حساب المجموع الكلي لعمود SALفي جدول ،EMPوذلك بكتابة الكود التالي:
SQL>SELECT )sum(SAL
;FROM emp 65
مقدمة قواعد البيانات
القيم الفارغة باستبدالها بالقيمة الصفرية وبالتالي يمكننا استخدام الدوال التجميعية مع العمدة
2-2استخدام
single row functions
تعالج single row functionsقيم العمود المختار من الجدول وتقدم النتيجة علي
شكل قيمة وحيدة لكل سجل ،هذا في حين تستخدم group functionفي معالجة قيم
العمود المختار من الجدول وتقدم النتيجة علي شكل قيمة وحيدة تخص العمود المختار
Character
General Number
Single-row
Functions
Conversion Date
66
مقدمة قواعد البيانات
يمتلك أوراكل عدد من الدوال التي تستخدم لتعديل أنماط البيانات النصية(char,
يعيد قيمة عددية تمثل موضع مجموعة أحرف ضمن سلسلة حرفية INSTR
مثال1
سنقوم في المثال باستعراض أمثلة علي الدوال النصية كما هو موضح بالجدول
التالي
)SUBSTR('String',1,3 Str
67
مقدمة قواعد البيانات
)'Length('String 6
)'INSTR('String','t 2
مثال2
SQL>SELECT ename, CONCAT (ename, job),
)'LENGTH (ename),INSTR(ename, 'A
FROM ;emp
سنقوم في المثال باستعراض أمثلة علي الدوال الرقمية كما هو موضح كالتالي
مثال2
SQL> SELECT ROUND(42.923,2),ROUND(43.923,0),
)2 ROUND (44.923,-1 68
3 FROM ;DUAL
مقدمة قواعد البيانات
3مثال
SQL>SELECT TRUNC(35.832,2),TRUNC(65.323),
2 TRUNC (65.843,-1)
3 FROM DUAL;
4مثال
SQL>SELECT ename, sal, comm, MOD(sal,comm)
2 FROM emp;
69
مقدمة قواعد البيانات
يمتلك أوراكل عددا من الدوال التي تستخدم مع أعمدة التاريخ ،حيت يمكن إظهار التاريخ بشكل
حرفي ،كما يمكننا استخدام التاريخ في عمليات الجمع والطرح،كما يمكن إضافة قيمة ما تاريخ
ما ونحصل بذلك علي قيمة تاريخ جديدة ،وسوف نتعرض لهم هذه الدوال وهي موضحة في
الجدول التالي
الستخدام الدالة
)MONTHS_BETWEEN(date1,date2يحدد عدد الشهر بين تاريخين
يحدد اليوم التالي من السبوع الذي يلي )'NEXT_DAY(date,'day
التاريخ المحدد
ADD_MONTHS(date,numberofيستخدم لحساب تاريخ جديد بناء علي عدد
)months
محدد من الشهر
يحدد آخر يوم في الشهر الحالي أو لتاريخ )LAST_DAY(date1
محدد
مثال1
سنقوم في المثال باستعراض أمثلة علي الدوال التاريخية كما هو موضح كالتالي
)'MONTHS_BETWEEN ('1-SEP-93','11-JAN-44
19.6774194
)'ADD_MONTHS('11-JAN-96',6 '11-jul-96
)''NEXT_DAY('01-SEP-95','friday '8-sep-95
)''LAST_DAY('01-sep-95 '30-sep-95
مثال2
70
مقدمة قواعد البيانات
يمكننا استخدام to_numberلتحويل السلسلة الحرفية السنة إلي حقل رقمي وذلك
ل يمكننا
To_charويستخدم لتحويل نوع البيانات إلي نوع البيانات النصية ،فمث ً
استخدامه لتغيير تاريخ الميلد للموظف إلي حقل حرفي وذلك لتنسيقه ليظهر بتنسيق
نوع البيانات الرقمية إلي نوع البيانات النصية وذلك لضفاء عليها تنسيق خاص
مثل إظهار علمة العلمة بجوار الرقم والتحكم في رمز العلمة العشرية وعدد
الرقام بعد العلمة العشرية وهناك عدة رموز يمكننا استخدامها عند تحويل البيانات
الرقمية إلي نوع البيانات النصية ،كما هو موضح بالجدول التالي :
الستخدام الرمز
number يمثل رقم 9
71
مقدمة قواعد البيانات
مثال1
في هذا المثال سنقوم بتحويل نوع بيانات عمود hiredateمن نوع dateإلي نوع
البيانات الحرفية وذلك بإسخدام To_charوذلك لعمل تنسيق خاص لحقل التاريخ
تلميح
تنسيق التاريخ لبد أن يوضع بين علمتي تنصيص مفردة' '.
مثال2
.
72
مقدمة قواعد البيانات
في هذا المثال سنقوم بتحويل نوع بيانات عمود salمن نوع numberإلي نوع البيانات
الحرفية وذلك بإسخدام To_charوذلك لعمل تنسيق خاص لحقل المرتب مع استخدام الرموز
- 2
- 2
- 1
5الدوال العامة General functions
من أهم الدوال العامة في single row functionدالتي nvl، decodeوفيما
2-2-1-5-1الدلة NVL
تستخدم الدالة NVLلستبدال القيمة الفارغة بقيمة أخري ،ويمكن استخدام NVLمع نوع البيانات
الرقمية وغير الرقمية ،ويعتبر من أهم استخدامات تلك الدالة هو التغلب علي مشكلة القيم
73
مقدمة قواعد البيانات
الصفرية في البيانات الرقمية إذا تقوم NVLباستبدال القيم الفارغة بقيم صفرية ،وهناك عدة
عند تحويل القيم الفارغة عليك باللتزام بنفس نوع البيانات Data types
) Nvl(comm,0
)' Nvl(job,'no job yet
)' Nvl(hiredate,'01-jan-98
مثال
)SQL> SELECT ename,sal,comm,(sal*12)+NVL(comm,0
2 FROM ;emp
2-2-1-5-2الدلة Decode
تسهل الدالة Decodeإجراء الستعلم الشرطي في ،SQLوتماثل عمل كلً من CASE،
مثال
DECODE (col/expression, search1, result1
)][, search2, result2,...,][, default
74
مقدمة قواعد البيانات
في المثال التالي نستخدم Decodeلجراء الستعلم الشرطي التالي ،فإذا كانت الوظيفة
ANALYSTيتم حساب الحوافز علي أساس %5من المرتب ،وإذا كانت الوظيفة
SALESMANيتم حساب الحوافز علي أساس %6من المرتب ،وإذا كانت الوظيفة
MANAGERيتم حساب الحوافز علي أساس %25من المرتب ،فيما عدا ذلك ل يتم احتساب
حوافز.
SQL> SELECT job,sal,
2 DECODE(job,'ANALYST',SAL*.05
3 'salesman', SAL*.06
4 'MANAGER', SAL*.25,
5 )SAL
6 BONUS
7 FROM ;emp
كنا فيما سبق كانت SQLتعالج الجدول أو الجداول بالكامل أو السجلت المحققة لشرط معين
في جملة ،WHEREإل أننا في بعض الحيان نريد إجراء عمليات منطقية علي سجلت معينة
مثل إظهار القيمة العظمي والدنيا والمتوسط الحسابي لكل إدارة من الدارات علي حدة،
لجراء مثل هذا نحتاج إلي استخدام ،Group byحيث تستخدم جملة group by
75
مقدمة قواعد البيانات
لتحديد العمدة التي يتم التجميع بناء عليها أو عنما نريد تطبيق الدوال التجميعية مثل avg,
sum, count, max, minعلي سجلت من الجدول معزولة علي شكل مجموعات
فرعية ،حيث تميز كل مجموعة بنفس قيم المعطيات ،بحيث تقسم group byسجلت
الجدول إلي مجموعات صغيرة متشابهة ،ثم يمكنك استخدام group functions
لسترجاع معلومات تلخيصية لكل مجموعة من هذه المجموعات علي حدة ،والصيغة العامة
تقع جملة group byبعد جملة whereأو بعد جملة Fromفي حالة
مثال1
في هذا المثال نريد حساب المجموع الكلي لمرتبات كل إدارة علي حدة ،لفعل ذلك يجب
تلميح
يجب أن تحتوي جملة group byعلي كل العمدة المكتوبة بجملة
مثال2
يمكننا إجراء المثال السابق و حساب المجموع الكلي لمرتبات كل إدارة علي حدة
77
مقدمة قواعد البيانات
تلميح
3سنوضح إمكانية قيام GROUP BYبإنشاء مجموعات فرعية ضمن في هذا مثال
المثال
مجموعات فرعية أخري
)SQL>SELECT deptno,job,sum(sal
2 FROM emp
;3 GROUP BY deptno, job
تلميح
أولً يتم إنشاء مجموعات متشابهة بناء علي رقم الدارة deptno
ثانيا في مجموعات الدارة يتم عمل مجموعات متشابهة من للسجلت بناءا علي
الوظيفة.
78
مقدمة قواعد البيانات
مثال4
عند إجراء المثال التالي تظهرلنا رسالة الخطأ التالية( :ORA-00934وظيفة المجموعة غير
مسموحة هنا) والتي تعني أننا ل نستطيع استخدام الدوال التجميعية Group Function
قد ل نريد استرجاع دائما جميع المجموعات الفرعية المختلفة في الجدول ضمن استعلم واحد،
فتقدم لنا SQLجملة Havingلحذف المجموعات الفرعية من التي ل نريد استرجاعها في
الستعلم أو التقرير ،وتعتبر جملة Havingمشابهة لجملة Whereمن حيث أنها تحدد فيما
إذا كانت السجلت قابلة للختيار أو ل ،وتحتوي جملة Havingعلي محددات تستخدم لتقييم
السجلت ،حيث يمكننا وضع عدة شروط في جملة ،Havingكما يمكننا استخدام المعاملت
المنطقية معها مثل ،and, orوقد يتبادر إلي الذهن لماذا ل نستخدم عوضا عنها جملة
،whereل يمكننا ذلك حيث يكمن الختلف بين جملة Havingوجملة Whereفي أن
محددات الجملة Havingيجب أن تكون تابع تجميع ،ويتم استخدام Havingفقط عند يتم
حساب قيمة مجمعة بواسطة ،Selectبينما عمل Whereهو ترشيح السجلت التي
سيطبق عليها لحقا جملة ،Group byوليس ترشيح المجموعات ،والصيغة العامة لستخدام
havingموضحة كالتالي
))MAX,MIN,AVG,COUNT,SUM
80
مقدمة قواعد البيانات
.and, or
مثال
SQL>SELECT job, SUM(sal) PAYROLL
2 FROM emp
3 WHERE 'job NOT LIKE 'SALES%
4 GROUP BY job
5 HAVING SUM (sal)<6000
;)6 ORDER BY SUM (sal
في المثال السابق نقوم باسترجاع الوظيفة والمجموع الكلي للمرتبات الشهرية لكل وظيفة علي
حده بشرط أن يكون المجموع الكلي للمرتبات الشهرية لكل وظيفة أقل من 6000ر باستثناء
وظيفة ،salesmanثم الترتيب التصاعدي بناء علي المجموع الكلي للمرتبات الشهرية.
81
مقدمة قواعد البيانات
تمكننا sqlمن جعل الستعلمات متداخلة مع بعضها البعض بشكل نموذجي ،بحيث ينتج عن
استعلمين
و لحل مثل تلك المشكلة لبد من دمج الستعلمين معا بمعني استخدام استعلم داخل استعلم
أخر ،حيث يعيد الستعلم الداخلي أو الفرعي يعيد قيمة يستخدمها الستعلم الرئيسي أو
Outer query
Sub query
تلميح
82
مقدمة قواعد البيانات
الخارجي.
queriesكالتالي
SQL>SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM ;)table
مثال
SQL> SELECT ename
2 FROM emp 5000
> 3 WHERE sal
4 (SELECT sal
5 FROM emp
6 WHEREالذي رقمه هو ،1
مرتب الموظف في المثال السابق نجد أن الستعلم الداخلي يحدد
;)empno=1
يأخذ الستعلم الخارجي أوالرئيسى هذه النتيجة ويستخدمها لسترجاع الموظفين الذين يتقاضون
83
مقدمة قواعد البيانات
Single-row subquery
Main query
returns
Subquery tarek
Multiple-row subquery
Main query
returns
Subquery
ANALYST
MANAGER
Multiple-column subquery
Main query
returns
Subquery ANALYST
MANAGER 5000
84
مقدمة قواعد البيانات
= يسممماوي
> أكبرمن
مثال1
في هذا المثال سنقوم باسترجاع بيانات الموظفين(السم ،الوظيفة ) للموظفين الذين لهم نفس
SQL>SELECT ename,job
FROM emp
=WHERE job
(SELECT job
FROM emp
;)Where empno=555
مثال2
في هذا المثال سنقوم باسترجاع بيانات الموظفين(السم ،الوظيفة ) للموظفين الذين لهم نفس
85
مقدمة قواعد البيانات
تلميح
علينا النتباه إلي أن الدوال التجميعية التي هي دوال تجميع معرفة في جملة Group By
ستولد وتعيد عدة قيم ،ولهذا ل يسمح باستخدامها مع هذا النوع من الستعلمات الفرعية التي
تعيد سجل واحد ،حتى لو استخدامنا Group byو Havingلتوليد مجموعة وحيدة لخرج
الستعلم الفرعي ،ولهذا يجب علينا استخدام الدوال التجميعية المرغوبة في جملة where
مثال
86
مقدمة قواعد البيانات
في هذا المثال سنقوم باسترجاع بيانات الموظف (السم ،الوظيفة ،المرتب ) الذي يتقاضى
أعلي مرتب ،حيث يمكننا تنفيذ هذا الستعلم باستخدام group functionداخل
مثال
في هذا المثال نريد إنشاء مجموعات أصغر مرتبات بناء علي عمود رقم الدارة ،مع
تقييد ذلك بشرط وهو أن يكون أقل مرتب في تلك الدارات أكبر من أقل مرتب في الدارة رقم
10
87
مقدمة قواعد البيانات
تلميح
سيعيد سجلً واحدا فقط ،وإل سيصدر خطأ إذا أعاد أكثرمن قيمة واحدة،
ولن يفشل المر إذا لم يعيد الستعلم الفرعي أية قيمة ولكننا عندها لن
الستعلمات الفرعية معاملً يمكن استخدامه لتقييم عدة قيم ،فعلي سبيل المثال ل الحصر يمكننا
استخدام المعامل INمع الستعلمات الفرعية متعددة السطر لنه يقييم مصفوفة من القيم،
والجدول التالي يوضح المعاملت التي يمكننا استخدامها لتقييم الستعلمات متعددة السجلت.
88
مقدمة قواعد البيانات
في هذا المثال نريد استرجاع بيانات الموظفين (رقم الموظف ،السم ،الوظيفة )
مثال
ذوي المرتبات أقل من أي clerkوالذين ل يعملون في وظيفة clerk
مثال
SQL> SELECT ename, deptno, sal, comm
2 FROM emp
3 WHERE (sal, NVL (comm,0)) IN
4 )(SELECT sal, NVL (comm,0
5 FROM emp 89
6 ;)WHERE deptno = 30
مقدمة قواعد البيانات
في المثال السابق نريد استرجاع بيانات الموظف(السم ،رقم الدارة ،المرتب ،الحوافز) ،لي
موظف يتماثل في المرتب والحوافز مع أي موظف في الدارة رقم .30
السئلة
المجموعة الولي:
) أمام العبارة الصحيحةوعلمة (×) أمام العبارة الخاطئة مع ضع علمة (
تصحيح الخطأ.
)1ينفذ الستعلم الفرعي أو الداخلي أولً ثم ينفذ الستعلم الرئيسي أو
الخارجي
)2فمي الرابطمة المتكافئة لبمد أن كمل سمجل فمي الجدول الرئيمس الب
90
مقدمة قواعد البيانات
العمود المختار.
)*( Count )10تقوم بحساب عدد السجلت بما فيها السجلت التي
تجميعية.
91
مقدمة قواعد البيانات
الحرفية.
البيانات الرقمية.
المجموعة الثانية:
)bإختيار أعمدة موجودة في جدول واحد بناء علي شرط يطبق علي عمود
آخر.
.2&1)c
)2عند استرجاع بيانات من جدولين أو أكثر يتم إضافة شرط الربط في عبارة .Where
)aالعبارة صحيحة.
)bالعبارة خاطئة.
)aالرابطة المتكافئة.
)bالرابطة الذاتية.
92
مقدمة قواعد البيانات
)dجميع ما سبق.
2&1)c
)dجميع ما سبق
)fجميع ما سبق
)7الدالة :MAX
93
مقدمة قواعد البيانات
2&1)c
)8الدالة :AVG
2&1)c
)9الدالة :MONTH_BETWEEN
2&1)d
)10الدالة :LAST_DAY
)cعند تحويل القيم الفارغة عليك باللتزام بنفس نوع البيانات Data
A&b)d
A&b&c)e
أخري
A&b)c
:HAVING) 13
A&B&C)d
A&C)e
95
مقدمة قواعد البيانات
:HAVING) 14
A&B&C)i
A&C)j
96
مقدمة قواعد البيانات
الفصل الثالث
معالجة البيانات باستخدام
SQL
97
مقدمة قواعد البيانات
الهداف:
إعطاء الطالب صورة موض حة عن كيف ية إضا فة سجلت جديدة إلي الجداول ،وكيف ية
حذف وتعديل بيانات موجودة في قاعدة البيانات ،وكيفية إنشاء وإضافة محددات من نوع
المحتويات:
.1مقدمة
98
مقدمة قواعد البيانات
99
مقدمة قواعد البيانات
100
مقدمة قواعد البيانات
مقدمة
كما تعلمنا سابقا أن عبارات SQLتنقسم إلي ثلث فئات رئيسية وهي كالتالي:
البيانات ،وتقوم هذه الواممر بإنشاء أو إسمقاط أو تغييمر كائن قاعدة البيانات ،وهمي اختصمارا
قاعدة البيانات من إدراج البيانات وتحديث ها أو تحد يد أو حذف البيانات،و هي اخت صارا للكلمات(
سنتعلم في هذا الفصل كيفية التعامل مع البيانات المخزنة في قاعدة البيانات من إضافة سجلت
أو حذف سجلت أو تغيير قيمة مخزنة في سجل ،بالضافة إلي كيفية إنشاء الجداول وإضافة
101
مقدمة قواعد البيانات
الجداول ،وهي بل شك أفضل وأسرع بكثير من إدخال البيانات بعبارات ،sqlإل أن ذلك
يمكن المبرمج من معالجة البيانات من ضمن برامجه التي يكتبها ،ونستطيع إضافة سجلت
جديدة إلي الجدول باستخدام عبارة ،insertويوجد لدينا صيغتين من عبارة ،insert
الولي تسمح بإضافة سجل واحد في نفس الوقت إلي الجدول ،والثانية تسمح باختيار
إضافة سجل واحد إلي الجدول في نفس الوقت ،والصيغة العامة لها تأخذ الشكل التالي:
Table.2ويشير إلي إسم جدول وحيد في قاعدة البيانات ،وبالتحديد الجدول الذي
.4ل ئحة من القيم محاطة بين قوسين تقوم sqlبإدراجها في العمدة المقابلة لها
علي الترتيب.
102
مقدمة قواعد البيانات
مثال1
لدراج سجل من البيانات إلي جدول ،deptنقوم بكتابة الكود التالي:
مثال2
لدراج سجل من البيانات إلي جدول ،empنقوم بكتابة الكود التالي:
.types
لئحة القيم لبد أن تأخذ نفس ترتيب العمدة في الجدول المراد إضافة
السجلت إليه.
لبد من وجود علقة واحد إلي واحد بين العمدة ولئحة القيم ،بمعني أن
قد نجهل قيمة أحد الحقول ،وذلك بكتابة كلمة ،NULLبشرط أل يكون
تناول ذلك عند إنشاء العلقات بين الجداول لحقا في هذا الفصل).
لبد من وضع الحرف النصية والتاريخ بين علمتي تنصيص مفردة' '.
103
مقدمة قواعد البيانات
للتأكد من تنفيذ العبارة السابقة وإضافة السجل إلي جدول empقم بتنفيذ
العبارة التالية:
الوقت تمكننا الصيغة الثانية من عبارة insertبإضافة عدة سجلت إلي جدولنا مختارة
Table.2ويشير إلي إسم جدول وحيد في قاعدة البيانات ،وبالتحديد الجدول الذي
ستنسخ محتوياتها إلي الجدول المراد إضافة السجلت إليه ،فعلي سبيل المثال نريد
إضافة سجلت أمان إلي الجدول secempمن أجل كل سجل من سجلت جدول
104
مقدمة قواعد البيانات
:From .2هي أحد الكلمات المحجوزة في Sqlويليها إسم الجدول المراد حذف
السجلت منه
وهي عبارة اختيارية للحد من عدد السجلت المحذوفة ،فإذا تم حذف عبارة
مثال1
لحذف السجلت الموظفين ذوي المرتبات أكبر من 5000من جدول empيتم
كتابة العبارة التالية
SQL> DELETE FROM emp
;Where sal > 5000
105
مقدمة قواعد البيانات
يمكننا حذف كافة السجلت من جدول ما بحذف عبارة whereمن جملة deleteفإن هذا
يعني حذف كافة السجلت ،والصيغة العامة لها هي:
مثال
]SQL>DELETE [FROM ;table لحذف كافة
السجلت من
جدول emp
يتم كتابة العبارة التالية
;SQL> DELETE FROM emp
بناء علي قيم من جدول آخر ،فعلي سبيل المثال إذا أردنا حذف سجلت الموظفين التابعين
مثال
تلميح
SQL> DELETE FROM employee
2 WHERE = deptno
3 (SELECT deptno
4 FROM dept
5 WHERE ;)'dname='sales
5 rows deleted.
.Where
106
مقدمة قواعد البيانات
تناول ذلك عند إنشاء العلقات بين الجداول لحقا في هذا الفصل).
يمكننما اسمتخدام updateلتعديمل القيمم الموجودة فمي جدول مما ،والصميغة العاممة لعبارة
updateتأخذ الشكل التالي:
107
مقدمة قواعد البيانات
:وتحتوي علي سلسلة من عمليات التحديث ،حيث نقوم بوضع إسم Set.3
العمود الذي نقوم بتعديل بياناته كمعامل أول ،ويحتوي المعامل الثاني علي القيمة
:Where.4وهي عبارة اختيارية يتم استخدامها لتحديد السجلت التي يراد التعديل
بها ،فإذا تم حذف عبارة Whereفإن التعديل سيتم علي كل سجلت الجدول.
يمكننا تحديث كافة السجلت من جدول ما بحذف عبارة whereمن جملة Updateفإن
مثال
الموظفين لتحديث كافة السجلت من جدول empوذلك بوضع المرتب 3000لكل
يتم كتابة العبارة التالية:
SQL> UPDATE employee
2 SET ;sal = 3000 3-2تحديـث
14 rows updated.
ســــجلت
محددة (
)Update Specific Record
يمكننا تحديث سجلت محددة والتعديل فيها بناء علي شرط أو عدة شروط ،وذلك
بتضمين عبارة Updateفقرة ،whereفعلي سبيل المثال لتعيل مرتب الموظف رقم 555
108
مقدمة قواعد البيانات
يمكننا استخدام الستعلم الفرعي في حملة updateفعلي سبيل المثال إذا أردنا
تعديل أو تحديث كل من الوظيفة والدارة للموظف رقم 555لتماثل الوظيفة والدارة للموظف
رقم ،7489سوف نحتاج إلي استخدام استعلم فرعي ،ويتم كتابة عبارة updateعلي
النحو التالي:
-4
SQL> UPDATE emp
2 SET = )(job, deptno اســتخدام
3 (SELECT job, deptno
4 FROM emp تعليمات
5 WHERE )empno =7489
6 WHERE ;empno = 555 التثــبيت
1 row updated. commi
t
والتراجع Rollback
يتطلب تنفيذ التغييرات في بيانات الجداول خطوتين:
عندما يتم تنفيذ عبارة من عبارات ،DMLيقوم أوراكل بتغيير الجدول وحفظ نسخة من
السجلت قبل إجراء التعديل ،وسيبدو المر للمستخدم وكأن التغييرات قد تمت بشكل نهائي
109
مقدمة قواعد البيانات
ودائم ،فإذا قام المستخدم بالستعلم في قاعدة البيانات ،فإنه سيري التعديلت موجودة ،فإذا قام
مستخدم آخر بالستعلم في قاعدة البيانات فلن يري تلك التعديلت ،وذلك لن التعديلت علي
البيانات ل تصبح مرئية من قبل المستخدمين الذين يسمح لهم بالوصول إلي تلك الجداول ،ول
تصبح دائمة حتى يتم تنفيذ تعليمة ،COMMITبمعني أن تلك الخاصية تسمح للمستخدم بالتراجع
عن أي تغيير قام به .ويتم التراجع عن التعديلت باستخدام تعليمة .Rollbackحيث تعيد
هذه التعليمة قاعدة البيانات إلي الحالة التي كانت عليها بعد تنفيذ آخر تعليمة .commit
تلميح
يتم تنفيذ تعليمة commitبشكل ضمني إذا قطع المطور التصال
إذا قطع التصال مع نظام أوراكل بشكل غير نظامي قبل تنفيذ
تثبيت هذه التغييرات ،ففي هذه الحالة يمكنك استخدام عدة تعليمات
110
SAVEPOINT save_point_name
ROLLBACK save_point_name
مقدمة قواعد البيانات
مثال1
لتحديث كافة السجلت من جدول empوذلك بوضع المرتب 3000لكل
الموظفين يتم كتابة العبارة التالية:
و
SQL> UPDATE employee
2 SET ;sal = 3000 لحفظ
14 rows updated.
111
مقدمة قواعد البيانات
Controlling Transactions
Transaction
ROLLBACK to Savepoint B
ROLLBACK to Savepoint A
ROLLBACK
3مثال
SQL> UPDATE...
SQL> SAVEPOINT jicc_ update;
Savepoint created.
SQL> INSERT...
SQL> ROLLBACK TO jicc_ update; كيفيــة-5
Rollback complete.
إنشاء
جداول وإضافة محددات من نوع
: وهذه العبارات هي،وهي تسمح لنا بتعريف ومحي وتعديل الجداول في قاعدة البيانات
112
مقدمة قواعد البيانات
قواعد البيانات العلئقية قادرة علي تنفيذ كافة عبارات SQLفي أي وقت بشرط أن
يكون له الحق في تنفيذ تلك الوامر والعبارات ،فلكي تقوم بإنشاء ومحي وتعديل
الجداول لبد من أن تتأكد من مدير قاعدة البيانات أنه يمنحك حق تعريف ومحي وتعديل
الجداول
الجدول بحرف نصي ويمكن أن يحتوي أحرف وأرقام والشرطة ،ويجب أل
.)underscore
113
مقدمة قواعد البيانات
المراد إنشائه ،وتنطبق نفس القواعد الخاصة بالتسمية علي إسم الجدول علي
وهناك عدة اعتبارات يجب مراعاتها عند إنشاء الجداول وهي كالتالي:
وجاهزة للتنفيذ.
-6الجدول التالي يوضح لنا أهم أنواع البيانات التي يمكن أن نستخدمها
114
مقدمة قواعد البيانات
مثال1
نقوم بإنشاء جدول ،departmentالموضح بالكود التالي أسماء أعمدته ونوع بياناتها
115
مقدمة قواعد البيانات
116
مقدمة قواعد البيانات
نل حظ وجود كل مة asب ين إ سم الجدول الجد يد المراد إنشائة وال ستعلم الفر عي ،للتأ كد من
:Add)1يستخدم هذا الخيار لضافة أعمدة جديدة أو شروط إلي الجدول ويأخذ
الشكل التالي:
117
مقدمة قواعد البيانات
بحيث يمكن حذف تلك العمدة من الجدول عندما تصبح مصادر النظام ملئمة
لذلك.
مثال1
لضافة عمود jobإلي الجدول dept10نقوم بكتابة الكود التالي:
118
مقدمة قواعد البيانات
ت ستخدم Sqlعبارة dropلحذف الجداول من النظام ،ف كل ما تحتا جه لحذف جدول هو أن
تكتب اسمه بعد drop tableفيتم حذف الجدول نهائيا بجميع سجلته وفهارسه ،وليمحنا
لحذف جدول
dept10نقوم بكتابة الكود التالي
;SQL> DROP TABLE dept10
5-2إضافة محددات إلي الجدول من نوع
يوجمد فمي أوراكمل بعمض الدوات لحمايمة قاعدة البيانات ،تسممي هذه الدوات بالشروط
.NULL
)5التأ كد من عمودا ما يحتوي علي قي مة ما ،وأن هذه القي مة موجودة ض من
119
مقدمة قواعد البيانات
يستخدم هذا الشرط للتأكد من أن قمة ما لعمود ما تقع بين قيم مجموعة محددة ،عندما تستخدم
الشرط CHECKسيقوم أوراكل بمقارنة أية قيمة يتم إدخالها مع مجموعة القيم المحددة في
المجموعة.
مثال
نستخدم الشرط CHECKفي تعريف جدول employeeالتالي ،تم إعطاء إسم للشرط
يستخدم هذا الخيار defaultلعطاء قيمة افتراضية لعمودما عندما ليتم وضع قيمة في هذا
العمود ،ول يمنع هذا الخيار من جعل القيمة nullفي هذا العمود
مثال
في هذا المثال تم استخدام الخيار defaultللتأكد من العمود commتم إعطائه القيمة
صفر عند عدم وضع أي قيمة به ،ويكون ذلك مفيدا في معالجة القيم الفارغة null
120
مقدمة قواعد البيانات
نستخدم الشرط not nullللتأكد من أن العمود دوما سيحتوي قيمة بداخله ،وخاصة ما يتم
وضمع هذا الشرط علي عمود أو أعمدة المفتاح السماسي للجدول ،لكمي تقوم بوضمع الشرط
not nullعلي عمود ما ،قم بوضع العبارة not nullبعد نوع بيانات العمود كما
بالمثال التالي:
يستخدم الشرط uniqueللتأكيد من أن القيمة الموجودة بالعمود المشروط هي قيمة وحيدة في
جميع سجلت الجدول ،بمعني عدم السماح بتكرار القيم ،فيقوم هذا الشرط بعمله عبر إنشاء
فهرس وحيد ( )unique indexعلي هذا العمود ،يعتبر الشرط uniqueأداة جيدة
للمحافظة علي هذه الخاصية في قاعدة البيانات ،فعلي سبيل المثل يمكن اعتبار عمود "
121
مقدمة قواعد البيانات
employeeل يحتوي سوي قيمة وحيدة ،مع العلم بأن العمود " " emp_idهو المفتاح
الساسي في الجدول بمعني أنة لبد أن يحتوي قيما فريدة ووحيدة وليسمح بالتكرار كما هو
موضح كالتالي:
يستخدم الشرط primary keyللمحافظة علي تكامل عمود أو أعمدة المفتاح الولي ،حيث
يجعل هذا الشرط القيم الموجودة في المفتاح في عمود مشروط به تتمتع بالشرطين
Not null, uniqueمعا ،فعند تعريف هذا الشرط يتم إنشاء فهرس وحيد unique
indexضمني وإنشاء شرط not nullضمني أيضا علي العمود أو العمدة المشروطة
بشرط المفتاح الساسي ،ويمكن اعتبار تعريف هذا الشرط كجزء من تعريف العمود أو جزء
من تعريف الجدول ،حيث إذا تم تعريف هذا الشرط علي عدة أعمدة (حالة مفتاح أساسي
مثال
لكي تعرف الشرط primary keyكجزء من تعريف عمود ما ،قم بكتابة العبارة
أسفل تعريف الجدول ،ويتم تعريفه بعد تعريف آخر عمود ،ويجب وضع فاصلة بعد تعريف آخر
يستخدم الشرط foreign keyكأداة للتأكيد من الجداول المرتبطة ل تحتوي علي سجلت
غير منتمية إلي سجل أب ،ويحتوي الشرط foreign keyعلي خيار يسمح بحذف كل
السجلت البناء المرتبطة مع سجل الب عند حذف سجل الب وهذا الخيار هو
،ON DELETE CASCADEيمكننا إنشاء مفتاح الربط الخارجي كجزء من تعريف العمود
عند إنشاء الجدول ،حيث يتم استخدام كلمة REFERENCESويليها إسم الجدول الذي يحتوي
السجل الب وذلك يكون بعد تعريف العمود ولسنا بحاجة لذكر إسم العمود من الجدول الب ،
حيث إذا لم تقوم بكتابة إسم العمود الموافق من الجدول الب يفترض أوراكل أنه هو المفتاح
الساسي
مثال1
في هذا المثال سنقوم بتعرف الشرط Foreign keyكجزء من تعريف عمود ما كما
هو موضح بالتالي:
لكي تعرف الشرط foreign keyكجزء من تعريف الجدول ،قم بكتابة العبارة
foreign keyفي أسفل تعريف الجدول متبوعة باسم العمود المطبق علية الشرط ثم كلمة
referenceثم عمود المفتاح الرئيسي بالجدول الب ،ويتم تعريفه بعد تعريف آخر عمود،
ويجب وضع فاصلة بعد تعريف آخر عمود وقبل تعريف شرط المفتاح الخارجي كما بالكود
التالي:
5-2-
(SQL> CREATE TABLE emp 1-7
2 empno NUMBER(4),
تعديـــل
3 ename VARCHAR2(10) NOT NULL,
4 job VARCHAR2(9), تعريــف
5 mgr NUMBER(4),
شرط مـا(
6 hiredate DATE,
7 sal NUMBER(7,2), Modif
8 comm NUMBER(7,2), ying
9 deptno NUMBER(7,2) NOT NULL, Const
)10 CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno raint
;))11 REFERENCES dept (deptno )s
يمكننا
إضافة شرط للجدول وذلك بعد إنشائه ،كما يمكننا إزالة تلك الشروط أو إلغاء تفعيلها أو
تفعيلهاوذلك باستخدام alter tableويمتلك هذا المر عدة خيارات يمكن استخدامها مع
( DISABLE)4إلغاء تفعيل) :يسمح بإدخال البيانات دون النظر في فيما إذا كانت
124
مقدمة قواعد البيانات
( ENABLE)5تفعيل) :يقوم بالتحقق من أن جميع البيانات التي يتم إدخالها والموجودة
مثال1
مثال2 مثال2
مثال5
SQL> ALTER TABLE emp
;2 enable primary key
Table ALTER
>SQL TABLE
altered. emp
;2 drop primary key
Table altered. السئلة
المجموعة الولي:
) أمام العبارة الصحيحة وعلمة (×) أمام العبارة الخاطئة مع ضع علمة (
تصحيح الخطأ.
.1عند استخدام Insert intoلئحة القيم لبد أن تأخذ نفس ترتيب العمدة في
العبارة التالية:
125
مقدمة قواعد البيانات
.3عند استخدام عبارة insertيجب أن تتطابق العمدة والقيم المقابلة لها في نوع
.4عند استخدام عبارة insertليتم وضع الحرف النصية والتاريخ بين علمتي
التغييرات.
المجموعة الثانية:
أسئلة لتدريب الطلب على أسئلة الختيار المتعدد:
.1عند استخدام :insertـ
126
مقدمة قواعد البيانات
.types
)bلئحة القيم لبد أن تأخذ نفس ترتيب العمدة في الجدول المراد إضافة
السجلت إليه.
)cلبد من وجود علقة واحد إلي واحد بين العمدة ولئحة القيم،
)dجميع ما سبق.
)cلبد من وضع الحرف النصية والتاريخ بين علمتي تنصيص مفردة' '.
A&b&c)d
A&c)e
)cتحذف Deleteالجدول
a&b)d
127
مقدمة قواعد البيانات
)cل يمكننا تحديث سجلت محددة والتعديل فيها بناء علي شرط أو عدة
شروط.
أردنا.
A&b)e
جزء
A&c&d.e
بياناتها.
A&c&d)f
)bوضع كلمة asبين إسم الجدول الجديد المراد إنشائة والستعلم الفرعي
A&b&c)d
.NULL
)eجميع ما سبق.
129
مقدمة قواعد البيانات
)aيستخدم هذا الشرط للتأكد من أن قمة ما لعمود ما تقع بين قيم مجموعة
محددة
)bيقوم أوراكل بمقارنة أية قيمة يتم إدخالها مع مجموعة القيم المحددة في
المجموعة
A&b)c
)bيتم وضع هذا الشرط علي عمود أو أعمدة المفتاح الساسي للجدول
A&b)c
.11الشرط :default
A&b)c
.12الشرط :unique
130
مقدمة قواعد البيانات
)bفيقوم هذا الشرط بعمله عبر إنشاء فهرس وحيد ( )unique indexعلي
العمود المشروط.
A&b)c
الولي.
)bيجعل هذا الشرط القيم الموجودة في المفتاح في عمود مشروط به تتمتع بالشرطين
)eيمكن اعتبار تعريف هذا الشرط كجزء من تعريف العمود أو جزء من تعريف
الجدول
)fجميع ما سبق.
)dجميع ما سبق
131
مقدمة قواعد البيانات
A&b)c
132
مقدمة قواعد البيانات
الفصل الرابع
ورشـــة عمـل
133
مقدمة قواعد البيانات
الهداف:
إعطاء الطالب ترسميخ المفاهيمم السماسية للغمة SQLفمي ذهمن الطالب ممن خلل قيام
الطالب بإنشاء عدة جداول ،وإضافمة محددات ممن نوع Primary key, foreign
،keyوالقيام بعمليات إضافمة البيانات إلي الجداول وحذف وتعديمل البيانات فمي قاعدة البيانات،
لمحتويات:
134
مقدمة قواعد البيانات
القيام بإنشائها.
135
مقدمة قواعد البيانات
136
مقدمة قواعد البيانات
ورشة عمل
الجدول الولdepartment:
الجدول الثانيemployee:
سابقا.
.employee
137
مقدمة قواعد البيانات
.3000
138
مقدمة قواعد البيانات
جدول .emp
لدارة المبيعات.
139
مقدمة قواعد البيانات
الفصل الخامس
مصمم النماذج
Form Builder
140
مقدمة قواعد البيانات
الهداف :
إعطاء الطالب صمورة موضحمة عمن أسماسيات منشمي النماذج ،Form Builder
وكيفية إنشاء النماذج باستخدام المعالج ،Form Wizardوالتعديل علي الشكل العام للنموذج
وإضافة الحقول إلي النموذج ،مع تحديد وتعديل خصائص الكائنات علي النموذج.
المحتويات:
)1مقدمة عن oracle Developer
141
مقدمة قواعد البيانات
142
مقدمة قواعد البيانات
)7التعرف علي خصمائص الكائنات الموجودة علي النموذج ممن النوافمذ وكتلة البيانات
143
مقدمة قواعد البيانات
ويحتوي oracle Developerعلي عدد من القسام التي تساعد علي إنشاء وتطوير
والبرامج في جميع المجالت وتسهل لك أداء الوظائف البرمجية من خلل بيئة رسومية GUI
سهلة الستخدام والبرمجة كما بالشكل التالي:
144
مقدمة قواعد البيانات
يع تبر منش يء المشار يع نق طة بدا ية لغلب أدوات oracle developerح يث
التقارير)
الرسوم البيانية)
الوحدات البرمجية)
الستعلمات)
كما يمكنك من إنشاء ملفات مشاريع جديدة ،وفتح مشاريع موجودة مسبقا
تطمبيقات تقوم بالتصمال ممع قاعدة البيانات واسمترجاع البيانات المطلوبمة ممن قبمل المسمتخدم،
وإظهارها ضمن تخطيط تم تصميمه من قبل المصمم والسماح للمستخدم بإضافة وتعديل البيانات
145
مقدمة قواعد البيانات
إنشاء التقارير في مشروعك أو تطبيقك وربطها بالشاشات المختلفة من خلل بيئة رسومية سهلة
ال ستخدام ،GUIوت ساعد هذه التقار ير علي ا سترجاع بيانات من قاعدة البيانات و فق تخط يط
محدد ممن قبمل مصممم التقاريمر ،وغالبا مما تحتوي علي مجاميمع جزئيمة Subtotals
وتليخيصمات ،Summariesوغالبا مما تشتممل علي رسموم بيانيمة لعطاء مسمتخدم التقريمر
استخدام معظم الوامر النصية التي كنا نقوم بكتابة في ،SQLمما يسهل عملية البرمجة ويقلل
الخطاء.
مد Viewsواللقطات
مف الجداول ،Tablesوالمشاهم
ما تعريم
مهلة منهم
مومية سم
بيئة رسم
البيانات ،و من ثم تنف يذ هذا الت صميم ،ك ما ي سمح ل نا منش يء المخططات برؤ ية ت صميم قاعدة
البيانات .
146
مقدمة قواعد البيانات
للتطبيق.
النماذج و إضا فة العنا صر ال ساسية لوحدة النموذج ،وإنشاء ك تل البيانات ،Data Block
147
مقدمة قواعد البيانات
صندوق الترحيب التالي والذي من خلله نستطيع تحديد الطريقة التي سيتم تصميم النموذج بها،
ونجمد ممن الشكمل السمابق أن هناك عدة اختيارات عنمد تصمميم النماذج ،منهما أربعمة
موضحة كالتالي:
148
مقدمة قواعد البيانات
ويوفر هذا الختيار معالج يساعدنا في إنشاء النماذج،ويتم اختياره عندما نريد إنشاء
نموذج آليا باستخدام معالج من قبل البرنامج يسهل لنا عملية النشاء
يمكننا عن طريق هذا الختيار من إنشاء النموذج بطريقة العرض التصميمي ،بمعني
أن المبرمج سيقوم بإنشاء النموذج يدويا.
يمكننا هذا الختيار من إنشاء نموذج بناء علي قالب نموذج آخر.
149
مقدمة قواعد البيانات
يحتوي منشيمء النماذج form builderعلي العديمد ممن المكونات المختلفمة التمي
يزودنا كلً منها بعمل محدد ،وتسمي هذه المكونات modulesكما بالشكل التالي:
مم
:formوتكون أغلب جسم )aوحدات النموذج modules
150
مقدمة قواعد البيانات
مبيقات
مية للتطم
مة والشاشات الرئيسم
متعلمات المختلفم
وشاشات السم
المختلفة.
التي تقوم بكتابتها ،ويتم استدعاء هذه الوحدات من قبل وحدات أخري
ضمن تطبيقك.
مكونات النموذج بشكمل أكثمر تفصميلً ،وليمس هذا فحسمب بمل كبنيمة هرميمة ،وفمي oracle
والتمي تحتوي بدورهما علي عناصمر أصمغر.وتجممع كمل هذه العناصمر ضممن واجهمة وحيدة
متما سكة ت سمح للم ستخدم بالتعا مل مع بيانات قاعدة البيانات ،وفي ما يلي توض يح لهذه المكونات
العناصر المرئية لتطبيق منشىء النماذج داخل النوافذ ،ويوجد نوعين من النماذج وهما
،windowsسيحتوي تطبيقك تلقائيا علي نوع من النوافذ يسمي نافذة واجهة المستند المتعددة
حجمها وموقعها ،وأيضا إذا كانت هذه النافذة الحوارية مشروطة modalأم ل فعلي سبيل
المثال قد تجبر المستخدم من الجابة عليها قبل أن يكون لدية القدرة علي عمل شيء آخر،
وكذلك تحديد غيما إذا كان باستطاعة المستخدم نقلها أو تغيير حجمها أو تكبيرها أو تصغيرها أو
152
مقدمة قواعد البيانات
وغيرها.
visual backgroundالتي يتم وضع عناصر النموذج عليها،وهناك أربعة أنواع من
الدوات . toolbar
جزء منها ،ويمكن أن تظهر الكنافا المكدسة بنفس خلفية كنافا المحتوي ،أوشكل مختلف عنها ،
ويمكننا استخدام الكنافا المكدسة لجعل العناصر تختفي أو تظهر علي الشاشة اعتمادا علي
خيارات كثيرة ضمن النافذة ،windowsوهذا النوع يسمح للمستخدم بالنتقال بين صفحات
متعددة لمعلومات مرتبطة بينها ،وتكون مفيدة جدا عندما تريد إظهار كمية كبيرة جدا من
153
مقدمة قواعد البيانات
المعلومات المرتبطة وذلك علي مساحة صغيرة نسبيا ،وتستقر الكنافا المبوبة علي كنا المحتوي
شريط أو أكثر ،ويمكنك التحكم بالكود بتحديد أشرطة الدوات التي ستظهر في وقت معين ،
لك بالوصول إلي البيانات في جدول قاعدة البيانات data base tableأو مشهد قاعدة
إطار frameحول كتل البيانات ،حيث يمكنك استخدام هذا الطار لنقل الكتلة علي البساط أو
154
مقدمة قواعد البيانات
معها ،وأكثرها شيوعا هوعنصرالنص text itemالذي يحتوي حقول تسمح للمستخدم
برؤية وإدخال وتعديل بيانات قاعدة البيانات ،ويوجد أيضا عناصر لظهار بيانات قراءة فقط
الصور image itemوغيرها من العناصر التي سوف نتعرض لها بالتفصيل لحقا.
يساعدنا علي الربط بين النموذج وقاعدة البيانات ،أو بشكل أدق بين النموذج
155
مقدمة قواعد البيانات
)3تظهر لك الشاشة التالية تقوم بسؤالك عما إذا كانت بيانات الكتلة ستعتمد
)4تظهر لنا النافذة التالية ويتم منها تحديد إسم الجدول المراد إنشاء نموذج بناءا علي
بيانات ،ولفعل مثل ذلك لبد أولً من التصال علي قاعدة البيانات التي يعتبر هذا
السر واسم قاعدة البيانات فيتم إدخال تلك البنود ثم الضغط .connect
156
مقدمة قواعد البيانات
)5
ومن النافذة التالية يتم تحديد إسم الجدول وهو في مثالنا جدول ،empثم الضغط
157
مقدمة قواعد البيانات
158
مقدمة قواعد البيانات
وهما كالتالي:
والذي يعني إنشاء الكتلة ثم استدعاء معالج التخطيطات وذلك للتحكم في إظهار أو إخفاء
.items
Just create the data block)b
إنشاء كتلة المعطيات
)7قم بتنشيط الخيار
Create the data block, and then call the lay out wizard
159
مقدمة قواعد البيانات
)10
تظهر
لنا شاشة الكنافا التالية التي تمكننا من تحديد إسم الكنافا ونوعها ،حيث
تقوم بسؤلك عن إسم الكنافا التي تريد استخدامها كما تعلمنا أن الكنافا
تعتبر الخلفية الساسية لي نموذج ،ولذلك يتم وضع كنافا المحتوي تلقائيا
الفتراضي ،قم بتحديد إسم الكنافا التي تريد ظهور الكتلة عليها ولنك لم
تقم بإنشاء كنافا سابقا بمعنى أن هذا النموذج هو أول نموذج لك في
160
مقدمة قواعد البيانات
)11ت
ظهر
لنا
نافذة
كتلة البيانات التي تمكننا من التحكم في إظهار البنود علي الكتلة data
الزر < أو التراجع عن إظهار مجموعة العناصر عن طريق الزر << ،ثم
161
مقدمة قواعد البيانات
)12تظهر لنا نافذة التحكم في العناصر التالية ،ويمكنك من خللها تغيير عنوان
162
مقدمة قواعد البيانات
163
مقدمة قواعد البيانات
البيانات وهو في هذا المثال الموظفون ،ويسمح لنا بتحديد عدد السجلت التي
مباشرة مما يساعد علي تحديد المسافات بشكل أفضل وأسرع ،أما الحقل
سيحتوي شريط تمرير أم ل ويكون ذلك مفيدا عنما يعرض الطار أكثر من
164
مقدمة قواعد البيانات
)15يقوم معالج التخطيطات بإظهار نافذة التهنئة الخيرة التالية قم بقراءتها ثم
تخطيط موجود مسبقا ،وذلك لجراء تغييرات عامة علي هذا التخطيط
165
مقدمة قواعد البيانات
تشغيل برنامج تنفيذ النماذج Form Runtimeوقبل القيام بذلك يجب عليك القيام بحفظ النموذج ثم
ترجمته.
المقابل
مباشرة ،وإنما توجد خطوة فاصلة يتم تنفيذها لتحويل ملف وحدة النموذج إلي ملف تنفيذي
منفصل بحيث يستطيع برنامج تنفيذ النماذج Form Runtimeقراءته ،ويسمي هذا الجراء
وبشكل تلقائي ترجمة وحدة النموذج قبل تنفيذها ،قم بتنفيذ أمر القائمة
167
مقدمة قواعد البيانات
تلميح
الشيء الول الذي تلحظه عند تشغيل النموذج هو أن النموذج ل
مره فستحتاجه لدخال بيانات جديدة ،أما إذا أردت إظهار البيانات
النماط المختلفة لملفات منشىء النماذج ،Form builderحيث يقوم كل مكون من
مكونات منشىء النماذج بإنشاء مجموعة مختلفة من الملفات ،ولكل ملف منها هدف
مختلف عن الخر ،فمكون النموذج formيقوم بتوليد ثلثة أنماط من الملفات ،فملف
التصميم الذي تقوم بالتعامل معه مباشرة يأخذ المتداد( fmb.اختصارا للعبارة form
، )module binaryأما الملف التنفيذي الذي يتولد عندما تقوم بترجمة وحدة
والجدول التالي بيين المكون والملفات التي يكونها في وضعي التصميم والتنفيذ وامتداد
كل منها.
168
مقدمة قواعد البيانات
الوصف المتداد
الوحدة أو المكون
ملف تصميم النموذج fmb.
نموذج Form
ملف تنفيذ النموذج
fmx.
ملف تصميم القائمة mmb. قائمة menu
تنفيذها علي قاعدة البيانات الساسية حتى تقوم بعملية التثبيت Commitلهذه التغييرات
169
مقدمة قواعد البيانات
المطلوبة ،وانقل المؤشر إلي الحقل الذي تريد تغييره وتعديله ،وقم بإجراء التعديل المطلوب ،ثم
شريط الدوات.
ل تنس القيام بعملية التثبيت commitوذلك بالقيام بالضغط علي زر saveمن شريط
الدوات.
5-4فهم نمطي عمليات تنفيذ النماذج:
170
مقدمة قواعد البيانات
الثانية :حالة الستعلم Query modeوهي حالة الستعلم ويقوم المستخدم باستدعاء هذا
النمط بتنفيذ المر excute Queryفيقوم النموذج بتفريغ محتواه وانتظار المستخدم القيام
الدوات البرمجية في أقصي اليسار ثم تحديد حجمه علي النموذج ومن ثم تحديد
أو مربع الدوات البرمجية في أقصي اليسار ثم تحديد حجمه علي النموذج ومن ثم
الشكل
)3بالضافة للعناصر التي تساعد المستخدم علي إدخال البيانات وتعديلها يحتاج
النموذج إلي عناصر تقوم بإظهار بيانات للقراءة فقط منها أو أزرار يتم إضافة
بنفس الطريقة إلي النموذج في وضع التصميم منها الزر Radio Button
)4وبنفس الطريقة يمكننا إضافة عناصر الصورة والصوت وغيرها إلي النموذج.
171
مقدمة قواعد البيانات
من خللها تحديد كيفية ظهور كل عنصر من عناصر النموذج وعمل هذا العنصر ،وتساعدك
لوحة الخصائص كثيرا في تطوير النماذج كالخصائص التي تتحكم بظهر وسلوك كتل البيانات
وكذلك خصائص كلمن الطارات وكتل التحكم ،وستتعرف أيضا علي خصائص العناصر
النصية التي تسمح لك برؤية وتحرير النصوص والرقام والتاريخ وغيرها من البيانات وكيفية
إجبار المستخدم علي إدخال بيانات بشكل معين وكيفية إنشاء أدوات اليضاح
تحتوي لوحة الخصائص علي أنواع متعددة من حقول القيم وهي موضحة كالتالي:
لتحديد القيم.
172
مقدمة قواعد البيانات
وببساطة يمكنك تغيير قيم الخصائص وذلك بالنقر علي حقل القيمة للخاصية المطلوبة ،ثم
كتابة القيمة الصحيحة أوتحديدها في صندوق حوار وهكذا ...ويمكنك مقارنة خصائص
عنصرين أو أكثر وذلك باختيار جميع العناصر التي نرغب بمقارنتها،ومن ثم استخدام عدة
للوحة الخصائص ،فستقوم اللوحة بإظهار الخصائص المشتركة فقط بين جميع العناصر المختارة
،والخصائص التي لها نفس القيمة في جميع العناصر المختارة فستظهر فيها القيمة المشتركة
أما إذا لم تكن لها نفس القيمة فسيظهر الرمز *****ضمن الخصائص بدلًمن القيمة
إذاتلميح
أردت إظهار خصائص لعدة عناصر في لوحة وحيدة ،وبالتالي
مع النقر علي عنصر آخر يؤدي إلي اختيار مجال متلصق
أما إذا أردت اختيار عناصر غير متجاورة استخدم مفتاح ctrl
مرتين
173
مقدمة قواعد البيانات
خصائص كتل البيانات نقوم بتحديد الكتلة وهي في مثالنا empثم الضغط عليها مرتين Double
174
مقدمة قواعد البيانات
المسترجعة
175
مقدمة قواعد البيانات
المسترجعة
تمكننا من التحكم بعمليات الدراج والتعديل Insert/update/delete
allowed
والحذف ضمن كتلة البيانات .
حيث يقوم منشيء النماذج Form Builderباستخدام عناصر النص لظهار نص أو
تاريخ أو أرقام .....إلخ وتسمج بتحرير البيانات من قبل المستخدم،ويجب النتباه إلي أن أي
الظهار ل يسمح بتغيير البيانات الظاهرة ،ويمكن لعنصر النص أن يحتوي سطرا واحدا أو عدة
أسطر .
176
مقدمة قواعد البيانات
أنه من الضروري اللمام بكيفية التحكم بمظهر البيانات التي نقوم بإظهارها ،ويمكنك الوصول
إلي خصائص الظهار باختيار العنصر الذي نرغب في تغيير مظهره ثم فتح لوحة خصائص
عنصر النص:
للمستخدم
إن خاصية visual Visual Font&color
attribute group
attribute group
تسمح لنا بإنشاء مجموعة
خصائص البنط واللوان
والتعبئة زمن ثم تطبيق هذه
الخصائص علي نموذجك
وهي بمثابة التنسيق التلقائي
في برنامج معالجة النصوص
عنوان نص يتم إظهاره مع prompt prompt
العنصر
2- 4 -6التحكم في بيانات عنصر النص
177
مقدمة قواعد البيانات
إذا كان مظهر عنصر النص يعتبر أمر ضروري وهام إل أن محتوي عنصر النص من البيانات
أكثر أهمية والجدول التالي يوضح الخصائص التي تمكننا من التحكم في البيانات التي يحتويها
عنصر النص:
قبوله
تقبل فقط الدخالت التي Data fixed Data
178
مقدمة قواعد البيانات
value
Calculationلتحديد ما إذا كان سيتم حساب calculation
mode
العنصر من خلل صيغة
formulaأو تلخيص
summary
التي تسهل عملية التنقل ضمن التطبيق كما هو موضح بالجدول التالي :
179
مقدمة قواعد البيانات
في هذه الفقرة سنحدد الخصائص التي تسمح لك بالتحكم في كيفية ربط عنصر نص
بقاعدة البيانات ،وهناك العديد من الخصائص التي تمكننا من تحديد ماهي العناصر التي يستطيع
المستخدم من إضافة البيانات وتعديلها وتحت أية معايير أو شروط محددة وغيرها كما هو
لهذا العنصر
وتحتوي خياران yes, no Query only database
وفي خالة اختيار yesيمكننا
إجراء الستعلم علي هذا
العنصر فقط ول يمكننا إجراء
عمليات الدراج أو التعديل
علي هذا العنصر
وتحتوي خياران yes, no Query allowed database
180
مقدمة قواعد البيانات
181
مقدمة قواعد البيانات
182
مقدمة قواعد البيانات
السئلة
المجموعة الولي:
) أمام العبارة الصحيحة وعلمة (×) أمام العبارة الخاطئة مع ضع علمة (
تصحيح الخطأ.
)1منشىء النماذج يساعدك علي إنشاء شاشات إدخال البيانات والمعروفة بالنماذج.
)2منشىء التقاريمر عبارة عمن أداة تسمتخدم لنشاء التقاريمر ضممن تطمبيقات
)3منشىء السمتعلمات يسماعد الممبرمجين علي ترجممة نصموص تطمبيق مما إلي
)4منشيمء التقاريمر يسماعد علي إنشاء الرسموم البيانيمة المختلفمة ممن خلل بيئة
رسومية .GUI
)5عناصمر النافذة همي الحدود الخارجيمة للنموذج ،وهمي عبارة عمن إطار فارغ
لحمل العناصر.
)7تقوم كتمل البيانات بإنشاء جسمر بيمن نموذجمك والبيانات الموجودة فمي قاعدة
البيانات.
)8يتم وضع الكنافا المكدسة تلقائيا داخل أي تخطيط نموذج جديد تقوم بإنشائه،
183
مقدمة قواعد البيانات
المجموعة الثانية:
)1ماهي المكونات الرئيسية الربع لمنشيء النماذج ؟
)4حدد الطريقة التي يمكننا بها حذف عنصر من تخطيط النموذج دون حذفه من كتلة
البيانات ؟
184