تعريف شبكه فن‌آوري اطلاعات به عنوان صفحه اصلي

جمعه 12 شهريور 1389
تعداد كاربران آنلاين: 48

فهرست

  اخبار
  مقالات
  مصاحبه‌ها
  نكته‌ها و ترفندها
  قوانين و مقررات
  دريافت نرم‌افزار
  آموزش
  نمايشگاه ‌و همايش‌
  بازيهاي رايانه‌اي
  گزارش
  تبـليغــات
حضرت محمد (ص)

عمل اندك همراه با دانش، بهتر از عمل بسیار همراه با نادانی است.




خبرخواني از شبکه
نقد و بررسی بازی Zoo Tycoon 2            گوگل جستجوي اينترنت با استفاده از صدا را ممكن مي‌كند            نحوه چک کردن ایمیل های yahoo به وسیله outlook            خلق Animation هاي متني گرافيكي با كيفيت توسط Xara3D 6.0 !            صنوبر لرزان سونی اریکسون بهار می‌آید            "آي پد " محبوب هكرها مي‌شود            استقبال گوگل از سال جدید با تلفن هوشمند            alcatel-lucent برنده مناقصه 3g آفریقای غربی            جدیدترین گوشی موتورلا            تلفنبانک بانک ملی ایران، 100 گردش آخر حساب سیبا را ارائه م            برقراری ارتباط و امنیت درSQL Server            محبوب ترین سیستم عامل موبایلی جهان ، متن باز شد            هارد اکسترنال 4 ترابایتی معرفی شد            انتقال اطلاعات با Replication در SQL Server            لاستيك هوشمند احتمال پنچري خودرو را اعلام مي‌كند            توصيه هاي امنيتي براي همه کاربران            ورود لپ‌تاپ به هواپيما ممنوع مي‌شود            عينك آفتابي لوكس با حافظه فلش مخفي عرضه شد            نصب ‌windows XP در كنار‌ ‌Mac OS X با استفاده از Boot camp‌            راه‌‏اندازي فروش اينترنتي بليت قطار            

آموزش SQL Server (قسمت اول)
دوشنبه,22 آبان 1383 (تعداد دفعات خوانده شده:53678)



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

مقدمه :‌

كاربرد روز افزون بانك اطلاعاتي 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 استفاده كنيد.

 

نسخه قابل چاپ              برگشت

عناوين مرتبط
1- آموزش SQLserver (بخش چهارم) چهارشنبه,13 آذر 1384
2- آموزش SQLserver (بخش هشتم) سه شنبه,17 بهمن 1384
3- آموزش SQLserver (بخش نهم) پنج شنبه,20 بهمن 1384
4- آموزش SQLserver (بخش دهم) یک شنبه,10 اسفند 1384
5- آموزش SQL Server (قسمت سوم) سه شنبه,30 آبان 1383
6- آموزش SQLserver (بخش هفتم) دوشنبه,9 بهمن 1384
7- آموزش SQLserver (بخش سوم) چهارشنبه,6 آذر 1384
8- آموزش SQLserver (بخش یازدهم) جمعه,6 خرداد 1385
9- آموزش SQLserver (بخش دوم) چهارشنبه,29 آبان 1384
10- آموزش SQLserver (بخش پنجم) یک شنبه,17 آذر 1384
11- آموزش SQLserver (بخش ششم) جمعه,14 دي 1384
12- آموزش SQL Server (قسمت چهارم) سه شنبه,7 آذر 1383
13- آموزش SQLserver (بخش اول) چهارشنبه,22 آبان 1384
14- آموزش SQL Server (قسمت دوم) جمعه,25 آبان 1383



نظرات كاربران
مبين - جمعه,25 آبان 1383
mersy

mohammad219 - شنبه,2 خرداد 1384
خوب بود اما من یه سوال دارم اونم اینه که تا اونجایی که میدونم وقتی از distinct استفاده کنیم تمام فیلدها را مورد مقایسه قرار میدهد حالا اگه بخوام از یه جدول چند فیلد رو بگیرم و فقط تکراری نبودن یکی از آنها رو چک کنم جیکار کنم ممنون میشم اگه راهنمایی کنید




با قراردادن كد ذيل مي‌توانيد از سيستم نمايشگار اخبار ما بصورت رايگان در سايت/وبلاگ خود استفاده كنيد
 

معرفي شبكه فن آوري اطلاعات ايران به يك دوست

ايميل شما:
ايميل دوستتان:

تبـليغــات

تبليغات داخلي ...


حاميان ما ...


نقل اخبار/اطلاعات ساير سايتها/پايگاه‌ها لزوما به معناي تائيد آنها نيست، بلكه مسئوليت تمامي مطالب ارسالي به عهده پايگاه‌هاي مربوطه مي‌باشد
نقل مطالب سايت با ذکر منبع (www.IRITN.com) و نام نويسنده مجاز است.
All rights reserved. Copyright 2003-2010 by KEYANA IT Co.  Computed in 0.12 seconds
(Best Viewed With IE 6.0 or higher (1024x768