はじめに
今回はデータベースでのデータの操作についてアウトプットしていこうと思います!
SQLによるデータの操作
データを操作する場合にはDMLを使います!
DML
DMLとは、データを操作するSQLです!
以下のような命令文があります!
- データの登録をするINSERT
- データの更新をするUPDATE
- データの削除をするDELETE
- データの検索をするSELECT
SELECT
SELECTとは、データを取得する際に使用するSQL句です!
取得するカラムを指定する際は以下のような記述をします!
mysql> SELECT 《カラム名》 FROM 《テーブル名》
また、テーブルに登録されている全てのカラムのデータを取得する時には以下のように記述をします!
mysql> SELECT * FROM 《テーブル名》
*はワイルドカードと言います!
ワイルドカード
ワイルドカードは全てのパターンにまっいするものという意味をもち、文字の代わりとして使うことができる特殊な記号の一つです!
SELECTでは*は全てのカラムというワイルドカードとして定義されています!
INSERT
INSERTは、テーブルにデータを登録するためのSQL文です!
INTOというくと組み合わせてINSERT INTOとして使用します!
また、実際に設定する値は、VALUESという句の後に入力します!
以下のように記述します!
全てのカラムに値を入れる時 mysql> INSERT INTO 《テーブル名》 VALUES(値1, 値2, 値3);
特定のカラムのみに値を入れる場合 mysql> INSERT INTO テーブル名(カラム名1, カラム名2) VALUES(値1, 値2);
データの更新
UPDATE
UPDATEは、データを更新する時に使うSQLの句です!
使用する際には、テーブル名を指定し、SETという句の後に変更内容、WHEREという句の後に条件を指定します!
以下のような記述をします!
mysql> UPDATE 《テーブル名》 SET 《変更内容》 WHERE 《条件》;
データの削除
DELETE
DELETEは、データの削除に使うSQLの句です!
これは、テーブル名を指定するためにFROMと、条件を指定するためにWHEREを併せて使用します!
以下のように記述します!
mysql> DELETE FROM 《テーブル名》 WHERE 《条件》;
Sequel ProからSQL文を実行するメリット
これのメリットは以下のようなことが挙げられます!
- 検索は長いSQL文を要するが、タイプミスをした時にその場所だけを直せば再実行できる
- 検索は場合によって非常に多くの出力を伴うが、実行したSQL文が流れてしまうことがないため見やすい
- SQL文の実行に末尾に;をつけなくてもいい
データの検索
WHERE
WHEREは取得できるデータを条件によって制限できる句です!
WHERE句では、取得するレコードの条件を指定し、その条件が正のレコードを取得します!
記述は以下のようになります!
WHERE 《条件》
例としてはこんな感じです!
WHERE id = 1 WHERE last_name = "阿部" WHERE id <= 5
このように比較演算子でも使えます!
LIKE
LIKEとは、WHERE句と併用して使うことで文字列検索を行うことができる句です!
以下のように記述します!
WHERE 《列名》 LIKE '検索文字'
曖昧検索として%というワイルドカードも使用できます。
AND演算子
AND演算子とは、複数の条件を指定して式を作り、その条件が全て正である時、式が正になります!
以下のような記述になります!
WHERE 《a》 AND 《b》
OR演算子
OR演算子とは複数の条件を指定して式を作り、その条件のうちどれか1つ以上で正であれば、式は正になります!
以下のような記述になります!
WHERE 《a》 OR 《b》
NOT演算子
NOT演算子とは、1つの条件を指定して式を作り、その条件に当てはまらないものを取得します!
以下のような記述になります!
WHERE NOT 《a》
BETWEEN演算子
BETWEEN演算子とは、1つのカラムに対して上限と下限を指定して式を作り、カラムの値がその範囲含まれる時に、その式は正になるという演算子です!
以下のような記述になります!
WHERE 《カラム名》 BETWEEN 《下限》 AND 《上限》
IN演算子
IN演算子とは、1つのカラムに対してリストを指定して、カラムの値がそのリストに含まれす時、その式は正となる演算子のことです!
以下のような記述にあります!
WHERE 《カラム名》 IN (値1, 値2, ……)
複雑なデータの取得
JOIN
JOINを使用すると、指定したカラムに登録された値が一致するデータを元に各テーブルのレコードを結合できます!
記述はこんな感じです!
FROM 《テーブル名1》 JOIN 《テーブル名2》 ON 《テーブル名1.カラム名1》 = 《テーブル名2.カラム名2》
CONCAT
CONCATとは、複数の文字列を連結できる句です!
以下のような記述になります!
CONCAT(文字列1, 文字列2, ……)
GROUP BY
GROUP BYとは、ある特定のデータごとに、平均値や総量などを集計するときに用いる句です。この時に、ある特定のデータをグループ化すると言います!
GROUP BY カラム名
COUNT
COUNTは、グループ化されたデータに対して使用できる、データの総量をカウントするための句です。カラムを指定することで、そのカラムのデータの行数を取得できます!
SELECT COUNT(カラム名)
サブクリエ
サブクエリとは、ある検索結果を使用して、別のSQL文を実行する仕組みのことです!
コメント