آشنایی با دستورات پرکاربرد در SQLserver

1396/3/26 فریبا جهاندیده 1663

sqlserver

آشنایی با عملگرهای Not in ,IN:

از عملگر  IN برای  اطلاع از وجود مقدار در جدول استفاده میکنیم و از اپراتور Not In برای اطلاع از عدم وجود داده  در جدول با استفاده از شرط where  بهره می بریم.

select * from customer where code in (25,30)

در مثال بالا به دنبال مشتریانی با کد 30 و 25 میگردیم.
که حاصل بصورت جدول زیر است

sqlserver-ni-to-n

select * from customer where code not in  (25,30)


 در این کد تمامی رکوردهایی را واکشی میکنیم که در آن کد 25 و 30 وجود ندارد

sqlserver-query

نمایش فیلدها:

برای اینکه تعداد خاصی از فیلد ها را خروجی بگیریم به مثال زسر توجه فرمایید

select name,code,Street from customer

sqlserver-query-table

انتخاب فیلد خاص با نمایش نام دلخواه:

select code as 'کد',name  as 'نام مشتری',Street  as 'آدرس' from customer

sqlserver-select-as-table

دستورDISTINCT

از این دستور برای حذف رکوردهای تکراری استفاده میشود.رکوردهایی که ستون و ردیف یکسان دارند

  
دستور SELECT TOP

 در دیتابسی با رکوردهای بالا این دستور بسیار مفید است و واکشی رکوردها را سریعتر میکند.
 

select top 100 * from customer

صد رکورد آخر داده های دیتابیس را نمایش میدهد

sqlserver-top-query

SubQery  چیست؟

Query  که در یک Query  دیگر باشد.با یک مثال برایتان توضیح میدهم.فرض کنید اطلاعات مشتریان را دارید و میخواهید مسیرهایی که به آن مشتری مربوط است را بدست بیاورید. این کار از طریق SubQuery  امکان پذیر است.

select * from customer where pathcode in (select code from CustomerPaths)

در این مثال SubQuery  ابتدا کد مسیر در Table CustomerPaths بدست می آورد سپس Query  اصلی اجرا میشود.تمام مسیر ها (pathcode) در select  اصلی اجرا میشود . دراین دستور مشتریانی را بدست می آوریم که مقدارش در SubQuery  موجود باشد.

sqlserver-SubQery

عملگر Exists:

یکی از راه های آسان که بتوانیم چک کنیم آیا Sub Query  دیتا برمیگرداند یا خیر استفاده از دستور Exists   است
 
بطور مثال میخواهیم چک کنیم مشتریان2 در مشتریان 1 وجود دارند یا خیر

select code,name,Street from customer1
where  Exists (select * from [dbo].customer2)

دستور order by:

مرتب سازی  ستون  ها با این دستور امکان پذیر است..برای مثال وقتی ستون 1 را مرتب میکنید ستون دوم هم نسبت به ستون اول مرتب میشود.
بطور مثال طبق دستور ذیل

select name,code,street from customer order by  name DESC

sqlserver-orderby-query

در این دستور نام مشتری از بزرگ به کوچک سورت شد و ستون های دیگر به همان نسبت  سورت میشود

 در این دستور نام مشتری ازکوچک به بزرگ  سورت شود  و ستون های دیگر به همان نسبت  سورت میشود.

select name,code,street from customer order by  name ASC

دستور group by:

زمانی استفاده میشود که مجموع یک ستون را میخواهیم بدست آوریم در این صورت  است که گروه بندی میکنیم
به مثال زیر توجه کنید.

select count(code) as code ,name , street
from Customer
group by Code,Name,Street

sqlserver-groupby-query

در مثال مجموع کد هر مشتری را بصورت گروه بندی شده بر اساس فیلد نام مشتری به خروجی داده می شود

دستور Having:

هنگامی که از توابع استفاده میکنیم بطور مثال تابع Count  بنابراین نمیتوانیم از شرط Where  استفاده کنیم.پس از دستور Having  استفاده میکنیم.
در مثال زیر میخواهیم مجموع کد های مشتریانی که دوبار تکرار شدن را بیابیم .

 

select count(code) as code ,name , street
from Customer
group by Code,Name,Street
having count(code)>1


آشنایی با دستور SELECT INTO

این دستور یک Insert  است اما در قالب یکه جدول موقت ..به این معنی که میتوان اطلاعات  واقعی یک جدول را در یک جدول موقت کپی کرد.
نکته-Constraint  های جدول اصلی به جدول موقت منتقل نمیشود و فقط یک نمونه از کپی جدول اصلی ایجاد میشود.

 

select * into CustomerExample From Customer

 

کلمات کلیدی