تبلیغات
برنامه نویسی بانک اطلاعاتی وِیژوال نت همه چی - آموزش SQL Server (قسمت اول)
برنامه نویسی بانک اطلاعاتی وِیژوال نت همه چی
خدایان برنامه نویسی آمده اند بیایید و فیض ببرید

لینکدونی

آرشیو موضوعی

آرشیو

← آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

آموزش SQL Server (قسمت اول)



آموزش SQL Server (قسمت اول)

مفاهیم ابتدائی

مقدمه :‌


كاربرد روز افزون بانك اطلاعاتی SQL مرا بر آن داشت تا مطالبی هر چند كوتاه جهت خوانندگان محترم سایت تهیه نماییم. قبلا از هر چیز لازم به ذكر است كه مطالب ذیل در حد آشنایی بوده و دوستا برای دستیابی به تكنیكهای بیشتر می بایست از كتابهای مرجع و Book online خود SQL Server استفاده نمایند. در مطالب زیر كه سلسله وار مباحث SQL Server را مرور خواهیم كرد , سعی شده تا ابتدا مطالب مقدماتی جهت آشنایی آورده شود و سپس اگر عمری باقی بود به مطالب پیشرفته آن بپردازیم. همچنین برای یادآوری خدمت دوستان ابتدا مرور سریعی بر چند دستور SQL كه كاربرد بیشتری دارند خواهیم پرداخت و سپس به SQL Server و مطالب آن خواهیم پرداخت . مطالب زیر اكثرا از كتاب Microsoft SQL Server 7.0 Database Implementation Training انتخاب گردیده است . این كتاب به همراه CD‌آموزش آن به عنوان یك مرجع برای امتحانات مایكروسافت استفاده می‌شود.


جداول بكار رفته نیز همگی در SQL Server 7.0 در Database Northwind موجود هستند.


دستور Select


این دستور كه دستوری مستقل نیست و حتما باید با اجزایی بكار رود جهت ساخت پرس و جو بر روی بانك اطلاعاتی بكار می‌رود و ركوردهایی كه با شرایط این دستور همخوان باشد به عنوان نتیجه پرس و جو برمی‌گرداند . چهار كلمه كلیدی وجود دارند كه بخشهای ارزشمند این دستور را تشكیل می‌دهند :


1- select


2- from


3- where


4- order by



شكل كلی دستور :


Select [*|distinct column1, column2,…]


From table[,table2,…]


Where شرط


Order by نام فیلد یا شماره فیلد


مثال :


Select * from customers


این دستور تمام ركوردهای جدول customers را برمی‌گرداند.


كه نتیجه 91 سطر از اطلاعات این جدول خواهد بود


حال اگر شرط Country ='uk' اضافه كنیم ، فقط اطلاعات مشتریان انگلیس جواب خواهند بود كه به 7 سطر تقلیل می‌یابد.



select * from customers


where Country ='uk'


حال


select City,Country from customers


order by city


فقط ستونهای نام شهر (city) و نام كشور (Country) را بر گردانده و بر اساس نام شهر مرتب میكند. دستور بالا با دستور پایین هردو یك جواب را میدهند :


select City,Country from customers


order by 1


كه 91 سطر بازگردانده خواهد شد . در نتیجه پرس و جو تعدادی سطر تكراری وجود دارد مانند شهر London كه اگر از كلمه Distinct‌ در Select استفاده كنیم این سطرهای تكراری حذف خواهد شد .


select distinct City,Country from customers


order by 1


و جواب 69 سطر خواهد بود.


استفاده از توابع در Select


1- Count : تعداد سطرهای بازگردانده شده توسط select را میشمارد.


Select Count(*) from Customers


where Country ='uk'


در اصل تعداد مشتریانی را میشمارد كه در كشور انگلیس هستند. كه عدد 7 جواب است.


2- Sum : مجموع یك فیلد عددی را برمی‌گرداند.


Select sum(Quantity) from [Order Details]


where productid = 11


مجموع فیلد Quantity را برای فیلدهایی كه شماره محصول آنها ( Productid) برابر 11 است را محاسبه میكند


نكته 1 : در دستور select می‌توان از اسم مستعار استفاده كرد ، یعنی نام جدیدی را برای یك ستون در نظر گرفت به عنوان مثال select قبل را به شكل زیر بكار برد :


Select sum(Quantity) as Sum_QTY


from [Order Details]


where productid = 11


