|
[基本構文]
SQLの基本形はJetもSQLServerも同じ記述です。
Select文 |
Insert文 |
Update文 |
Delete文 |
Select 項目名1, 項目名2, : 項目名n from テーブル名 where 抽出条件式 order
by 並び順 |
Insert into テーブル名
(項目名1, 項目名2, : 項目名n ) values( 値1, 値2, : 値n ) |
Update テーブル名 set 項目名1 = 値1, 項目名2 =
値2, : 項目名n = 値n where 条件式
|
Delete from
テーブル名 where 条件式
|
[Select文]
どちらの記述方法でもJetとSQLServerに使用できます。
from句へ連結条件を記述 |
where句へ連結条件を記述 |
Select 項目名1, 項目名2, : 項目名n from テーブル名1 INNER JOIN
テーブル名2 ON テーブル名1.結合項目名 = テーブル名2.結合項目名 where 抽出条件式
|
Select 項目名1, 項目名2, : 項目名n from テーブル名1,テーブル名2 where テーブル名1.結合項目名
= テーブル名2.結合項目名 and 抽出条件式
|
(参考) この記述はOracleでは使用できません |
この記述はOracleでも使用できます |
複数のテーブルを連結して、1つのテーブルのように表示します。
JetもSQLServerも同じ記述です。
UNION |
Select 項目名1, 項目名2, : 項目名n from テーブル名1 where 抽出条件式 union
all select 項目名1, 項目名2, : 項目名n from テーブル名2 where 抽出条件式 order
by 並び順
|
(参考) union allと指定した場合には、すべてのレコードを抽出しますが、unionと指定した場合には、重複したレコードは返されません。
|
[Insert文]
JetもSQLServerも同じ記述です。
Select文を使用する |
Insert into テーブル名
(項目名1, 項目名2, : 項目名n ) select文
|
[Update文]
JetとSQLServerでは記述が異なります。
Jetの場合 |
SQLServerの場合 |
Update 更新テーブル名 INNER JOIN 参照テーブル名 ON 更新テーブル名.結合項目名 =
参照テーブル名.結合項目名 set 項目名1 = 参照テーブル名.項目名1, 項目名2 =
参照テーブル名.項目名2, : 項目名n = 参照テーブル名.項目名n where 抽出条件式
|
Update 更新テーブル名 set 項目名1 = 参照テーブル名.項目名1, 項目名2 =
参照テーブル名.項目名2, : 項目名n = 参照テーブル名.項目名n from 更新テーブル名 INNER JOIN
参照テーブル名 ON 更新テーブル名.結合項目名 = 参照テーブル名.結合項目名 where 抽出条件式
|
(参考) Updateの後へ更新テーブルおよび参照テーブルを指定 |
Update後へ更新テーブルをfrom句へ参照テーブルを指定 |
JetとSQLServerでは記述が異なります。
(例題)請求データの当月売上額へ売上データから売上額を集計し更新します。
Jetの場合 |
SQLServerの場合 |
Update 請求テーブル INNER JOIN 売上テーブル ON 請求テーブル.得意先コード =
売上テーブル.得意先コード set 当月売上額 = 請求テーブル.当月売上額 +
売上テーブル.売上額 where 期間条件式
|
Update 請求テーブル set 当月売上額 = (select sum(売上額) from
売上テーブル INNER JOIN 請求テーブル ON 売上テーブル.得意先コード =
請求テーブル.得意先コード where 期間条件式 )
|
(参考) 1レコードに複数回の更新が可能であるため、集計したい項目へ売上毎に加算する。サブクエリの値を更新することはできない。 |
1レコードに1回の更新しかできない。
サブクエリで集計を行いその結果を集計したい項目へ更新する。 |
[関数・演算子・その他]
Jetの場合 |
SQLServerの場合 |
#2002/08/31# |
'2002/08/31' |
(参考) 日付は#で囲む |
日付は'で囲む |
Jetの場合 |
SQLServerの場合 |
DateAdd("加減算単位",加減算数,#日付#) ・1日を加算 DateAdd("d",1,#2002/08/31#) ・1ヶ月を加算 DateAdd("m",1,#2002/08/31#) ・1年を加算 DateAdd("yyyy",1,#2002/08/31#) ・1年を減算 DateAdd("yyyy",-1,#2002/08/31#)
|
DATEADD(加減算単位,加減算数,'日付') ・1日を加算 DATEADD(d,1,'2002/08/31') ・1ヶ月を加算 DATEADD(m,1,'2002/08/31') ・1年を加算 DATEADD(yyyy,1,'2002/08/31') ・1年を減算 DATEADD(yyyy,-1,'2002/08/31')
|
(参考) 加減算単位を"もしくは'で囲む |
加減算単位を"などで囲む必要はない |
Jetの場合 |
SQLServerの場合 |
・指定した日付を日付型のデータとして値を返します。 cDate(#2002/08/31#)
・日付型データを指定した書式の文字列として値を返します。 format(日付,"yyyy/mm/dd") →"2002/08/31" format(日付,"yy/mm/dd") →"02/08/31"
|
・指定した日付を日付型のデータとして値を返します。 CAST('2002/08/31' AS
datetime)
・日付型データを指定した書式の文字列として値を返します。 CONVERT(char,日付,111) →"2002/08/31" CONVERT(char,日付,11) →"02/08/31"
|
文字列の連結演算子 (例題)文字列 "AAAAA" と "BBBBB" を連結して"AAAAABBBBB"の値を返します。
Jetの場合 |
SQLServerの場合 |
"AAAAA" & "BBBBB" |
"AAAAA" + "BBBBB" |
値がNull値の時、指定した値に置き換えます。 (例題)変数wAtaiがNullの時には、0に置き換えます。
Jetの場合 |
SQLServerの場合 |
Nz(wAtai,0) |
ISNULL(wAtai,0) |
式の評価結果により値を返します。
(例題)変数wAtaiが0の時には100を、0でない場合には200を返します。
Jetの場合 |
SQLServerの場合 |
Iif(wAtai=0,100,200) |
CASE wAtai WHEN 0 THEN 100 ELSE 200 END |
指定した数値の整数部分を返します。
下記の例ではどちらも 123 を返します。
Jetの場合 |
SQLServerの場合 |
Int(123.45) |
FLOOR(123.45) |
評価の結果値であるTrue(真)の値は、JetとSQLServerでは異なります。 ( False(偽)の値は、どちらも 0 )
Like演算子で使用するワイルドカード文字は、JetとSQLServerでは異なります。
Jetの場合 |
SQLServerの場合 |
名前項目 Like "*山田*" |
名前項目 LIKE "%山田%" |
[広告]
>>Home
|