السلام علكيم ورحمة الله وبركاته
في هذا الدرس انشاء الله سنقوم بشرح جميع الاكواد الخاصة ببرمجة قواعد البيانات تعلم برمجة قواعد البيانات باستخدام SQL Server
سنقوم بشرح الاكواد الاساسية للغة SQL وسنشرح طريقة تحميل نظام SQL Server وشرح الثبيت
اولا:- طريقة التحميل والتثبيت SQL Server
يمكنك الحصول علي طريقة التحميل والتثبيت ل SQL Server 2012 من خلال الفديو التالي
ثانيا:- شرح اوامر SQL Server
ثانيا:- شرح اوامر SQL Server
1- امر انشاء قاعدة بيانات باسم emp:-
الأمر التالي في لغة SQL يقوم بإنشاء قاعدة بيانات باسم emp
CREATE DATABASE emp;
2- امر انشاء جدول باسم person:-
CREATE TABLE persons ( id INT, name VARCHAR(50), birth_date DATE, phone VARCHAR(15) );الأمر الموجود في الجدول أعلاه يقوم بإنشاء جدول باسم persons باربع أعمدة هي: id, name , birth_date , phone. لاحظ أن كل اسم عمود يتبعه إعلان نوع البيانات، هذا الإعلان خاص بنوع البيانات التي سوف تُخزَّن في العمود سواءً كانت أعداد صحيحة أو أحرف أو تاريخ... الخ. يمكن التصريح ببعض أنواع البيانات من خلال طول البارامترات التي تشير إلى عدد الرموز التي يمكن تخزينها في العمود. مثلاً: (VARCHAR(50 يمكنه تخزين حروف تصل إلى 50
3- امر ادخال بيانات INSERT INTO:-
INSERT INTO persons (id, name, birth_date, phone) VALUES (1, 'Peter Wilson', '1990-07-15', '0711-020361');
إدخال بعض البيانات داخل جدول قاعدة البيانات الجديد الخاص بنا الجملة INSERT INTO تُستخدم لإدخال صفوف جديدة في جدول قاعدة البيانات عند ادخال البيانات احرص على الترتيب اذا كان اول عمود هو ال id فسوف يكون اول بيانات تكتب هي ال id ثم الاسم وهكذا مع الباقي...
4- امر استدعاء البيانات select:-
select * from persons;هذا الامر يعني اختيار او تحديد بيانات الجدول حيث يقوم هذا الامر بإظهار بيانات الجدول persons و * تعني اظهار كل البيانات و اذا اردنا بيانات عمود معين نقوم بتغير * الي اسم العمود المراد مثل name مثلا سيقوم بإظهار بيانات عمود name فقط.
5- امر حذف بيانات صف معين DELETE:-
DELETE FROM persons where id=20;هذا الامر خاص بيانات صف معين يتم كتابة اسم الجدول ومن ثم where id وتحديد رقم ال id الخاص بالصف المراد حذفه.
ملاحظة: كلمة where هي شرط يستخدم لحذف سطر معين حيث ان قمت بكتابة امر الحذف بدون شرط ل where فسوف
يتم حذف جميع الصفوف كما ان لجملة where استخدامات عديدة سوف نقوم بذكرها لاحقا.
اضغط التالي لمتابعة الشرح
<><>
6- امر تعديل او تحديث البيانات UPDATE :-
UPDATE persons SET Name = 'Alfred Schmidt' WHERE id = 1 ;هذا الامر خاص بتعديل بيانات صف معين حيث يتم كتابة اسم الجدول ومن ثم الامر set ثم كتابة أسماء الاعمده التي سنجري بها تعديل مع كتابة التعديل الجديد علي سبيل المثال Name ومن ثم where id نكتب رقم ال id الخاص بالصف المراد تعديل البيانات فيه بحيث يتعرف عليه النظام ويقوم بتعديله.
7- اختيار صف معين اعتمادا علي شرط WHERE :-
SELECT * FROM persons WHERE salary > 7000;يقوم الامر السابق باظهار جميع الموظفين من الجدول persons واللذين رواتبهم تزيد عن 7000، الشرط WHERE يقوم ببساطة باستخراج البيانات المطلوبة فقط.
العمليات المسموحة في الشرط WHERE
8- اوامر AND & OR في SQL :-
1- استخدام الشرط WHERE مع الامر AND:
SELECT * FROM person WHERE salary > 7000 AND id = 5;يقوم الامر السابق باظهار جميع الموظفين من الجدول persons واللذين رواتبهم أكبر من 7000 والحقل id = 5.
2- استخدام الشرط WHERE مع الامر OR:
SELECT * FROM person WHERE salary > 7000 OR id = 5;يقوم الامر السابق باظهار جميع الموظفين من الجدول persons واللذين رواتبهم اما أكبر من 7000 او الحقل id = 5.
3- جمع العمليتين AND & OR:
SELECT * FROM person WHERE salary > 5000 AND (id = 1 OR id = 5);أيضاً يمكنك جمع AND وَ OR لإنشاء تعابير شرطية معقدة. الامر السابق يقوم باظهارجميع الموظفين اللذين رواتبهم تزيد عن 5000 وَ الحقل id يساوي 1 أو 5.
9- اوامر BETWEEN & NOT IN & IN في SQL :-
1- استخدام الامر IN;
SELECT * FROM person WHERE id IN (1, 3);الامر السابق يقوم باظهار الموظفين الذين لديهم حقل الID يساوي من 1 الي 3
2- استخدام الامر NOT IN;
SELECT * FROM person WHERE id NOT IN (1, 3);الامر السابق عكس الاكر IN يقوم باظهار جميع الموظفين الذين ما عادة الذين يحملون الID من 1 الي 3
3- استخدام الامر BETWEEN ;
SELECT * FROM person WHERE salary BETWEEN 7000 AND 9000;الامر السابق يقوم باظهار الموظفين الذين لديهم الراتب من 7000 الي 9000
اضغط التالي لمتابعة الشرح
<><>
10- اوامر ORDER BY في SQL :-
SELECT * FROM person ORDER BY id DESC;هذا الامر خاص بالترتيب التنازلي حيث يتم استخدامه مع الحروف والأرقام
(كما يتم استخدامه في الترتيب التصاعدي أيضا ولكن مع إضافة asc بدلا من desc)
11- انواع القيود Constraint في SQL :-
القيود هي ببساطة حدود توضع على عمود أو أكثر في الجدول لتحديد نوع القيم التي يمكن تخزينها في العمود . القيود تُؤمن آلية قياسية للمحافظة على دقة وسلامة البيانات الموجودة داخل جدول قاعدة البيانات . هناك أنواع مختلفة للقيود في لغة SQL تتضمن :
- NOT NULL
- PRIMARY KEY
- UNIQUE
- DEFAULT
- FOREIGN KEY
- CHECK
1- القيد NOT NULL
يختص القيد NOT NULL بجعل العمود لا يقبل القيمة صفر أبداً . هذا يعني أن القيد NOT NULL عندما يُطبَّق على العمود عندها لا يمكنك أن تضيف سطر جديد في الجدول بدون إضافة قيمة غير NULL للعمود . الامر التالي في لغة SQL تقوم بإنشاء جدول باسم persons بأربع أعمدة ، ثلاث أعمدة منها id,name ,phone لا تقبل القيم NULL.
CREATE TABLE persons ( id INT NOT NULL, name VARCHAR(30) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL );
يُعرِّف القيد PRIMARY KEY العمود أو مجموعة الأعمدة التي لها التي لها قيم التي تحدد صف في الجدول . لا يمكن لسطرين في الجدول أن يكون لها نفس القيمة الأولية للمفتاح ، أيضاً لا يمكن أن تكون القيمة الأولية للمفتاح NULL . يقوم امر SQL التالي بإنشاء جدول اسمه persons ويحدد العمود id كمفتاح أولي أي أنَّ هذا الحقل لا يسمح بالقيمة NULL أو بالقيم المكررة .
CREATE TABLE persons ( id INT NOT NULL PRIMARY KEY, name VARCHAR(30) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL );
يحدد القيد UNIQUE عمود أو أكثر لتعيين قيم مميزة ضمن الجدول . على الرغم من أنَّ القيد UNIQUE والقيد PRIMARY KEY يفرض التفرد ولكن استخدام القيد UNIQUE بدلاً من PRIMARY KEY عندما تريد أن تفرض التفرد على عمود أو مجموعة من الأعمدة والتي ليست هي المفتاح الأولي . يقوم امر SQL التالي بإنشاء جدول باسم persons وتحدد العمود phone بأنه مميز هذا يعني أن هذا الحقل لا تحتوي قيم مكررة .
CREATE TABLE persons ( id INT NOT NULL PRIMARY KEY, name VARCHAR(30) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL UNIQUE );
4- القيد DEFAULT
يقوم القيد DEFAULT بتحديد قيم افتراضية للأعمدة . القيم الافتراضية للعمود هي بعض القيم التي سيتم إدخالها في العمود من قِبَل محرك قواعد البيانات عندما لا يقوم أمر INSERT بتعيين قيمة معينة بشكل صريح . يقوم امر SQL التالي بإنشاء بإنشاء عمود افتراضي باسم country .
CREATE TABLE persons ( id INT NOT NULL PRIMARY KEY, name VARCHAR(30) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL UNIQUE, country VARCHAR(30) NOT NULL DEFAULT 'Australia' );
5- القيد FOREIGN KEY
Foreign key هو عمود أو مجموعة من الأعمدة تُستَخدم من أجل تنفيذ وفرض علاقة بين البيانات في جدولين اثنين . هنا لدينا مخطط بياني بسيط يوضح العلاقة بين جدولين : employees و departments . إذا ألقيت نظرة بِدقَّة ستلاحظ أن هناك عمود dept_id لجدول employees يصل بالمفتاح الأولي للعمود في جدول departments . لذلك العمود dept_id في جدول employees هو Foreign key لجدول departments .
الامر التالي يقوم بإنشاء Foreign key على العمود dept_id لجدول employees التي تشير إلى العمود dept_id لجدول departments .
CREATE TABLE persons_fk (
emp_id INT NOT NULL PRIMARY KEY, emp_name VARCHAR(55) NOT NULL, hire_date DATE NOT NULL, salary INT, dept_id INT, FOREIGN KEY (dept_id) REFERENCES departments(dept_id) );
6- القيد CHECK
يُستَخدم القيد CHECK بحصر القيم التي وضعت في العمود . مثلاً مجال قيم عمود الراتب يمكن تحديده بإنشاء القيد CHECK الذي يسمح للقيم بين 3000 -10000 فقط وهذا يحمي الرواتب من إدخال أي راتب خارج مدى الراتب المسموح به .. لدينا المثال كالتالي :
CREATE TABLE persons_check (
emp_id INT NOT NULL PRIMARY KEY, emp_name VARCHAR(55) NOT NULL, hire_date DATE NOT NULL, salary INT NOT NULL CHECK (salary >= 3000 AND salary <= 10000), );
اضغط التالي لمتابعة الشرح
12- اوامر ال LIKE في SQL :-
جملة like هي جملة خاصة بالبحث او التشابه حيث ان "a" التي في الجمل التالية متغير يمكن ان تكون أي حرف بحسب نوع البحث وان علامة ال _ في بمثابة حرف ولاكن انت لا تتذكر هذا الحرف من الكلمة المراد البحث عنه لذلك فانك تضع الحرف الذي تتذكره من الكلمة وتكمل الكلمة بي _ فعلي سبيل المثال ان اريد ان ابحث عن كلمة AHMED ولكن لا أتذكر الكلمة كلها أتذكر منها اول حرف فقط مثلا فابحث عنها هكذا 'A_____' وهنا ان قمت بكتبة اول حرف واكملت الكلمة بأربع علامات _ هذا يعني ان الكلمة التي سأبحث عنها تحتوي لي اربع حروف اخري.
1- الامر التالي خاص بالبحث عن أي قيم تبدأ بـ "a"
SELECT * FROM persons WHERE Name LIKE 'a%';
2- الامر التالي خاص بالبحث عن أي قيم تنتهي بـ "a"
SELECT * FROM persons WHERE Name LIKE '%a';
3- الامر التالي خاص بالبحث عن أي قيم موجود بها حرف "a"
SELECT * FROM persons WHERE Name LIKE '%a%';
4- الامر التالي خاص بالبحث عن أي كلمة يكون الحرف الثاني منها "a"
SELECT * FROM persons WHERE Name LIKE '_a%';
5- الامر التالي خاص بالبحث عن أي اسم يبدأ بـ "a" ويتكون من 3 أحرف فقط
SELECT * FROM persons WHERE Name LIKE 'a_%_%';
6- الامر التالي خاص بالبحث عن أي قيم تبدأ بـ "a" وتنتهي بي "a"
SELECT * FROM persons WHERE Name LIKE 'a%a';
اضغط التالي لمتابعة الشرح
13- اوامر ال MIN and MAX في SQL :-
1- الامر التالي خاص بمعرفة أكبر قيمة .
SELECT max(salary) AS Largest salary FROM person;
2- الامر التالي خاص بمعرفة أصغر قيمة.
SELECT MIN(salary) AS Smallest salary FROM person;
14- اوامر ال COUNT, AVG,SUM في SQL :-
1- الامر التالي خاص بإيجاد عدد الصفوف في الجدول او العمود حيث يتم كتابة count.SELECT COUNT(ID) FROM person;
2- الامر التالي خاص بإيجاد المتوسط لعمود معين في الجدول حيث يتم كتابة avg.
SELECT avg(ID) FROM person;
3- الامر التالي يقوم بجمع الأرقام في عمود معين حيث يتم كتابة sum.
SELECT sum(ID) FROM person ;
15- امر ال TRUNCATE TABLE في SQL :-
يقوم امرTRUNCATE TABLE بإزالة جميع الصفوف من الجدول بشكل أسرع من امرDELETE. منطقياً التعليمة TRUNCATE TABLE تشبه امرDELETE بدون الشرط WHERE. تقوم امرTRUNCATE TABLE بإزالة جميع الصفوف من الجدول ولكن بنية الجدول وأعمدته وفهارسه وقيوده تبقى سليمة. لإزالة حدود الجدول بالإضافة إلى بياناته يمكنك استخدام التعليمة DROP TABLE.امر TRUNCATE TABLE يمكن كتابته بالشكل التالي:
TRUNCATE TABLE person;
مقارنة بين التعليمتين TRUNCATE TABLE وَ DELETE
على الرغم من أنَّ الامرين TRUNCATE TABLE وَ DELETE يبدوان أن لهما نفس التأثير لكنهما يعملان بشكل مختلف. هنا بعض الفروقات الرئيسية بين هذين التعليمتين:
- التعليمة TRUNCATE TABLE تزيل وتعيد إنشاء الجدول بمثل هذه الطريقة: اي قيمة تزداد تلقائياً يتم إعادتها إلى القيمة الأولية والتي هي بشكل عام .
- التعليمة DELETE تجعلك تختار أي الصفوف سيتم حذفها بناءً على الشرط الاختياري WHERE بينما التعليمة TRUNCATE TABLE لا تدعم الشرط WHERE فهي فقط تزيل جميع الصفوف.
- التعليمة TRUNCATE TABLE أسرع وتستخدم موارد نظام أقل من التعليمة DELETE. لأنَّ التعليمة DELETE تقوم بفحص الجدول لإنشاء عدد من الصفوف التي تأثَّرت ثمَّ حذف الصفوف واحدة تلو الأخرى وتسجيل الدخول إلى قاعدة البيانات لكل صف محذوف، بينما التعليمة TRUNCATE TABLE تقوم فقط بحذف جميع الصفوف بدون تقديم أي معلومات إضافية.
16- امر ال DISTINCT في SQL :-
SELECT DISTINCT city FROM person;
اضغط التالي لمتابعة الشرح
17-اوامر ال ALTER TABLE في SQL :-
يُستخدَم هذا الأمر لتعديل تعريف الجدول والاعمدة الخاصة بالجدول المُنشأ مسبقًا عبر الأمرCREATE TABLE
وله الصيغ الآتية:
1- هذا الامر يعني إذا كان لدي جدول سابق وكنت اريد ان اضيف اليه عمود جديد يمكن اضافته من خلال هذا الامر التالي.
ALTER TABLE persons ADD salary number(6);
2- هذا الامر يعني تغير نوع البيانات للعمود salary من number الي decimal فنستخدم هذا الامر التالي.
ALTER TABLE persons ALTER COLUMN salary decimal (5,00);
3- هذا الامر يعني إذا كنا نريد ان نحذف عمود معين من الجدول فنستخدم هذا الامر التالي.
ALTER TABLE persons DROP COLUMN salary;
18-اوامر ال ALTER TABLE في SQL :-
بمسح جميع البيانات من الجدول بشكل دائم بالإضافة إلى البيانات الأولية التي تحدد الجدول في قاموس البيانات.
1-إزالة الجدول بشكل دائم من قاعدة البيانات من خلال هذا الامر التالي.
DROP TABLE persons;
2- إزالة قاعدة البيانات بشكل دائم من خلال هذا الامر التالي.
DROP DATABASE emp;