ورود

نسخه کامل مشاهده نسخه کامل : آموزش SQL Server 2000



bad_boy_2007
26-04-2007, 21:52
میخوام یه سری مقاله آموزشی SQL Server بزارم کلیه مطالب این بخش از وبلاگ [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] برگرفته شده که مطالبی با منابع دیگر لینک منبع اصلی قید شده .

bad_boy_2007
26-04-2007, 21:54
میخواهیم درباره جملات پایه ای زبان Transact-SQL (یا T-SQL) که گونه ای از زبان ساخت یافته پرس و جو یا SQL است ،توضیحاتی بدهیم :


جملات اصلی زبان SQL عبارتند از :


1- SELECT

2- INSERT

3- UPDATE

4- DELETE


این چهار جمله در واقع جملات اصلی T_SQL هستد ، البته SQL دستورات دیگری هم دارد ولی این چهار جمله پایه های اساسی زبان کار با داده ها یا DML میباشند .


T-SQL مخصوص SQL Server میباشد اما جملات آن با استاندارد ANSI SQL -92 سازگار میباشد با این تفاوت که شرکت مایکروسافت یک سری امکانات برای کارایی بهتر به آن افزوده است ، لازم به ذکر است که اغلب دستوراتی که در این وبلاگ جهت آموزش نحوه کار با SQL Server ارائه میشود قابل انتقال به بانکهای اطلاعاتی دیگر از قبیل DB2 ، Oracle ، Informix و Cybase میباشد .


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

bad_boy_2007
26-04-2007, 22:05
این مطلب عینا از این سایت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) برگرفته شده و جهت آموزش نصب SQL2000 ارائه شده :

نصب SqlServer 2000 نسبتا ساده و بی دردسر است. Setup را اجرا کنید (اگر Autorun بصورت خودکار اجرا نشد). (توجه کنید که با یکی از Account های Administrator باید Login شده باشید).

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

با انتخاب گزینه اول که SQL Server Components است این پنجره نمایش داده خواهد شد :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در مرحله بعد باید نوع نصب را انتخاب نمایید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

گزینه Remote Computer برای نصب بر روی یک سیستم که در دسترس نیست (مثلاً سرور سایت شما در جایی خارج از کشور که تنها IP آن و یک Login در اختیار شما قرار دارد) مورد استفاده قرار می گیرد. گزینه ای که احتمالاً شما همیشه از آن استفاده خواهید کرد، همان گزینه اول یا Local Computer خواهد بود.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در این کادر هم گزینه اول را انتخاب می کنید تا Sql Server بر روی سیستم نصب شود.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

وارد کردن نام و نام شرکت و خواندن مقررات استفاده از Sql Server یا همان software License Agreement که بخصوص در ایران به شدت و با دقت خواندهمی شود، کارهای بعدی هستند که انجام می دهید. بنا به فرض محال اگر Sql Server را خریده باشید (نه CD آن را به قیمت یک تا سه هزار تومان، بلکه اصل نرم افزار به قیمت 400-500 هزار تومان) یک شماره سریال 25 کاراکتری دارید که می توانید آن را وارد نمایید (فرم خاصی برای آن نمایش داده می شود).

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در کادر فوق نیز گزینه وسط را انتخاب کنید. در صورتیکه یک نرم افزار نوشته اید، بر روی کامپیوتر Server نصب را با گزینه وسط ادامه دهید و برای دیگر کامپیوترها با گزینه اوئل یا Client Tools Only.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در این مرحله نام سرور (نام نمونه سرور را که Sql Server با آن شناخته می شود) را باید وارد کنید. می توانید همان گزینه Default را بگذارید باشد و یا اینکه یک نام دلخواه اختصاص دهید.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در این مرحله هم که کاملاً مشخص است : انتخاب چگونگی نصب ار نظر نوع و تعداد Component ها که توصیه من Typical است و در صورت آشنایی شما با Sql Server می توانید Custom را نیز انتخاب کنید.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

این مرحله کاملا مهم است. شما باید تصمیم بگیرید که سطح امنیتی دسترسی به سیستم چگونه باشد. در حالت Windows Authentication Mode تمام User های تعریف شده در Windows NT امکان دسترسی به بانک ها را خواهد (با توجه به Permission های داده شده) اما در حالت Mixed Mode علاوه بر اینکه باید جزو کاربران NT باشند باید User Name و Password خاص SQL Server را نیز داشته باشند. روش دوم به نظر ایمن تر است اما دردسرهای آن هم بیشتر است. بسته به امنیت محیطی که شبکه در آن پیاده سازی شده است می توانید یکی از دو نوع فوق را برگزینید.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

آخرین قسمت نصب نزدیک است! پس از نصب یک کادر دیگر نیز نمایش داده می شود که کافی است Finish کنید.

پس از نصب Sql Server باید سرویسهای مربوطه را اجرا کنید. دو راه برای این کار وجود دارد. یکی اجرای سرویس بصورت دستی و دیگری تنظیم آن برای شروع خودکار سرویس هنگام شروع کار ویندوز. شروع دستی Sql Server به این صورت امکان پذیر است :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در صورت لزوم مدیر خدمات SQL Server را Start کنید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

با اجرای SQL Server Service Manager آیکون آن کنار ساعت روی TaskBar به این صورت نمایش داده می شود :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

برای متوقف کردن Service Manager کافی است روی کلید Stop کلیک کنید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

یک پیام اخطار نمایش داده خواهد شد که با کلیک بر روی YES مدیر سرویس SQL SERVER متوقف خواهد شد.


چگونه مدیر خدمات SQL SERVER را بصورتی تنظیم کنیم که بشکل خودکار شروع به سرویس دادن کند؟

برای انجام این کار به Control Panel ----> Administrative Tools بروید و پنجره Services را باز کنید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

