ゼロから始めるPHP講座Vol22 phpMyAdminの基礎と使い方②


ゼロから始めるPHP講座Vol22 phpMyAdminの基礎と使い方②
目次
  1. ゼロから始めるPHP講座phpMyAdminの基礎と使い方その2
  2. クエリとSQL
  3. レコードの追加
  4. データ検索
  5. 課題

ゼロから始めるPHP講座phpMyAdminの基礎と使い方その2

クエリとSQL

人間が「データベースに伝える処理」を文字列として表したのがクエリ(query)です。データの追加や更新、削除などの命令は、クエリで行います。

レコードを追加するクエリ INSERT INTO ・・・
レコードを選択するクエリ SELECT * FROM ・・・

このクエリを書く規則が、SQL(Structured Query Language)という言語です。

これからレコードの追加/選択/変更/削除といった操作をSQLで行う方法を学んで行きますが、PHPに限らずどのプログラミング言語でもMySQLを扱う際のSQLは共通となります。

なお先ほど行ったテーブル作成も、phpMyAdminの内部では「CREATETABLE」というSQLを実行しています。

ただし、RDBMSの種類ごとにSQLの文法は少しづつ異なります。基本は同じですが、微妙に異なる書き方をします。もしMySQL以外のデータベースを利用することになった際は注意が必要です。

SQLの基本的なルールとして、以下の4つがあります。

大文字/小文字は区別しない
SQLでは命令部の大文字/小文字は区別しません。このため「INSERT」でも「insert」でも構いません。ただしデータベース名やテーブル名、カラム名は、環境によっては区別されますので、正確に入力してください。本講義ではSQLの命令は大文字で統一しています。

文字列は「’」で囲む
文字列は’(シングルクォート)で囲みます。”(ダブルクォート)も使用可能ですが、様々な理由から文字列は’を使って囲むべきです。

カラムの設定文字数を超えない
カラムに設定した文字数を超える値を指定すると、その値は切り捨てられます。しかしMySQL設定により切り捨てでなくエラーとすることも可能で、本講義ではエラーが出る設定にしてあります。

命令の最後に「;」を付ける
PHPと同じ、SQLでも命令の終わりには;(セミコロン)を付けます。

レコードの追加

レコードをテーブルに追加するには、INSERT文を使います。

phpmyadmin-2-1-639

テーブル名の後の「()」中にカラムを、VALUESの後の「()」中にカラムの中に入れるデータを、「,(カンマ)」で区切って記述します。カンマで区切ったカラムとデータの順番は連動しています。

goods_tableのレコードを追加する場合、SQLは次のようになります。

phpmyadmin-2-2-639

実際にテーブル「goods_table」にデータを追加してみましょう。 phpmyadmin-2-3-639

phpmyadmin-2-4-639

phpmyadmin-2-5-639

goods_table
goods_id goods_name price
コーラ 100
USB 2000
500
お茶 100

phpMyAdmin上でも表示されておりますが、4行のレコードが追加されました。これでgoods_tableのテーブル作成とデータ追加は完了しました。

次にデータ検索を、goods_tableに対して行っていきます。

データ検索

データ検索には、SELECT文を使います。

phpmyadmin-2-nuke1-639

表示させたいカラムを、「,(カンマ)」で区切って記述します。

例えばgoods_tableのカラム「good_id」と「goods_name」を表示させる場合、SQLは次のようになります。

phpmyadmin-2-nuke2-639

実際にデータ検索を行い、結果を表示してみましょう。phpmyadmin-2-6-639

phpmyadmin-2-7-639

goods_table
goods_id goods_name price
コーラ 100
USB 2000
500
お茶 100

phpMyAdminに「good_id」と「goods_name」のデータだけが表示されました。また実行結果の上には、実行されたSQLや実行時間、取得レコード数も表示されています。

よくみると実行したSQLには「LIMIT0,30」という記述が付いています。これは表示をページに収めるために「30行だけ表示する」という命令がphpMyAdminにより自動的に付けられています。

今回カラムを1つずつ指定してSELECTを行いましたが、「*」(アスタリスク)を使うことで、「全部のカラム」という指定を行うもできます。

phpmyadmin-2-8-639

これにより、指定したテーブルの全てのカラムのデータを取得することができます。

goods_table
goods_id goods_name price
コーラ 100
USB 2000
500
お茶 100

一見便利に見えるアスタリスクですが、必要のないカラムのデータまで取得すると、データ量が増えた際にパフォーマンス低下に繋がることがあります。

よって後々のことを考え、基本的にカラム名指定を心がけましょう。

課題

次の表と同じテーブル作成、レコード追加を行ってください。

character_table
character_id character_name pref
ふなっしー 千葉県
ひこにゃん 滋賀県
まりもっこり 北海道

また作成したテーブルの全データを表示してください。

character_table
character_id character_name pref
ふなっしー 千葉県
ひこにゃん 滋賀県
まりもっこり 北海道

次の表と同じテーブル作成、レコード追加を行ってください。

emp_table
emp_id emp_name job age
山田太郎 manager 50
伊藤静香 manager 45
鈴木三郎 analyst 30
山田花子 clerk 24

また作成したテーブルより、emp_idとemp_nameのみ表示してください。

emp_table
emp_id emp_name job age
山田太郎 manager 50
伊藤静香 manager 45
鈴木三郎 analyst 30
山田花子 clerk 24

 

NEXT LESSON ☛ データの条件指定

PREV LESSON ☛ phpMyAdminの基礎と使い方①


CodeCampus編集部
この記事を書いた人
CodeCampus編集部
まずは7日間お試し!人気プログラミング講座を無料公開中
オンライン・プログラミングレッスンNo.1のCodeCamp