ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: テーブル作成と行追加を同時に行なう
名前: lightbox
処理選択
パスワード

件名 テーブル作成と行追加を同時に行なう
名前 lightbox
コメント
[[基本構文]]
@DIV
CREATE TABLE 表名
   [ ( 列リスト) ]
AS
   ( サブクエリー )
@END

@C:green(
列リストを指定せずに、サブクエリーのSELECT 句で * のみを指定すると、同じフォーマットの
表が作成され、SELECT 文の結果となる行が全て追加されます)

※ その際、制約は NOT NULL 制約しかコピーされません

@DIV
create table 社員
 as
select * from 社員マスタ
@END

@C:green(
空の表を作成したい場合は、副問合せの WHERE句の条件が一致しないようにします)

@DIV
create table 社員
 as
select * from 社員マスタ @c:red(where 1 = 2)
@END

@C:green(
列名リストを指定すると制約やデフォルト値を設定可能です)

@DIV
create table 社員 (
	社員コード
	,氏名
	,フリガナ
	,支給額 @c:red(default 0)
	,primary key( 社員コード )
)
 as
select
	社員コード
	,氏名
	,フリガナ
	,NVL(給与,0)+NVL(手当,0)
from
	社員マスタ
@END

@HTML
<TABLE class="LboxTable" border="0" cellspacing="1" bgcolor="#000000">
<TR class="LboxTr"><TH class="LboxTh" bgcolor="#C0C0C0" nowrap></TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>列名</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>型値</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>型定数</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>型名</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>最大桁</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>精度</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>スケール</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>NULL</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>主キー</TH><TH class="LboxTh" bgcolor="#C0C0C0" nowrap>デフォルト</TH></TR>
<TR class="LboxTr"><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>1</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>社員コード</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>129</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>adChar</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>VARCHAR2</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>4</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>N</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>1</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD></TR>
<TR class="LboxTr"><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>2</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>氏名</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>129</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>adChar</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>VARCHAR2</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>50</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD></TR>
<TR class="LboxTr"><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>3</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>フリガナ</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>129</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>adChar</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>VARCHAR2</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>50</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD></TR>
<TR class="LboxTr"><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>4</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>支給額</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>131</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>adNumeric</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>NUMBER</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>15</TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap></TD><TD class="LboxTd" bgcolor="#FFFFFF" nowrap>0</TD></TR>
</TABLE>
@HEND

デフォルト値を持つ列は、insert 文で列リストで指定されない場合に
その値が設定されます。

↓支給額は、0 がセットされる 
@DIV
insert into "社員" (
	"社員コード" 
	,"氏名" 
	,"フリガナ" 
)
 values(
	'0051'
	,'浦岡 友也'
	,'ウラオカ トモヤ'
)
@END

また、SQL 内で、その値をあらわすキーワードとして使用可能です

@DIV
update "社員" set 
	"氏名" = '浦岡 友也'
	,"フリガナ" = 'ウラオカ トモヤ'
	,"支給額" = @C:red(default)
 where
 "社員コード" = '0051'
@END