Abdulaziz Aldawk | 🇸🇦
Abdulaziz Aldawk | 🇸🇦

@a_Aldawk

29 تغريدة 212 قراءة Sep 21, 2019
السلام عليكم
اليوم راح اسوي ثريد عن بناء قاعده البيانات SQL طبعآ راح يكون تكملة الموضوع السابق
اذا ماشفت الموضوع السابق تقدر تشيك من هنا
#FCIT18
#FCIT19
#حزب_المبرمجين
راح ابسطلكم المعلومة بحيث توصل لكم بسهولة
بسم الله نبدء.
قبل مانبدء ابي اعطيكم ادوات عشان تطبقونها او اذا تبون تجربون تسوون creating فيها
1- هذي الاداء على المتصفح اسمها SQL live : livesql.oracle.com
طبعآ هذا مايحتاج تنزلون اي برنامج ولا شي فقط كل الى عليكم تسوون حساب مجاني طبعآ وتبدء تسخدمها راح اشرح لك كيف تستخدمها
يتبع...
2- هذا ملف الى راح اطبق عليه و بحطها هنا في حال تبون تطبقون نفس التطبيق الى اسويه انا و خذو راحتكم بالتعديل البيانات الى فيها وسوو الى تبون لكم حريه لانه هذي مجرد تجربة عشان اشرحها لكم ?
github.com
للمعلومة: جميع بيانات مزيفه وغير حقيقية *
بشرح لكم كيف عمل الاداء sql live
الى بااللون الاحمر: مكتوب sql worksheet هذا يطلع لكم مكان الى راح تشتغلون عليه مثل موضح بالصوره.
- الاخضر رقم واحد : هذا تحطون فيه البيانات الى سويتوها مثل creating, drop, insert, delete او اي شي ثاني
- الاخضر رقم 2 : عرض النتيجة
يتبع
يعرض النتيجة الى سويتوها مثل موضح بالشاشة تحت او مثل الصوره الى حطيتها تحت تعرض لكم الجدول الى استعديتها انا.
- الازرق 1: بعد ماتحط الجدول او تكتب الاستدعاء الى انت سويتها
تضغط على Run ويطلع لك النتيجة الى تحت~
اذا حاب تنظف الساحة الى قدامك تضغط على الازرق رقم 2 ?
اذا حبيت تشوف الجداول الى حطيتها وتبي تتأكد
في خيار على جمب باليسار مكتوب Schema
راح يعرض لك الجداول. زي الى بالصوره يعرض لي الجداول الى انا سويتها
اوكيه كذا خلصنا من الشرح الاداء بس شرحتها عشان تقدرون تطبقونها وتشوفون انتو ماشين صح وشغلكم تمام ولالا~
طبعآ تقدرون تكتبون جداول في editor زي VS code وغيرها بس
تبون نصيحة مني. اكتبو جداول او insert في editor عشان مايصير اي خطأ او مشكلة.
نبدء شرح حبه حبه عشان نوصل المعلومة في SQL
طبعآ كلنا نعرف عن Data type بالبرمجة
هنا نفس الشئ بس لها data type خاصة
و في انواع كثيره بس انا بستخدم الى بشرحها لكم
انواع Data type
1- VARCHAR(20)
يقبل احرف وارقام ولكن كل حرف ينحسب مثل انا حطيت 20
يعني يقبل 20 حرف فقط .
2-Number
يقبل ارقام ولكن عدد محدود زي 21 bytes
انا افضل استخدمها تبع primary keys
3- integer
4- data
هذي يقبل نوع من التواريخ .
- creating table
راح اشرحها من طريقة المنظور parents
الى مايعرف وشو parents يقراء الثريد الى راح لاني شرحت ايش هو parents
1- parent
create TABLE customer(
cust_ID number primary key,
cust_fname VARCHAR(20),
cust_Lname VARCHAR(20) UNIQUE,
cust_address VARCHAR(30),
cust_Email VARCHAR(50),
cust_phone integer,
dataoffirstConact DATE
);
يتبع
تلاحظون اني بديت في parent
وليش ماابدء في childern?
تتذكرون لما شرحت لكم انه لازم يجي متسلسل ولا بيصير خطأ.
خلوني اوريكم ايش يصير لما احط child vehicle table
احنا نعرف vehicle يتبع parent customer
شوف الصوره لما بديت child يقول parent غير موجود اصلآ..
ولكن لو حطينا parent الاول ثم child
كذا النتيجة.
تلاحظون تحت بالنتيجة قال Table created.
مرتين اي اول شي اخذ parent ثم child
معناها نجحت الطريقة او نتيجة تمام!!
شفت كيف سهله ?
عشان كذا لازم الموضوع يجي متسلسل
2- Childern:
create TABLE vehicle(
Veh_ID number PRIMARY KEY,
make VARCHAR(15),
model VARCHAR(15),
color VARCHAR(10),
Engine_Size number,
VIN_NUM integer UNIQUE,
cust_ID int REFERENCES customer
);
يتبع
احنا عرفنا child يتبع parent تمام
ولكن كيف سويناها؟
حطينا في child كذا
cust_ID int REFERENCES customer
يعني cust_ID هو اساسآ primary key في customer تمام
و كتبناها في
vehicle as foreign key
يتبع
1- اسم موجود في customer ولكنه primary key
و جينا حطيناه في vehicle عشان يصير تابع primary key
2- reference
معناها تابع او يرجع الجدول الى حاطه قدامه زي كذا
reference customer
3- اسم الجدول
طبعآ اهم شي لاتنسى بكل جدول لازم ينكتب قدامها primery key
زي كذا
Veh_ID number PRIMARY KEY,
ملاحظة بسيطة :
تقدر تحط غير primary key زي
unique
check
او من قوانين غيرها عشان تسوي شي اسمه Restrict
3- bridge او الجسر
create TABLE Inve_serviceOrder(
Inv_ID int REFERENCES Inventory,
service_id int REFERENCES service_order,
PRIMARY KEY(Inv_ID,service_id),
Qty_partused int,
labor_hr int
);
يتبع
تتذكرون لما شرحت لكم عن M:M لازم يصير 1:M
كذا راح نسويها في sql ليش؟
لانه داخل هذا الجدول foreign key و primary key
شوفو الصوره رقم 6
راح يتبعها من الى فوقها و الى جمبها الى هي 4 و 5
نفس الطريقة بس بالجدول sql
و كذا عرفنا كيف نسوي creating table بشكل صحيح
ونتفادى من اي خطأ.
هنا الفيديو تجربة بعد ماحطيت كل الجداول
youtu.be
- Insert
لها طريقتين
اول طريقة كذا
insert into Mechanic (Mechanic_ID,mech_fname, mech_lname, mech_dataofhiring)
values(1732371758,'Joyce','Preston',to_date('2017-03-11', 'yyyy-dd-mm'));
طريقة الثانيه مفضلة لي لانه مايخذ وقت:
يتبع
insert into Mechanic values(1732371758,'Joyce','Preston',to_date('2017-03-11', 'yyyy-dd-mm'));
طبعآ كذا الطريقة
insert into table name
Mechanic اسم الجدول
هذي الصوره
طبعآ لازم insert يتبع على نفس التسلسل جدول
زي اسم الاي دي تحطه اول واحد و الاسم الشخص ثاني واحد وهكذا
الحلو في insert مايحتاج تسلسل يعني عادي تحطها كلهم مره وحده مو مشكلة
هذا فيديو عنه: youtu.be
بعد هذا الثريد يتبع:
في اوامر غيرها من create table, insert
عندك drop table name
زي كذا drop tale customer
هالشئ يحذف الجدول والبيانات مع بعض
يعني كل شي بالجدول هذا ينحذف
- Delete talbename
الى هو يحذف البيانات فقط بس الجدول يبقي بس يصير فاضي هههه
وبس هذا الشرح أتمنى وصلت لكم شرح بسيط و مفهوم
انا فاهم في sql ولكن لاحظت اني اواجه صعوبه بالشرح و احاول اوصل بطريقة حلوه ومفهومه لانه sql زي البحر بضبط ~
اي شي مافهمتهوه او استفسار خبروني وانا راح اكون جدآ مبسوط أشرحها لكم و أعذروني اذا في خطأ او شي غير مفهوم خبروني.
كان معاكم مستر عزيز و اشوفكم على خير
smile and stay positive :)
@Rattibha رتبها
وشكرآ

جاري تحميل الاقتراحات...