و بعد از سرویسهای درحال اجرا، سرویس MSSQLSERVER را پیدا کنید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اگر در ستون Sturtup Type عبارت Automatic وجود نداشت با کلیک راست بر روی آن منو نمایش داده می شود. در این منو، با انتخاب Properties پنجره جدیدی به این صورت نمایش داده می شود :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

با انتخاب Automatic و بعد Apply یا OK کردن، SQL Server Service Manager از این به بعد با Start شدن (روشن یا Restart شدن سیستم) شروع به کار می کند.

این مطلب عینا از این سایت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) برگرفته شده

bad_boy_2007
26-04-2007, 22:11
دستورات sql به دو دسته DML و DDL تقسیم میشوند در این بخش به شرح دستورات DML میپردازیم در مطالب بعدی به دستورات DDL خواهیم پرداخت .
دستورات DML بطور کلی دستورات انجام عملیات بر روی داده ها ، حذف ، اضافه و ویرایش داده ها را بر عهده دارد .
دستورات DDL شامل دستورات ایجاد دیتابیس ، تعریف جداول ، ایندکسها ، فیلدها و . . . میباشد .

bad_boy_2007
26-04-2007, 22:14
آشنایی با این دستور به منزله آشنایی با بخش عمده ای از زبان SQL میباشد ، در ذیل مختصری در مورد نحوه استفاده از این دستور میپردازیم :




SELECT <فهرست ستونها>


{FROM <جدول/جدولهای مبداء>}


{WHERE <شرط انتخاب>}


