آشنایی با دستورات پرکاربرد در SQLserver
آشنایی با عملگرهای Not in ,IN:
از عملگر IN برای اطلاع از وجود مقدار در جدول استفاده میکنیم و از اپراتور Not In برای اطلاع از عدم وجود داده در جدول با استفاده از شرط where بهره می بریم.
select * from customer where code in (25,30)
در مثال بالا به دنبال مشتریانی با کد 30 و 25 میگردیم.
که حاصل بصورت جدول زیر است
select * from customer where code not in (25,30)
در این کد تمامی رکوردهایی را واکشی میکنیم که در آن کد 25 و 30 وجود ندارد
نمایش فیلدها:
برای اینکه تعداد خاصی از فیلد ها را خروجی بگیریم به مثال زسر توجه فرمایید
select name,code,Street from customer
انتخاب فیلد خاص با نمایش نام دلخواه
select code as 'کد',name as 'نام مشتری',Street as 'آدرس' from customer
دستورDISTINCT
از این دستور برای حذف رکوردهای تکراری استفاده میشود.رکوردهایی که ستون و ردیف یکسان دارند
دستور SELECT TOP
در دیتابسی با رکوردهای بالا این دستور بسیار مفید است و واکشی رکوردها را سریعتر میکند.
select top 100 * from customer
صد رکورد آخر داده های دیتابیس را نمایش میدهد
SubQery چیست؟
Query که در یک Query دیگر باشد.با یک مثال برایتان توضیح میدهم.فرض کنید اطلاعات مشتریان را دارید و میخواهید مسیرهایی که به آن مشتری مربوط است را بدست بیاورید. این کار از طریق SubQuery امکان پذیر است.
select * from customer where pathcode in (select code from CustomerPaths)
در این مثال SubQuery ابتدا کد مسیر در Table CustomerPaths بدست می آورد سپس Query اصلی اجرا میشود.تمام مسیر ها (pathcode) در select اصلی اجرا میشود . دراین دستور مشتریانی را بدست می آوریم که مقدارش در SubQuery موجود باشد.
عملگر 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
در این دستور نام مشتری از بزرگ به کوچک سورت شد و ستون های دیگر به همان نسبت سورت میشود
در این دستور نام مشتری ازکوچک به بزرگ سورت شود و ستون های دیگر به همان نسبت سورت میشود.
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
در مثال مجموع کد هر مشتری را بصورت گروه بندی شده بر اساس فیلد نام مشتری به خروجی داده می شود
دستور 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
نظرات کاربران