T-SQL و کوئری نویسی
در این درس سایر دستورات و توابع T-SQL را بررسی میکنیم.
ORDER BY :
ORDER BY به ما کمک میکند که نتایجمان را بر اساس یک یا چند ستون به صورت صعودی یا نزولی مرتب سازی کنیم که پیشفرض حالت صعودی است.
ORDER BY آخرین کامندی است که در کوئری باید بنویسیم وگرنه کوئری دچار ارور میشود.
توجه کنید که ORDER BY طبیعتا تاثیری روی تعداد رکورد های خروجی ندارد.
SELECT * FROM DimProduct ORDER BY ListPrice
اگر بخواهیم به صورت نزولی مرتب سازی کنیم باید از کلید واژه DESC استفاده کنیم.
SELECT * FROM DimProduct ORDER BY ListPrice DESC
عملیات ORDER BY و کلا فرآیند Sorting ، پر هزینه و سنگین است و در نتیجه این کامند را فقط در مواقع نیاز و اضطرار استفاده کنید.
دستور INSERT INTO
این دستور به ما در درج اطلاعات کمک میکند.
روش اول برای انجام این کار به شکل زیر است :
توجه کنید که دیتا تایپ مقداری که insert میکنید باید دیتا تایپ ستون نظیرش همخوانی داشته باشد.
شما میتوانید هنگام Insert ، فقط نام ستون هایی که میخواهید به آنها مقدار بدهید را ذکر کنید ، به شرطی که سایر ستون هایی که اسمشان نیامده و قرار نیست مقداری بگیرند ، ویژگی Allow Null آنها تیک خورده باشد و اجازه دریافت مقادیر Null را داشته باشند یا Default value داشته باشند.
در Insert Into ، مقدار دهی به ستونی که Identity هست ، وظیفه خود SQL هست و اگر یوزر اقدام به این کار کند ، با ارور مواجه میشود.
ISNULL
برای بازیابی مقادیر Null ، از عملگر ها نمیتوان استفاده کرد و باید از دستور ISNULL استفاده کنیم.
دستور UPDATE:
آپدیت به ما اجازه میدهد مقدار رکوردهای یک جدول را بروزرسانی کنیم و تغییر دهیم و دستور خطرناکی است.
نحوه نوشتار کامند آپدیت ، به صورت زیر است :
نوشتن UPDATE بدون کامند WHERE باعث تغییر تمامی دیتا های موجود در جدول میشود در نتیجه هنگام نوشتن کامند UPDATE یا DELETE ، استفاده از WHERE را در نظر داشته باشید.
دستور DELETE رکورد برای ما پاک میکند به همین دلیل امکان استفاده از نام ستون در این کامند نیست.
دستور TUNCATE TABLE نیز همانند DELETE رکورد ها را از جدول حذف میکند. اما تفاوت این دو چیست؟ (سوال مصاحبه!)
دستور DELETE در فایل LDF ، لاگ ثبت میکند ولی TRUNCATE اینگونه نیست.
به همین دلیل delete نسبت به truncate table سرعت کمتری دارد ولی در عوض در صورت نیاز ، این امکان را به ادمین دیتابیس میدهد تا در صورت نیاز ، اطلاعات حذف شده را بازیابی کند اما از طرفی باعث حجم گرفتن فایل LDF نیز میشود.