دستور SQL SELECT INTO — ایجاد جدول جدید از دادههای موجود
دستور SELECT INTO
در SQL Server برای ایجاد یک جدول جدید و درج دادهها از جدول یا پرسوجوی منبع در یک مرحلهترین عملیات استفاده میشود. اگر جدول مقصد وجود نداشته باشد، این دستور آن را میسازد و سپس دادههای منتخب را در آن وارد میکند. این روش کاربردی برای تهیه پشتیبان، استخراج زیرمجموعهای خاص از دادهها یا ایجاد جدول برای تحلیل است.
دستور کلی SELECT INTO
SELECT ستونیها، ...
INTO جدول_جدید
FROM جدول_منبع
[WHERE شرط_اختیاری];
ستونیها: ستونهای موردنظر برای انتخاب. پیشنهاد میشود از لیست کردن ستونها به جای
*
استفاده کنید.جدول_جدید: نام کامل جدول جدید (در صورت نیاز همراه با اسکیما).
جدول_منبع: جدولی که دادهها از آن استخراج میشوند.
شرط: برای فیلتر کردن ردیفها (اختیاری است).
مثالهای کاربردی
1. کپی همه ستونها
SELECT *
INTO dbo.Department
FROM SQLTEST.dbo.Department;
در این مثال، تمام ستونها و دادههای جدول Department
از بانک داده SQLTEST
به جدول جدید dbo.Department
در بانک داده فعلی کپی میشود .
2. کپی ستونهای مشخص و فیلتر ردیفها
SELECT FirstName, LastName, DepartID
INTO dbo.Employee
FROM SQLTEST.dbo.Employee
WHERE DepartID = 1;
در این مثال، فقط ستونهای مشخص شده از جدول Employee
با شرط اینکه DepartID = 1
، به یک جدول جدید منتقل میشوند
3. انتخاب دادهها از چند جدول با JOIN
SELECT EMP.FirstName, EMP.LastName, DEPT.DepartmentName
INTO dbo.SelectInto
FROM SQLTEST.dbo.Employee EMP
INNER JOIN SQLTEST.dbo.Department DEPT
ON EMP.id = DEPT.id;
در اینجا، دادهها از دو جدول (Employee
و Department
) با استفاده از INNER JOIN ادغام و در جدول جدید SelectInto
ذخیره میشوند
مزایا و محدودیتهای SELECT INTO
ویژگی | توضیح |
---|---|
ایجاد خودکار جدول | اگر جدول مقصد وجود نداشته باشد، بدون نیاز به ایجاد مجزا، ساخته میشود. |
سازگاری با حجم زیاد | کارایی بالا در انتقال حجم زیادی از داده. |
عدم کپی constraint ها و اندیسها | کلیدهای اصلی، ایندکسها، و محدودیتها به جدول جدید منتقل نمیشوند. |
فیلتر و انتخاب بخش خاصی از داده | با WHERE یا JOIN قابل تنظیم است. |
تفاوت با دستور INSERT INTO SELECT
INSERT INTO SELECT
نیازمند وجود جدول مقصد است و فقط دادهها را در جدول از قبل ایجاد شده وارد میکند.SELECT INTO
هم جدول مقصد را ایجاد میکند و هم دادهها را منتقل میکند. کارآمدتر، اما انعطافپذیری کمتری در کنترل ساختار جدول دارد
جمعبندی
SELECT INTO
برای شرکت در عملیات جدولسازی + انتقال داده در یک مرحله بسیار مفید است.قابلیت اعمال شرطها و استفاده از JOIN برای انتخاب دادههای ترکیبی وجود دارد.
اگر جدول مقصد وجود داشته باشد، باید از
INSERT INTO SELECT
استفاده شود.
دیدگاهتان را بنویسید