آموزش SQLserver (بخش چهارم)

بازیابی سطرها
بیشتر برنامه های پایگاه داده از یک برنامه ریزی محیطی از قبیل مایکروسافت Access یا مایکروسافت Visual Basic برای فراهم آوردن رابط کاربر استفاده خواهند کرد. اگر چه Manager Enterprise یک ابزار ساده به نام Query Designer فراهم می آورد که به شما به آسانی اجازه می دهد داده ها را در یک یا چندین جدول در پایگاه داده Aromatherapy استفاده می کنید.

استفاده کردن از Query Designer
حتی با وجود اینکه داده در یک پایگاه داده SQL Server ذخیره شده به سختی در حالت Raw استفاده شده بدون اینکه ذخیره شود یا فیلتر شود در چندین طریق، بعضی مواقع آن به توانا بودن برای کنترل سریع محتویات یک جدول مفید واقع می شود. Query Designer مدیریت Enterprise آن را برای دیدن و ویرایش سطرها آسان ساخته و حتی سطرهای جدید دیگر اضافه می کند.

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

دیدن همه سطرها در یک جدول
1- در Manager Enterprise ، پوشه Tables را از پایگاه داده Aromatherapy راهبری می کنیم. SQL Server یک سیستمی از جداول در قاب Details را نشان می دهد.

2- جدول Plant Parts را کلیک راست کرده روی زیر منوی Open Table رفته و همه سطرهای برگردانده شده را انتخاب می کنیم. SQL Server ، Query Designer را با همه سطرهای نشان داده شده در جدول باز می کند.


محدود کردن تعدادی از سطرهای نشان داده شده
1- Query Designer را اگر هنوز از تمرین قبل بازمانده است می بندیم.
2- جدول Odors را در قاب Details کلیک راست کرده روی Open Table Submenu رفته و Return Top را انتخاب می کنیم. SQL Server یک کادر محاوره ای را نشان می دهد که از شما درخواست می کند که تعدادی از سطرها را که مشخص کرده اید بیاورید.

3- 5 را به عنوان تعداد ماکزیمم برای آوردن سطر تایپ می کنیم.

4- OK را کلیک کرده Query Designer را باز می کنیم. 5 سطر اول را در جدول نشان می دهد.

5- پنجره Query Designer را می بندیم.
به هنگام سازی سطرها در یک جدول
Query Designer همچنین می تواند برای تغییر مقادیر از سطرهای موجود در یک جدول یا اضافه کردن سطرها استفاده گردد.

ویرایش یک سطر در Query Designer
1- جدول Plantparts را در قاب Details کلیک راست کرده روی Open Table Submenu رفته و سپس همه سطرهای بازگشتی را برای بازکردن Query Designer برای جدول Plantparts انتخاب می کنیم.
2- ستون Plantparts از سطر را با یک Plantparts ID 12 از برای خواندن Fruit Kernel به جای Fruit Kernal تغییر می دهیم. Query Designer یک آیکون Edit برای انتخابگر سطر اضافه می کند. برای نشان دادن اینکه رکورد ویرایش شده است اما تغییرات هنوز ذخیره نشده است.

3- سطر دیگر را کلیک می کنیم. Query Designer آیکون Edit را ذخیره، تغییر و برمی دارد.

راهنمایی: قبل از اینکه شما به دیگر سطر حرکت کنید، شما می توانید کلید Esc را برای اعمال نکردن تغییراتتان فشار دهید.

اضافه کردن یک سطر جدید در Query Designer
1- در Query Designer در ستون Plantparts از آخرین سطر (که با آیکون جدید در انتخابگر سطر علامتگذاری شده) کلیک می کنیم.
2- Fruit را تایپ می کنیم. Query Designer سطر را با آیکون Edit علامتگذاری کرده و یک سطر جدید در پایین جدول اضافه می کند.

3- در هر سطر دیگر در جدول کلیک می کنیم. Query Designer یک PlantpartsID را برای سطر جدید تخصیص داده و آن را برای جدول ذخیره می سازد.

