لغة الاستعلام الهيكلية(SQL)

Download Report

Transcript لغة الاستعلام الهيكلية(SQL)

STRUCTURED QUERY ‫لغة قواعد البيانات‬
)SQL) LANGUAGE
‫األهداف‬
‫‪ ‬تعريف لغة االستعالم الهيكلية‪.‬‬
‫‪ ‬تعريف االستعالم‪.‬‬
‫‪ ‬معرفة األقسام الثالثة ل(‪)SQL‬‬
‫‪)DDL( -1‬‬
‫‪)DML( -2‬‬
‫‪)DCL( -3‬‬
‫‪ ‬معرفة بعض األوامر الخاصة ب(‪)DDL‬‬
‫)‪Structured Query Language (SQL‬‬
‫تسمى لغة االستعالم الهيكلية (باإلنجليزية ‪Structured Query‬‬
‫‪)Language SQL‬‬
‫‪ ‬ماهي لغة (‪)SQL‬؟‬
‫هي لغة برمجية متخصصة في التعامل مع قواعد البيانات بحيث يمكن من‬
‫خاللها إدارة البيانات وإجراء عمليات الحذف واإلضافة والتعديل عليها‪,‬‬
‫وإنشاء العالقات“الجداول“ والتحكم في عملية الوصول للبيانات‪.‬‬
‫أقسام لغة (‪)SQL‬‬
‫‪ ‬تنقسم لغة االستعالم الهيكلية إلى ‪ 3‬أقسام‪:‬‬
‫‪ -1‬لغة تعريف البيانات ‪(DDL) Data Definition Language‬‬
‫تقوم هذه اللغة بتعريف وبناء قاعدة البيانات بحيث‪:‬‬
‫ تسمح للمستخدمين تحديد نوعية البيانات و بناؤها ضمن قيود محددة حتى تخزن في‬‫قاعدة اليانات‪.‬‬
‫ يقوم مترجم ال(‪ )DDL‬في توليد البيانات التعريفية (‪ )meta-data‬تخزن في القاموس‬‫الخاص به‪.‬‬
‫‪ -2‬لغة معالجة البيانات ‪(DML) Data manipulation language‬‬
‫بحيث تمكن من إدراج ‪ /‬إضافة بيانات ‪ -‬تحديث‪ /‬تعديل بيانات ‪ -‬حذف بيانات ‪-‬‬
‫استرجاع‪ /‬استعالم عن بيانات‪.‬‬
‫‪ -3‬لغة التحكم في البيانات ‪:(DCL) Data control language‬‬
‫هذه اللغة تتولى معالجة صالحيات المستخدمين و هذه العمليات تتم من خالل‬
‫الواجهة الرسومية لنظم إدارة قواعد البيانات وال يمكن تنفيذها من داخل‬
‫محرر ال ‪SQL‬في ‪.Ms Access‬‬
‫أقسام لغة (‪)SQL‬‬
‫تقسم بعض أوامر ال ‪ SQL‬السابقة إلى ثالث فئات كالتالي‬
‫االستعالم (‪)Query‬‬
‫‪ ‬تعريف االستعالم ‪:Query‬‬
‫االستعالم هو عملية بحث عن بيانات الجدول بناء على تطبيق معايير‬
‫وشروط محددة ‪ ،‬ثم استعراض سجالت البيانات التي تتطابق مع هذه‬
‫المعايير و الشروط و تستخدم برامج قواعد البيانات لغة ال ‪ SQL‬لهذا‬
‫الغرض‪.‬‬
‫حول( ‪)SQL‬‬
‫مالحظات‪:‬‬
‫‪ ‬لغة الـ ‪ SQL‬ال تفرق بين حالة األحرف إال أن العاده جرت على كتابة األوامر بحروف‬
‫كبيره ‪Capital‬‬
‫‪ ‬تنتهي عبارة ال ‪SQL‬دائما بفاصلة منقوطه (;)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫[] هذه العالمة تشير إلى أن القيمة التي بين هذه األقواس المربعة هي قيمة اختيارية‪.‬‬
‫{} تشير إلى أن القيمة بينهما اجبارية أي يجب كتابتها‪.‬‬
‫‪ ...‬تشير إلى أنه يمكن التكرار عدد من المرات أو وال مرة‪.‬‬
‫| تشير إلى أنه يمكن اختيار القيمة التي قبله أو بعده‪.‬‬
‫الكلمة التي تحتها خط تشير إلى أنها تعتبر القيمة األولية‪.‬‬
‫حول( ‪)SQL‬‬
‫بعض النصائح الهامة‪:‬‬
‫‪ ‬أثناء انشاء الجدول اختاري أسماء األعمدة باللغة اإلنجليزية حتى تكون كتابة االستعالمات سهلة‪.‬‬
‫‪ ‬اذا كان اسم العمود يحتوي على مسافه سواء باللغة العربية او األنجليزيه ضعيه بين قوسين مربعين‬
‫[]‬
‫‪ ‬عدد حروف اسم الجدول أو العمود كحد أقصى هي ‪ 30‬حرفا‬
‫‪ ‬اسم الجدول ‪ ،‬و الحقول (األعمدة) ممكن ان تحتوي احرفا (كبيره و صغيره ) أرقام و الرمز( _ )‬
‫هناك مجموعه اخرى من الرموز الممكن استخدامها ولكن ال يحبذ اللجوء لها ألنها تجعل القراءه‬
‫غير واضحه‬
‫‪ ‬اسم الجدول أو العمود ال بد أن يبدأ بحرف وبعدها اي ترتيب من االحرف و االرقام‬
‫‪ ‬اسم الجدول أو العمود ال بد ان يكون ذو معنى مفهوم للمبرمج‬
‫‪ ‬األحرف االنجليزيه الكبيره و الصغيره تعامل على حد سواء في ما يخص اسم الجدول أو العمود‬
‫‪ ‬ال يمكن ان نستخدم الكلمات المحجوزه من قبل لغة الـ ‪SQL‬لتسمة عمود أو جدول ما مثل كلمة‬
‫‪Select‬‬
‫‪ ‬لكل عمود في الجدول ‪ Data Type‬أي نوع بيانات“ تمثل مجال البيانات“ وأشهرها ‪(int , ( :‬‬
‫‪Date , Text‬‬
DDL
Data Definition language
‫لغة البيانات التعريفية‬
‫ لغة تعريف البيانات‬-1
(DDL) Data Definition Language
:‫) هي‬DDL( ‫ أبرز االوامر في لغة‬

CREATE SCHEMA
DROP SCHEMA

CREATE DOMAIN
DROP DOMAIN

CREATE TABLE

CREATE VIEW
DROP VIEW

CREATE INDEX
DROP INDEX
ALTER TABLE
DROP TABLE
‫أنواع البيانات ‪Data Types‬‬
‫النوع‬
‫الوصف‬
‫‪Text‬‬
‫تقوم بتخزين الحروف واألرقام والرموز وأقصى عدد تخزنه‬
‫‪ 255‬خانة‬
‫‪Integer‬‬
‫تسمح بتخزين األعداد ما بين(‪ )-32,678‬و ‪32,676‬‬
‫‪Number‬‬
‫تخزن أرقام‬
‫‪DATE‬‬
‫تخزن تاريخ‬
‫‪Time‬‬
‫تخزن زمن‬
‫‪Double‬‬
‫تسمح بتخزين أرقام عشرية‬
‫‪BOOLEAN‬‬
‫البيانات الممثلة منطقيا مثل ‪ TRUE,FLASE‬أو ‪ Yes/No‬أو‬
‫‪1 /0‬‬
)DDL( ‫بعض أوامر‬
)DDL( ‫ أمر إنشاء جدول في‬-1
CREATE TABLE Syntax : ‫ الصيغة العامة ألنشاء الجدول‬
CREATE TABLE tablename
( columnName
dataType
[NOT NULL | NULL]
[UNIQUE]
[DEFAULT
defaultOption ]
[PRIMARY KEY
(column (,…) )]
[UNIQUE
(column (,…) )]
[AUTOINCREMENT]
CONSTRAINT [ constraint Name]
[FOREIGN KEY (FK column(,…))
REFERENCES tablename [(CK column(,…))]
[ON UPDATE [ CASCADE | SET NULL| SET DEFAULT| NO ACTION]]
[ON DELETE [ CASCADE | SET NULL| SET DEFAULT| NO ACTION ]]
);
:‫مثال‬
:‫قومي بإنشاء جدول بناء على العالقة التالية‬
- graduate( Std_ID, name,bdate, National_ID , departmentNo, city,phone,password, notes)
:‫الحل‬
Create table graduate
(
Std_ID number primary key,
Std_name text,
bdate date,
National_ID number,
departmentNo number,
city text,
phone text,
password text,
notes text
);
Std_ID
Std_name
bdate National_ID
departmentNo
city
phone
password
notes
:‫مثال‬
:‫قومي بإنشاء جدول بناء على العالقة التالية‬
 DEPARTMENT( Dname, Dnumber)
.‫) مميز‬Dname( ‫بحيث يكون‬
:‫الحل‬
CREATE TABLE department (
Dname Text
NOT NULL,
Dnumber
INT
NOT NULL,
PRIMARY KEY (Dnumber),
UNIQUE (Dname));
Dnumber
Dname
:‫مثال‬
:‫ قومي بإنشاء جدول بناء على العالقة التالية‬
 EMPLOYEE( Fname, Lname, SSN, DOB, Address, Salary, Dno)
:‫الحل‬
CREATE TABLE employee (
Fname
TEXT
NOT NULL,
Lname
TEXT
NOT NULL,
SSN
TEXT
NOT NULL,
DOB
DATE,
Address
TEXT,
Salary
Double(10,2),
Dno
INT
NOT NULL,
PRIMARY KEY (SSN),
FOREIGN KEY (Dno) REFERENCES DEPARTMENT(Dnumber)
ON DELETE
ON UPDATE
SET DEFAULT
CASCADE );
‫بعض أوامر (‪)DDL‬‬
‫‪ -2‬أمر حذف جدول في (‪)DDL‬‬
‫‪ ‬الصيغة العامة لحذف الجدول ‪DropTABLE Syntax :‬‬
‫;]‪[RESTRICT | CASCADE‬‬
‫‪tablename‬‬
‫‪TABLE‬‬
‫‪DROP‬‬
‫‪ ‬تقييد ‪RESTRICT :‬‬
‫تعني أنه سوف يتم حذف الجدول لوحده فقط دون المباالة بحذف أي جدول آخر يعتمد ظهوره على‬
‫الجدول المراد حذفه‪.‬‬
‫مثال‪ :‬جدول ”االبن“ وجدول ”األب“ نجد أن جدول االبن يعتمد وجوده على وجود جدول األب فعند‬
‫حذف جدول األب واختيار[‪ ]RESTRICT‬فإن جدول االب سيحذف وجدول االبن يبقى بالرغم أن‬
‫وجوده يعتمد على وجود جدول األب‪.‬‬
‫‪ ‬متتابع ‪CASCADE :‬‬
‫عند حذف الجدول فإنه سوف يتم حذف كل الجداول التي تعتمد في ظهورها على الجدول المراد حذفه‪.‬‬
‫مثال‪ :‬عند حذف جدول ”األب“ فإنه عند اختيار]‪ [CASCADE‬سوف يحذف تلقائيا جدول“االبن“‬
‫مثال‪:‬‬
‫‪ ‬احذفي جدول الطلبة المتخرجين من قاعدة البيانات بلغة الـ ‪SQL‬‬
‫مستخدمةً أوامر تعريف البيانات‪.‬‬
‫‪ ‬الحل‪:‬‬
‫‪Drop table graduate‬‬
‫‪ ‬احذفي جدول الطلبة المتخرجين باإلضافة إلى جميع الجداول المعتمدة‬
‫عليه من قاعدة البيانات بلغة الـ ‪ SQL‬مستخدمةً أوامر تعريف‬
‫البيانات‪.‬‬
‫بعض أوامر (‪)DDL‬‬
‫‪ -3‬الصيغة العامة لتعديل الجدول ‪ALTER TABLE Syntax :‬‬
‫هناك عدة أنواع من التعديل ‪:‬‬
‫‪ ‬أوال‪ :‬ألضافة عمود في الجدول نستخدم الصيغة العامة التالية‬
‫‪ALTER TABLE table name‬‬
‫‪ADD column name datatype‬‬
‫‪ ‬ثانيا‪ :‬لحذف عمود من الجدول نستخدم الصيغة العامة التالية‬
‫‪ALTER TABLE table name‬‬
‫‪DROP COLUMN column name‬‬
‫‪ ‬ثالثا ً‪ :‬تغير نوع البيانات في عمود معين من جدول معين‬
‫‪ALTER TABLE table name‬‬
‫‪ALTER COLUMN column name datatype‬‬
‫مثال‪:‬‬
‫‪ ‬أضيفي عمود لجدول الطلبة المتخرجين لحفظ رقم السياره بلغة الـ ‪SQL‬‬
‫مستخدمةً أوامر تعريف البيانات‬
‫‪ ‬الحل‪:‬‬
‫‪ALTER TABLE graduate‬‬
‫‪ADD Car_NUM INT‬‬
‫‪ ‬قومي بحذف عمود ‪ Car_NUM‬في جدول الطلبة المتخرجين مستخدمةً‬
‫أوامر تعريف البيانات بلغة ‪SQL‬‬
‫‪ ‬الحل‪:‬‬
‫‪ ‬قومي باجراء تعديل على عمود ‪ Car_NUM‬في جدول الطلبة المتخرجين‬
‫مستخدمةً أوامر تعريف البيانات بلغة ‪SQL‬‬
‫‪ ‬الحل‪:‬‬