PDA

نسخه کامل مشاهده نسخه کامل : نوشتن Query در SQL 2008



Amir Varasteh
12-01-2011, 17:37
سلام.

توی SQL 2000 یه جایی بود که Table ها رو Add میکردی بعد تیک میزدی و ... خودش دستورهای Select و Join و ... رو مینوشت.

توی 2008 کجاست این ؟

*Batman*
13-01-2011, 00:22
سلام.

روی یکی از جدولها کلیک راست کنید و گزینه Script Table as رو انتخاب کنید.از زیر منوی باز شده میتونید Query بسازید.

Amir Varasteh
13-01-2011, 00:34
نه دوست من. منظور من چیز دیگه ایه که توی یک فروم دیگه پیداش کردم.

منظور من اینه که روی نام دیتابیس کلیک راست و New Query میزنیم و سپس کلیک راست و Design Query in Editor رو میزنیم.

منظور من این بود. به هر حال ممنون.

اما شما یک آموزش یا راهنما دارین که من بتونم این Query ها رو بسازم؟

با تشکــر.

*Batman*
13-01-2011, 01:01
درسته.من بد متوجه شدم.
تو لینک زیر دستورات مهم رو خیلی خوب و روان توضیح داده:


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

Amir Varasteh
13-01-2011, 01:03
مرسی.

اما من با دستورات SQL آشنایی لازم رو دارم.

اما نمیدونم از اون جایی که گفتم چطوری بسازمشون...

*Batman*
13-01-2011, 01:41
من به جای شما باشم از ویزارد استفاده نمیکنم.با توجه به اینکه دستورات رو بلدید.
برای ازتباط از Database Diagram استفاده کنید و دستورات رو تو Query Editor بنویسید و اجرا کنید.
از Stored Procedure هم میشه استفاده کرد.

Amir Varasteh
13-01-2011, 01:44
آخه این join کردن ها و شرط گداشتن ها خیلی دستور رو طولانی و پیچیده میکنه. واسه همین میخوام از اوم استفاده کنم.

Stored Procedure چطوریه ؟ بلد نیستمش.

*Batman*
13-01-2011, 01:56
SP بیشتر برای درج و حذف به کار میره.

برای Select هم که باید به ارتباط ها توجه کنیم.

مثال زیر رو ببینید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدنام و موضوع کتاب و تاریخ امانت رو با توجه به تساوی شماره کتاب در دو جدول استخراج میکنیم.


شکل دیگه همین دستور اینه:


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

Amir Varasteh
13-01-2011, 12:25
مرسی.

یه سوال دیگه بزار همینجا بپرسم.

میخوام این ترم پروژه کتابخونه ارائه بدم به زبون دلفی.

ک کتابخونه که یک یوزر ادمین که میتونه کتابها رو اد کنه یا ویرایش کنه و بتونه یوزر تعریف کنه و ویرایش کنه.

یوزرهای معمولی هم بتونن کتاب سرچ کنن و قرض بگیرن. اگه تا 2هفته هم نیاورد کتاب رو، تا یک ماه نتونه کتاب بگیره.

حالا به نظرم سه تا Table میخواد. یکی جدول یوزرها. یکی کتابها و یکی هم اینکه کی چه کتابی رو گرفته و در چه تاریخی گرفته؟

نظرتون چیه ؟ پیشنهادی دارین ؟ چیزی کم و کسر نداره ؟

ممنون.

*Batman*
13-01-2011, 18:07
سلام.
بله خوبه.جدول سوم همون جدول امانات میشه.
فقط کاربر باید بتونه یه کتاب رو رزرو هم بکنه .میتونید یه جدول رزرو هم داشته باشید یا تو جدول کتاب اضافه کنید.
موفق باشید.

Amir Varasteh
13-01-2011, 18:09
ممنون.

1 سوال اینکه اگه تا 2هفته هم نیاورد کتاب رو، تا یک ماه نتونه کتاب بگیره، این رو چطوری پیاده کنم؟ از نظر منطقی میگم.

