مدخل إلى لغة الاستعلام البنيوي SQL

معلومات عامة  -  بواسطة:   اخر تحديث:  2020/10/24
مدخل إلى لغة الاستعلام البنيوي SQL

تستخدم لغة SQL في برمجة وتصميم البيانات المحفوظة في نظام إدارة قواعد البيانات العلائقية (RDBMS)، أو لمعالجة تدفق المعلومات في نظام إدارة دفق البيانات العلائقية (RDSMS). إنه مفيد بشكل خاص في التعامل مع البيانات المهيكلة (البيانات التي تتضمن العلاقات بين الكيانات والمتغيرات)، وهي لغة مهمة للغاية لسببين، السبب الأول، لأنها قدمت مفهوم الوصول إلى العديد من السجلات باستخدام أمر واحد. أما الثاني، فهي تلغي الحاجة إلى تحديد كيفية الوصول إلى سجل، على سبيل المثال مع أو بدون فهرس.


تستند لغة SQL في الأصل إلى الجبر العلائقي وحساب التفاضل والتكامل العلائقي، وتتألف من أنواع عديدة والتي يمكن تصنيفها بشكل غير رسمي على أنها لغات فرعية:


  • لغة استعلام بيانات.

  • لغة تعريف البيانات.

  • لغة التحكم في البيانات.

  • لغة معالجة البيانات.

إذ يشمل نطاق SQL استعلام البيانات ومعالجة البيانات (إدراج وتحديث وحذف) وتعريف البيانات (إنشاء المخطط وتعديله)، والتحكم في الوصول إلى البيانات.


(Data Definition Languages (DDL لغة تعريف البيانات:


وتنطبق على الأغراض كالجداول والفهارس والمناظير، وأهم تعليماتها البرمجية:


  • comment

  • create

  • alter

  • drop

وهي تعليمات تركز على التحكم بالجداول بشكل أساسي، إذ تستخدم create لإنشاء قاعدة والجدول، و Alter للتعديل على القاعدة والجدول، و drop لحذف الجدول والقاعدة، أما comment فهي عبارة عن تعليقات تكتب من قبل المبرمج لشرح شفرته البرمجية لتسهيل قراءة الكود من قبل مبرمج آخر، ولا يعد جزءًا من الشفرة البرمجية.


مثال:


create table TableNme


حيث TableNme هو اسم الجدول.


قواعد البيانات العلائقية


أنواع البيانات التي تتواجد في لغة SQL:


1- بيانات محرفية char:


تستخدم لتخزين البيانات النصية، وأقصى حد لها هو 2000 بايت بحسب oracle 2008.


2- بيانات محرفية مطاطية varchar2:


تستخدم لتخزين البيانات المحرفية المتنوعة والحد الأقصى لعدد الأحرف 4000 بايت.


3- بيانات الأرقام (number (I:


حيث تقيل الأرقام من 0 حتى 9، ومن الضروري تحديد طول الحقل:


(number(7 أي لدينا حقل من نوع رقم أقصى طول له هو رقم من 7 خانات أي من 0 إلى 9999999.


4- الحقل ذو القيمة الرقمية الحقيقية (ذو فاصلة عشرية):


تكون شكل البيانات الرقمية المدخلة (number (I,J حيث:


I : الطول الأعظمي للحقل كالمثال السابق.


J : عدد الأرقام بعد الفاصلة.


مثال: (number(5,2


123,45: الطول الأعظمي 5 وهناك رقمين بعد الفاصلة.


5- الحقل ذو القيمة الثنائية RAW:


تستخدم لتخزين بيانات ثنائية (أصفار وواحدات)، وأقصى طول لها 2000 بايت.


6- الحقل ذو القيمة التاريخية Date:


ويخزن فيه بيانات من تاريخ (يوم، شهر، سنة) => (dd,mm,yyyy).


7- حقل البيانات الكبيرة Long:


يخزن البيانات النصية التي يصل طولها إلى 2 غيغابايت.


أما الأنواع التالية فهي ليست موجودة في كافة الإصدارات، هي فقط موجودة في الإصدرات الحديثة من Oracle:


1- Blob: عبارة عن مجموعة من البيانات الثنائية المخزنة ككيان واحد في نظام إدارة قاعدة البيانات، عادةً ما تكون صورًا أو صوتًا أو كائنات وسائط متعددة أخرى.


2- clob: هي مجموعة من الأحرف في نظام إدارة قاعدة البيانات، وعادة ما يتم تخزينها في موقع منفصل يتم الرجوع إليه في الجدول نفسه.


3- BFILE: وهو ملف خارجي كبير يصل إلى 4 غيغابايت.


كيف تصمم قاعدة بيانات علائقية؟


أنواع القيود المفروضة Constraints:


تستخدم القيود في حالات كبيرة، مثل الرقم التسلسلي لا يجب تكراره أو اسم لا يجب تكراره، حقل لا يقبل قيمة فارغة، وهذا يعتمد على شروط المبرمج لسجلات التي سيتم إدخالها، وبحسب Oracle يعد ما يلي أنواع القيود المفروضة:


1- المفتاح الرئيسي Primary key:


وهو يطبق على حقل أو أكثر، لا يقبل القيمة الفارغة ولا التكرار وله نوعان:


  1. مفتاح رئسي بسيط simple: يطبق على حقل واحد.

  2. مفتاح رئيسي معقد complex: يطبق على حقلين أو أكثر، مثل:

create table T


(id1 number (3}


(4) id2 number


;{(primary key(id1,id2


 


2- المفتاح الأجنبي Foreign key:


هو مفتاح غريب عن الجدول لإقامة علاقة بجدول آخر، وهو حقل مستورد من جدول ثاني وليس أصليًا كما يعد المفتاح الرئيسي للجدول الثاني، وهي لا تقبل القيم الفارغة والتكرار.


3- قيد not null:


لا يقبل القيمة الفارغة وهو قيد يفرض على بعض الحقول.


4- قيد unique:


هو قيد يطبق على أكثر من حقل ولا يقبل التكرار أو القيم الفارغة.


5- قيد القيمة الافتراضية default:


هو قيد يطبق على أكثر من حقل ويأخذ القيم الافتراضية في حال عدم إدخال قيمة وإذا كان هناك قيمة مدخلة يأخذها.


مثال شامل:


 create table student


,std_no number 7 PK not null}


,std_name varchar2 70 not null


,std number 20 default 20


 ‘std-ntion varchar2 20 default ‘syria


;{


6- قيد الاختبار check:


وهو قيد يطبق على أحد حقول الجدول وهناك قيمة الاختبار إذا لم يتحقق الشرط يعطي رسالة خطأ.


مثال:


تعليمة إنشاء جدول جديد  } create table student


 تعريف حقل من نوع رقم أقصى طول له سبعة أرقام، ولا يقبل القيم الفارغة , std_no number(7) not null


 تعريف حقل جديد من نوع محرفي مطاطي أقصى طول له 40 محرفًا ولا يقبل القيمة الفارغة,std_name varchar2 (40) not null


 أما هنا يجب أن يكون حصرًا قيمته أحد القيمتين  التاليتين ,((‘std_gender varchar2(1) check (std_gender in ‘m’, ‘f


 وهنا حقل نوعه رقم يقبل الأعداد بين 19 و 30 فقط ;(std_age number(2) check (std_age between 19 and 30


 ;{