データベースtest_db
に2つのテーブルtest_tbl
とanimal
を作ったので,これを使ってデータの操作を行います。
まず,phpMyAdminのメニューから操作を行ってtest_tbl
に下記の3つのデータを挿入してみましょう。
id | name |
---|---|
1 | 生物1 |
2 | 生物2 |
3 | 生物3 |
test_tbl
行にある「挿入」をクリックします。
id = 1
, name = "生物1"
をtest_tbl
に挿入してみましょう。idの値に1を,nameの値に生物1と入力し,右下の「実行」ボタンをクリックします。id = 2
, name = "生物2"
も挿入してみて下さい。実行後は下記のように2行分の値があることを確認して下さい。
すべての行に「id」があるのは,全てのフィールドが同じ値であっても区別できるようにするためです。このように,挿入するごとに必ず違う値になるように整数値を設定する機能として,MySQLにはオートインクリメント(Auto Increment, A_I)というものがあります。
test_tbl
の3行目のデータのidを指定せずに挿入すると,自動的に「3」になるようidフィールドの設定を変更してみましょう。
test_tbl
の「構造」をクリックし,idフィールドの「主」(主キー, primary keyの意味)をクリックし,主キーになるよう設定します。
test_tbl
の構造を表示し,「id」がAUTO_INCREMENT
に変更されていることを確認する。
idフィールドをオートインクリメントに設定できたら,次のように,idを空白にして値を挿入しても,idは自動的に値が増えて保存されることが確認できます。
以上,当初の目的通り,3行分のデータが挿入できました。
以前の最大id + 1
になり,連番ではなくなります。この辺が気にある人はオートインクリメントの使用をやめるか,無理やりにでも上書きする他ありません。データの一意性を保持するための仕組みなので,オートインクリメントを使用する以上は,飛び飛びのid値になっても気にしないようにしましょう。次はSQL文の一つであるINSERT命令を使用しての値の挿入です。これは前回作ったanimal
テーブルを使用して実行してみましょう。
id | name | size |
---|---|---|
1 | トカゲ | 20 |
CREATEと同様にSQLの欄を選択した後,下記のSQL文を入力してください。この時数字以外の文字を入力する場合は'
または"
で囲む必要があります。
INSERT命令を使う際には,テーブル作成の時に設定したカラム名にデータ型に沿った値を入力することが肝要です。
続いて入力したデータを変更してみましょう。 ここからの操作は1度作成したデータに再び手を加えることになるので, SQL文ではどの既存データを変更するのか,きちんと特定することが重要になります。
引き続きanimalで作業を行います。新しく使用する条件文に注意しましょう。
今回は項目が少ないのでサイズしか変えていませんが,多数のデータを同時に変更することもできます。
そうする場合は,
で区切りをつけて変更項目を増やしましょう。
WHEREの条件文は条件に当てはまるすべての項目が選択されるため,条件によっては複数個選択することもできます。
テーブルや値の消去です。 DELETE命令を使ったSQL操作では,指定の間違いによって必要以上にデータを消してしまうことが起こり得ます。一度消去したデータは復活できないので注意しましょう。
animalテーブルのid = 1
のデータを消去してみましょう。
DELETE命令を実行するときには,phpMyAdminを使う場合,下記のような表示が出るのでOK
をクリックしましょう。
テーブルを選択し,その中の条件文に合うデータを消去します。単純な操作ですが,条件次第で消したくないデータまで消してしまうことがあるので,きちんとデータを特定できる条件を作っておきましょう。
今までは,テーブル全体のデータ表示だけを行ってきましたが,条件を指定して表示範囲を限定することもできます。
先にDELETE命令でデータを消してしまったので,INSERT命令を利用し,animalテーブルにに下記の3種類のデータを入力して下さい。
次に,検索の欄をクリックして条件文としてid
の値に2
を入力して実行してください。
この結果,id = 2
のトリ
のデータのみが表示されるはずです。
このphpMyAdminのGUI画面では表示カラムの選択はできません。
SELECT命令に条件を追加することで,必要なデータの必要な箇所だけを取り出して表示することができるようになります。下記ケースではanimal
テーブルのid = 3
であるデータのうち,id
とname
だけを表示します。
SELECT命令の場合,他のSQL命令とは異なり,カラム名を先に指定するので順番には注意しましょう。全てのカラムを指定する時は,*(アスタリスク)
を使います。