لغة معالجة البيانات(DML)

Download Report

Transcript لغة معالجة البيانات(DML)

‫الجزء األول‬
:‫)هي‬DML( ‫) األساسية في لغة معالجة البيانات‬SQL(‫جمل ال‬

SELECT

INSERT INTO

UPDATE

DELETE FROM

‫‪ ‬ماهو استخدام استعالم االختيار(‪)SELECT Query‬؟‬
‫هو استرجاع مجموعة من البيانات أو السجالت من جدول أو اكثر وهذا‬
‫االسترجاع ممكن أن يكون مشروط بشرط واحد أو أكثر باإلضافة إلى‬
‫إمكانية التحكم في ترتيب السجالت‪ .‬أيضا يمكن استخدامه لتجميع‬
‫البيانات التي تشترك في خواص معينة ‪ ،‬أي تلخيص البيانات و في هذه‬
‫الحالة يطلق عليها استعالم تجميع مع العلم بأن هذا االستعالم ال يغير في‬
‫قواعد البيانات األصلية (ال البيانات و ال هيكل القاعدة)‪.‬‬
SELECT –FROM ‫الصيغة العامة لجملة‬

SELECT [DISTINCT|ALL] { * | column_expression |
[table.] column1[As alias] [,[ table.]
column2[As aliase ] [,..]]}
FROM table_name [, … ]
[WHERE condition]
[GROUP BY column_list]
[HAVING condition]
[ORDER BY column_list [ASC|DESC]];
‫الجزء‬
‫‪ALL‬‬
‫‪DISTINCT‬‬
‫الوصف‬
‫استرجاع جميــــع السجالت التي تحقق شرط معين إذا كان هناك شرط‪.‬‬
‫هذا المسند يحذف الصفوف المتكرره بناء على األعمده المختاره من الجدول‪.‬‬
‫*‬
‫تعني أنه ينبغي تحديد كافة األعمدة من الجدول أو الجداول المحددة‬
‫‪Table‬‬
‫اسم الجدول الذي يحتوي على األعمدة التي يتم منها تحديد سجالت‬
‫‪column1, column2‬‬
‫أسماء األعمدة التي تحتوي على البيانات المراد استردادها‪ .‬و في حالة تضمين‬
‫أكثر من عمود واحد فانه يتم استردادها بترتيب سردها‬
‫األسماء المراد استخدامها كرؤس لألعمدة بدال من اسماء األعمدة األصلية في‬
‫‪Alias1 , alias2‬‬
‫الجدول‬
‫‪ column_expression‬يعني عمود في الجدول معمول عليه بعض العمليات الحسابية‪.‬‬
:‫الصيغة العامة السترجاع كافة البيانات‬
SELECT {* | column| column_expression [,…]}
FROM
table_name;

:‫ مثال‬

STAFF(sno, fname, lname, position, sex, dob, salary, bno)
.‫قومي باسترجاع بيانات الطاقم كاملة من العالقة السابقة‬

:‫الحل‬

SELECT sno, fname, lname, position, sex, dob, salary, bno
FROM staff;
:‫أو‬
SELECT *
FROM staff;
Sno
fname
lname position
sex
DOB
salary bno
SL21
John
White
Manager
M
1-Oct-45
SG37
Ann
Beech Assistant
F
10-Nov-60 12000 B003
SG14
David
Ford
Supervisor
M
24-Mar-58 18000 B003
SA9
Mary
Howe
Assistant
F
19-Feb-70 9000
SG5
Susan
Brand
Manager
F
13-Jun-40 24000 B003
30000 B005
B007
**‫مالحظة‬
‫باإلمكان ترتيب األعمدة بأي شكل وبدون التقيد بالترتيب الذي صمم به الجدول‬
.‫كما يمكن تكرار ظهور العمود اكثر من مرة‬

:‫ مثال‬
STUDENT (StudentNo, Lname, Fname, Initial, DOB, GPA,
Dept)
– ‫ رقم الطالب‬: ‫ المطلوب استرجاع البيانات التالية عن كل الطالب‬
.‫االسم األخير – االسم األول و المعدل‬
:‫ الحل‬
SELECT StudentNo, Fname, Lname,GPA
FROM Student;
STUDENT
StudentNo
Fname
Lname
GPA
4170010
Amal
Al-Saleh
3.91
4182000
Nora
Al-Ghanem 4.20
4182034
Laila
Al-Fahad
4188134
Amal
Saod
3.01
4189860
Rana
Rashed
2.31
4.01
.‫ لتغيير عنوان العمود في الناتج فقط من عملية االستعالم‬Alias ‫نستخدم‬
:‫الصيغة العامة‬


SELECT {*|column[AS new_name]|column_expression [,…]}
FROM
table_name;
:‫مثال‬

‫“ واالسم األول بحيث يظهر‬number” ‫المطلوب استرجاع رقم الطالب ويكون اسم العمود‬
.‫“ واالسم األخير‬First_name“‫ب‬

:‫الحل‬

STUDENT (StudentNo, Lname, Fname, Initial, DOB, GPA, Dept)
SELECT StudentNo As number, Fname As
First_name, Lname
FROM Student;
STUDENT
number First_name Lname
4170010
Amal
Al-Saleh
4182000
Nora
Al-Ghanem
4182034
Laila
Al-Fahad
4188134
Amal
Saod
4189860
Rana
Rashed
‫مالحظة** هذا ال يؤثر على أسماء الحقول في الجداول االصلية‬

.‫ تمنع تكرار الصف‬DISTINCT

DISTINCT ‫الصيغة العامة عند استخدام‬

SELECT DISTINCT {*|column|column_expression [,…]}
FROM table_name;
:‫ مثال‬

STAFF(sno, fname, lname, position, sex, dob, salary, bno)
.‫المطلوب استرجاع الرتب الوظيفية التي يشغلها الطاقم‬

:‫الحل‬

SELECT DISTINCT position
FROM staff;
position
position
Manager
Manager
Assistant
Assistant
Supervisor
Supervisor
Assistant
Manager
SELECT position
FROM staff;
SELECT DISTINCT position
FROM staff;

FirstName
lastName
DOB
email
city
John
Smith
12/12/1969
[email protected]
New York
David
Stonewall
01/03/1954
[email protected]
San Francisco
Susan
Grant
03/03/1970
[email protected]
Los Angeles
Paul
O'Neil
09/17/1982
[email protected]
New York
Stephen
Grant
03/03/1974
[email protected]
Los Angeles
User (id ,firstName,lastName,DOB,email,city)
:‫ مثال‬
.‫ المطلوب استرجاع المدن التي يسكنها المستخدمين‬-1
SELECT DISTINCT city
FROM User ;
:‫ الحل‬
city
New York
San Francisco
Los Angeles
‫ المطلوب استرجاع األسماء األخيرة للمستخدمين والمدن بدون تكرار‬-2
.‫االسم والمدينة‬
SELECT DISTINCT lastName ,city
FROM User ;
lastName
:‫ الحل‬
city
Smith
New York
Stonewall
San Francisco
Grant
Los Angeles
O'Neil
New York
‫‪‬‬
‫الصيغة العامة‪:‬‬
‫}]…‪SELECT {*|column|column_expression [,‬‬
‫‪FROM‬‬
‫;‪table_name‬‬
‫‪ ‬عند عمل عمليات حسابية على األعمدة في الجدول فإن ذلك لن يؤثر‬
‫على األعمدة األصلية في الجدول‪.‬‬
‫‪ ‬األعمدة التي يعمل عليها عمليات حسابية يجب أن تكون من نوع‬
‫رقمي‪.‬‬
‫‪ ‬يفضل اعطاء العمود المحسوب اسم باستخدام ‪As‬ألنه سيعطى اسم‬
‫عشوائي غير مفهوم‪.‬‬
‫‪ ‬العملية الحسابية تكون على مستوى العمود و يتم تنفيذها على كل‬
‫السجالت‪.‬‬
‫العملية‬
‫الوصف‬
‫‪-‬‬
‫تغيير إشارة العدد‬
‫‪+‬‬
‫تستخدم لجمع رقمين‬
‫‪-‬‬
‫تستخدم لطرح رقمين‬
‫*‬
‫تستخدم لضرب رقمين‬
‫‪/‬‬
‫تستخدم لقسمة رقمين‬
‫^‬
‫تستخدم لرفع رقم ألس‬
‫‪%‬‬
‫تستخدم إلعادة باقي قسمة عددين‬
:‫مثال‬
STAFF(sno, fname, lname, position, sex, dob, salary, bno)
‫المطلوب استرجاع رقم الموظف و راتب كل موظف مجموعا عليه‬
10

:‫ الحل‬
SELECT sno, salary+10 As sal
FROM STAFF;
Sno
sno
sal
SL21
30010
SG37
12010
SG14
18010
SA9
9010
SG5
24010