{GROUP BY {< استفاده میکنند SELECT نام ستونها یا عباراتی که از ستونهای موجود در فهرست


{HAVING <GROUP BY شرطهای انتخاب بر اساس نتایج >}


{ORDER BY <فهرست ستونها>}


{FOR XML {RAM | AUTO | EXPLICIT} {,XMLDATA} {,ELEMENTS}


{,BINARY base 64}
SELECT در اینجا به مفهوم فعل است و مشخص میکند که میخواهیم اطلاعاتی را بخوانیم . فهرست ستونها مشخص میکند که قصد خواندن کدام ستونها را از بانک داریم در صورتی که در این فهرست * قرار دهیم کلیه ستونهای جدول نمایش داده میشود .

با استفاده از کلمه FROM مشخص میکنیم که از کدام جدول یا جداول این ستونها باید انتخاب شوند .
با استفاده از کلمهWHERE مشخص میکنیم که رکوردهایی که انتخاب میشوند چه شرایطی باید داشته باشند .
HAVING در عباراتی که شامل GROUP BY میباشد استفاده میشود و مانند WHERE در دستور SELECT عمل میکند .
GROUP BY از این عبارت برای جمع بندی (گروهبندی) اطلاعات استفاده میشود .
ORDER BY با استفاده از این دستور مشخص میکنیم که اطلاعات درخاستی بر اساس کدام فیلد(ها) مرتب شوند ، با استفاده از کلمه کلیدی DESC در انتهای لیست فیلدها میتوان مشخص کرد که رکوردها به ترتیب نزولی (Descending) مرتب شود .
FOR XML ؛ امکان جدیدی در SQL Swerver 2000 وجود دارد که به شما اجازه میدهد نتیجه پرس و جو هایتان را به فرمت XML دریافت کنید ، این قابلیت بخصوص برای برنامه نویسان وب خیلی کاربرد دارد .

مثال 1:



SELECT *

FROM {Order Details}

WHERE OrdetDate BETWEEN Date1 AND Date2

ORDER BY OrderDate



مثال 2:



SELECT OrderID , SUM (Quantity) as Total

FROM {Order Details}

GROUP BY OrderID

HAVING SUM(Quantity)>300


نکته : برخی از برنامه نویسان بجای نوشتن تمام ستونهایی که در تهیه گزارش به آنها احتیاج دارند از * استفاده میکنند که این کار باعث بالا رفتن بار شبکه شده و کارایی سیستم را پایین می آورد لذا بهتر است بجای استفاده از * کمی بخود زحمت دهید و لیست تمامی ستونها را بطور کامل قید کنید .

bad_boy_2007
26-04-2007, 22:16
آشنايی با WHERE (بخش اول)

با استفاده از این دستور میتوان اعمال زیر را انجام داد :


1- محدود کردن رکوردها در یک جست و جو


2- لینک کردن (ادغام) دو یا چند جدول


در این قسمت به بند 1 میپردازیم


محدود کردن رکوردها در جست و جو با استفاده از WHERE :


در دستور WHERE میتوان از عملگرهای منطقی ، عملگرهای مقایسه ای ، عملگرهای ویژه SQL و دستورات VB استفاده کرد . اکنون به اختصار هر بخش را توضیح میدهیم :






در دستور WHERE میتوان از عملگرهای منطقی AND ، OR و در عملگرهای SQL چون LIKE ، IN وBETWEEN – AND استفاده کرد .






AND : همانطور که از نام این عملگر منطقی بر می آید برای ادغام دو شرط منطقی بکار میرود ، در صورتی که یکی از شروط اشتباه باشد ، کل شرط اشتباه خواهد شد .

OR : نتیجه این عملگر زمانی درست است که لا اقل یکی از شروط بر قرار باشد .

LIKE : این عملگر بسیار قدرتمند رشته ها را با یک الگو (Pattern) مقایسه میکند ، در صورتی که فیلد مورد نظر با الگو مطابقت داشته باشد ، در لیست فیلدهای نمای خروجی (View) نمایش داده خواهد شد .

IN : این عملگر فیلد مورد نظر را با یک مجموعه از مقادیر مقایسه میکند .

BETWEEN – AND : این عملگر فیلدهای را بین 2 مقدار مشخص محدود میکند .




عملگرهای مقایسه ای : میتوانیم از عملگرهای مقایسه ای در دستور WHERE استفاده کنیم :


عملگر نامساوی <>
عملگر تساوی =
عملگر بزرگتر یا کوچکتر > ، < ، => و =<





دستورات VB برای SQL : اگر از موتور جت مایکروسافت برای پردازش دستورات SQL استفاده میکنید ، میتوانید از دستورات VB نیز در ایجاد نما ها استفاده کنید ، در ذیل به ذکر نمونه هایی از این دستورات میپردازیم :


LEFT$ و LEFT : تابع LEFT یا LEFT$ برای جدا کردن تعداد دلخواه کاراکتر از سمت چپ یک رشته به کار میرود ، در خصوص تفاوت بین این دو تابع وارد جزئیات امر نمیشویم صرفا در این حد که توابع کار با رشته ای که به $ ختم میشوند متغییر از نوع رشته را باز میگرداند و در مقایسه با تابع مشابه بدون $ که مقدار Variant بر میگرداند از سرعت بالاتری برخوردارند ، لذا از این پس از توابع با $ در مثالها استفاده میکنیم .
RIGHT$ : مشابه LEFT$ است و تعدادی کاراکتر از سمت راست رشته انتخاب میکند .
MID$ : این تابع تعداد دلخواهی رشته از وسط رشته مورد نظر را انتخاب میکند .
و . . .

توجه : استفاده از توابع VB در دستورات SQL دو عیب دارد :


1- قابلیت حمل را کاهش میدهد : در صورتی که قصد انتقال کدهایتان را به خارج از محیط VB دارید که از موتور جت مایکروسافت پشتیبانی نمیکند ، باید دستورات VB را حذف یا جایگزین کنید


2- در صورت استفاده وسیع از این سری دستورات سرعت اجرا را اندکی کاهش می یابد .

لذا توصیه میشود تا حد امکان از دستورات VB همراه با دستورات SQL استفاده نشود مگر در مواقع ضرورت

bad_boy_2007
26-04-2007, 22:18
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
26-04-2007, 22:24
بعد از این همه بحث تئوری نوبت به بخش عملی میرسه !

میخوایم چند تا مثال واسه دستور Select با توجه به نکات ذکر شده تا کنون و بانک نمونه ای که آپ کردیم ، ارائه بدیم . اگه بانک رو دانلود نکردین از اینجا دانلودش کنید .

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

مثال انتخاب فیلد (ها) :

از این کار زمانی استفاده میکنید که تعدادی فیلد در یک یا چند جدول (در صورت ادغام جداول) دارید ولی به تعداد معدودی از آنها نیاز دارید و جهت صرفه جویی در حافظه اصلی فیلدهایی را که نیاز ندارید نمایش نمیدهید .



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

دستور فوق فقط فیلد st_no را در نما (view) نمایش خواهد داد .



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



دستور فوق دو فیلد را در خروجی نمایش خواهد داد و همین طور برای افزودن فیلدهای بیشتر به خروجی میتوان با علامت کولن “,” فیلدها را از هم جدا کنید .


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در دستور فوق بجای نام فیلدها ، از عمگر * استفاده شده این دستور باعث میشود که تمامی فیلدها در خروجی نمایش داده شوند . البته همانطور که قبلا گفته شد بهتر است بجای * اسم تمامی فیلدها قید شود . لذا دستور فوق را بشکل زیر که همان نتیجه را ایجاد میکند اصلاح میکنیم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


نکته : در ادامه بحث برای راحتی کار از دستور * استفاده خواهیم کرد ولی در پیاده سازی این کار توصیه نمیشود .



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

نکته : ممکن است بخواهیم در نما نام فیلدها را با نامهای جدبد جایگزین کنیم ، بنا به دلایلی از جمله اینکه جداول را با هم تلفیق کرده ایم و 2 فیلد همنام در جدول حاصل به وجود آورده ایم که این منجر به خطا میشود . برای این کار از دستور As مطابق مثال زیر استفاده میکنیم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


در مباحث بعدی به مثالهای مربوط به محدود کردن رکودها با دستور WHERE خواهیم پرداخت .

bad_boy_2007
26-04-2007, 22:37
در مطلب قبلی به محدود کردن فیلدها در نمای خروجی اشاره کردیم ، در این مطلب مثالهایی برای محدود کردن رکوردها ارائه خواهیم داد ، پیش از مطالعه مثالهای این بخش توصیه میشود اینجا را مطالعه نمائید .


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

مثال انتخاب رکوردها با شرایط بخصوص :

زمانی که میخواهیم تعدادی رکورد با شرایط بخصوص ، مثلا نمرات دانشجویان به قسمی که نمره کمتر از یک حد مشخص باشد میتوانیم با استفاده از دستور WHERE انتخابها را محدود کرده و گزارش مطلوب را جهت خروجی نمایش دهیم .

مثال 1 : میخواهیم در بانک اطلاعات نمرات نمرات دانشجویی با شماره دانشجویی 111111 را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

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

مثال 2 : میخواهیم در بانک اطلاعات نمرات ، نمرات دانشجویی با شماره دانشجویی 111111 بصورتی که نمره های دانشجو بالاتریا برابر10 باشد را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

مثال 3 : میخواهیم در بانک اطلاعات نمرات ، نمرات بین 12 و 18 را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

مثال 4 : میخواهیم در بانک اطلاعات دانشجو ، اسامی دانشجویانی با الگوی %a% (یعنی در اسم دانشجو کاراکتر a وجود داشته باشد) را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد :

توجه : در برخی از مفسرهای SQL در ایجاد الگو بجای کاراکتر % از کاراکتر * استفاده میشود .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

مثال 5 : میخواهیم در بانک اطلاعات دانشجو ، اسامی دانشجویانی که یکی از اسامی ('ali', 'reza', 'mohammad') است را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد :

توجه : در برخی از مفسرهای SQL در ایجاد الگو بجای کاراکتر % از کاراکتر * استفاده میشود .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



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

در مطالب بعدی به الحاق جداول با استفاده از دستور WHERE میپردازیم

bad_boy_2007
26-04-2007, 22:51
الحاق جداول با استفاده از WHERE :

یکی از عملکردهای بسیار مهم دستور WHERE الحاق جداول است ، بدین معنی که شما میتوانید جداولی که با یک کلید با هم ارتباط دارند را الحاق کنید و یک جدول مجازی جدید ایجاد کنید . بهتر است با یک مثال طریقه الحاق جداول را نمایش دهیم .

مثال1 : میخواهیم سه بانک نمرات دانشجویان ، اطلاعات دانشجو و اطلاعات دروس را تلفیق کرده و بانکی از فیلدهای نام و نام خانوادگی دانشجو ، نمره ،نام درس ، سال و ترم بدست بیاریم .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


نکته : همانطور که ملاحضه کردید در دستور فوق برای دسترسی به ستون name از جدول student بجای لفظ name از student.name استفاده کردیم ، همینطور برای تمام فیلدهای دیگر این به این خاطر است که فیلد name در دو جدول student و course وجود دارد و باید به طریقی بین این دو فیلد تمایز ایجاد کرد لذا به این شکل استفاده شد .

توجه : برای باقی فیلدها غیر از name لزومی به ذکر کردن جدول اصلی نیست ولی برای خوانایی بیشتر بهتر است اسم جدول هم ذکر شود .

نکته : همانطور که ملاحضه کردید فیلد name درس ، در خروجی با نام Expr1 آورده شده این به این علت است که این فیلد با فیلد name دانشجو ، همنام است برای رفع این مشکل میتوان از دستور AS استفاده کرد ، لذا دستور فوق را به صورت اصلاح شده زیر تغییر میدهیم :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

مثال2 : میخواهیم کارنامه دانشجویی با شماره دانشجویی 111111 را در ترم اول سال 86 چاپ کنیم

SELECT nomreh.nomreh,course.name,course.vahed

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


در مطالب بعدی در مورد دستور ORDER BY مطالبی ارائه خواهد شد.

bad_boy_2007
26-04-2007, 22:53
تلفيق دو جدول در Sql با ا ستفاده از دستور Select انجام مي پذيرد.تلفيق ها انواع مختلفي دارند كه هر يك را به اختصا ر بررسي مي كنيم:

تلفيق ضربدري:

در صورتي كه دو جدول را بدون به كارگيري بخش Where با هم تلفيق كنيم يك تلفيق ضربدري يا دكارتي خواهيم داشت.اين تلفيق تمام سطرهاي بخش From را با تمام سطرهاي همه جدول هاي ديگر تركيب مي كند.

براي مثال دو جدول Table1 و Table2 را در نظر بگيريد:



Table1-> Name Family


Ahmaadi Hassan


Alavi Naser



Table2 -> Lesson Code


Db 27370

Os 28490 حال اگر دستورات زير را براي تلفيق آنها به كا ر مي بريم:


Select * From Table1,table2 ;


بدين ترتيب خواهيم داشت:





Name Stno Lesson Code


Hassan Ahmadi Db 27370


Hassan Ahmadi Os 28490


Naser Alavi Db 27370


Naser Alavi Os 28490


به طوري كه مشاهده مي كنيم جدول حاصل داراي 4 ركورد است كه ار حاصلضرب جداول تلفيق شده به دست مي آيند .

bad_boy_2007
26-04-2007, 22:57
تا الان یاد گرفتین که چطور یه سری فیلد رو محدود کنین ، تعداد رکوردها رو محدود کنین و جداول رو با هم ادغام کنین در این بخش هم میخوایم طریقه مرتب سازی جداولی را که از این فیلترینگ ایجاد کردین را توضیح بدیم . جهت مرتب سازی جداول ایجاد شده از دستور ORDER BY در SELECT استفاده میشه . بحث رو با یک مثال ساده که نحوه عملکرد دستور را شرح میدهد شروع میکنیم .


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

مثال1 : میخواهیم از جدول مشخصات دانشجویان ، لیست نام و نام خانوادگی دانشجویان را انتخاب کرده و فیلدها را بر اساس نام خانوادگی دانشجو مرتب کنیم .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


* بهتر است خروجی علاوه بر اینکه براساس نام خانوادگی دانشجو مرتب میشود ، بر اساس نام دانشجو نیز مرتب شود ، البته در این مثال به علت عدم وجود نام خانوادگی تکراری در بانک اطلاعات دانشجو نتیجه خروجی فرقی نخواهد کرد لذا یک دانشجو جدید به این اضافه خواهیم کرد که تمایز آن با مثال فوق مشخص شود .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


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

همانطور که مشاهده کردید برای مرتب سازی فیلدها در خروجی از ORDER BY استفاده شد و ترتیب مرتب سازی بترتیب جلوی این دستور نوشته شد . اگر دقت کرده باشید فیلدها بترتیب صعودی مرتب شدند (حالت پیش فرض T-SQL) حال اگر بخواهیم فیلدها بر اساس ترتیب نزولی مرتب شوند میتوان از دستور DESC (مخفف واژه Descending) استفاده کرد ، میتوان در مرتب سازی صعودی از دستور ASC (مخفف واژه Ascending) نیز استفاده نمائید ، لیکن همانطور که گفته شد ترتیب پیش فرض SQL صعودی (Ascending) میباشد و این دستور را بطور اتوماتیک حذف خواهد کرد .

مثال2 : میخواهیم در جدول دروس ، لیست کلیه دروس را بصورت نزولی نمایش دهیم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
26-04-2007, 22:58
در ادامه مطالبی در مورد نحوه استفاده select های متداخل میزارم

bad_boy_2007
28-04-2007, 18:51
در این بحث میخوایم به ارتباط SELECT و دستور IN بپردازیم ، در مباحث بعدی توضیحاتی بیشتر در مورد اجتماع ، اشتراک ، حالضرب و . . . دستورات SELECT ارائه میدم . از این جهت که تقریبا 90% امور مربوط به گزراش گیری و اعمال پردازشی با دستور SELECT انجام میشه ، تبحر در این دستور و نحوه استفاده از اون اهمیت زیادی داره ، لذا سعی میکنم نکات کاربردی در مورد این دستور ارائه بدم .
تا اینجا با بانک نمونه آشنا شدین ، خب اجازه بدین بحث رو با یک سوال شروع کنم :
سوال : فرض کنین میخواین لیست تمام نمرات دانشجویانی رو بدست بیارین که در ترم اول 86 درس 2 واحدی داشتن .
خب تو یه تحلیل ساده پیش خودتون میگین اول باید کد تمام دروس 2 واحدی رو پیداکنم ، بعد بگم تمام نمراتی رو بهم نشون بده که کدش یکی از این کدهاست . تو این پست میخوام طریقه انجام این کار رو با دستور SELECT و IN توضیح بدم .
همونطور که در بحث مربوط به دستور IN دیدید ، با استفاده از این دستور میتونیم فیلدهایی رو که یکی از مشخصه های یک مجموعه مشخص رو داشته باشن رو انتخاب کنیم ، توصیه میشه پیش از ادامه بحث در صورتی که مطالب رو از ابتدا پیگیری نکردین اینجا رو بخونین .
جهت استفاده از دستور SELECT برای تعیین موارد انتخابی ای که دستور IN میتواند یکی از آن موارد باشد ، باید چند شرط را رعایت کنیم :
در دستور SELECT فقط و فقط یک فیلد را که کد شناسه ارتباطی بین جدول اصلی و ثانوی است را به عنوان خروجی ارسال کنیم (در اینجا فیلد مربوط به کد درس)
شرطی که باید فیلد داشته باشد را در بخش WHERE دستور SELECT داخلی قید میکنیم . (در اینجا شرط 2واحدی بودن)
خب بیاین و کد مربوط به سوالی رو که ابتدای بحث مطرح کردیم رو ایجاد کنیم ، با توجه به موارد قید شده دستور SELECT داخلی باید یک مجموعه از کدهای دروسی را در اختیار ما قرار دهد که درس مربوطه 2 واحدی باشد پس داریم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


خب ، همینطوری که میبینین این دستور لیست یک سری درس رو بهمون نشون داد که میخوایم بدونیم کدوم دانشجوها این درس (یا دروس) رو در نیمسال اول 86 انتخاب کردن :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
28-04-2007, 18:52
در این بحث میخوایم به ارتباط SELECT و دستور IN بپردازیم ، در مباحث بعدی توضیحاتی بیشتر در مورد اجتماع ، اشتراک ، حالضرب و . . . دستورات SELECT ارائه میدم . از این جهت که تقریبا 90% امور مربوط به گزراش گیری و اعمال پردازشی با دستور SELECT انجام میشه ، تبحر در این دستور و نحوه استفاده از اون اهمیت زیادی داره ، لذا سعی میکنم نکات کاربردی در مورد این دستور ارائه بدم .
تا اینجا با بانک نمونه آشنا شدین ، خب اجازه بدین بحث رو با یک سوال شروع کنم :
سوال : فرض کنین میخواین لیست تمام نمرات دانشجویانی رو بدست بیارین که در ترم اول 86 درس 2 واحدی داشتن .
خب تو یه تحلیل ساده پیش خودتون میگین اول باید کد تمام دروس 2 واحدی رو پیداکنم ، بعد بگم تمام نمراتی رو بهم نشون بده که کدش یکی از این کدهاست . تو این پست میخوام طریقه انجام این کار رو با دستور SELECT و IN توضیح بدم .
همونطور که در بحث مربوط به دستور IN دیدید ، با استفاده از این دستور میتونیم فیلدهایی رو که یکی از مشخصه های یک مجموعه مشخص رو داشته باشن رو انتخاب کنیم ، توصیه میشه پیش از ادامه بحث در صورتی که مطالب رو از ابتدا پیگیری نکردین اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) رو بخونین .
جهت استفاده از دستور SELECT برای تعیین موارد انتخابی ای که دستور IN میتواند یکی از آن موارد باشد ، باید چند شرط را رعایت کنیم :
در دستور SELECT فقط و فقط یک فیلد را که کد شناسه ارتباطی بین جدول اصلی و ثانوی است را به عنوان خروجی ارسال کنیم (در اینجا فیلد مربوط به کد درس)
شرطی که باید فیلد داشته باشد را در بخش WHERE دستور SELECT داخلی قید میکنیم . (در اینجا شرط 2واحدی بودن)
خب بیاین و کد مربوط به سوالی رو که ابتدای بحث مطرح کردیم رو ایجاد کنیم ، با توجه به موارد قید شده دستور SELECT داخلی باید یک مجموعه از کدهای دروسی را در اختیار ما قرار دهد که درس مربوطه 2 واحدی باشد پس داریم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


خب ، همینطوری که میبینین این دستور لیست یک سری درس رو بهمون نشون داد که میخوایم بدونیم کدوم دانشجوها این درس (یا دروس) رو در نیمسال اول 86 انتخاب کردن :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
11-05-2007, 00:30
در این بخش قصد داریم Query های مختلف را با استفاده از دستورات Union , Union All , Intersect,Minus با هم تلفیق کنیم . پیش از ادامه بحث در صورتی که مطالب قبلی را مطالعه نکرده اید اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])را بخوانید .

