SQL (زبان پرس و جوی ساخت یافته)، یک زبان استاندارد برای کار با بانک اطلاعاتی است و توسط بیش تر DBMS ها شناسایی شده و قابل استفاده است. این زبان نسخه ها و لهجه های متفاوت دارد و هر DBMS ممکن است لهجه خاصی از  SQL را استفاده کند. در این بخش و چند بخش بعدی این زبان را آموزش می دهیم.

برای تعریف بانک اطلاعاتی،اجزای آن و دستکاری داده ها هر DBMS دستورات را به زبان خاصی دریافت می کند. به این زبان DSL یا Data Sub-Language می گویند. دستورات DSL شامل دو بخش است:

۱) زبان تعریف داده ها (DDL) :شامل دستوراتی برای ساخت بانک اطلاعاتی ،جدول،دیدگاه ها و اصطلاح بانک اطلاعاتی و جداول و…به عبارتی این دستورات بخشی از بانک اطلاعاتی به نام شبه داده ها یا همان کاتالوگ را تعیین می کند.

۲) زبان دستکاری داده ها (DML) : شامل دستوراتی که داده ها را در باتک اطلاعاتی ذخیره کرده و آنها  را دستکاری می کند.

معرفی SQL

نام این زبان سرنام عبارت Structured Query Language یعنی زبان پرس و جوی ساختیافته است که یک زبان استاندارد برای کار با بانک اطلاعاتی است و توسط بیش تر DBMS ها شناسایی شده و قابل استفاده است. این زبان نسخه ها و لهجه های متفاوت دارد و هر DBMS ممکن است لهجه خاصی از  SQL را استفاده کند.

برای اجرای دستورات SQL می توان از نرم افزاری جانبی DBMS مثلQuery Analyzer   در Sql Server  استفاده کرد و یا در محیط های برنامه نویسی با استفاده از امکانات زبان برنامه نویسی فرامینی به شکل SQL به DBMS  فرستاد. زبان های برنامه نویسی بانک اطلاعاتی مثل VBو  C#میتوانند مستقیما از برنامه نویس دستورات SQL گرفته و یا اینکه با فراهم کردن کامپوننت هایی دستورات را به شکل فراخوانی  متدهای خاص گرفته و آن ها را به SQL تبدیل کند و نهایتا دستور SQL را برای اجرا  به سیستم مدیریت بانک اطلاعاتی بفرستند.

 

دستورات DML

در SQL مهمترین این دستورات عبارتند از:

  • Select بازیابی اطلاعات
  • Insert درج سطر جدید
  • Update ویرایش رکوردهای دلخواه
  • Delete حذف رکوردهای دلخواه

 

دستور select

                                                                      نام جداول  From  لیست ستون ها   select

                                                                                                 محدودیت   Where

لیست ستون ها می تواند ستاره (*) یعنی همه ی ستون ها باشد.

محدودیت می تواند هر شرط ساده یا شرط ترکیبی با استفاده از عملگر های and,or,not و… باشد.

عملگرهای مقایسه ای :

=   مساوی                        < >  نامساوی                       >  بزرگتر

=<   بزرگتر یا مساوی       <  کوچکتر                          =>  کوچکتر یا مساوی

در ذیل مفاهیم و تکنیک هایی برای بازیابی اطلاعات مورد نیاز را در قالب مثال هایی ارائه می کنیم:

Studsجدول

Fid Avg Name Id
۱

۱

۲

۱

۱۷

۱۸

۱۵

۱۶

Ali

Reza

Ahmad

Hadi

۱۰۰

۱۰۱

۱۰۲

۱۰۳

 

مثال ۱:  بازیابی کل سطرهای وستون های جدول studs

select  *  from   studs

وقتی نمی خواهیم محدودیت ایجاد کنیم نیازی به نوشتن where  نمی باشد.

 

مثال ۱: بازیابی شماره دانشجویی و نام همه دانشجویان  (عملکرد تصویر)

select   id ,name  from     studs

در عمل تصویر  نیازی به نوشتن where  نیست ومحدودیت روی سطرها ایجاد نمی شود.

 

مثال۳: بازیابی دانشجویانی که کد رشته آنها ۱ است. (عملکرد محدودیت)

select * from studs   where   fid=1

خروجی :

Fid Avg Name Id
۱

۱

۱

۱۷

۱۸

۱۶

Ali

Reza

Hadi

۱۰۰

۱۰۱

۱۰۳

 

مثال ۴:  بازیابی نام ومعدل دانشجویان رشته ۱٫ (ترکیب عملکرد تصویر و محدودیت)

select   Name,Avg  from studs where fid= 1

خروجی:

Avg Name
۱۷

۱۸

۱۶

Ali

Reza

Hadi

 

مثال۵: بازیابی نام ومعدل دانشجویان رشته ۱ با معدل بالاتر از ۱۷٫

select Name,Avg from studs

Where  fid=1 and avg>17;

در آخر دستورات بالا از(;) استفاده شود . در صورتی که  یک دستور باشد نوشتن ;الزامی نیست.

مرتب سازی خروجی

برای مرتب کردن نتایج پرس و جو از بخش Order By به صورت زیر استفاده می شود:

شرط   where   جدول     from    ستون ها       select

Asc|Desc         ….,ستون ۲     ,ستون ۱    order by

Asc : صعودی (پیش فرض)                Desc: نزولی

مثال۶:  لیست دانشجویان به صورت مرتب شده براساس نام نمایش دهید.

select  * from  studs  order  by name

عملگر Like

برای مقایسه یک عبارت با بخشی از فیلد متنی از Like استفاده می شود:

مثال ۷:  بازیابی لیست دانشجویانی که نام آنها شامل کلمه ali  است.

select   *   from studs where name  like ‘%ali% ‘

 

%  مشخص کننده هیچ یا چند کاراکتر است.

 

عملگر  Between

برای بررسی قرارداشتن مقدار یک ستون در بین دو مقدار معین

مثال ۸:  اسامی دانشجویانی را بازیابی کنید که معدل آنها بین ۱۵ و ۱۷ است.

select  name  from  studs  where  avg>=15  and  avg<=17

 یا

select  name  from   studs  where  avg   between  ۱۵ and 17

 عملگر  In

بررسی می کند مقدار یک ستون در بین چند مقدار معین وجود دارد یا خیر

مثال ۹:  اسامی دانشجویان رشته های ۱و۲و۳ را نمایش دهید.

    select   name   from  studs    where   fid=1  or  fid=2 or  fid=3

یا

select  name  from  studs  where  fid  in ( 1 , 2  , ۳  );

 

 

 

 

جدول رشته ها بصورت زیر را درنظر بگیرید:

fields

title fid
Computer

Graphics

Mechanics

۱

۲

۳

 

مثال ۱۰:  لیست رشته ها و دانشجویان هر رشته را نمایش دهید.(عملکرد الحاق)

select fids.*,studs.* from  fids,studs

Where filds.fid=studs.fid

نتیجه این دستور بازیابی تمامی ستونها از دو جدول تعیین شده خواهد بود . و بازای هر سطر از جدول دانشجویان مشخصات رشته تحصیلی آن را نیز نمایش خواهد داد.

Fid avg name id title fid
۱

۱

۱

۲

۱۷

۱۸

۱۶

۱۵

Ali

Reza

Hadi

ahmad

۱۰۰

۱۰۱

۱۰۳

۱۰۲

computer

computer

computer

graphics

۱

۱

۱

۲

برای الحاق یک شرط لازم است که ستون مشترک در دو جدول را با هم مساوی قرار دهد.

نمایش قابل چاپ