SQL基礎:レコード追加(INSERT文)
次に、restaurantテーブルにレコードを追加してみましょう。レコード追加はINSERTという命令を用います。まずは早速、店舗情報を追加してみましょう。CREATE TABLEの時と同じように画面上の[SQL]タブをクリックし、次のSQLを実行してください。
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('1','吉祥寺','うさぎや','2000');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('2','高円寺','パンケーキーズ','2000');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('3','千葉','ビストロアーシュ','3500');
INSERT INTO restaurant(restaurant_no,address,name,price) VALUES('4','新宿','エスパーニャ','3000');
INSERT命令は以下の書式で記述します。
INSERT INTO テーブル名(カラム名1, カラム名2…) VALUES('値1','値2'…);
カラム名1に対して値1を、カラム名2に対して値2を格納します。上記のSQLではrestaurant_noに「1」を、addressに「吉祥寺」を、といった対応でデータを格納しています。値の部分は、シングルクオート(‘)で囲むようにしましょう。
SQL基礎:レコード検索(SELECT文)
それでは、追加したレコードの中身を見てみましょう。レコードの検索はSELECTという命令を用います。同じ手順で以下を実行してください。
SELECT * FROM restaurant;
次のように店舗情報が表示されていれば成功です。
SELECT文の書式は次のとおりとなります。
SELECT 取得したいカラム名1, 取得したいカラム名2… FROM テーブル名 WHERE 絞込み条件
カラム名に、取得したいカラムを指定します。すべてのカラムを指定する場合はアスタリスク(*)を使います。
また、「絞込み条件」を指定することで、ある条件に合致するレコードのみを取得できます。絞込み条件が不要な場合は「WHERE 絞込み条件」の部分を記述しません。絞込み条件はPHPのif文の条件の記述と似ており、次のような指定が可能です。
文字列に対する絞込み
カラム名 = 検索文字カラム名 LIKE 検索文字
→カラムの値が検索文字に一致するレコードを表示(完全一致)
WHERE address = '吉祥寺'
→カラムの値に検索文字を含むレコードを表示(部分一致)
WHERE name LIKE '%ビストロ%'
WHERE name LIKE 'ビストロ%'
WHERE name LIKE '%ビストロ'
数値に対する絞込み
カラム名 > 数値カラム名 < 数値カラム名 >= 数値カラム名 <= 数値
→ カラムの値が数値より大きいレコードを表示
WHERE price > 2000
→ カラムの値が数値より小さいレコードを表示
→ カラムの値が数値以上のレコードを表示
WHERE price >= 2000
→ カラムの値が数値以下のレコードを表示
LIKEを使った検索では、何らかの文字が入る可能性がある箇所をパーセント記号(%)で表します。例えば「WHERE name LIKE 'パンケーキ%ズ'」と記載すれば、nameカラムが「パンケーキイヤーズ」や「パンケーキーズ」のカラムが検索されます。では、実際のSQLで表示を確認してください。
SELECT * FROM restaurant WHERE name LIKE '%ビストロ%';
「ビストロアーシュ」が検索されたかと思います。次に検索結果の全カラムを表示するのではなく、名前と住所カラムのみを表示するようにしましょう。次のようにアスタリスクの部分をカラム名に変えます。
SELECT name,address FROM restaurant WHERE name LIKE '%ビストロ%';
また、PHPの条件分岐と同じく、複数の条件をつなぐことも可能です。その場合、ANDとORを用います。
条件1 AND 条件2条件1 OR 条件2
→ 条件1で、かつ条件2
→ 条件1または条件2
例えば、エリアが吉祥寺で予算が1000円以上の店舗を探すのであれば、
SELECT * FROM restaurant WHERE address = '渋谷' AND price >= 1000;
と記述します。
エリアが吉祥寺または5000円以下で探すのであれば、
SELECT * FROM restaurant WHERE address = '吉祥寺' OR price <= 5000;
と記述します。
このように、SQLではさまざまな条件をつけて検索できます。条件に関してより詳しく知りたい方は、[Smart]のSQL講座・SELECT構文のページなどを参考にしてみてください。
| ←前のページ【データベース操作の基礎】へ | 次のページ【SQL基礎:レコード更新(UPDATE)】へ→ |