راهنمایی: شما نمی توانید یک PlantpartsID را به سطر جدید اضافه کنید زیرا آن به صورت یک ستون موجودیت تغییر داده است. اگر شما آن را انجام دهید Query Designer یک متن Error نشان خواهد داد.

شناخت Query Designer
زمانی که شما Query Designer را با استفاده از دستور Open Table باز می کنید. سطرها در جدول در یک شبکه شبیه به Data Sheet View یک جدول در Access نشان داده می شود که قاب Query Designers Results می باشد. Query Designer سه قاب کلی دارد. قاب Diagram قاب Grid و قاب SQL .
شما صفحه نمایشگر قابهای گوناگون را در Query Designer با استفاده از دکمه های Toolbar کنترل می کنید. شما می توانید قابها را در هر ترکیب نشان دهید. Query Designer از به هنگام سازی هر صفحه نمایش قاب مواظبت خواهد کرد زمانی که شما تغییراتی را برای Query می سازید.


قاب Diagram
دکمه قاب Diagram را در نوار ابزار Query Designer که قاب Diagram را نشان می دهد کلیک می کنیم. قاب Diagram یک نمایشی از Query برای یک نمودار پایگاه داده نشان می دهد. به طور کلی برای همه مزیتها از یک نمایش گرافیکی، قاب Diagram مفید می باشد. برای مشخص کردن جداول و نماهایی که روی هر کدام از Query هایتان پایه ریزی خواهد شد و ارتباطی بین آنها به خوبی ستونهایی که نشان داده شده است.


قاب Grid
دکمه قاب Grid را در نوار ابزار Query Designer که قاب Grid را نشان می دهد کلیک می کنیم. قاب Grid شبیه به Query Designer Grid در Access می باشد. آن یک راه سریع برای تغییر سر ستون از یک ستون Query را فراهم می آورد و دستوراتی را که در هر کدام از سطرها نشان داده خواهد شد را مشخص می کند. انتخاب ملاک مانند را Surname = Jones قرار می دهد.


قاب SQL
دکمه قاب SQL را روی نوار ابزار Query Designer که قاب SQL را نشان می دهد کلیک می کنیم. قاب SQL عبارت Transact-SQL واقعی را که Query را تولید خواهد کرد نشان می دهد. شما می توانید مستقیماً عبارت Transact-SQL را با استفاده از قاب SQL وارد و ویرایش کنید.
راهنمایی: زمانی که شما اولین Transact-SQL را می آموزید، قاب SQL یک ابزار بزرگ آموزش می باشد. Query را با استفاده از قاب Diagram و Grid راه اندازی کرده و Query Designer عبارت Transact-SQL را برای شما خواهد ساخت.

آموزش SQLserver (بخش سوم)

مرتب سازی و انتخاب کردن سطرها
در فصل گذشته ما بیشترین فرمهای مقدماتی از حالت SELECT را مرور کرده و آنها را برای انتخاب ستونهای یک جدول استفاده کردیم. اما بیشتر مواقع شما بازگشت به سطرها در جدول پس زمینه یا نمایش در یک قاعده خاص و فقط بازگشت به یک زیر مجموعه از آنها را خواهید خواست. شرطهای ORDER BY و WHERE در این درس بررسی شده و اجرای آن برای شما فراهم شود.

شرط ORDER BY
شرط The ORDER BY یک ترکیب گزینه ای از یک حالت SELECT می باشد. آن به شما برای مشخص کردن ترتیب در آن سطرهایی که بازگشت خواهند کرد اجازه می دهد. ستونهای چندگانه می توانند مشخص شوند و سطرها می توانند به صورت ترتیب افزایشی یا کاهشی باز گردانده شوند.

مرتب سازی سطرها
ساده ترین فرم در شرط ORDER BY فراهم می سازد یک نام ستون تکی که برای مرتب کردن سطرها که به وسیله Query باز گردانده می شود استفاده خواهد شد.

