¨¨¨°~*§¦§ Microsoft SQL Server §¦§*~°¨¨¨هذا المنتدى يناقش تكنولوجيا ال MS SQL Server المقدمة من مايكروسوفت و تصميم و تطوير قواعد البيانات من خلالها باستخدام ال T-SQL و ربط قواعد البيانات المنشئة من خلال ال MS SQL Server بال VB6 و بيئة الدوت نيت و ال ASP3 و ال ASP.NET
• 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) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي شي.
مــلاحظة: عند إنشاء الجدول (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) = RAADsecond_name تأخذ القيمة (Values) =MOHAMMED address تأخذ القيمة (Values) = Street Name – Al JehadEmploy تأخذ القيمة (Values) = Programmerbirth_day تأخذ القيمة (Values) = 1-1-1920Salary تأخذ القيمة (Values) = 5000phone_no تأخذ القيمة (Values) = 123456789
ملاحظة الذي بالأعلا ليس كود, ولأكن للتوضيح وضعت في شكل كود
الخلاصة: الكلمات الثابته او كما يسمونها برمجياً (Key Word) أو الكلمات المحجوزة, وضعتها باللون الازرق للتوضيح. الكلمات المتغيرة جعلتها باللون البرتقالي للتوضيح والتي ممكن أن تكون أي أسم.
• أين ذهب الـ (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)؟
السؤال الاول : هو ^^ اشنو هي ما افهمة ؟؟ لقد كتبت : ------------------------------------------------------------ • مجموعة الـ(Integers): وتتشابه هذه المجموعة بأكملها بأنها تمثل الأعداد الصحيحة وتختلف فيما بينها بالحجم (بمعني عدد الخانات التي يستوعبها) وهي (Bigint, Int, Smallint, Tinyint): - Bigint أكبر عدد من الخانات يسمح بها هي (19) خانه مثال (2349857634578392837), أو بمعني آخر عدد النطاقات في ذاكرة الكمبيوتر من 63^2- إلى 1- 63^2 - Int أكبر عدد من الخانات يسمح بها هي (10) خانات مثال (3258764503), أو بمعني آخر عدد النطاقات في ذاكرة الكمبيوتر من 31^2- إلى 1- 31^2 - Smallint أكبر عدد من الخانات يسمح بها هي (5) خانات مثال (23847), أو بمعني آخر عدد النطاقات في ذاكرة الكمبيوتر من 15^2- إلى 1- 15^2 - Tinyint أكبر عدد من الخانات يسمح بها هي (3) خانات مثال (284), أو بمعني آخر عدد النطاقات في ذاكرة الكمبيوتر من 0 إلى 255. ------------------------------------------------------------
السؤال الثاني : ما معنى E- لقد كتبت :------------------------------------------------------------- • مجموعة الـ Approximate Numerices وتمثل هذه المجموعة الاعداد ذات الكسور العشرية وهي (Float, Real). - Float عدد النطاقات في ذاكرة الكمبيوتر من 308 + E 1.79- إلى 308 + E 1.79. - Real عدد النطاقات في ذاكرة الكمبيوتر من 38 + E 3.40- إلى 38 + E 3.40. -------------------------------------------------------------
السؤال الرابع : اخوي يعني انت تنصحنا ما نستخدم char لانه بكل الاحوال تاخذ من الذاكرة ؟؟؟ زين ايمتي او ما الوقت المناسب لاستخدامه ؟؟ -------------------------------------------------------------
السؤال الرابع : هست نحن قلنالوا اعمل قاعدة بيانات العاصفة _3asfh اوكي الكود الي حطيتو وينن نضعه تحت كود انشاء القاعدة ؟؟ -------------------------------------------------------------
السؤال الخامس : اخوي ممكن استخدم امر drop في حذف القاعدة الاساسية ؟؟ قاعدة البيانات ؟ زين كلمة الحذف مال القاعدة و ين اكتبه في داخل القاعدة ؟.؟
استاذي السؤالين الخامس و السادس عن البرنامج يعني يا نافذة نفتح على مود نكتب كود انشاء قاعدة البيانات زين و بعدين بداخل النافذة مال القاعدة نكتب الكودات كله زين لمن نحذف وين نكتب الكود
يعني شرح البرنامج .... و البرنامج وينه اصلا اشون انطبق ؟؟؟؟
اخوي ارجوا ان لا تنزعج من اسئلتي بصراحة انا الوم قريت الموضوع كاملا و اعدته و اعدته عدة مرات و هذه هي الاسئلة التي لم اجدل له حل خصتاً وصلة البرنامج و كيفية العمل .... تلميذك و اخوك rbg 7
على فكرة دورتوا في الانترنيت شوف هذا والله انا معرف ياهو منهم بلكي موجود
[عزيزى الزائر مرحبا بكم سجل معنا ليظهر الرابط. ]
الحل : --------------------------------------------------------------------------------- NOW MAKER DATA BASE :
create database _3asfh2 --------------------------------------------------------------------------------- NOW MAKER TABLE :
create table Member_Info ( code int identity, first_name varchar(10) not null, second_name varchar(12)not null, address varchar(30)default 'No Record', employ varchar(15)not null, birth_day datetime not null, salary int check (salary > 200), phone_no int not null)
--------------------------------------------------------------------------------- AND NOW SAVE DATA IN THE TABLE (Member_Info) 5 NEMES