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

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

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

2007-07-01 14:05:13 | 土日シリーズ

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

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




■削除DELETEの構文

 テーブルにあるレコードを削除するには、

 DELETE FROM テーブル名;

 で削除できます。削除できますけど、これだと、全部のレコードを削除してしまいます。
 ふつう、削除したいのは、なんか、特定の1レコード、あるいは複数レコードですので、これに条件がつくことが多いです。
 条件をつけるには、

 DELETE FROM テーブル名 WHERE 条件文;

 となります。

 たとえば、OUBO_TBLのOUBOIDが5のレコードを削除するには

   DELETE FROM OUBO_TBL WHERE OUBOID=5;

 と書きます。なお、Accessでは、これでも動きますが、一回保存して、開くと、
 DELETE * FROM OUBO_TBL WHERE OUBOID=5;と書かれてしまいます。

 この*に関しては、複数テーブルに関係あるのですが、あんまり使わないと思うので、
 知りたい人は、
 ここ http://dev.mysql.com/doc/refman/4.1/ja/delete.html
 の下のほうにある複数テーブルの削除の説明を見てください。




■レコード全削除

 上記で、全部のレコードを削除するには、

 DELETE FROM テーブル名;

 とかきましたけど、

 TRUNCATE TABLE テーブル名;

 でも、レコード全削除できます。この違いは、

http://dev.mysql.com/doc/refman/4.1/ja/truncate.html

を見てください。

 なお、どちらも、成功時は、正常終了の値(0)が返るとおもいます。

 削除した件数を返したい場合は、

 DELETE FROM テーブル名 WHERE 絶対成立する条件;

 と、「絶対成立する条件」を書きます。たとえば、1=1とか、1>0とか、なんでもいいです。




■レコード全削除と、テーブルごと削除

 なお、DELETE , TRUNCATE TABLEは、レコードを全部削除するだけで、テーブル自体はのこります。だからそのあと、INSERTすれば、レコードは入ります。

 そうではなく、テーブルごと削除したい場合は、

 DROP TABLE テーブル名;

 をつかいます。そうするると、テーブル定義ごとなくなってしまいます。つぎにINSERTしても、テーブルがないので、失敗します。
 くわしくは、
ここ http://dev.mysql.com/doc/refman/4.1/ja/drop-table.html

 なお、DROPは、TABLEだけではなく、DROP INDEXとかDROP DATABASEとか、ほかにも、なくしちゃうのに使います。




ということで、DELETEは、ここまで



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 電子政府に国民という視点は... | トップ | 日本のコンテンツの将来とか... »
最新の画像もっと見る

土日シリーズ」カテゴリの最新記事