مرتب کردن سطرها با استفاده از قاب Grid
1- Query Designer را برای جدول Oils به وسیله کلیک راست کردن نام آن در قاب Details باز می کنیم. به زیر منوی جدول Open رفته و همه ستونهای بازگشتی را انتخاب می کنیم. SQL Server ، Query Designer را برای جدول باز می کند.
2- قاب Grid را به وسیله کلیک راست کردن دکمه قاب Grid در نوار ابزار Query Designer نشان می دهیم.

3- فقط ستونهای OilID ، Oil Name ، LatinName را برای نمایش انتخاب می کنیم. Query Designer محتویات قاب Results را که کمرنگ شده برای نشان دادن اینکه با مشخصات Query زیاد مربوط نمی باشد نشان می دهد.

4- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer فقط ستونهای مشخص شده را نشان می دهد.

5- نوع Sort فیلد Oil Name را صعودی قرار می دهیم.

6- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطرهای مرتب شده با Oil Name را نشان می دهد.

مرتب سازی سطرها با استفاده از قاب SQL
1- قاب Grid را پنهان ساخته و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.

2- DESC را بعد از شرط ORDER BY OilName اضافه می کنیم.

راهنمایی: کلید واژه DESCبه SQL Server برگرداندن سطرها به ترتیب نزولی را ابراز می کند. کلید واژه ASC که گزینه ای می باشد سطرها را به ترتیب صعودی برمی گرداند.
3- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نتایح را که با OilName ذخیره شده به صورت نزولی نشان می دهد.

مرتب سازی ستونهای چندگانه
شما می توانید ستونهای چندگانه را در شرط ORDER BY مشخص کنید. زمانی که ستونهای چندگانه مشخص می گردند ترتیب ستونها نتایج SQL Server را که به وسیله اولین ستون و سپس به وسیله دومین ستون و بنابراین چهارمین ستون مرتب خواهد شد مشخص می کند.
راهنمایی: تمرینها در این بخش از جدول OilOdors استفاده می کند که به صورت جدول الحاقی انجام وظیفه می کند که ارتباط چندبه چند بین جدول Oils و Odors را تجزیه و تحلیل می کند. معمولاً شما کلیدهای خارجی ترکیب شده در این جدول را با استفاده از یک ارتباط تجزیه می کردید.

مرتب سازی سطرها با استفاده از قاب Grid
1- پنجره شماره 1 را از منوی Window برای برگشت به درخت Console انتخاب می کنیم.
2- Query Designer را برای جدول Oil Orders به وسیله کلیک راست کردن نام آن در قاب Details باز کرده روی زیر منوی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم. SQL Server ، Query Designer را برای جدول باز می کند.
3- قاب Grid را به وسیله کلیک کردن دکمه قاب Grid روی نوار ابزار Query Designer نشان می دهیم.

4- * را در قاب Grid با نامهای دو فیلد جایگزین می کنیم. SQL Server محتویات از قاب Results را برای نشان دادن اینکه آن با مشخصات Query زیاد در ارتباط نیست کم رنگ می کند.

5- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer فقط ستونهای مشخص شده شما را نشان می دهد.

6- نوع Sort هر دوی ستونها را صعودی قرار می دهیم.

7- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطرهای مرتب شده را با اولین OilID و سپس با OdorID در داخل OilID نشان می دهد.


مرتب کردن سطرها با استفاده از قاب SQL
1- قاب Grid را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.

2- ستونها را در شرط ORDER BY معکوس می کنیم.

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نتایج مرتب شده را با اولین OdorID و سپس با OilID نشان می دهد.

4- پنجره Query Designer را می بندیم.

شرط WHERE
با استفاده از شرط اختیاری WHERE از حالت SELECT شما می توانید یک زیر مجموعه از سطرها که باز گردانده می شوند را مشخص کنید. برای مثال شما ممکن است بخواهید فقط مشتریهایی که بیش از $1000 در 12 ماه قبل خرج کرده اند را ببینید یا اینکه فقط نامهای Oil که با حرف R شروع می شوند را ببینید. شما این ملاکها را با استفاده از شرط WHERE مشخص خواهید کرد.

