چند مثال از SELECT در SQL Server
در این مقاله آموزشی به بررسی چند مثال از دستور select در پایگاه داده SQL Server می پردازیم. مقداری توضیح مختصر هم در مورد مثالها برای دوستانی که در این زمینه علاقه مند هستند نیز داده می شود.
SELECT * FROM tblCustomer
در این مثال تمامی فیلدهای جدول TblCustomer از پایگاه داده واکشی و نمایش داده می شوند. استفاده از * در حقیقت به موتور پایگاه داده اعلام می کند که تمامی فیلدهای جدول واکشی شوند.
! نکته مهم: استفاده از * کمی خطرناک است (البته نه به اندازه حذف و ویرایش) ولی ممکن است تعداد رکوردها و ساختار و اندازه رکوردها بالا یاشد و موجب کندی کار برای سایر کاربران پایگاه داده شود.
SELECT
firstName, lastName, shippingAddress
FROM
tbCustomer
WHERE
customerID = 1001
در این مثال فیلدهای firstName, lastName, shippingAddress از جدول tbCustomer با شرط اینکه customerID برابر با 1001 باشد واکشی می شوند و در صورتی که رکوردی با این شرایط موجود باشد نمایش داده می شود.
SELECT TOP 1000 [CompanyID]
,[CsName]
,[EconomicCode]
,[RegisterNumber]
,[CompeleteAddress]
,[PostalCode]
,[PhoneNumbers]
,[FoxNumbers]
,[WesiteEmail]
FROM [TestDB].[dbo].[tblCustomers]
در مثال فوق اعداد اولین 1000 رکورد از فیلدهای نام برده شده به خاطر استفاده از TOP 1000 واکشی و در صورت وجود نمایش داده می شوند. عبارت TestDB نام فایل پایگاه داده و عبارت dbo نام اسکمای پیشفرض تعریف شده برای پایگاه داده و tblCustomers هم نام جدول می باشد.
SELECT [CompanyID]
,[CsName]
FROM [TstDB].[dbo].[tblCustomers] WHERE CsName LIKE N'%پتر%'
در دستور فوق از اپرتور LIKE برای جستجوی متنی استفاده کرده ایم. استفاده از LIKE هزینه بالاسری زیادی برای SERVER در زمان جیتجو در رموردهای تعداد بالا در بر دارد. علت آن هم این است که LIKE رکورد ها را تک تک اسکن می نماید. ضمنا ممکن است موجب کندی ارسال و دریافت برای سایر کاربران شود.
راه حلهایی برای جستجوی متنی دقیقتر و سریعتر از LIKE وجود دارد که در آینده به بررسی آنها خواهیم پرداخت. استفاده از % در ابتدا و انتهای رشته باعث می شود که رشته مورد نظر در هر جایی از رکورد موجود باشد نمایش داده شود. استفاده از N در ابتدای رشته جستجو به موتور جستجو می فهماند که جستجو در عبارتهای یونیکد انجام خواهد شد.