OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

SQL文のテーブルについて

  • すぐに回答を!
  • 質問No.142073
  • 閲覧数182
  • ありがとう数3
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 13% (100/761)

テーブル表のいくつかの列と、もう1つテーブル表のいくつかの列を選んで、新しいテーブル表を作るにはどういった文がありますか?

よろしくお願いします。
通報する
  • 回答数6
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル11

ベストアンサー率 29% (74/253)

Oracleの場合、"create table **** as select ~"
を実行すれば、検索結果に従ったテーブルを作成できます。

Oracleのユーザ"scott"で説明します。

ユーザ"scott"で以下のSelect文を実行してください。

[実行SQL文]
select dept.deptno, dept.dname, emp.empno, emp.ename
from dept, emp
where dept.deptno=emp.deptno and
dept.deptno=10;
 ↓
[実行結果]
DEPTNO DNAME EMPNO ENAME
------------------------------------------
10 ACCOUNTING 7782 CLARK
10 ACCOUNTING 7839 KING
10 ACCOUNTING 7934 MILLER


次に、この検索結果を元に新規にテーブルを作成するSQL文を実行します。

[実行SQL文]
create table test1 as
select dept.deptno, dept.dname, emp.empno, emp.ename
from dept, emp
where dept.deptno=emp.deptno and
dept.deptno=10;


上記のテーブルの内容を確認します。

[実行SQL文]
select * from test1;
 ↓
[実行結果]
DEPTNO DNAME EMPNO ENAME
------------------------------------------
10 ACCOUNTING 7782 CLARK
10 ACCOUNTING 7839 KING
10 ACCOUNTING 7934 MILLER
-PR-
-PR-

その他の回答 (全5件)

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

SELECT ~ INTO ~ こちら(参考URL)はPostgreSQLのものですが、お使いのDBMSでも使用出来るはずです。 ...続きを読む
SELECT ~ INTO ~

こちら(参考URL)はPostgreSQLのものですが、お使いのDBMSでも使用出来るはずです。
補足コメント
fm0606

お礼率 13% (100/761)

素人なもので、あのホームページではちょっとわかりかねます。

なにか簡単な例文を書いていただけるととてもありがたいです。お願いします。
投稿日時 - 2001-09-27 10:19:23


  • 回答No.2
レベル8

ベストアンサー率 45% (18/40)

おはようございます。 DBが記入されてないので、代表的なところでいくつか・・・ Accessの場合 「Select 必要項目 Into 新規テーブル名 From 元テーブル1と元テーブル2のリレーション Where 条件」 の1文でできます。 Oracleの場合 2文になります。 「Create Table 新テーブル(必要項目)」 「Insert Into 新テーブル名 (入 ...続きを読む
おはようございます。

DBが記入されてないので、代表的なところでいくつか・・・

Accessの場合
「Select 必要項目 Into 新規テーブル名 From 元テーブル1と元テーブル2のリレーション Where 条件」
の1文でできます。

Oracleの場合
2文になります。
「Create Table 新テーブル(必要項目)」
「Insert Into 新テーブル名 (入力項目) Select 必要項目 From 元テーブル1と元テーブル2のリレーション Where 条件」

こんな感じです。

実表を作る必要が無いのであれば、仮想表(Viewとかクエリー)で対応することも可能です。

また、SQL文といってもDBにより少しづつちがうので、できればDBの種類だけでも書いておいてくださいね。

何かあれば補足してください。
  • 回答No.3
レベル11

ベストアンサー率 34% (97/285)

例をひとつ。 select tableA.col1, tableB.col1 into 新しいテーブル名 form tableA join tableB on tableA.col1 = tabeleB.col1 where tableA = 'XXX' 普通にselect文を作成した後に、fromの前に「into 新しいテーブル名」を入 ...続きを読む
例をひとつ。

select tableA.col1,
tableB.col1
into 新しいテーブル名
form tableA join tableB
on tableA.col1 = tabeleB.col1
where tableA = 'XXX'

普通にselect文を作成した後に、fromの前に「into 新しいテーブル名」を入れるだけです。

マウス操作でもっと簡単にできますが、製品ごとの固有の部分になるのでパスします。
補足コメント
fm0606

お礼率 13% (100/761)

質問です。新しいテーブルと書いてあるのですが、そのテーブルの中にはvarchar型とかそういった情報とかはいらないのですか?
ただ単にテーブルを作ってそのまま上の文で作れるのでしょうか?
投稿日時 - 2001-09-27 11:00:30
  • 回答No.4
レベル11

ベストアンサー率 34% (97/285)

再びstorkです。 >そのテーブルの中にはvarchar型とかそういった情報とかはいらないのですか SQLサーバーで確認したところ、もとの列のデータ型が引き継がれるようです。 列名はselect句で使用している列名がそのまま新しいテーブルの列名になります。 その他の製品については、詳しくは分かりませんがほぼ同じだと思います。 >ただ単にテーブルを作ってそのまま上の文で作れるのでしょ ...続きを読む
再びstorkです。

>そのテーブルの中にはvarchar型とかそういった情報とかはいらないのですか
SQLサーバーで確認したところ、もとの列のデータ型が引き継がれるようです。
列名はselect句で使用している列名がそのまま新しいテーブルの列名になります。

その他の製品については、詳しくは分かりませんがほぼ同じだと思います。

>ただ単にテーブルを作ってそのまま上の文で作れるのでしょうか?
#3の例はテーブルを作成しますので、あらかじめテーブルを作成する必要はありません。
既にテーブル名が存在する場合は、エラーになるか確認のメッセージが表示されると思います。

既に存在するテーブルに追加する場合は、oribeyakiの回答にあるようにinsert into句を使用します。

oribeyakiさんも書いてらっしゃいますがデータベースは何を使っているんですか?ものによっては製品固有の部分がひっかかるかもしれません。
補足コメント
fm0606

お礼率 13% (100/761)

何度もすみません。
オラクル8iを使っています。
何度もためしているのですが、うまいこといきません。

WHEREの条件にはなにをいれればよいのですか?
前の文ではある元のテーブルの条件一つしか入ってなかったですが・・・。
お手数かけます。
投稿日時 - 2001-09-27 12:57:10
  • 回答No.6
レベル5

ベストアンサー率 50% (2/4)

単純な方法ですが、以下のような方法はどうでしょうか? ・create_tableコマンドで、新しいテーブルを作成する。 ・insert into 新テーブル名 select ~~ from ~~; と新しいテーブルにデータを投入するsqlを発行する。 あまり、難しく考えないで簡単なコマンドを組み合わせで もできるかと思います。 (注.ユーザサービス中はDBの整合性を考えるとできな ...続きを読む
単純な方法ですが、以下のような方法はどうでしょうか?

・create_tableコマンドで、新しいテーブルを作成する。
・insert into 新テーブル名 select ~~ from ~~;
と新しいテーブルにデータを投入するsqlを発行する。

あまり、難しく考えないで簡単なコマンドを組み合わせで
もできるかと思います。
(注.ユーザサービス中はDBの整合性を考えるとできない
コマンドですので、サービス時間外にしてください。)

fm0606さんの質問と回答ズレてますか?
このQ&Aで解決しましたか?
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