تعلم Oracle Sql Database
764 subscribers
100 photos
2 files
5 links
Download Telegram
مثلا عندنا جدول ال department أريد أضيفله بيانات, فقبل لا أضيف له أي شي أحاول أعرف عدد, أسماء, النوع البياني,و ال Not Null الأعمدة columns الموجودة بالجدول من خلال أمر ال Desc...

بعد ما كُل شي صار واضح عندنا هنا نبدي نضيف بيانات لل table.
أعلاه هو example عن الصيغتين الي تم شرحهم حول Insert Into Statement.
Insert Null Values

اذا تذكرون قبل خطوتين من سوينا Describe للجدول Departments نلاحظ آخر عمودين ال manager_id and Location_id ممكن يتقبلون قيمة Null, فإذا ردنا نضيف قيمة Null كيف رح تكون الطريقة؟

تتم أضافة قيم ال Null بطريقتين:
1- عدم كتابة الأعمدة columns الي نريد نجعل فيها قيمة Null في Insert Statement.( لاحظ الجزء A من الصورة أعلاه)
2- أن نكتب الأعمدة columns في Insert Statement و نكتب قيمتها ال Null داخل الجزء values. ( لاحظ الجزء B من الصورة أعلاه)

أذن أضافة قيم فارغة Null تكون مقبولة فقط للأعمدة بالجدول الي مامخلين عليها قيد ال Not Null او primary key.
Insert Special Values
-أضافة Special values

واحدة من ال special values هي ال date...
مثلا أريد أضيف موظف جديد في جدول ال employees, واحدة من القيم الي المفروض أضيفها هي تاريخ تعيين هذا الموظف..
فمثلا ممكن أستخدم ال SysDate و هي حتجيبلي التاريخ من الحاسوب مالتي... (لاحظ جزء A من الصورة أدناه).
أو ممكن أعطي تاريخ بصيغة معينة و أستخدم ال function الخاصة بال date... (لاحظ جزء B من الصورة أدناه).
- Insert Values By using Substitution Variables

ممكن أضافة values بطريقة غير مباشرة بأستخدام ال substitution variables الي تم شرحها سابقا.
لاحظ الصورة أدناه.
1.2 Insert Into Select Statement

تعلمنا سابقا كيف نضيف بيانات، و في كل مره يتم اضافة row/record واحد فقط..

الآن هنالك طريقه أخرى لإضافة البيانات للجدول تسمى Insert Into Select (تكون بأستخدام ال sub query) , بهذه الحالة البيانات تجلب من جدول آخر و تضاف للجدول الحالي..


ال syntax العام الها موضح بالصوره أدناه.

Note:
من خلال ال syntax أتضح ممكن اضيف كل البيانات من جدول ثاني أو جزء منها. لكن يجب أن ننتبه بأن الأنواع البيانية Data types للأعمدة columns من الجدول الي نجلب منه البيانات و الي نسميه source تكون مشابهه للأنواع البيانية لأعمدة columns بالجدول التي سيضاف له البيانات و الذي يسمى ب target.
لتطبيق ما ذكر سابقاً عدنا جدولين كما في الصورة أدناه
الأول أسمه Customers و يتكون من مجموعة من ال columns التالية:
1.CustomerID
2.CustomerName
3.ContactName
4.Address
5.City
6.PostalCode
7.Country

و الجدول الثاني أسمه Suppliers و يتكون من الأعمدة التالية:
1.SupplierID
2.SupplierName
3.ContactName
4.Address
5.City
6.PostalCode
7.Country
8.Phone
الفرق بين الجدولين هو عمود ال Phone موجود بجدول ال Suppliers و غير موجود بجدول Customers...
المهم لأضافة بيانات لجدول Customers من جدول ال Suppliers يتم كما في الصورة أدناه.
المثال الأول: تمليء كل أعمدة جدول ال Customers لكن هنا منكدر نستخدم طريقة ال * الي وضحت سابقا ( لأن عمود ال phone موجود بجدول ال suppliers و غير موجود بجدول ال Customers ) لذلك أستخدمنا هذه الطريقه.

المثال الثاني: أخذنا فقط بيانات لثلاث Columns من جدول ال suppliers و ضفناها لجدول ال Customers.

المثال الثالث: نفس الطريقة الثانيه لكن أستخدام ال condition (where) لأضافة المجهزين الألمان فقط.
2. Update Statement

ال Update statement تمكننا من التعديل على بيانات موجودة في table معين. و التعديل يكون على بيانات سجل record/row واحد أو على مجموعة من records و أيضا على عمود column واحد أو مجموعة من columns.
ال Syntax العام ل Update Statement موضح في الصورة أدناه.
لكن يجب أن نكون حذرين عند تحديث السجلات records في جدول ما .


مثل ما نلاحظ وجود WHERE في عبارة Update. جملة WHERE تحدد record/records التي يجب تحديثها. إذا حذفت جملة WHERE ، فسيتم تحديث كافة السجلات في الجدول.
مثلا نرجع لجدول ال Customers اذا نريد نغير أسم و مدينة أول customer بال table فنستخدم ال Update Statement كما في الصورة أعلاه.

Note:
طبعاً بما أنهُ نريد نغير بعض المعلومات عن الزبون الأول أذن في الشرط نستخدم الشي الي يُعرَف/يُميز الزبون على أنه زبون رقم 1 و هو ال
Primary key (CustomerID)


طبعاً في حال كتبنا في شرط ال where
CustomerName='Alfreds Futterkiste'

الي رح يصير: وين ميشوف أسم Alfreds Futterkiste بالجدول رح يغيره الى Farid Laftaa و يغير المدينة city أيضا.. لذلك الأفضل نستخدم الشي الي يميز الزبون من غيره و هو CustomerID.
ممكن أستخدام ال subquery مع Update Statement..

مثلا حالياً عنوان الزبون رقم 2 يختلف عن عنوان الزبون رقم 3, لو فرضنا أنو عنوان زبون رقم 2 يشبه عنوان زبون رقم 3 .
أذن ممكن نغير ال address للزبون رقم 2 بالاعتماد ع معلومة عنوان زبون رقم 3 بأستخدام Update and subquery.
المثال أعلاه هو نفس ال example السابق ( أستخدام ال subquery مع Update ) لكن تغيير معلومات two Columns للزبون 2 و هما ال address and PostalCode بالأعتماد على معلومات الزبون رقم 3.

مثل ما نلاحظ يوجد أجابتين A and B و كلاهما صحيح, لكن الأفضل هو A لأنهُ أسرع (من ناحية آلية عمل ال server).
ممكن نطبق آخر الأمثلة عن Insert Into Select Statement و Update Statement بهذا الرابط

https://www.w3schools.com/sql/trysql.asp?filename=trysql_insert_into_select
3. Delete Statement

ال Delete statement تمكننا من حذف بيانات record واحد أو أكثر من Table معين.
ال Syntax العام ل Delete Statement موضح في الصورة أدناه.
و أيضا يجب أن نكون حذرين عند حذف records في جدول ما .


مثل ما نلاحظ وجود WHERE في عبارة Delete. جملة WHERE تحدد record/records التي يجب حذفها. إذا حذفت جملة WHERE ، فسيتم حذف كافة السجلات في الجدول.