شرط WHERE BASIC
Operator Meaning
مساویست با = بزرگتر از < کوچکتر از >بزرگتر یا مساویست با =<کوچکتر یا مساویست با => مساوی نیست با <>
کلید برای شرط WHERE یک ملاک انتخابی می باشد که مشخص می کند که کدام سطرها باز خواهند گشت. ساختار پایه ای از یک شرط WHERE ، WHERE می باشد. SQL Server یک حدود کاملی از اپراتورهای مقایسه ای را به طوری که در جدول B-1 نشان داده شده فراهم می سازد.


مشخص شده در شرایط WHERE می تواند یک ارزش دائمی باشد مانند Red"" یا 10000 یا می تواند باشد یک عبارتی که یک ارزش مانند GETDATE. را باز گرداند. به طور شبیه ارزش می تواند دستی ساخته شوند با استفاده از تابعهای Transact-SQL مانند LEFT که یک تعدادی از کاراکترهای مشخص شده از چپ یک رشته را باز می گرداند، ما تمام جزئیات توابع را در درس 24 مرور خواهیم کرد.
مشخص کردن یک شرط WHERE با استفاده از قاب Grid
1- پنجره شماره 2 را از منوی Window برای بازگشت به پنجره Query Designer که ما زودتر در این درس استفاده کرده ایم انتخاب می کنیم.
2- قاب SQL را پنهان کرده و قاب Grid را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer نشان می دهیم.
3- "="Eucalyptus را در سل ملاک سطر OilName از قاب Grid وارد می کنیم.

4- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم، Query Designer فقط یک سطر تنها را نشان می دهد.


مشخص کردن یک شرط WHERE با استفاده از قاب SQL
1- قاب Grid را پنهان ساخته و قاب SQL را به وسیله کلیک کردن دکمه ها در نوار ابزار Query Designer کلیک می کنیم.

2- شرط WHERE را با WHERE (LEFT(Oil Name,1)="R") تغییر می دهیم.

3- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer نامهای Oil را که با "R" شروع می گردد را نشان می دهد.


استفاده کردن از اپراتورهای ویژه
علاوه بر فرمت استاندارد برای یک شرط WHERE از ، SQL Server همچنین سه عملگر را پشتیبانی می کند: LIKE که اجازه می دهد به شما به فراهم ساختن مقدار نامشخص با استفاده از وایلد کارتهای نشان داده شده در جدول 2-13 و BETWEEN که اجازه می دهد به شما مشخص کردن یک محدوده از ارزشها و IN که اجازه می دهد به شما برای مشخص کردن یک مجموعه از مقادیر.
مثال معنی Wildcard
LIKE 'a' که ارتباط می دهد at"" و "as" هر تک کاراکتر -اما نه "and"%'t'%ILKE که ارتباط می دهد "at" و bat"" و "Together" اما نه "Lucky" هر رشته از صفر یا چندین کاراکتر %LIKE '[a-c]at' که ارتباط می دهدCat"" و "bat" اما نه "fat" هر کاراکتر ویژه در داخل یک محدوده یا مجموعه []LIKE '[a-b]at' که ارتباط می دهدBat"" اما نه "Cat"LIKE '[^c]at' که ارتباط می دهد "Bat" و "fat" اما نه "Cat" هر کاراکتر ویژه که در داخل یک محدوده یا مجموعه نمی باشد [^]

