امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
حذف با دستورات sql
نویسنده پیام
shahrokhmj آفلاین
كاربر تک ستاره
*

ارسال‌ها: 29
موضوع‌ها: 10
تاریخ عضویت: فروردین ۱۳۸۳

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #1
حذف با دستورات sql
سلام
یک بانک اطلاعاتی داریم که در این بانک اطلاعات دانشجو ثبت می شود . حالا طوری شده که اطلاعات چند دانشجو تکراری وارد شده یعنی برای یک دانشجو که شماره دانشجویی را وارد می کنیم در لیست 2 تا مشخصات می آورد که عین هم هستند . یعنی کلید اصلی نداریم و بانک اطلاعات تکراری هم قبول می کنه . حالا ما میخواهیم که اگه اطلاعات یک دانشجو 2 بار ثبت شده اطلاعات تکراری را حذف کنیم یعنی فقط در بانک یک بار اطلاعات داشته باشد . با استفادخ از دستورات SQL
یعنی حذف اطلاعات تکراری از بانک.
مثلا 2 رکورد اینطوری ثبت شدند :

نام : شاهرخ
فامیل : امجی
شماره دانشجو : 5697844

حالا جون 2 تا رکورد ایجوری هستند باید یکی از اینها حذف بشه.
لطفا کمک کنید خیلی لازم دارم
با تشکر
۲۵-اردیبهشت-۱۳۸۵, ۲۳:۲۴:۳۵
ارسال‌ها
پاسخ
mehdvirus آفلاین
در حال پیشرفت
***

ارسال‌ها: 439
موضوع‌ها: 27
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 0
( 39 تشکر در 26 ارسال )
ارسال: #2
Wink  RE: حذف با دستورات sql
خوب چرا اول چک نمیکنی که این نام وجود داره یا نه...و به کاربر پیغام بدی
خیلی راحت میتونی اینکارو بکنی .... اسم یا شماره دانشجویی که کاربر وارد کرده رو با دستور سلکت انتخاب میکنی تو دیتا بیس بعد چک میکنی ببینی فیلد (نام ) محتواش خالی هست یا نه...اگه خالی نباشه یعنی وجود داره اگه خالی بود ثبت میکنی ولی اگه خالی نبود ارور میدی که همچین شماره ای وجود داره...یه چیزه دیگه بزن....ولی بهر حال اگه میخوای دلت کنی دستورش اینه
کد:
l -> delete fieldname from table1 where username="ali" <-l
(آخرین ویرایش در این ارسال: ۲۶-اردیبهشت-۱۳۸۵, ۲۰:۲۷:۱۶، توسط mehdvirus.)
۲۶-اردیبهشت-۱۳۸۵, ۲۰:۲۶:۴۳
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #3
RE: حذف با دستورات sql
من هم با مهدی موافقم ! البته خیلی بهتره که جدولت کلید اصلی هم داشته باشه تا کاملا بتونی بشکل نرمال درش بیاری ! اینطوری کارایی دیتابیست هم بالا میره .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۶-اردیبهشت-۱۳۸۵, ۲۱:۱۸:۳۶
ارسال‌ها
پاسخ
برزو آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #4
RE: حذف با دستورات sql
سلام
من دنبال چیزی می‏گشتم که سر از اینجا در آوردم که البته چون سایت جالب و مفیدی است عضو هم شدم. البته دوستان گرامی جواب شما را داده‏اند شاید این صفحه را هم مطالعه بکنی بد نباشد:
http://support.microsoft.com/default.asp...us;q139444

امیدوارم بتوانم مرتب به شما عزیزان سری بزنم
موفق باشید
برزو

۲۶-اردیبهشت-۱۳۸۵, ۲۱:۴۸:۵۹
ارسال‌ها
پاسخ
shahrokhmj آفلاین
كاربر تک ستاره
*

