SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)です。SQLは国際標準化されているので、MySQLやOracleなどのデータベースが変わったとしても、同じSQLで操作することが可能です。
[ リレーショナルデータベース ]
リレーショナルデータベースでは、データをExcelのように表形式のイメージでデータを保存しています。
RDBMSはデータベース内の「テーブル」に入っているデータを「SQL」という言語を使って操作します。主に以下のようなデータ操作が可能です。
・Create・・・データの生成(INSERT命令で追加)
・Read・・・・データの読み取りと表示(SELECT命令で実現)
・Update・・・データの更新(UPDATE命令で実行)
・Delete・・・データの削除(DELETE命令で実行)
※上記の4つの機能をCRUD(クラッド)「Create(生成)、Read(読み取り),Update(更新),Delete(削除)」といい、基本的にデータベースを使ったWebアプリはこれらの機能が前提になっています。
[ SQLの実行 ]
SQLは基本的はコマンドラインと言われるもので利用します。Macの場合はターミナルというソフトウェア、Windowsの場合はコマンドプロンプトというソフトウェアで利用しますが、ここではソフトを利用せずに、phpMyAdminのツールを使ってSQLを利用する方法をご紹介します。「SQL」というタブをクリックすると、大きなテキストエリアが表示されます。ここにSQLを記述することで、データベースにそのSQLの指示を与えることができます
SQLを記述する際には、次のような基本的なルールがあります。
- SQL文の最後にセミコロン「;」を付ける
PHPと同じ、SQLでも命令の終わりには;(セミコロン)を付けます。例:SELECT * FROM tables; - 大文字/小文字は区別しない
SQLでは命令部の大文字/小文字は区別しません。このため「SELECT」でも「select」でも構いませんが、キーワードは大文字で記述するのが慣例です。但し、データベース名やテーブル名、カラム名等は区別されます。 - 文字列はシングルクォーテーション「’」で囲む
例:INSERT INTO staff_list SET id=1, staff_name=’中村’, age=67;
※数値は何かで囲む必要はなく、そのまま記述します。 - カラムの設定文字数を超えない
カラムに設定した文字数を超える値を指定すると、その値は切り捨てられます。
テーブルの作成とデータの挿入(C)
XAMPPの起動
ApacheとMySQLの起動
phpMyAdminの起動
データベースの選択
jinjiを選択します。
テーブルの作成
SQLタブのクリック
SQL構文の入力(CREATE TABLE)
SQL実行結果
staff_listというテーブルができました。
注意:「返り値が空でした」と表示されますが、これは正常な動作です。
staff_listをクリックすると、idとstaff_nameとageという3つのカラムがあります。
データの挿入
SQLタブのクリック
SQL構文の入力(INSERT)
中身を消して、次のように入力します。
SQL実行結果
表示タブをクリックすると、
データの検索(R)
XAMPPの起動
ApacheとMySQLの起動
phpMyAdminの起動
データベースの選択
jinjiを選択
データの検索
SQLタブのクリック
SQL構文の入力(SELECT)
※SQLは、大文字で記述するのが慣例的です。
SELECTとは、テーブルの内容を見るという意味のSQLで、※は全て、FROMはどこから、tablesというのは、テーブルの名前となります。
SQL実行結果
テーブル(tables)の内容が表示されます。
「表示」タブをクリックすると
ここで表示タブをクリックすると同じSQLが発行されていることがわかります。つまり、表示タブをクリックした時と同じ動きをSQLで記述したのです。
データの変更・削除(UD)
データの変更
テーブルの選択
staff_listを選択します。現在、id=1、staff_name=中村、age=67のレコードが1件登録されています。この中村さんのage(年齢)を65に変更します。
SQLタブのクリック
SQLタブをクリックして、UPDATE構文を入力して、「実行」します。
※WHERE構文がなければ、全てのデータが対象となります。
SQL実行結果
表示タブをクリックすると
データの削除
テーブルの選択
staff_listを選択します。現在、id=1、staff_name=中村、age=67のレコードが1件登録されています。これを削除してみます。
SQLタブのクリック
SQLタブのクリックして、DELETE構文を入力して、「実行」します。
SQL実行結果
表示タブをクリックすると