Union :

با استفاده از این دستور میتوانید بین دو Query مختلف اجتماع ایجاد کنید . طرز استفاده از این دستور بصورت زیر است :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Union All :

این دستور نیز مشابه Union عمل میکند با این تفاوت که دستور Union رکوردهای تکراری را در اجتماع لحاظ نمیکند در صورتی که Union All تمامی رکوردهای تکراری و غیر تکراری را نمایش میدهد . طریقه استفاده از این دستور نیز مشابه Union است و در ذیل مشخص شده :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Intersect :

این دستور مانند عملگر منطقی AND عمل میکند ، به این شکل که تنها رکوردهایی را انتخاب مبکند که هم در Query1 باشد و هم در Query2 . در ذیل نحوه استفاده از این دستور ذکر شده :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدMinus :

همانطور که از نام این دستور بر می آید عمل تفریق را انجام میدهد . با استفاده از این دستور میتوان رکوردهایی را انتخاب کرد در Query1 موجود اند ولی در Query2 موجود نیستند . نحوه استفاده از این دستور بصورت زیر است :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بحث در مورد تلفیق پرسشها (Query ها) را در همین جا با چند مثال پایان میدهیم .

مثال 1) فرض کنید میخواهیم لیست کلیه دانشجویانی را بدست آوریم که درس کد 2 یا 3 را ورداشته اند .