ارسال‌ها: 29
موضوع‌ها: 10
تاریخ عضویت: فروردین ۱۳۸۳

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #5
RE: حذف با دستورات sql
نقل قول: mehdivirus نوشته بود :
delete fieldname from table1 where username="ali
ببینید این دستور اونهای که اسمشون مسائی هم هست رو حذف میکنه اصلا منظور من این نیست .
ببینید منظورم اینه که به طور مت مثلا اطلاعات پنج دانشجو را وارد کردیم و بعدا به طور اشتباهی دوباره اطلاعات همان پنج دانشجو را وارد کردیم حالا فهمیدیم که این پنج تا اطلاعاتشون دو بار وارد شده و و حالا می خواهیم که تکرایها را حذف کنیم یعنی برای هر کدام فقط یکی از اطلاعاتشون باقی بمونه.
چون اگر از دستور بالا استفاده کنیم هر دو رکورد حذف میشوند یعنی دیگه دانشجو کلا از بانک حذف می شود !!
مثلا من وارد کردم
نام : شاهرخ
فامیل : امجی
شماره دانشجو : 5697844
بعد از پنج دقیقه اشتباها این مشخصات را دوباره ثبت کردم توی بانک . حالا چطوری این تکراریرو حذف کنم ؟
(آخرین ویرایش در این ارسال: ۲۸-اردیبهشت-۱۳۸۵, ۰۰:۲۸:۰۳، توسط shahrokhmj.)
۲۸-اردیبهشت-۱۳۸۵, ۰۰:۲۲:۴۳
ارسال‌ها
پاسخ
ashkan آفلاین
بنيانگذار سايت
******

ارسال‌ها: 1,553
موضوع‌ها: 80
تاریخ عضویت: آبان ۱۳۸۲

تشکرها : 0
( 140 تشکر در 87 ارسال )
ارسال: #6
RE: حذف با دستورات sql
براي پيدا كردن ركوردهايي كه تكراري هستن ميتوني از اين دستور استفاده كني :
کد:
[align=left]select * from tbl_name where dup_field in ( select dup_field from tbl_name group by dup_field having count(*)>1)[/align]
كه توش tbl_name اسم جدولته و dup_field  نام فيلدي هست كه تكراري هست. اگر تعداد فيلدهاي تكرار بيش از يكي باشه ديگه خودت زحمتش رو بايد بكشي.
اگر خواستي ديليت كني كافيه بجاي سلكت اولي از دستور دليت استفاده كني.
ولي اگه بخوايي يكي رو نيگر داري و بقيشون رو ديليت كني بايد برنامه بنويسي

آشنایی با نظریه زبان باعث شد تا بفهمم کامپیوتر اونی نیست که من میدونم.
(آخرین ویرایش در این ارسال: ۲۸-اردیبهشت-۱۳۸۵, ۱۱:۰۳:۵۲، توسط ashkan.)
۲۸-اردیبهشت-۱۳۸۵, ۱۱:۰۱:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : solid_mercury
mehdvirus آفلاین
در حال پیشرفت
***

ارسال‌ها: 439
موضوع‌ها: 27
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 0
( 39 تشکر در 26 ارسال )
ارسال: #7
RE: حذف با دستورات sql
با دستور Distinct هم میتونی رکورد هایی که تکراری هستن رو برنداری
۱۱-خرداد-۱۳۸۵, ۱۵:۵۲:۲۱
ارسال‌ها
پاسخ
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #8
RE: حذف با دستورات sql
select distinict name * into
table name
from
Production.Product
---------------------------------------------

هر چی روش خوبه توش خوب نیست!
۲۴-اسفند-۱۳۸۵, ۲۰:۵۵:۱۸
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  دستورات DML زبان دستکاری داده ها (Data Manipulation Language) bghad1 2 2,962 ۱۰-اردیبهشت-۱۳۹۴, ۱۱:۵۳:۲۹
آخرین ارسال: bghad1
  مشکل در دستورات SQL server 2000 access19 1 2,879 ۱۴-آذر-۱۳۸۶, ۱۲:۳۷:۳۵
آخرین ارسال: mbza11
  دستورات sql mohammad*** 1 6,911 ۱۱-شهریور-۱۳۸۶, ۲۰:۵۷:۵۶
آخرین ارسال: mRizvandi
  دستورات کامل SQL a_persian_boy 5 6,980 ۲۶-خرداد-۱۳۸۵, ۱۶:۳۹:۵۴
آخرین ارسال: a_persian_boy

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS