時計を壊せ

駆け出してからそこそこ経ったWebプログラマーの雑記

卒研

本当は卒研じゃないけどそれに非常に近い位置づけなのでそのまま書いちゃいます。
学生の学生による学生のためのグループウェアなるものをFreeBSDとApatch 2とPerl(mod_perl2)とMySQLで作ってます。

なにやったのか

基本情報持ってるくせにSQLへの理解が甘かったので復習も兼ねて卒研の時間全部SQLいじくって遊んで実験してました。

注意点

  • データベースソフト毎に微妙にコマンドが違ったり型名が違ったりするので注意が必要。SQL92に従った記述でもエラーになる場合がある。
  • SQLは複数行になってもOK。ただし、SQLの最後にはセミコロンを付ける。
  • 名前に使用不可能な文字が含まれている場合、若しくは予約語と一致する場合は`*1で名前を囲む必要がある。
  • 列の名前に*(アスタリスク)を使用するとワイルドカードして働き、全ての列を指定したときと同じ挙動をする。

基本コマンド

  • SHOW DATABASES;*2でテーブル一覧を表示。
  • USE データベース名;*3で使用するデータベースを指定してからコマンド実行。
  • SHOW TABLES;*4でテーブル一覧を表示。
  • DROP TABLE テーブル名;*5で指定したテーブルを削除。
  • SELECT * FROM テーブル名;でテーブルのデータを全て取得。

SELECT

構文:SELECT 列の名前をカンマ区切り FROM テーブル名 WHERE 条件;
効用:FROMで指定したテーブルからSELECT直後で指定した列を取得。WHEREで条件を指定した場合、更に条件を満たす行という制約が加わる。

INSERT

構文:INSERT INTO テーブル名(列の名前をカンマ区切り) VALUES (入れる値をカンマ区切り) ;
効用:テーブルに値を追加できる。CREATE TABLE時に指定した条件に従ってないとエラー。

DELETE

構文:DELETE FROM テーブル名 WHERE 条件;
効用:テーブルから条件に合う行を削除できる。

今日はここまで

もう寝ないと明日に響くのでまた明日。
もし間違っている部分があれば指摘していただけると有難いです。

*1:ただしこれはMySQLの場合。データベースソフト毎に異なる記号で区切る。

*2:ただしこれはMySQLの場合。データベースソフト毎に異なるのかは未調査。

*3:ただしこれはMySQLの場合。データベースソフト毎に異なるのかは未調査。

*4:ただしこれはMySQLの場合。データベースソフト毎に異なるのかは未調査。

*5:ただしこれはMySQLの場合。データベースソフト毎に異なるのかは未調査。