برای این منظور میتوان از دو Query استفاده کرد ، Query اول لیست تمام دانشجویان را مشخص میکند که درس کد 1 را ورداشته اند و Query دوم لیست تمام دانشجویانی را مشخص میکند که درس کد 2 را ورداشته اند ، با اجتماع این دو Query جواب بدست خواهد آمد . در اینجا بجای Union All از Union استفاده میکنیم چون ممکن است یک دانشجو بیش از یک بار درس کد 1 یا 2 را ودارد که در این صورت در صورت استفاده از Union All ، دو بار کد دانشجو نمایش داده خواهد شد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


مثال 2) با استفاده از دستورات الحاق Query میخواهیم لیست کلیه دانشجویانی را بدست آوریم که درس 1 و درس 2 را داشته اند .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

همانطور که از خروجی های این دو مثال مشخص است تمامی دانشجویانی که درس 1 را انتخاب کرده اند ، درس 2 را نیز انتخاب کرده اند.

bad_boy_2007
11-05-2007, 00:32
در مطالب بعدی در مورد توابع Sum , min , max , . . . مطالبی قرار میدم .

bad_boy_2007
15-05-2007, 18:15
داشتم وب گردی میکردم به اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) بر خوردم دیدم مطالبش جالبه گفتم لینک بدم دوستان هم استفاده کنن


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

