|
أخوانى السلام عليكم ورحمة الله وبركاته أنا أسف على التأخير جداً عليكم ولكن لظروف خاصة وخارجة عن إرادتى على العموم تابعونى مع الدرس الثانى إن شاء الله
الـــدرس الثانــي
• Create Database • Create Table • Insert Values • Drop Table • Drop Database
نبدأ درسنا بمقدمة وعناصرها: - قواعد البيانات (Database). - الجداول (Table). - الحقول (Field). - البيانات (Data). لنتخيل بأن لدينا شركة تعمل بمجال البرمجة وإسمها (3ASFH) يوجد بها أقسام عدة منها (قسم المحاسبة) المسؤول عن (المصاريف, الايرادات), قسم العلاقات العامة المسؤول عن بيانات الموظفين (الاسم, العمر, الوظيفة, العنوان, رقم الهاتف). الآن لنستخرج أسماء العناصر وهم كالتالي: 3ASFH تمثل Database. قسم المحاسبة يمثل Table, والذي بدورة يحوي أسماء الـ Fields (المصاريف, الايرادات), والتي بدورها تحوي Data وهي البيانات المخزنة بداخل هذه الحقوق. قسم العلاقات العامة يمثل Table, والذي بدورة يحوي أسماء الـ Fields (الاسم, العمر, الوظيفة, العنوان, رقم الهاتف) والتي بدورها تحوي Data وهي البيانات المخزنة بداخل هذه الحقول. إذن فأنا هنا لدي قاعدة بيانات واحدة تحوي جدولين واللذان يحتويان على الحقول والتي تخزن بها البيانات.
رسم توضيحي للقصة التي بالأعلا:
والآن جاء دور التطبيق العملي كتابة الاكواد, وهناك بعض الأمور المهمة التي يجب الاشارة اليها قبل البدء بالقسم العملي:
من أجل كتابة الأكواد سوف نقوم بفتح البرنامج Query Analyzer ولفتحة إذهب إلى Start Programs Microsoft SQL Server Query Analyzer
ومن هنا أستطيع القول بأن الدروس الحقيقية بدأت, الآن لنبدأ بترتيب الافكار ووضع الخطة التي سنسير عليها في هذا الدرس وستكون وبالترتيب كالتالي. أولاً: انشاء قاعدة بيانات(Database) ونعطيها الاسم _3ASFH ثانياً: إنشاء جدول (Table) ونعطية الأسم Information والذي يحوي على الحقول (Code, First_name, Second_name, Address, Employ, Birth_day, Salary, Phone_No) ثالثاً: وضع البيانات داخل الاعمدة (Data).
Create Database
وهي مجموعة الجداول. هناك عدة طرق لإنشاء قاعدة البيانات حيث نستطيع تحديد مكانها وحجمها الفعلي وأقصى حجم ممكن, واشياء أخرى ولاكن هنا سنتعلم أبسط الطرق حيث سننشئ Database بشكلها الافتراضي يعني بدون تحديد شئ.
الكود: كود: create database _3asfh الشرح: هنا قمنا بإستخدام الكلمة create والتي نستخدمها لإنشاء أي شئ ومن ثم ألحقناها بالكلمة database وهذا يعني بأننا قد حددنا للبرنامج ماذا ينشئ وهي قاعدة البيانات (Database) ومن ثم طلبنا منه بأن يعطيعا إسم وهو الاسم _3asfh حيث أننا نستطيع تغير الاسم لما نريد.
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Words) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي شي.
وتكون القاعدة العامة كالتالي: كود: create database <database name>
ملاحظة هامة جداً: قمنا بموضع الرمز شرطه _ عند تسمية الـ (_3asfh) لأن SQL لا تسمح لي ببدأ الاسم بي رقم. لتفعيل أي كود يعني عمل (Run), يجب عليك أولاً تظليل الكود المراد تفعيله ثم إضغط على الزر F5 في لوحة المفاتيح (Key Board). كما في الشكل التالي:
كما ترون فقط قمت بتظليل الكود الاول ثم ضغط الزر F5 من أجل تفعيله, وهذه الملاحظة تطبق على جميع الدروس القادمة يعني الجملة التي أريد أن أنفذها يجب أن أظللها أولاً.
Create Table
نقصد بها مجموعة الحقول Fields (الصفوف والاعمدة) التي تحوي البيانات. كما اشرنا أعلاه بأن الجدول سنعطية الاسم (Information) وتكون اسماء الـ (Fields) كالتالي (Code, First_name, Second_name, Address, Employ, Birth_day, Salary, Phone_No). هنا يجب علينا أن نقف قليلاً لتحليل المعطيات وإستخدام الـ DataType و Constraint المناسبة, وهو ما قمنا بشرحه بالدرس الأول.
توضيح للجدول: • يجب عليك أن تنتبه أن لكل (Field) حقل, (DataType) و (Constraint) خاصة بها. • Identity تستخدم من أجل عملية الترقيم الذاتي أي أنه سيبدأ من الرقم (1 ثم 2 ثم 3, .........الخ). • Not Null هذا يعني بأني أطلب من البرنامج عدم قبول أي بيانات فارغة. • Check salary > 1000 هذا يعني أني أطلب من البرنامج أن يتأكد من أن الراتب الذي سوف أدخلة يجب أن يكون أكبر من 1000. • Default ' No Record ' هذا يعني أني أطلب من البرنامج أن يضع الجملة ' 'No Record في حالة عدم إدخال بيانات. • كما درسنا سابقاً عن الـ Varchar بأن أكبر عدد من الخانات تتسعة هو (50), ولاكن ماذا لو أردت أقل من ذلك؟ عندها يمكنني أن أحدد الحجم الذي أريده بالضبط كما فعلنا بالجدول أعلاه Varchar (20), Varchar (40), Varchar (15), هذا يعني Varchar (Size) القدرة على تحديد الحجم تعتبر من أهم مميزات هذا النوع من الـ DataType توجد أيضاً ميزه آخرى لا تقل أهمية لهذا النوع وهو أنه قابل للتمدد والتقلص بحسب حجم البيانات الموضوعه, مثال توضيحي. نفرض أن لدي الإسم (Storm), الذي يحتوي على خمسة خانات, الآن لنرى كلاً من Varchar و Char كيف ستتعامل مع هذا الأسم: Char شرحنا سابقاً بأنها تتسع إلى (10) خانات وهذا يعني بأن الأسم (Storm) سيأخذ خمسة خانات وتبقي خمسة خانات خالية, إذن فهو فعلياً يحجز عشرة خانات حتى ولو كنا نريد حجز (5) خانات فقط, كما بالرسم توضيحي التالي:
Varchar شرحنا سابقاً بأنها تتسع إلى (50) خانة في حالة عدم تحديد الحجم, ولأكنا هنا نريد أن نحدد الحجم الذي نريده وليكن (10) خانات فتكون كالتالي Varchar(10) وهذا يعني بأن الأسم (Storm) سيأخذ خمسة خانات وتبقي خمسة خانات يقوم هذا النوع من (DataType) بإلغاء هذة الخانات الزائدة إذن فهو فعلياً يحجز (5) خانات فقط, كما بالرسم توضيحي التالي:
وبالمثل فإنه عندما نريد تخزيد كلمة مثل (Computer) إذن فهو فعلياً يحجز (8) خانات فقط يكون كالتالي:
الآن لنأخذ كلمة آخري مثل (_RAAD&3ASFH_) هنا عدد الخانات هو (12) والعدد الاقصى المسموح به كما حددنا أعلاه هو (10) خانات Varchar(10) إذن في هذه الحالة لن نستطيع تخزين هذا الاسم وسوف يظهر لدينا خطأ (Error) لان عدد خانات الكلمة أكبر من المنطقة التي يحجزها الـ Varchar(10).
الكود لإنشاء الجدول: كود: create table information ( code int identity, first_name varchar(15) not null, second_name varchar(15)not null, address varchar(40)default 'No Record', employ varchar(20)not null, birth_day datetime not null, salary int check (salary > 1000), phone_no int not null) الشرح: هنا قمنا بإستخدام الكلمة create والتي نستخدمها لإنشاء أي شئ ومن ثم ألحقناها بالكلمة table وهذا يعني بأننا قد حددنا للبرنامج ماذا ينشئ وهو الجدول (Table) ومن ثم طلبنا منه بأن يعطيه الاسم Information, ومن ثم قمنا بتحديد أسماء الـ (Fields) ثم (Datatype) وبعدها الـ (Constraints)
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Word) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي شي.
وتكون القاعدة العامة كالتالي: كود: create table <table name> (<field name> <datatype> <Constraint> ) الشكل التوضيحي:
مــلاحظة: عند إنشاء الجدول (Table) يجب عليك التـأكد من الـ (Database) التي ستخزن بداخلها الـ (Table) كما في الشكل:
Insert Values
إذن قمنا الآن بإنشاء (Database) وقد أسميناها _3ASFH ثم أنتهينا من عمل الجدول (Table) وأسميناه Information والذي بدورة يحتوي على الحقول (Fields) الآن بقي علينا تخزين البيانات (Data) داخل الحقول (Field) وهذا ما نقصد به من (Insert Values).
الكود: كود: insert information (first_name,second_name,address,employ,birth_day, salary,phone_no) values ('RAAD','MOHAMMED','Street Name - Al Jehad', 'Programmer','1-1-1920',5000,123456789) الشرح: هنا قمنا بالبدأ بالكلمة (Insert) والتي تعني إدخال أو تخزين ثم حددنا إسم الجدول الذي ستتم فيه عملية الادخال وهو (Information) ثم حددنا أسماء الـ (Fields) في الجدول, وبعدها إستخدمنا الكلمة (Values) لتحديد القيم لكل (Fields) وتكون بالترتيب كالتالي: كود: first_name تأخذ القيمة (Values) = RAAD second_name تأخذ القيمة (Values) =MOHAMMED address تأخذ القيمة (Values) = Street Name – Al Jehad Employ تأخذ القيمة (Values) = Programmer birth_day تأخذ القيمة (Values) = 1-1-1920 Salary تأخذ القيمة (Values) = 5000 phone_no تأخذ القيمة (Values) = 123456789 ملاحظة الذي بالأعلا ليس كود, ولأكن للتوضيح وضعت في شكل كود
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Word) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي أسم.
وتكون القاعدة العامة كالتالي: كود: Insert <table name> (<Field1 Name>,< Field2 Name >, ...) Values (<Values Field1 >,< Values Field2, ...) الشكل التوضيحي:
ملاحظات:
• أين ذهب الـ (Filed) الذي يحمل الاسم Code لماذا لم نصرح عنه بعد إسم الجدول؟ الجواب بسيط عند المراجعة أثناء إنشاء الجدول نلاحظ بأننا أعطيناه (Constraint) وهي Identity والتي تعني الترقيم الذاتي بمعني بدون التدخل منك بإعطاء قيمة فلهذا السبب لم نصرح بها فهي ستبدأ العد بالتسلسل عند إدخالك للبيانات. • ماذا يحدث عند إعطاء قيمة (Values) مخالفة لنوع (Datatype) مثال: Salary نعطيها القيمة (Values) = No ؟ الجواب ستحصل على خطأ لعدم توافق القيمة مع نوع الحقل. • عند إعطاء القيم بالنسبة للحروف والعلامات والتواريخ نحددها بين فاصلتين واحدة عند البداية وآخرى عند النهاية مثل 'Programmer' أما بالنسبة للأرقام فلا نستخدم الفاصلتين مثل 5000. • بين كل (Filed) وآخر نضع فاصله مثل (first_name , second_name) وأيضاً بين كل (Values) وآخر نضع فاصله مثل ('RAAD' , 'MOHAMMED') • الـ (Constraint) ليست من شروط إنشاء الجدول فأنت تستطيع إنشائه بدون أي قيود فهي تعمل كعمل المحقق (تلافي حدوث تضارب في البيانات) ولأكن الـ (Datatype) ضرورية فلن تستطيع إنشاء أي جدول بدون إستخدامها.
Drop Table
سوف نرى هنا كيفية حذف الجدول (Table) بالطبع عند عملية الحذف فإن كلاً من الحقول (Fields) و البيانات (Data) سوف تحذف.
الكود: كود: drop table information الشرح: هنا قمنا بإستخدام الكلمة drop والتي نستخدمها لحذف أي شئ ومن ثم ألحقناها بالكلمة table وهذا يعني بأننا قد حددنا للبرنامج نوع العنصر الذي سيحذفه وهو الجدول (table) والذي يملك الاسم information
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Word) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي شي.
وتكون القاعدة العامة كالتالي: كود: drop table <table name>
الشكل التوضيحي:
Drop Database
كما رأينا فإن إنشاء قاعدة بيانات (Database) سهلة جداً وسوف نتعلم الآن كيفية حذف قاعدة البيانات أعتقد بأنه لا يوجد داعي للتذكير بأنك لو قمت بعملية الحذف فلن ترى قاعدة البيانات المحذوفة مرة آخرى لذا يجب عليك توخي الحذر.
الكود: كود: drop database _3asfh الشرح: هنا قمنا بإستخدام الكلمة drop والتي نستخدمها لحذف أي شئ ومن ثم ألحقناها بالكلمة database وهذا يعني بأننا قد حددنا للبرنامج نوع العنصر الذي سيحذفه وهي قاعدة البيانات (Database) والتي تملك الاسم _3asfh
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Word) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي شي.
وتكون القاعدة العامة كالتالي: كود: drop database <database name> الشكل التوضيحي:
تمرين:
السؤال الأول:- أنشئ (Database) وأعطيها الاسم _3asfh2 ثم أنشئ بداخلها (Table) يحمل الاسم (Member_Info) وتكون الـ (Fields) كما بالشكل في الأسفل, وقم بوضع (Datatype) و (Constraint) المناسبة لكل (Field)؟
السؤال الثاني: قم بأدخال بيانات خمسة أعضاء (أي بيانات تريدها) في الجدول, طبعاً بإستخدام الجملة (Insert Values)؟
|