*Batman*
13-01-2011, 19:29
به طور کلی دو راه وجود داره:
1- ما تاریخ امانت کتاب را در جدول امانات ذخیره میکنیم.مقایسه این تاریخ با تاریخ امروز(در زمان درخواست کتاب جدید از طرف کاربر مربوطه) ، ما رو به نتیجه مطلوب میرسونه و اگر بیشتر از 15 روز بود عملیات مناسب انجام میشه.
2-یه فیلد دیگه در جدول امانت با نام تاریخ برگشت داشته باشیم و اون رو با تاریخ امروز چک کنیم.
اگر همه کتابها باید بعد از 15 روز تحویل بشن روش اول مناسبه.
ممکن هم هست یک سری کتابها رو برای مدت بیشتری در اختیار کاربر بذاریم.مثل کتابهای عمومی یا پایان نامه ها و ...
در اینصورت روش دوم بهتره.

نکته انحرافی که تو موارد فوق الذکر بود اینه که باید سقف تعداد کتابهایی که یه کاربر میتونه به امانت ببره رو تعیین و محاسبه کنید!

بعضی از مسئولین کتابخانه ها با توجه به میزان دیرکرد تصمیمات سلیقه ای میگیرن.(مثل برو اشکال نداره یا باید یه کتاب به عنوان هدیه{جریمه} بیاری و . . . ! )


اگر من چیزی رو اشتباه گفتم یا از قلم انداختم عذر میخوام.
به خاطر امتحانات تمرکز لازم رو ندارم.

Amir Varasteh
13-01-2011, 20:49
ممنون.

خب بعد بگیم اگه اون فیلد منهای تاریخ امروز از 15 بیشتر بود، حالا چیکار کن ؟ اکانت طرف رو چطوری غیرفعال کنم؟

سوال دیگه این که استادمون گفته از گزارش گیری هم استفاده کنیم. توی کتابخونه گزارش چی رو بزارم تو برنامه ؟

خیلی خیلی ممنون.

atifazi
14-01-2011, 00:51
سلام دوست عزیزم . ببخشید اگه بیهوده چیزی میگم ...

اگه من باشم یه فیلد دیگه مثلا با نام level در جدول کاربران ثبت نام کرده درست میکنم و مقدار اونو 1 میدم .

اگه n روز مربوطه گذشت و کتابو نیاورد مقدار این فیلدو 0 میکنم .

هنگام login اگه این فیلد 1 بود اجازه login داده میشه اما اگه 0 بود با پیغامی اجازه login داده نمیشه .

Amir Varasteh
14-01-2011, 01:06
سلام دوست عزیزم . ببخشید اگه بیهوده چیزی میگم ...

اگه من باشم یه فیلد دیگه مثلا با نام level در جدول کاربران ثبت نام کرده درست میکنم و مقدار اونو 1 میدم .

اگه n روز مربوطه گذشت و کتابو نیاورد مقدار این فیلدو 0 میکنم .

هنگام login اگه این فیلد 1 بود اجازه login داده میشه اما اگه 0 بود با پیغامی اجازه login داده نمیشه .
سلام ممنون از لطفت.

خب فرآیند تغییر دادن اون فیلد چطوری هست ؟ اون فیلد رو هر روز یکی یکی زیاد کنم برای هر اکانت ؟ اینو یک توضیحی بده.ممنون.

Amir Varasteh
14-01-2011, 19:13
کسی نیست ؟

M.Hashemi
16-01-2011, 01:42
با سلام
دوست عزیز مشکلتون را کامل متوجه نشدم اما :
شما می توانید یک فیلد به جدول اعضاء اضافه کنید و نوع ان را bit یا همان boolean قرار دهید مثلا با نام block.
شما می توانید با یک سری دستورات sql هر بار که سیستم load می شود تمام اعضاء را چک کنید و افرادی که بیش از 15 روز کتاب را نیاورده اند فیلد block ان ها را true کنید.
و اگر بار دیگر این اعضاء خواستند کتابی را بگیرند با چک کردن مقدار فیلد block ان را مسدود کنید و ...
با تشکر

mohammadkhos
10-12-2015, 09:29
سلام . خسته نباشین ..من مشکل اپلود فایلsql در phpmyadminهاست داشتم با شرکتی که هاست خریدم تماس گرفتم گفتند تو قسمت دیتابس کد کوری اجرا کن ..حالا من نمیدونم تو قسمت کد کوی چی بنویسم
(کدنویسی بلد نیستم) لطفا راهنمایی کنید