إنشاء وإدارة الجداول
الأهداف
بعد اآمال هذا الدرس يجب أن تكون قادر علي:
. Data Base Object معرفة انواع 1.
2. إنشاء الجداول .
معرفة أنواع البيانات التي يمكن أن تستخدم عندانشاء الجدول. 3. تعديل أنواع البيانات بالجدول. 4.
5. حذف الجدول من قاعدة البيانات و تبديل اسم الجدول باسم اخر
وازالة آافة البيانات من الجدول.
DATA BASE OBJECTS ٍٍٍ
Description
Object
Table
مكون من مجموعة صفوف وأعمدة
يمثل مجموعة من البيانات مأخوذة من جدول واحد
أو أآثر من جدول
View
يستخدم لترتيب الارقام فى Primary Key
Sequence
يحسن أداء بعض الاستعلامات عن طريق عمل
Index لبعض الاعمدة Index
Synonym Data Base Object يعطي أسماء بديلة إلي
Naming Rules
هناك بعض الشروط لكى يمكنك اعطاء اسماء للجدوال او الاعمدة :
-1 لابد ان يبدأ اى اسم بحرف.
. -2 لابد ان يكون طول حروف الاسم بين 1 الى 30
.(A-Z ,a-z ,0-9 ,_ ,$ ,# -3 الحروف التى يمكن ان يتضمنها الاسم (
-4 لايمكن اعطاء اآثر من جدول او عمود نفس الاسم.
مثل تسمية جدول باسم ORACLE -5 لايمكن اعطاء اسماء خاصة بأوامر
. UPDATE او SELECT
Create Table
لكى يمكنك انشاء جدول:
1 - لابد ان يكون لك صلاحية انشاء جدول.
ان يكون لك مساحة لانشاء الجدول. 2 - اعطاء اسم للجدول غير مستخدم من قبل. 3 -
TABLE مث CREATE لإنشاء جدول جديد يتم استخدام الأمر ثم أسم الجدول
ثم بعد ذلك يأتي أسماء الأعمدة بأنواع البيانات التي سوف تخزن بها .
وهي تكون علي النحو التالي:
* توضع أسماء الأعمدة وأنواع البيانات بين قوسين ويكتب أسم العمود
ويليه نوع البيانات التي سوف تخزن به .
يتم تحديد آلا من : • أسم الجدول. - أسم العمود . - نوع بيانات العمود ومساحة العمود. -
DCL يستخدم (DBA) مدير قاعدة البيانات ليمنحك امكانية انشاء جداول
وسوف يغطي في الفصل الاخير.
من النحو
Schema المرتبطة بقواعد البيانات. objects هي عبارة عن مجموعة الكائنات
القيمة الافتراضية Default Option
لعمود محدد أثناء إدخال البيانات. رتفا ةيضا تحديد قيمة
إنشاء الجداول Cerate Table
:Create الصيغة الرئيسية لجملة
من المثال السابق
-1 نجد أن العمود الاول تم تحديد نوع البيانات لة أرقام وأقصي
عدد م سموح لة رق م من خانتين ويراعي وضع الرقم ( 2) بين
قوسين.
-2 العمود الثانى نوع البيانات لة حروف واقصى عدد من
الحروف هو 14 حرف ويراعى وضعة بين قوسين.
-3 أعمدة التاريخ لا يتم تحديد طولها أثناء إنشاء الجدول.
:DESCRIBE او DESC التاآد من إنشاء الجدول عن طريق استخدام الامر
Tables in The ORACLE DATA BASE
الجداول في قاعدة بيانات أوراآل
هناك نوعان من الجداول:
:(User Tables) جداول المستخدم • مجموعة الجداول التي تم إنشاؤها وحفظها عن طريق المستخدم. -
:(Data Dictionary) قاموس البيانات • .(Dual,User_Objects,…..) مجموعة من الجداول الخاصة بأوراآل مثل - (Dual)الجدول يمكن استخدامة لعمل اى عمليات خارج قاعدة
البيانات او لمعرفة تاريخ اليوم.
يستخدم لمعرفة معلومات عن (User_Objects)الجدول
.User بالنسبة (Data Base Object)
مثال:
Select * from
user_objects;
استعلام عن قاموس البيانات
- معرفة الجداول الخاصة بالمستخدم
الخاصة بالمستخدم: (Data Base Object) - مشاهدة أنواع
- مشاهدة الجداول المملوآة بواسطة المستخدم.
ملحوظة :
.CAT الى USER_CATALOG يمكن اختصار اسم الجدول
SELECT *
FROM CAT ;
أنواع البيانات (Data Types)
ا
لوصف نوع
بيانات حرفية متنوعة ويتم تحديد طولها بين
القوسين .والطول المسموح بة يكون من حرف
واحد الى 4000 حرف.
VARCHAR2(size)
بيانات حرفية ثابتة الطول وحجمه يكون
بالبايت(وحجمة يكون من 1 الى 2000 حرف)
Char (size)
بيانات رقمية ويتم فيها تحديد عدد خانات الرقم
بين قوسين ويمكن ان يتضمن ارقام عشرية.
(P) تعنى عدد خانات الرقم الصحيح ويمكن ان
يحتوى من 1 الى 38 خانة.
(S) تعنى عدد خانات الارقام العشرية ويمكن ان
.( يحتوى من (- 84 الى 127
NUMBER (p,s)
بيانات عن التاريخ والوقت.
DATE
البيانات الحرفية المتنوعة ومساحتها
2 gigabytes
LONG
بيانات حرفية حتى 4 gigabytes
CLOB
بيانات رقم ثنائي أولي
RAW and LONG RAW
بيانات ثنائية حتى 4 gigabytes
BLOB
بيانات ثنائية تخزن في ملف خارجي حتى 4
gigabytes
BFILE
تمثل النظام والعناوين الفريدة للصف في الجدول
ROWID
البيانات الثنائية لحجم الطول (وأقصي حجم يجب
( أن يكون محدد . وأقصي حجم يكون 2000
RAW(size)
بيانات ثنائية للطول المتنوع حتى 2 gigabytes
LONG RAW
بيانات ثنائية حتى 4 gigabytes
BLOB
تخزين البيانات الثنائية في الملف الثنائي حتى 4
gigabytes
BFLLE
رقم القاعدة 64 تمثل النظام والعناوين الفريدة
للصف في الجدول
ROWID
- العمود LONG ولا ينسخ عندما يكون الجدول منشأ باستخدام
الاستعلام الفرعي.
- العمود LONG لا يمكن أن يتضمن في فقرة GROUP BY أو
ORDER BY .
ملاحظات
أوراآل 9i تقدم أهداف آبيرة لأنواع البيانات ( LOB ( Large Object
ويمكن أن تخزن بيانات آبيرة و غير منظمة مثل نص أو صورة أو
فيديو و تصل مساحتها حتى 4 gigabytes .
أنواع بيانات التاريخ والوقت
أنواع البيانات للتاريخ
ا
لوصف أنواع البيانات
TIMSTAMP
يعرض التاريخ مع آسر الثواني.
يسمح للوقت أن يخزن آتاريخ بكسر الثواني.
يسمح للوقت أن يخزن بالسنوات والشهور
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
يسمح لتخزين الوقت بالأيام والساعات والدقائق
والثواني.
.DATE يكون توسع في نوع بيانات TIMESTAMP نوع بيانات - DATE تخزن السنة والشهر واليوم في نوع بيانات - بالاضافة الى قيم
الساعات والدقائق والثواني.
محدد آالمتبع التالي: TIMESTAMP نوع بيانات - الكسر والثواني والدقائق -
- يحدد دقة العدد بشكل اختياري من الأرقام في جزء الكسر من الثانية
لحقل الوقت والتاريخ حيث يمكن أن يكون عدد في المدى من 0 إلي 9
. والاختيار يكون 6
المثال
- من المثال السابق نحن ننشئ جداول موظفين جدد مع عمود تاريخ
البداية بأنواع بيانات من . TIMSTAMP
. دقة 7 تشير إلي دقة آسر الثواني التي لا تحدد الاختيار إلي 600
أفترض أن الصنفان يدخلان جدول الموظفين الجدد . - DATE المخرجات ترينا الاختلافات في العرض ( اختيارات نوع بيان
يعرض الصيغة ): DD-MON-RR
الوقت المعتاد مع نوع بيانات المنطقة الزمنية
- الوقت المعتاد مع المنطقة الزمنية تكون مختلفة من الوقت المعتاد
التي تشتمل علي الإزاحة المنطقة الزمنية في قيمتها.
- الإزاحة المنطقة الزمنية تكون مختلفة في الساعة والدقائق بين
المنطقة الزمنية و . UTC
يساند التنسيق العالمي لشكل الوقت والوقت يعني غرينتش . UTC -
قيم الاثنان الوقت المعتاد و المنطقة الزمنية تعتبر القيم متماثلة إذا يمثلوا
نفس اللحظة في UTC
بغض النظر عن تعديلات المنطقة الزمنية التي خزنت في البيانات.
ولأن الوقت المعتاد مع الوقت الزمني يمكن أن يخزنوا في البيانات بتوازن،
إنه خصوصا مناسب لمعلومات التاريخ المسجلة التي يجب أن تكون مجمعة
أو نسقت عبر مناطق جغرافية.
آمثال:
وهي نفس
8 وقت قياس للمحيط وهي نفس 11 وقت قياس شرقي.
ويمكن أن تحدد أيضا مثل:
ملحوظة :
الكسر والثواني والدقائق تحديدات اختياريه الرقم من 0إلي 9 في جزء
الكسر من الثانية لحقل الثواني ويمكن للقم أن يكون بين مدي 0 إلي 9 و
. الاختيار يكون 6
نوع البيانات للوقت المعتاد مع الوقت المحلي
- الوقت المعتاد مع الوقت الزمني المحلي يكونوا اختلافات من الوقت
المعتاد و المحتويات علي استبدال المنطقة الزمنية في هذه القيمة.
- خزنت البيانات في قاعدة البيانات التي تجعله طبيعيا للمنطقة الزمنية
.
- الاستبدال للمنطقة الزمنية لا تخزن آجزء بيانات العمود، وتسترجع
أوراآل البيانات من المستخدم المحلي لدورة المنطقة الزمنية.
- الوقت المعتاد مع نوع بيانات منطقة الوقت المحلي محدد آالمتبع
التالي:
علي خلاف الوقت المعتاد مع المنطقة الزمنية يمكنك تحديد أعمدة من النوع
الوقت المعتاد مع المنطقة الزمنية المحلية آجزء أساسي أو مفتاح فريد .
إن استبدال المنطقة الزمنية علي الخلاف في الساعات والدقائق بين
التوقيت المحلي و UTC
ليس هناك حرفي للوقت المعتاد مع منطقة التوقيت المحلي .
ملحوظة: الكسر والثواني والدقائق تحديدات اختياريه الرقم من 0إلي 9 في
جزء الكسر من الثانية لحقل الثواني ويمكن للقم أن يكون بين مدي 0 إلي 9
. و الاختيار يكون 6
مثال:
الوقت المعتاد مع منطقة التوقيت المحلي ملائمة للتطبيقات الصفين
المدرجين والتي تريد أن تعرض تواريخ وأوقات يستعملان منطقة التوقيت مع
نظام العميل .
نوع البيانات INTERVAL YEAR TO MONTH
نوع البيانات لفترة السنة من الشهر
ويخزنون لفترة من الوقت باستخدام الوقت والتاريخ والشهر والسنة - INTERVAL YEAR TO MONTH استخدام يمثل اختلافي بين قيم الوقت
والتاريخ.
التي يكون فيها الأقسام الهامة الوحيدة وهي السنة والشهر.
آمثال : ربما تستخدم هذه القيمة آي تضع الذاآرة للتاريخ 120 شهر في
المستقبل ، أو التأآد من
أن هل 6 شهور قد انقضت منذ بداية تاريخ خاص.
حدد فترة السنة إلي الشهر آالمتبع التالي:-
من الصيغة:
Year_precision هي الرقم المكون من 0 إلي 9 في السنة حقل التاريخ
والوقت.
مثال
نوع بيانات INTERVAL DAY TO SECOND
نوع بيانات فترة اليوم إلي الثانية
في تعبيرات الأيام والساعات والدقائق والثواني. - INTERVAL DAY TO SECOND نستخدم آي تمثل الخلاف الدقيق بين
قيمتين التاريخ والوقت.
آمثال : ربما تستخدم هذه القيمة آي تضع تذآرة للوقت 36 ساعة في
المستقبل.
أو أن تسجل الوقت بين بداية ونهاية السباق.
وأن تشمل مدد طويلة من الوقت ويضمن ذلك السنوات المتعددة مع الضبط
العالي.
ويمكنك أن تستخدم قيمة آبيرة في أقسام الأيام.
آالمتبع التالي : INTERVAL DAY TO SECOND تحديد
من النحو
Day_precision هي عدد من الأرقام اليوم لحقل التاريخ
والوقت.
قيم مقبولة تكون من 0 إلي 9 والاختيار
. يكون 2
Fractional_seconds_precision عدد من الأرقام لجزء الكسر من الثانية
لحقل
الوقت والتاريخ
والقيم المقبولة من 0 إلي 9 والمختار منها
. يكون 6
مثال
Creating Tables
By using SubQuery SubQuery إنشاء جداول باستخدام صيغة
SubQuery يمكن أنشاء جدول عن طريق استخدام وذلك عن طريق آتابة أمر
إنشاء الجدول AS أولا ثم يليه أسم الجدول المراد إنشاؤه ثم آلمة (Create)
ثم SubQuery الذى يتضمن أسماء الأعمدة المراد إضافتها بالبيانات التي
تحتويها في الجدول الجديد .
SubQuery آما يمكن إضافة جملة شرط فى لتحديد عدد الصفوف التي
يحتويها الجدول الجديد .
وفي حالة عدم وجود جملة الشرط يتم إضافة جميع الصفوف والاعمدة
بالبيانات الموجودة إلي الجدول الجديد.اى يتم عمل نسخة ثانية للجدول.
مثال:
Create table Copy_emp
As select * from emp;
Table created
ولنتأآد من انشاء تلك الجدول:
Select * from Copy_emp;
اما اذا اردنا تغير اسماء تلك الاعمدة باسماء اخرى فيكون ذلك عن طريق:
create table emp2
(id,name,Career,MANAGER_ID,HIRE,SALARY,COMMATION,DEPTID)
AS SELECT * FROM EMP;
ولنتأآد من ذلك:
Select * from emp2;
إنشاء جدول باستخدام الاستعلام الفرعي
فى المثال السابق تم انشاء جدول مكون من أربعة أعمدة وتحتوى فقط على
. بيانات الموظفين فى القسم رقم 80
The Alter Table Statement
تعديل خصائص الجدول
: (ALTER TABLE) يمكنك تعديل خصائص الجدول باستخدام الأمر
اضافة عمود جديد. • تعديل نوع البيانات لعمود معين. • ازالة عمود من الجدول. •
Adding a Column
اذا اردنا اضافة عمود الى جدول الاقسام الذى امامنا:
آما يلى: Alter Table ذلك عن طريق استخدام الامر
Alter Table يتم آتابة الامر ثم بعد ذلك اسم الجدول المراد اضافة عمود لة
ثم آتابة اسم العمود الجديد ونوع البيانات الخاصة بة.
Alter table dept
Add job_id varchar2(50);
ولنتأآد من تلك التعديل السابق:
Select * from dept;
Modifying a Column
• يمكنك تغير أنواع بيانات الأعمدة بالجدول ولكن لابد ان يكون تلك
العمود ليس بة بيانات.وسوف نقوم بتغير العمود الذى تم اضافتة فى
المثال السابق الى نوع بيانات من نوع أرقام.
Alter table dept
Modify job_id number(3);
Table altered
• اذا اردت زيادة او تقليل سعة عمود ولكن بنفس نوع البيانات هنا
لايشترط ان يكون تلك العمود فارغ.
بمعنى اذا اردنا زيادة العمود الذى قمنا بتغيرة فى المثال السابق الى
امكانية احتوائة على 5 خانات بدلا من 3 خانات.
Alter table dept
Modify job_id number(5);
Dropping a Column
آي تحذف الأعمدة DROP COLUMN استخدام فقرة
التي لا تحتاجها من الجدول .
مثال:
اذا اردنا ازالة العمود الذى قمنا باضافتة فى المثال السابق.
Alter table dept
Drop column job_id;
Table altered
ملاحظة:لايمكن ازالة عمود بالجدول اذا آان تلك الجدول لايحتوى الا على
ذلك العمود فقط .ولايمكن اعادة العمود المحذوف.
Set Unused Option
اختيار الاعمدة الغير مستعملة
آي يشير إلي عمود أو اآثر من عمود SET UNUSED يستخدم •
غير مستعمل فى الجدول.
DROP UNUSED COLUMNS يستخدم • آي نزيل الأعمدة التي سبق
الاشارة اليها أنها غير مستعملة فى الجدول.
الصيغة الرئيسية لها:
SET UNUSED تستخدم لكى تشير إلي عمود أو اآثر من عمود غير
مستعمل. ولك ن ي تم حذف هم عندما يقل استخدام تلك الاعمدة .حيث لايمكن
ازالة اى عمود من الجدول وفى نفس الوقت مستخدم اخر يقوم باستخدام
هذا العمود.
وما بعدها من إصدارات. 8i وهذه الميزة متوفرة في اوراآل
.USER_UNUSED_COL_TABS تخزن في جدول SET UNUSED معلومات
Alter table dept
Set unused column job_id;
Table altered
وعند تحديد هذه الفقرة السابقة لا يتم إزالة فعلية للعمود .
ولازالة تلك العمود نقوم بالتالى:
Alter table dept
Drop unused columns;
Table altered
Dropping a Table
حذف الجدول
* آل البيانات بالجدول تحذف.
* آل الفهارس (Index) تحذف.
* لا يمكن الرجوع فى تعبير DROP TABLE .
مثال:
Drop table dept;
Table dropped
Changing the Name of an Object
تغيير الاسم
مثال:
Rename emp to emp_details;
فهنا تم تغير اسم جدول الموظفين (emp) الى (emp_details) .
Truncating a Table
يستخدم هذا الامر الى ازالة آافة البيانات من الجدول ولكن بدون الحاجة
الى Commit ولايمكن استخدام الامر Rollback معها.
مثال:
Truncate table EMP;
Table truncated
لا يمكنك عمل Truncate لجدول بة Primary Key يتم الاعتماد علية فى
جدول اخر .ولمعالجة ذلك نقوم بعمل truncate للجدول الذى بة Foreign Key اولا.
Adding Comments to a table
* يمكنك أن أن تضيف تعليقات او مذآرات إلي الجدول أو العمود
باستخدام الأمر COMMENT .
COMMENT ON TABLE emp
IS 'EMPLOYEE INFORMATION' ;
Comment created
• Comments يمكن أن تشاهدة من الجدول User_Col_Comments .
Select * from USER_COL_COMMENTS
where table_name='EMP';
• ALL_COL_COMMENTS
• USER_COL_COMMENTS
• ALL_TAB_COMMENTS
• USER_TAB_COMMENTS
الشكل الرئيسى لجملة Comment :
COMMENT ON TABLE table | COLUMN table .column
IS 'text';
Table اسم الجدول.
COLUMN اسم العمود في الجدول.
Text النص المراد آتابتة Comment .