CREATEでテーブルを作る
基本式:CREATE TABLE テーブル名 (カラム1 型, カラム2 型, ...);
例
CREATE TABLE my_items (id INT, item_name TEXT, price INT);
INSERTでデータを挿入する
SET
を使った書き方とVALUES
を使った書き方がある
基本式:
INSERT INTO テーブル名 SET カラム名1=値, カラム名2=値, ...;
INSERT INTO テーブル名(カラム名1, カラム名2, ...) VALUES (値1, 値2, ...);
例
INSERT INTO my_items SET id=1, item_name='レモン', price=500;
INSERT INTO my_items(id, item_name, price) VALUES (1, 'レモン', 500);
UPDATEでデータを変更する
条件文がでてきます。ここが最も難しく、しかしパワフルな部分です。とりあえず基礎を。
基本式:UPDATE テーブル名 SET カラム名1=値, カラム名2=値, ... WHERE 条件文;
例
UPDATE my_items SET price=200 WHERE id=1;
UPDATE
のSET
以降は変更するカラムだけ書けばいい。WHERE
以下の構文が条件で、ここではid=1
のデータを指定する。
DELETEでデータを削除する
基本式:DELET FROM テーブル名 WHERE 条件文;
例
/* my_itmesテーブルからidが1のデータを削除するなら */
DELETE FROM my_items WHERE id=1;
UPDATE
のSET
以降は変更するカラムだけ書けばいい。WHERE
以下の構文が条件で、ここではid=1
のデータを指定する。
SELECTでデータを検索する
基本式:SELECT カラム名1, カラム名2, ... FROM テーブル名 WHERE 条件文;
例
SELECT id, item_name FROM my_items WHERE id=1;
SELECT * FROM my_items WHERE id=1;
*
は全てという意味を持つ。これを指定するとわざわざカラム名指定しなくていい。
WHEREで条件指定する
SELECT
,UPDATE
,DELETE
ではWHERE
に続けて条件文を書いた。複雑な条件はたくさんあるが、よく使うものをいくつかピックアップ。
id | item_name | price | keyword |
---|---|---|---|
1 | いちご | 180 | 赤い、甘い、ケーキ |
2 | りんご | 90 | 丸い、赤い、パイ |
3 | バナナ | 120 | パック、甘い、黄色 |
4 | ベリー | 200 | 袋入り、青い、眼精疲労 |
データベースに上記のデータが入っていることを前提に。テーブル名はmy_items
|
不等号を使う
SELECT * FROM my_items WHERE id<>1;
/* idが1以外の商品 */
文章の部分検索LIKE
キーワード検索によく使われる。入力したキーワードを含んだ文章を検索できる。
前後を曖昧にした部分検索
keywordカラムに甘いというキーワードが含まれた商品だけを抜き出す
SELECT * FROM my_items WHERE keyword LIKE '%甘い%';
いちご、バナナをヒットさせた。LIKE
は半角空白に続けて検索したい文字を追加する。前後に%
をつけます。
後ろのみを曖昧にした検索(前方一致)
%
が部分検索の記号で、この部分にはどんな文字があってもいいということになる。
SELECT * FROM my_items WHERE keyword LIKE '赤い%';
これはいちごだけがヒットする。りんごにもキーワード「赤い」があるが、%
が後にしかついてないので、先頭にキーワード「赤い」があるやつを検索する。このように、%
の位置によって条件が変化する。
数の検索を組み合わせて使うAND, OR
複数の条件を全て満たすデータの検索
例えば、50円以上150円未満のものを探したいというとき
SELECT * FROM my_items WHERE price>=50 AND price<150;
AND
は「且つ」という条件になる
複数の条件のどれかを満たすデータの検索
idが1と3の商品を探したいというとき
SELECT * FROM my_items WHERE id=1 OR id=3;
OR
は「または」という条件になる。
複雑な条件での検索
SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%';
バナナがヒットします。
ORを使うときの注意
正確に条件を()
で囲わないと、正常に動作しなくなる。例えば
SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE `%甘い%`;
これでは180円のいちごがヒットしてしまう。