ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Hello World程度のデータベース(その27:外部スキーマ(11)SQLその10)

2007-07-08 14:58:19 | Weblog

 情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「Hello World程度のデータベース」です。

いま、SQLをやっています。
SQLは検索(select)、挿入(insert)、削除(delete)、更新(update)とあって、今回はUPDATEです。




■UPDATEの構文

 UPDATEの構文は、

 UPDATE テーブル名 SET 項目名=値,・・・・・ WHERE 条件式

のカタチです。
 で、このSET 項目名=値の値に対して
  ・固定値をセットする
  ・同一テーブルの項目値を(計算して)セットする
  ・他テーブルの項目値をセットする
 というケースがあります。




■固定値をセットする

 これは、簡単で、たとえば、OUBO_TBLのOUBOIDが4の人のOUBONENを2006にする場合、
UPDATE OUBO_TBL SET OUBONEN = 2006 WHERE OUBOID=4;

でいいわけです。OUBONENは数字なので2006のように、数字をかいていますが、
SEI_KANAのように文字項目だったら、SEI_KANA='こうさか'のように、'でかこみます。




■同一テーブルの項目値を(計算して)セット

 値のところには、計算式(関数で計算した結果もOK)がかけます。
 なので、たとえば、上記のもので、OUBONENを1足すというようにするのであれば、

 UPDATE OUBO_TBL SET OUBONEN = OUBONEN+1 WHERE OUBOID=5;

 となります。

 なお、計算式で計算する場合、同じ項目がいくつも出てきたらどうするのかについて、
 詳しくは、
 ここ http://dev.mysql.com/doc/refman/4.1/ja/update.html
UPDATE は左から右へ評価されますを参照してください。




■他テーブルの項目値をセットする
 MySQLでは、4.0からできるそうなのですが、他のテーブルの値を参照してセットすることが出来ます。その場合は、テーブル名で書くテーブルは、変更するテーブルだけでなく、参照するテーブルも書きます。また、WHERE句の後に書く条件は、JOIN句で書く条件も書きます。

 たとえば、SHAIN_TBLのNYUSYANENは、OUBO_TBLのOUBONENに1年足したものとします。
 (SHAIN_TBLのSHAINIDとOUBO_TBLのSHAINIDが、JOINするキー)
 その場合は、こんなSQLです。

UPDATE OUBO_TBL, SHAIN_TBL SET SHAIN_TBL.NYUSYANEN = OUBO_TBL.OUBONEN+1
WHERE OUBO_TBL.SHAINID=SHAIN_TBL.SHAINID;




ということで、UPDATEがおわりました。
ということでSQLもおわりで、
ということは、ここで3層スキーマの話も終わりということにします。

ということで、次回は、DB操作をするのは、どういう仕組みで行うかという話になります。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 「Amazonで90%以上OFFのお買... | トップ | ケータイで爆弾の遠隔操作だ... »
最新の画像もっと見る

Weblog」カテゴリの最新記事