1

OK、私はSQLを学んでいて、SQLServerをインストールしたばかりです。外部結合と内部結合について読みましたが、どちらが必要かわかりません。基本的に、「切り刻まれた」テキストファイルを5つの小さなテキストファイルに再構築したいと思います。列は、名前、年齢、電話番号など、5つのテキストファイルすべてで同じです。唯一の違いは、データの行数が異なることです。

私がやりたいのは、各ファイルのデータを1つの「メガファイル」に「追加」することです。すべてのデータを含むテーブルを作成する必要がありますか、それともビューを作成するだけですか?次に、これをどのように実装しますか...ユニオンを使用しますか?どんなガイダンスでもありがたいです、ありがとう。

4

2 に答える 2

1

の使用を検討する必要がありますUNION

SELECT * 
FROM TABLE1 
UNION
SELECT * 
FROM TABLE2

そして、ビューを作成するだけです。特にデータが変更された場合は、テーブルを保存する必要はありません。

于 2013-01-15T19:06:57.983 に答える
1

5つのファイルをマージするという当面の目標を超えて、テキストファイルに含まれるデータをより柔軟な分析のために一般的に利用できるようにしたいように思われます。

これが必要になる理由の例は、他のデータをテキストファイルのデータとマージする必要がある場合です。(そうでない場合は、Odedが適切であり、logparserまたはVisual Log Parserを使用する必要があります。)

テキストファイルにはすべて同じ列が含まれているため、1つのテーブルに挿入できます*。

  1. テーブルを定義するCREATEステートメントを発行します
  2. 新しく作成したテーブルにデータを挿入します**
  3. クエリ述語でよく使用される可能性のあるフィールドにインデックスを作成します
  4. クエリを作成するか、ビューを作成して、必要なデータを提供します

*テーブルにデータを配置したら、テーブルにビューを作成することを検討できますが、開始するには、アドホッククエリを実行するだけです。

**他の方法でステップ2を実行できることに注意してください。または、プログラムでINSERTステートメントを作成して発行することもできます。

上記の各手順の例を以下に示します。テストされた例は、http ://sqlfiddle.com/#!6 / 432f7/1にあります。

-- 1.
CREATE TABLE mytable 
    (
     id int identity primary key, 
     person_name varchar(200), 
     age integer,
     tel_num varchar(20)
    );

-- 2. or look into BULK INSERT option https://stackoverflow.com/q/11016223/42346
INSERT INTO mytable
    (person_name, age, tel_num)
VALUES
    ('Jane Doe', 31, '888-888-8888'),
    ('John Smith', 24, '888-555-1234');

-- 3.
CREATE UNIQUE INDEX mytable_age_idx ON mytable (age);

-- 4.
SELECT id, person_name, age, tel_num
FROM mytable
WHERE age < 30;
于 2013-01-15T19:21:51.883 に答える