مشخص کردن یک شرط WHERE با استفاده از LIKE
1- شرط WHERE را در قاب SQL برای WHERE تغییر می دهیم. )% (Oil Name LIKE 'Rose'

2- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer همه سطرهایی که با Rose شروع می گردد را نشان می دهد.


مشخص کردن یک شرط WHERE با استفاده از BETWEEN
1- شرط WHERE را در قاب SQL باWHERE(LEFT(Oil Name,1)BETWEEN A AND 'C') تغییر می دهیم.

2- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer همه سطرها که با A و B یا C شروع می گردد را نشان می دهد.

راهنمایی: Transact-SQL همچنین عملگرها Not BETWEEN را پشتیبانی می کند که دقیقاً از همان طریق کار می کند. به استثنای اینکه آن شامل یک محدوده ای از مقادیر می باشد. برای مثال Left (Oil Name , 1) Not BETWEEN 'C' And 'E' همه سطرها باز خواهد گرداند به جز آنهایی که Oil Name با C و D یا E شروع می کند.

مشخص کردن یک شرط WHERE با استفاده از IN
1- شرط WHERE را در قاب SQL با WHERE (LEFT (OilName , 1) IN('G','M','V')) تغییر می دهیم.

2- دکمه Run را در نوار ابزار Query Designer برای اجرا Query کلیک می کنیم. Query Designer ، 8 سطر را نشان می دهد.


ترکیب کردن ملاک انتخابی
علاوه بر مشخص کردن یک شرط WHERE با استفاده از عبارت Format شما می توانید همچنین عبارات را با استفاده از عملگر منطقی OR یا AND ترکیب کنید. یک شرط WHERE از فرمت FormatOR سطرهایی که به ملاک مربوط می گردند خواهد بازگرداند، نظر به اینکه یک شرط WHERE از And Format سطرهایی که به هر دو ملاکها مربوط می گردند را باز خواهد گرداند.

مشخص کردن ملاک پیچیده با استفاده از OR
1- شرط WHERE رادرقاب SQL به WHERE (OilName='Rosemary' OR OilName='Sagy) تغییر می دهیم.

2- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer دو سطر را نشان می دهد.

مشخص کردن ملاک پیچیده با استفاده از AND
1- شرط WHERE را در قاب SQL به ) %(Oil Name LIKE 'Rose' WHERE تغییر می دهیم.

2- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer ، 4 سطر را نشان می دهد.

3- شرط WHERE را در قاب SQL به And (OilID<40) ) %(OilName LIKE Rose WHERE تغییر می دهیم.

4- دکمه Run را روی نوار ابزار Query Designer برای اجرای Query کلیک می کنیم. Query Designer سطر Roso Otto را شامل می گردد.

 

آموزش SQLserver (بخش دوم)

خلاصه سازی داده ها

هنگامی که دو جدول در یک پیوند یک به چند سهیم هستند. وسیله محرک Query مقادیری از سطر را از یک طرف برای ارتباط دادن سطرها در طرفهای دیگری تکرار می کند. بعضی مواقع آن دقیقاً چیزی است که شما می خواهید، اما اغلب شما می خواهید تکرار کردن سطرها را از چندین طریق دسته بندی یا خلاصه سازید. در این درس، ما به دو روش برای انجام آن که عبارتند از کلید واژه DISTINCT و شرط GROUP BY نگاه خواهیم کرد.

شناختن SELECT DISTINCT
یکی از اهداف طرح پایگاه داده ارتباطی برداشتن وابستگی داده ها می باشد. اما بیشتر پایگاه داده به طور ضروری مقادیر واقعی در چندین سطر را شامل خواهد شد. یک جدولی که شامل اطلاعات آدرس مشتری می باشد برای مثال احتمالاً کد ایالتی و کشوری برای چندین سطر خواهد داشت که نه اشتباه و نه تکراری می باشد. نظر به اینکه هر کد ایالتی نسبتی از یک مشتری می باشد. به همین نحو یک جدول از چندین جهت از یک ارتباط یک به چند ممکن است هر مقدار کلید خارجی معلوم که چندین بار تکرار شده را داشته باشد. آن برای یک ارتباط یکپارچه از پایگاه داده لازم می باشد. اگر چه این تکرار می تواند بعضی مواقع نتایج Query را نامطلوب سازد. یک جدول مشتری با 1000 سطر با 90 درصد مشتری از کالیفرنیا، Query زیر کد CA را 9000 بار خواهد باز گرداند که اصلاً یک نتیجه مفیدی نمی باشد.
SELECT State From Customer
کلید واژه Distinct در این موقعیت شما را کمک می کند. Distinct که درست بعد از SELECT قرار می گیرد به SQL Server دستور داده که سطرهایی چندگانه در قرارگیری نتایج را حذف نماید. بنابراین Query زیر هر کد ایالتی را فقط یک بار باز می گرداند به طور وضوح لیستی که شما جستجو می کنید.
SELECT DISTINCT State From Customer
راهنمایی: همتای کلید واژه Distinct ، All می باشد که SQL Server را برای بازگرداندن همه سطرها آگاه می سازد خواه آن واحد باشد یا خیر. از موقعی که این یک عملکرد پیش فرض از یک عبارت SELECT می باشد All به طور معمول استفاده نمی گردد. اما شما ممکن تصمیم بگیرید به در برداشتن آن اگر ساختار دستور Query را بیشتر قابل فهم سازید.

استفاده کردن از SELECT DISTINCT
کلید واژه Distinct می تواند در عبارت SQL از Query Distinct یا به وسیله تنظیمات Properties از Query مشخص گردد.

ایجاد کردن Distinct Query با استفاده از قاب دیاگرام
1- Query Designer را برای جدول Oils به وسیله کلیک راست کردن نام جدول در قاب Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنیم.
2- قاب دیاگرام را به وسیله کلیک کردن روی دکمه قاب دیاگرام در نوار ابزار Query Designer نشان می دهیم.
3- دکمه Add Table را کلیک می کنیم. Query Designer کادر محاوره ای Add Table را نشان می دهد.
4- Plantparts را در لیست جدول انتخاب می کنیم و سپس Add را کلیک می کنیم. Query Designer جدول را به Query اضافه می کند.
5- Close را برای بستن کادر محاوره ای کلیک می کنیم.
6- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. قاب SQL ، Query Designer را نشان می دهد.
7- علامت * بعد از کلید واژه SELECT را حذف می کنیم.

8- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم (OK را اگر Query Designer یک متن خطا درباره ساختار دستور عبارت SELECT نشان می دهد کلیک می کنیم). Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنید حالت SQL پیش فرض معمولاً SELECT* می باشد. ستون ویژه در قاب دیاگرام به سبب اینکه آنها به لیست ستون اضافه می شوند انتخاب می گردند. مایکروسافت این را یک ویژگی در نظر می گیرد.
9- در قاب دیاگرام فقط ستون Plantpart را از جدول Plantparts برای نشان دادن انتخاب می کنیم.

10- دکمه Run را برای اجرای مجدد Query کلیک می کنیم. Query Designer هر مقدار Plantpart را چندین بار لیست می کند.

11- در یک ناحیه خالی از قاب دیاگرام کلیک راست کرده و Properties را انتخاب می کنیم. Query Designer کادر محاوره ای Properties را نشان می دهد.

12- گزینه مقادیر Distinct را انتخاب می کنیم.

13- Close را برای بستن کادر محاوره ای کلیک می کنیم.
14- دکمه Run را برای اجرای مجدد Query کلیک می کنیم. Query Designer هر مقدار را فقط یک بار نشان می دهد.

ایجاد کردن یک SELECT DISTINCT با استفاده از قاب SQL
1- قاب دیاگرام را پنهان ساخته و قاب SQL را نشان می دهیم.
2- عبارت SELECT موجود را با متن زیر جایگزین می کنیم.
SELECT DISTINCT Plant Types Plant Type
FROM Oils INNER Join
Plant Types ON Oils Plant Type ID=Plant Types Plant Type ID

3- دکمه Run را برای اجرا مجدد Query کلیک می کنیم. Query Designer مقدار PlantType متمایز که به وسیله جدول Oils بازگشت شده را نشان می دهد.


شناختن GROUP BY
کلید واژه Distinct امر می کند. SQL Server را به بازگرداندن سطرهای واحد نظر به اینکه شرط GROUP BY ، SQL Server را به ترکیب سطرها با مقادیر یکسان در ستون یا ستونهای مشخص شده در شرط در داخل سطر تکی امر می کند.
مهم: هر ستونی که در شرط GROUP BY شامل می باشد باید در خروجی Query شامل گردد.
شرط GROUP BY اغلب با یک aggregate Function استفاده می گردد. یک aggregate Function محاسبات در مجموعه از مقادیر را به انجام می رساند و یک نتیجه تک مقداری را باز می گرداند. رایج ترین گزینه های به هم پیوسته استفاده شده در پرس و جوهایGROUP BY ، MIN می باشد که کوچکترین مقادیر را در مجموعه باز می گرداند. MAX که بزرگترین مقادیر در مجموعه را باز می گرداند و COUNT که تعدادی از مقادیر را در یک مجموعه باز می گرداند.

استفاده کردن از GROUP BY
شرط GROUP BY می تواند مشخص شود با استفاده کردن از هر یک از قابها در Query Designer ، اما قابهای SQL و Grid بیشترین کنترل را فراهم می سازد.

ایجاد کردن یک GROUP BY Query با استفاده از قاب Grid
1- قاب SQL را پنهان ساخته و قاب Grid را نشان می دهیم.

2- ستون OilName را برای Query اضافه می کنیم.

3- دکمه Group By را در نوار ابزار Query Designer کلیک می کنیم. Query Designer یک ستون Group By برای شبکه اضافه می کند و هر دوی مقادیر را برای Group By قرار می دهد.

4- سل Group By را برای تغییر دادن سطر OilName به Count تغییر می دهیم.

5- دکمه Run را برای اجرا مجدد Query کلیک می کنیم. Query Designer تعدادی از Oils را برای هر PlantType نشان می دهد.


ایجاد کردن یک Group By Query با استفاده از قاب SQL
1- قاب شبکه را پنهان ساخته و قاب SQL را نشان می دهیم.

2- عبارت SELECT موجود را با متن زیر جایگزین می کنیم.
SELECT Plant parts Plant part Count (Oils Oil Name) As Number Of Oils
FROM Oils INNER Join
Plant parts ON Oils Plant part ID=Plant parts Plant part ID
GROUP BY Plant parts Plant part

3- دکمه Run را برای اجرای مجدد Query کلیک می کنیم. Query Designer مقدار oils برای هر Plantpart نشان می دهد.

استفاده کردن از شرط HAVING
شرط Having سطرهای بازگردانده شده به وسیله شرط GROUP BY را از همان راهی که یک شرط Where سطرهای بازگردانده شده را به وسیله شرط SELECT محدود می سازد. هر دو شرط Where و Having می تواند در یک عبارت SELECT شامل شود که شرط Where قبل از گروه بندی علمیات و شرط Having بعد از آن به کار برده می شود. ساختار دستور شرط Having همانند شرط Where می باشد به استثنای اینکه شرط Having می تواند شامل یکی از توابعهای به هم پیوسته باشد که در لیست ستونها از شرط SELECT قرار می گیرد. اگر چه شما باید توابع به هم پیوسته را تکرار کنید. برای مثال شرط Having که در حالت زیر استفاده شده صحیح می باشد.
SELECT Plant parts Plant part Count (Oils Oil Name) As Number Of Oils
FROM Oils INNER Join
Plant parts ON Oils Plant part ID=Plant Parts Plant part ID
GROUP BY Plant parts Plant part
HAVING Count (Oils Oil Name)>3
اگر چه شما نمی توانید از اسم مستعار برای تابع Count در شرط Having استفاده کنید. بنابراین شرط Having زیر درست نخواهد بود.
HAVING Number Of Oils>3

ایجاد کردن یک Query با استفاده از HAVING در قاب Grid
1- قاب SQL را پنهان ساخته و قاب Grid را نمایش می دهیم.

2- 5Add> را برای سل مورد نظر از ستون oil Name قرار می دهیم.

3- دکمه Run در نوار ابزار Query Designer را برای اجرای مجدد Query کلیک می کنیم.


ایجاد کردن یک Query با استفاده از HAVING در قاب SQL
1- قاب Grid را پنهان ساخته و قاب SQL را نشان می دهیم.

2- شرط Having را برای HAVING (Count (Oils Oil Name)<5) تغییر می دهیم.

3- دکمه Run در نوار ابزار Query Designer را برای اجرای مجدد Query کلیک می کنیم. Query Designer فقط آن Plantparts که Oils اشتراکی کمتر از 5 دارد را نشان می دهد.