امنیت 2000 SQL Server ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
نسخه برداری کردن و باز گرداندن پایگاه داده ها ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
معرفی SQL و دستورات عمومی آن ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
ارتباط دادن جداول در Server SQL ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

MAXXX
20-05-2007, 17:03
سلام
ممنون بابت آموزش هات
راستش این ترم پایگاه داده ها گرفتم و پروژه میخواد که vb رو با sql تو یه برنامه ارتباط بدیم حالا ما هم که تا حالا فقط تئوری sql رو یاد گرفتیم vb هم که تا حالا کار نکردم برا همین خفن افتادن دنبال یاد گرفتنش و از مطالب شماشروع کردم
بازم ممنون

hamidreza_buddy
21-05-2007, 15:41
جناب bad_boy_2007 با تشکر بسیار زیاد بابت این آموزش ها

srh124
21-05-2007, 20:56
دستت درد نكنه پسر بد 2007
ولي فكر كنم به حد كافي مطلب در اين مورد زياد هست

bad_boy_2007
21-05-2007, 21:33
دستت درد نكنه پسر بد 2007
ولي فكر كنم به حد كافي مطلب در اين مورد زياد هست

اوهوم حق با شماست :31: ولی این ترم استادم ازم خواست 2 تا کار بکنم یکی اینکه یه وبلاگ آموزشی بزنم و یکی دیگه یه برنامه بنویسم با sql . دیدم مطالب تو وبلاگ رو اگه اینجا واسه دوستان هم بزارم شاید مفید باشه .


hamidreza_buddy جان خواهش میکنم وظیفه است
MAXXX عزیز فکر کنم بهترین منبع واسه کار با دیتابیس در vb6 - کتاب آموزش پایگاه داده در vb باشه . اگه بتونی تهیه اش کنی خوب کمکت میکنه .

فردان
23-05-2007, 09:56
سوالي كه من دارم اين است كه اين دستورات را در كجا بايد وارد كنيم. اگر امكان دارد در مورد محيط برنامه نويسي آن نيز توضيح همراه با تصوير مرحمت فرماييد.

bad_boy_2007
23-05-2007, 16:23
1- اول از همه sql server 2000 رو همونطور که در اولین پست گفته شد نصب میکنید

2- enterprise manager رو باز میکنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

3- خب حالا دیتابیسی رو که تو اولین پست معرفی کرده بودم رو باید معرفی کنی به این شکل که اول دانلودش میکنی و unzip میکنی و مطابق شکل عمل میکنی :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تو پنجره بعدی هم آدرس فایل دیتابیس رو میدی خب دیگه کار تقریبا تموم شده !!!

از حالا به بعد فقط میخواد جداولت رو بصورت query باز کنی و با دادن query دلخواه نتیجه رو در صورت صحت پرسش مطرح شده ملاحظه کنی !
واسه اینکه جدولت رو بصورت query باز کنی اول از همه باید بانک رو باز کنی (تو این مثال اسم بانکمون univer ) هست . بعد جول مورد نظرت رو باز کن تو این نمونه 3 تا جدول داریم با نامهای student - nomreh - course . برای باز کردن جول بصورت query باید رو جدول مورد نظر کلیک راست کنی و سپس گزینه query رو کلیک کنی .

vahid2006
03-11-2007, 23:34
با سلام bad_boy_2007
متشکرم از زحماتتان
امید وارم موفق باشید

bad_boy_2007
04-11-2007, 22:36
خواهش میکنم وظیفه بود
این هم بخشی از پروژه پایگاه داده ام بود ، انشا الله در اولین فرصت در مورد SQLExpress 2005 مطلب میندازم

nimadb54
26-02-2008, 19:39
خیلی مطالب خوبی بود کاش ادامه دار هم میشد!

