SQL Server select intoの使い方


SQL ServerデータベースのSELECT INTO文について簡単に説明します.SELECT INTO文はSELECT文の中で特別なタイプです.
機能:
SELECT INTO文は、あるテーブルからデータを選択し、別のテーブルにデータを挿入します.SELECT INTO文は、テーブルのバックアップ・コピーを作成したり、レコードをアーカイブしたりするのによく使用されます.この文は、データベースで指定したカラム・タイプとタイトルで新しいテーブルを作成します.
注意事項:
SELECT INTOは、テーブルのスクリプトを書き換える必要がなく、テーブルの空のコピーを作成する最適な方法ですが、インデックスとトリガは含まれません.あなたがしなければならないのは、WHERE句の条件が偽のSELECT INTOであることを実行することです.SELEC TINTOで生成されたテーブルは、データベースに存在しない必要があります.そうしないと、エラーが発生します.この文を使用するには、いくつかのルールを守らなければなりません.一、SELECT INTOはログが記載されていないプロセスなので、完成品システム上でSELECTINTOを実行するときは、ロールバックによって操作を復元できないので、十分に注意しなければなりません.二、SELECT INTO文を実行する人は、このSELECT INTOを実行するデータベースにテーブルを作成する許可がある必要があります.三、SELECT INTO/BULK COPYデータベースオプションはSELECT INTOを実行するデータベースで開く必要がある.
SQL SELECT INTO文法
すべての列を新しいテーブルに挿入できます.
SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

または、希望する列のみを新しいテーブルに挿入します.
SELECT column_name(s)
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

例:
次の例では、「Persons」テーブルのバックアップ・コピーを作成します.
1.同じデータベースからテーブルおよびデータをコピーします.
SELECT *
INTO Persons_backup
FROM Persons

データを含まない別のテーブルのコピーを作成し、WHERE句の条件が偽のSELECT INTOであることを実行します.次のSQL文に示すように、Personsテーブルのみの空のコピーが作成されます.
SELECT *
INTO Persons_backup
FROM Persons WHERE 1=0

 2.データベース間でテーブルおよびデータをコピーするには、次の手順に従います.
select * into Persons_backup from Project.dbo.Persons

空のテーブルのみコピー:
select * into Persons_backup from Project.dbo.Persons where 1 = 0

3.一部のドメインをコピーしたい場合は、SELECT文の後にこれらのドメインをリストできます.
SELECT LastName,FirstName
INTO Persons_backup
FROM Persons

 4. 次の例では、「Persons」テーブルから「Beijing」に住んでいる人の情報を抽出することで、「Persons_backup」という2列のテーブルを作成します.
SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

 5.次の例では、PersonsとOrdersの2つのテーブルから取得した情報を含む「Persons_Order_Backup」という新しいテーブルを作成します.
SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

SELECT INTOを使用してExcelファイルをインポートしますが、SQL Serverのグラフィックスインタフェースを使用してexcelファイルをインポートすることをお勧めします.
1.データインポートを受け入れるテーブルが既に存在する場合
insert into   select * from
openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)

 2.データをインポートしてテーブルを生成する場合
select * into   from
openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)

この作成したテンポラリ・テーブルから目的のテーブルにデータを移動するには、次の方法をお勧めします.
insert into tablename ([field1],....) select [field1],.... from [ ]

この文はOracleのMerge into文に似ています.それはMerge intoの機能と同じです.
 
MySQLはSelect Into文の直接バックアップ表構造とデータをサポートしていません.仕事中の必要性から、ネット上で代替方法を見つけることができます.他の方法もあります.まとめは以下の通りです.
方法1:
 Create table new_table_name (Select * from old_table_name);

方法2:
1.テーブル構造とデータ#エクスポートコマンド-uユーザー名-pパスワード-hホストIPアドレスデータベース名テーブル名1>エクスポートファイルをバックアップする.sql
mysqldump -uroot -proot -h192.168.1.101 Project persons > persons.sql

   2.エクスポートされたsqlファイルでバックアップ・テーブルの名前を変更し、Persons_のように新しく作成したいテーブル名に変更します.backup
     3.MySQL 4にログインします.データベース5を選択します.実行:Sourceバックアップテーブルのパス:Sourced:persons.sqlは車に戻ればいいです.     6.完了
 
MySQL Select into outfile指定したクエリーデータをファイルにエクスポートするには、次のようにします.
1.テーブルのすべてのデータをDディスクルートディレクトリoutfile.にエクスポートする.txtでは次のようになります.
  Select * into outfile 'D:\\outfile.txt' from reiyendms.user_info

 2.Dディスクルートディレクトリoutfile 1へのクエリー条件LastName like%xiao%のデータのエクスポートtxtでは次のようになります.
Select * into outfile 'D:\\outfile1.txt' from reiyendms.user_info where last_name like '%xiao%'