PDA

View Full Version : سوال: انتقال داده ها از یک جدول به چند جدول برای انجام نرمالسازی



rroona
پنج شنبه 04 آذر 1389, 16:18 عصر
سلام
یه بانک داریم که دارای یک جدول میباشد. با توجه به اینکه حدود 4000 رکورد داریم و جدول هم نرمالسازی نشده و و تمام داده ها درون یک جدول است ، آیا میتونیم چند جدول ایجاد کنیم و داده های این جدول رو در آن جداول جدید انتقال بدیم و ارتباطاتشون را هم برقرار کنیم؟؟
مرسی

حمیدرضاصادقیان
پنج شنبه 04 آذر 1389, 16:45 عصر
سلام.
بله مشکلی نداره.فقط گاهی اوقات مقداری این تبدیل اطلاعات سخت میشه و مثلا مجبورید محتوای یک فیلد به چند فیلد تقسیم بشه که یا باید کوئری براش بنویسی یا یک نرم افزار تبدیل بنویسید که این عمل رو انجام بده.

rroona
پنج شنبه 04 آذر 1389, 17:00 عصر
بله درسته
توی این بانک فیلد های آدرس ، اطلاعات خانوار ، اطلاعات تحصیلی و.. وجود داره که باید جدا بشن
کوئریشو خودم سعی میکنم بنویسم اما فرض میکنیم یه جدول برای اطلاعات خانوار ایجاد کردیم و کوئریمون هم شامل این اطلاعات هست، سوالم اینجاست که این انتقال چطور صورت بگیره؟

حمیدرضاصادقیان
پنج شنبه 04 آذر 1389, 21:18 عصر
خوب اینکه دیگه کاری نداره.وقتی شما کوئری رو بنویسید با استفاده از دستور insert into میتونید اطلاعات رو به جدول جدید انتقال بدید.
من دقیقا متوجه نشدم مشکل شما در انتقال چیست؟ چون الان کارهارو دارید درست انجام میدید.

rroona
جمعه 05 آذر 1389, 02:08 صبح
مگه هر دستور insert into برای درج یک رکورد نیست؟
آیا میشه با یک دستور insert into مثلا 1000 رکورد رو از یک جدول وارد یک جدول دیگه کرد؟
ممکنه کدشو بگید
مرسی

حمیدرضاصادقیان
جمعه 05 آذر 1389, 09:38 صبح
سلام.
بله میشه.
مثال رو ببینید:

insert into table1
Select * from table2

البته این در صورتی هست که فیلدهاشون باهم یکی هست.
در غیر اینصورت میتونید به این شکل بنویسید


insert into table1 (id,name)
select id,name from table2


با این دستور فیلدهای id و name از جدول 2 به جدول 1 اضافه میشه.
برای توضیح بیشتر میتونید به Books Online مراجعه کنید.
موفق باشید

rroona
جمعه 05 آذر 1389, 10:34 صبح
مرسی دوست عزیز کار کرد.فوق العاده بود
یه سوال دیگه اینکه برای انتقال باید هر دو ستون نوعشون یکی باشه.آیا میشه نوع یک ستون رو تبدیل کرد و بعد انتقال داد؟
آیا اینجا هم casting و تبدیل صریح انواع بزرگتر به کوچکتر معنا داره؟
اگه جواب مثبته لطفا یه مثال بزنید
مرسی

حمیدرضاصادقیان
جمعه 05 آذر 1389, 21:10 عصر
سلام.
بله میتوانید با استفاده از Cast یا Convert نوع ها رو به هم تبدیل کنید و انتقال بدید.