به نظر من یک سری هم به سایت [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) بزنین!

bad_boy_2007
26-02-2008, 21:15
در آستانه ورود SQL Server 2008 قرار گرفتیم و خوشبختانه مایکروسافت هم به درخواستا اضافه شدن Collation فارسی جواب مثبت داده و انشا الله با ورود نسخه 10 SQL Server یا همون ورژن 2008 دیگه مجبور نیستیم تنظیمات Collation رو برای زبان عربی تنظیم کنیم . جا داره همینجا از دوست و استاد عزیزم جناب مهندس ثباتی بابت زحماتی که در این زمینه کشیدن تشکر و قدردانی کنم ، که اگر پیگیری های ایشون نبود به احتمال خیلی زیاد این امکان به نسخه 2008 راه نمی یافت . قصد دارم از حالا به بعد در مورد SQL Server 2005 مطلب بزارم امیدوارم مفید واقع بشه .





متغییر ها در SQL Server 2005 :

بحث متغییرها از بحثهای پایه ای هر زبان میباشد ، اما این بحث در SQL رنگ و بوی دیگه ای داره ! دلیلش هم اینه که عدم انتخاب متغییر مناسب برای داده هامون باعث :

1- افت سرعت بازیابی اطلاعات

2- افزایش حجم داده های ذخیره شده

میشود و این دو مورد در هیچ مدل پایگاه داده ای مورد قبول نیست . پس سعی کنید توجه بیشتری به این بحث هر چند ساده ولی کاربردی داشته باشید . توضیح مختصری از انواع مهمتر در این بخش ارائه شده و پیگیری بحث مربوطه به خواننده واگذار میشود .



انواع متغییرها در SQL Server 2005 :

1- متغییرهای عمومی (Global)

2- متغییرهای محلی (Local)



1- متغییرهای عمومی : این نوع متغییرها توسط سیستم تعریف و نگهداری میشود ، لیستی از این متغییرها به نقل از MSDN در ذیل آورده شده است :

· @@CONNECTIONS (Transact-SQL)

· @@CPU_BUSY (Transact-SQL)

· @@CURSOR_ROWS (Transact-SQL)

· @@DATEFIRST (Transact-SQL)

· @@DBTS (Transact-SQL)

· @@ERROR (Transact-SQL)

· @@FETCH_STATUS (Transact-SQL)

· @@IDENTITY (Transact-SQL)

· @@IDLE (Transact-SQL)

· @@IO_BUSY (Transact-SQL)

· @@LANGID (Transact-SQL)

· @@LANGUAGE (Transact-SQL)

· @@LOCK_TIMEOUT (Transact-SQL)

· @@MAX_CONNECTIONS (Transact-SQL)

· @@MAX_PRECISION (Transact-SQL)

· @@NESTLEVEL (Transact-SQL)

· @@OPTIONS (Transact-SQL)

· @@PACK_RECEIVED (Transact-SQL)

· @@PACK_SENT (Transact-SQL)

· @@PACKET_ERRORS (Transact-SQL)

· @@PROCID (Transact-SQL)

· @@REMSERVER (Transact-SQL)

· @@ROWCOUNT (Transact-SQL)

· @@SERVERNAME (Transact-SQL)

· @@SERVICENAME (Transact-SQL)

· @@SPID (Transact-SQL)

· @@TEXTSIZE (Transact-SQL)

· @@TIMETICKS (Transact-SQL)

· @@TOTAL_ERRORS (Transact-SQL)

· @@TOTAL_READ (Transact-SQL)

· @@TOTAL_WRITE (Transact-SQL)

· @@TRANCOUNT (Transact-SQL)

· @@VERSION (Transact-SQL)



2- متغییرهای محلی (Local) این نوع متغییرها که توسط کاربر تعریف میشوند عموما برای ذخیره سازی داده های حاصل از محاسبات میانی بکار میروند ، جهت تعریف این نوع متغییر ها باید از دستور Declare استفاده کنیم و البته لازم به ذکر است که لیست محدود تری از این متغییر ها زمان ایجاد جداول نیز در دسترس هستند .

قوانین نامگذاری متغییر های زبان T-SQL مشابه قواعد نامگذاری دیگر زبانهای برنامه نویسی است با این تفاوت که ، نام متغییر الزاما باید با @ آغاز شود و بعد از آن یک حرف بزرگ یا کوچک یا یک عدد و بع از آن هر کاراکتر شامل حرف ، عدد یا زیر خط .

تعریف متغییر :

Declare @Variable_Name DataType



Example :

Declare @Temp int



جهت مقدار دهی به متغییر ها از دستور Select یا Set استفاده میشود :

Example :

Set @Temp=20

Or

Select @Temp=20
لیستی از انواع متغییر ها محلی در ذیل به نقل از MSDN آورده شده است :
Exact Numerics (اعداد صحیح)

bigint


decimal

int


numeric

smallint


money

tinyint


smallmoney

bit



Approximate Numerics (اعداد ممیز شناور)

float


real
Date and Time (ساعت و زمان)

datetime


smalldatetime
Character Strings (غیر یونی کد کاراکتر و رشته)

char


text

varchar



Unicode Character Strings (کاراکتر و رشته یونی کد)

nchar


ntext

nvarchar



Binary Strings(رشته های باینری)

binary


image

varbinary



Other Data Types (انواع داده های دیگر)

cursor


timestamp

sql_variant


uniqueidentifier

table


xml





از بین تمام انواع داده ای انواع Char , NChar , VarChar , NVarChar , Text , NText را در مطالب بعدی بیشتر توضیح میدم .



مراجع :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بهتره برا خوندن مقاله به آدرس زیر برید ، چون لینکها و جداول در این انجمن به درستی نشون داده نمیشه .

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

bad_boy_2007
26-02-2008, 21:17
خیلی مطالب خوبی بود کاش ادامه دار هم میشد!

به نظر من یک سری هم به سایت [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) بزنین!

لطف داری دوست من ادامه داره ولی از حالا برای 2005 نه 2000 !!!

elyass
08-03-2008, 01:59
ممنون
كارت حرف نداره ادامه بده. من هم منتظره نسخه 2008هستم.
:5::5::5::5::5::5::5::5::5::5::5::5::5:

bad_boy_2007
10-03-2008, 20:36
سلام دوستان ، قرار شد در مورد متغییر ها بگم ولی دیدم اگه در مورد نسخه های SQL یه چند تا نکته رو بگم بد نیست .

عموما همه شما با SQL Server 2000 کار کردید و ممکنه که SQL Server 2000 رو روی سیستمتون نصب داشته باشید و اقدام به نصب SQL Server 2005 هم روی همون سیستم و سیستم عامل بکنید ، درسته کاملا درست متوجه شدید ، شما میتوانید همزمان هر دو نسخه 8 و 9 اس کیو ال سرور رو روی سیستمون نصب داشته باشید و اما اینکه این کار چه مزیتی داره و میتونه چه مشکلات احتمالی ای رو در بر داشته باشه ، هدف این مقاله هم این موضوعه .

مزایای نصب بیش از یک نسخه SQL Server کاملا مشخصه و نیاز به توضیح زیادی نداره ، ممکنه شما همزمان با دو یا چند برنامه کار کنید که نیاز به سرور SQL دارن و این برنامه ها ممکنه که هرکدومشون برای یک ویرایش SQL تدارک دیده شده باشن یا اینکه شما در حال ورود به محیط 2005 از محیط 2000 هستید و میخواهید همزمان که کار خود را با SQL 2000 (نسخه 8) انجام میدهید قادر به کار با نسخه 2005(نسخه 9) هم باشید و هزار و یم دلیل دیگه که ایجاب میکنه دو نسخه مختف از SQL رو داشته باشین .

اگر اقدام به نصب 2 نسخه SQL کنید ، دو Engine از SQL بر روی سیستم شما نصب میشه یکی Engine نسخه 8 که وظیفه ارتباط با SQL Server 2000 رو بر عهده داره و دیگری Engine نسخه 9 که وظیفه ارتباط با SQL Server 2005 رو بر عهده دارید و احتمالا دو IDE برای اتصال به این دو Engine در اختیار خواهید داشت .

اولین IDE که فقط قادر به برقراری ارتباط با SQL Server 2000 رو بر عهده داره همون Enterprise Management یا بقولی EM و دیگری Management Studio که هم میتونه با هر دو Engine نسخه 8 و 9 کار کنه . یعنی در صورت نصب هر دو Engine و وجود Management Studio دیگر نیاز به استفاده از Enterprise Management ندارید طریقه اتصال به سرور برای Enterprise management به همون شکل قبلیه واما نکته ای که باید در حین ارتباط با Management Studio مورد توجه قرار بدین ! به تصاویر زیر توجه کنید :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


به کادر قرمز توجه کنید در تصویر اول به Engine نسخه 8 و در تصویر دوم با نام نمونه سرور .\SQLExpress به Engine نسخه 9 متصل شدیم و این نکته ای هست که همیشه باید در زمان نصب 2 سرور بطور همزمان روی سیستم باید در نظر داشته باشید ، به این شکل میتونید از IDE نسخه 2005 برای Engine 2000 استفاده کنید .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

bad_boy_2007
10-03-2008, 20:39
ممنون
كارت حرف نداره ادامه بده. من هم منتظره نسخه 2008هستم.
:5::5::5::5::5::5::5::5::5::5::5::5::5:

منم منتظر نسخه 2008 ام ، امیدوارم هرچه زودتر منتشر بشه !

bad_boy_2007
11-03-2008, 18:37
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

reza22222
19-03-2008, 18:33
هنگام وصل شدن به sql server با این پیغام روبرو میشم:
dbnetlib connection open sql server does not exist or
access denied
لطفا راهنمایی کنید

bad_boy_2007
20-03-2008, 21:15
هنگام وصل شدن به sql server با این پیغام روبرو میشم:
dbnetlib connection open sql server does not exist or
access denied
لطفا راهنمایی کنید

احتمالا Engine ُاس کیو ال روی سیستمتون نصب یا فعال نیست و اگر از سیستم راه دور به سرور متصل میشین ممکنه حق دسترسی لازمه رو نداشته باشید .
از طریق ManagmentStudio امتحان کنید و در صورت مشاهده مجدد خطا شیوه اتصال و همچنین نوع نمونه SQL رو که استفاده میکنید رو بطور کامل قید کنید

adrian cooper
25-03-2008, 13:29
سلام
عالی بود ادامه بده
راستی شما اطلاعاتی در مورد TPMonitor داری به من کمک کنی؟
می خوام از نحوه عملکردش توی دیتابیس+ چگونگی نصبش+نحوه کار باهاش و هر گونه اطلاعات دیگه ای که وجود داره بدونم
ممنون می شم اگه کمک کنی؟
اگه هم خودت اطلاعی نداشتی کسی رو اگه می شناسی که بتونه کمک کنه ممنون می شم.

sepideh khanom
02-04-2008, 13:49
فوق العاده بود ====================== مرسی

elhamamirhasan
22-06-2008, 18:57
سلام و خسته نباشید
من هنگامی که صفحه اصلی mysqlرا برای نصب باز میکنم و روی نصب کلیک می کنم با خطای زیر مواجه می شوم:
InternalError,contact microsoft technical support
اگر میشود خیلی خیلی سریع جواب من را بدهید از شما سپاسگزارم.

elhamamirhasan
22-06-2008, 19:00
خواهش می کنم جواب مراسریع دهید من چند روز دیگر امتحان mysql دارم

zworger
18-09-2008, 14:36
با سلام میشه یک بانک مثال هم برامون قرار بدین...
اونی که تو صفحه اول هست لینکش کار نمیکنه...