データの操作(DML)
データの登録
- INSERT文
ターミナル
INSERT INTO テーブル名 VALUES(値1,値2,値3); #全てのカラムに値を入れる場合。
INSERT INTO テーブル名(カラム1,カラム2) VALUES(値1,値2); #特定のカラムに値を入れる場合。
データの更新
- UPDATE文
ターミナル
UPDATE テーブル名 SET 変更内容 WHERE 条件;
# 例えば UPDATE comments SET text = "hello!" WHERE id = 2;
# これでid=2のtextカラムがhello!に変更される。
データの削除
- DELETE文
ターミナル
DELETE FROM テーブル名 WHERE 条件;
# 例えば DELETE FROM goods WHERE id = 2;
# id=2のレコードが削除される。
基本的な検索の構文
検索するテーブルを指定する。
- FROM句
ターミナル
FROM テーブル名; #テーブルの指定。
取得するカラムを指定する。
- SELECT句
※SELECT句にはワイルドカード()というのがある。
※ワイルドカードとはメソッドのようなもので文字の代わりとして使うことができる記号。
※アスタリスク()の意味は全て取得という意味。
ターミナル
SELECT カラム名; #取得するカラム名の指定。
SELECT *; #全てのカラムを取得。
SELECT句はカラムの指定のため、テーブルもセットで指定しておかなければいけない。
よって、SELECT句とFROM句は一緒に記述する。
取得するレコードを制限する。
- WHERE句
※WHERE句では比較演算子や論理演算子を使用することができる。
※WHERE句は単体では使用できないのでSELECT句やFROM句と一緒に使用する。
ターミナル
SELECT * FROM テーブル名 WHERE 条件;
# 例えば SELECT * FROM goods WHERE name = "ペン";
# nameカラムにペンとデータが入っているものを取得する。
論理演算子を使用して検索
- AND演算子
AND演算子は複数の条件を指定することができ、その条件が全て正であるとき式は正となる。
ターミナル
SELECT * FROM users WHERE age <= 22 AND prefecture = "神奈川県";
# これでusersテーブルの中の22歳以下で、出身が神奈川県のユーザーが取得できる。
- OR演算子
OR演算子は複数の条件を指定することができ、その条件のいずれかが正であるとき式は正となる。
ターミナル
SELECT * FROM users WHERE age = 20 OR prefecture = "東京都";
# usersテーブルの20歳もしくは東京都出身のユーザーを取得できる。
- NOT演算子
NOT演算子は一つの条件を指定して式を作り、条件が誤となる(当てはまらない)ものを取得する。
ターミナル
SELECT * FROM users WHERE NOT prefecture = "神奈川県";
# 出身が神奈川県でないユーザーを全て取得する。
他の便利な検索条件の指定方法
単一カラムの範囲検索
ターミナル
SELECT * FROM users WHERE age <= 22 AND age >= 20;
# ageカラムのデータが20歳以上22歳以下のユーザーを取得する。
上記でageを2回書いてしまっているので、冗長。
これを解決するには.......
- BETWEEN演算子
BETWEEN演算子は一つのカラムに対し上限下限を指定して式を作り、カラムの値がその範囲に含まれる時に取得することができる。
ターミナル
SELECT * FROM users WHERE カラム名 BETWEEN 下限 AND 上限;
単一カラムのリスト検索
- IN演算子
ターミナル
SELECT * FROM users WHERE カラム名 IN(値1,値2,...);
# これで指定したカラムの値が両方取得できる。