كه Sum_QTY یك اسم مستعار برای مجموع است. استفاده از كلمه كلیدیas ‌اختیاری است.


نكته 2 : در دستور select هرگاه اسم فیلدی اسم خاص باشد و یا فاصله بین اسم باشد مثل Order Details كه فاصله بین اسم جدول است حتماُ از علامت براكت [] میبایست استفاده كرد.


نكته 3 : استفاده از group by :


هنگامی كه از توابع count ‌ و Sum به همراه یك فیلد دیگر در دستور select استفاده می‌شود از group by استفاده می‌كنیم .


به عنوان مثال دستور زیر جمع مقادیر فیلد Quantity را برای هر شماره محصول محاسبه میكند .


Select productid, sum(Quantity) as sum_qty


from [Order Details]


group by productid


كه نتیجه مانند زیر خواهد بود :


productid sum_qty


----------- -----------


61 603


3 328


32 297


6 301


41 981


64 740


9 95


12 344


در صورتیكه دستور ordr by 1 بعد از group by استفاده كنیم نتیجه بر اساس كد محصول مرتب خواهد شد.


نكته 4 : دستور where می تواند خود شامل یك دستور select باشد :


select * from Products


where ProductID in


( select distinct ProductID from [order details] where Quantity >70)


order by ProductID


تنها نكته ای كه می بایست توجه كرد این است كه نام فیلدی كه در شرط آورده می شود حتما در دستور select آورده شود, به عبارت دیگر select درون شرط تنها یك ستون را می بایست برگرداند .


تمرین : با فرض اینكه دو جدول Products و order details دارای ستون (فیلد) یكسان ProductID هستند , یك دستور Select بنویسید كه تمام فیلدهایی از Products را نشان دهد كه فیلد ProductID آن با ProductID جدول order details یكی باشد.؟


حل :


Select pr.*


From Products as pr , [order details] as od


Where pr. ProductID = od. ProductID



قابل به ذكر است كه بیش از 90% از كارهایی كه ما برروی جداول انجام می دهیم با select و تركیبات آن انجام می شود. لذا بدست آوردن تبحر در نوشتن select ها می تواند شما را در تهیه برنامه ها یاری كند.



3- Min,max : بیشترین و كمترین مقدار فیلد را در بانك اطلاعاتی بدست می دهد.


Select min (Quantity)


from [Order Details]




4- Top n : تعداد n سطر اول بانك اطلاعاتی را برمی گرداند.


Select top 5 *


from [Order Details]


5 سطر اول بانك را برمی گرداند.



نكته 3 : در حالت بالا اگر مقدار سطر 5 و 6 یكی باشد فقط سطر 5 جواب خواهد بود برای گریز از این حالت از شكل زیر در این دستور استفاده میكنیم :


Select top n with ties *


From table


5- Into


Select * from table1 into table2


اطلاعات table1 را به table2 كپی میكند. البته table2 باید از قبل وجود نداشته باشد.


این دستور خود table2 را میسازد.



دستور select قویترین و كاربردی ترین دستور در sql است كه خود ماهها نیازمند تمرین و آموزش است . برای اطلاعات بیشتر به books online خود Sql Server مراجع كنید.


دستور Delete


برای حذف اطلاعات از یك بانك اطلاعاتی استفاده میشود.


شكل كلی دستور :


Delete table1


Where شرط


مثال :


فرض كنید جدول authors موجود باشد و فیلد كلید آن au_id باشد. برای حذف 10 سطر اول این جدول از دستور زیر استفاده می كنیم :



DELETE authors


FROM (SELECT TOP 10 * FROM authors) AS t1


WHERE authors.au_id = t1.au_id


دستور insert


برای اضافه كردن اطلاعات به یك جدول از این دستور استفاده میشود.


Insert into table1 (f1,f2,…)


Values (v1,v2,…)


كه f1,f2 نام فیلدها و v1,v2 مقادیر آنها میباشد.


البته میتوانید مقادیر را نتیجه یك select قرار داد.


مثال :


Insert into table1


Select top 10


From table2


مقدار 10 سطر اول را از table2 را در table1 درج میكند. البته باید تعداد فیلدها یكی باشد. در غیر اینصورت از values استفاده كنید.

فقط بگین خوشتون اومده یا نه؟؟؟

درباره وبلاگ

مدیر وبلاگ : دانیال

آخرین پست ها

جستجو

نویسندگان