HOME»基本情報技術者試験掲示板»SQL CREATE分について
投稿する

SQL CREATE分について [0577]

 とも子さん(No.1) 
27年秋午後問3データベースの出荷表をCREATE文で作る場合、
出荷金額の項目は単価と出荷数をかけた値になるのですが、
どのように記述すればよいのでしょうか。
EXCELならわかるけど。
2016.02.29 18:25
がつくんさん(No.2) 
SQLはあまり詳しくないのですが、分かる範囲で回答します。
CREATE文は、表の型のみを定義するので、データの挿入はINSERTを使うことになります。
以下は、Microsoft SQL Server で 確認したものです。
まず、部品表を作ります。
------------------------
create table 部品表(
部品番号 char(6) primary key,
部品名 nchar(100),
単価 int
)

insert into 部品表 values
('007551',N'スイッチ',80)
------------------------
次に、出荷表を定義します。
--------------------------
create table 出荷表(
出荷番号 char(6) primary key,
顧客番号 char(4),
部品番号 char(6),
出荷数 int,
出荷金額 int,
出荷日 char(8)
)
---------------------------
次に、平成27年秋期 午後問3 図1の出荷表の1行目を追加したいと思います。
----------------------------
insert into 出荷表
select '150412','0181',部品番号,400,400*単価,'20150115'
from 部品表
where 部品番号='007551'
-----------------------------
このようにINSERTとSELECTを組み合わせると、1行ずつ追加できました。
複数行を一気に追加する方法は、わかりませんでした。
参考にしてください。
2016.02.29 21:33
がつくんさん(No.3) 
追記:
質問の意味が、「CREATEで定義するときに、その関係(出荷金額=単価*出荷数)を定義したい」ということだったなら回答になってませんね。それは僕もわかりません。すみません。以下は、その回避策です。

そもそも表を管理するときに、計算で導出できるものは取り払うのが良いようです。
そして、ビューとして、作りたい表を定義するのが良いと思います。
ビューなら、簡単に記述できますから。
2016.02.29 22:22
とも子の姉さん(No.4) 
がつくんさん。お返事ありがとうございます。
そうでした。正規化するとき導出項目は削除するのでしたね。
INSERT文にSELECT文を組み合わせているのも初めて見ました。
私もvisual studio でC言語を練習してますが、SQLの使い方が
まだわかりません。Oracle application Expressで練習してます。
2016.03.01 14:42
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop