طراحی بانک اطلاعاتی – 7# زبان پرس و جوي ساخت يافته SQL

طراحی بانک اطلاعاتی

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

۱

۱

۱

۲

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

برچسب ها

, , ,

محصولات پیشنهادی


نظرات کاربران


نظرات برای آموزش طراحی بانک اطلاعاتی | بدون نظر »

کاربر عزیز، لطفاً دیدگاه ارزشمند خود را از طریق فرم زیر برای ما ارسال کنید:

درباره کدنویسان
آکادمی کدنویسان جهت کمک به دانشجویان رشته های کامپیوتر و فناوری اطلاعات و همه علاقمندان به طراحی و برنامه نویسی برای ویندوز، وب و موبایل ایجاد شده است.
بیشتر آموزش های سایت کدنویسان، بصورت رایگان ارائه شده است و بعضی بسته های آموزشی تصویری و نیز نرم افزارهای پیاده سازی شده در ازای پرداخت، قابل دانلود هستند.
هر گونه نظر، انتقاد یا پیشنهادی در مورد مطالب یا عملکرد کدنویسان دارید، حتما با ما در میان بگذارید.
نمادهای اعتماد ما


تماس با ما
  • شماره همراه : ۰۹۱۵۱۶۰۴۰۶۸
  • آی دی تلگرام : @mmoha94
  • پست الکترونیکی : mohammadi.sm@gmail.com
  • آدرس پستی : بیرجند، خیابان پیروزی، پیروزی ۹، پلاک ۲۸
کلیه حقوق متعلق به سایت کدنویسان است، انتشار و کپی برداری از مطالب این سایت غیرمجاز بوده و پیگرد قانونی دارد.