【学習メモ】MySQL(取得)

スポンサーリンク

データを取得する

/* 基本 */
SELECT カラム名 FROM テーブル名;
//テーブルのカラムのデータを取得する

/* 複数のカラムのデータを取得する場合 */
SELECT カラム名1, カラム名2 FROM テーブル名;
//テーブルのカラム名1とカラム名2のデータを取得する
SELECT id, name FROM users;
//usersテーブルのidとnameのデータを取得する

テーブルのカラムのデータを全て取得する場合は✴︎(アスタリスク)をカラム名に指定する

SELECT * FROM テーブル名;
//テーブルのカラムのデータを全て取得する

AS + 付けたいカラム名

取得したデータを新しいカラム名で表示したいときはAS + 新しいカラム名とする

SELECT カラム名 AS "名前" FROM users;
//usersテーブルのカラムのデータを取得し、"名前"というカラム名で表示する
SELECT name AS "名前" FROM users;
//usersテーブルのnameのデータを取得し、"名前"というカラム名で表示する
スポンサーリンク

データを絞り込む

WHERE

WHEREの後ろに絞り込みのための条件を書くことで取得するデータの絞り込みができる

SELECT カラム名 FROM テーブル名 WHERE 条件式;
記号意味
>大きい
>=以上
<少ない
<=以下
=等しい
!=等しくない
ANDかつ
ORまたは
条件式で使う記号たち
SELECT name FROM users WHERE id = 2;
//usersテーブルのidが2のnameのデータを取得する

SELECT name FROM users WHERE id >= 2;
//usersテーブルのidが2以上のnameのデータを取得する

SELECT name FROM users WHERE id = 2 AND name="Aoyama";
//usersテーブルのidが2、nameがAoyamaのデータを取得する

以上、以下のときはbetween A AND BIN (A, B)がそれぞれ使える。

SELECT * FROM テーブル名 WHERE カラム名 between A AND B;
//AかつB

SELECT * FROM テーブル名 WHERE カラム名 IN (A, B);
//AまたはB
SELECT * FROM users WHERE id between 1 AND 3;
//idが1以上3以下
//id >= 1 AND id <= 3と同じ意味

SELECT * FROM users WHERE id IN (1, 3);
//idが1または3
//id = 1 OR id = 3と同じ意味

NOTをつけることで条件を反転できる。

SELECT * FROM テーブル名 WHERE NOT 条件式;
//条件式に当てはまらない
SELECT * FROM users WHERE NOT id=2;
//idが2ではない

部分一致で絞り込む

%

LIKEと%を使うことで0文字以上の任意の文字を含むデータを取得できる

SELECT * FROM テーブル名 WHERE カラム名 LIKE "〇〇%";
//〇〇で始まる

SELECT * FROM テーブル名 WHERE カラム名 LIKE "%〇〇";
//〇〇で終わる

SELECT * FROM テーブル名 WHERE カラム名 LIKE "%〇〇%";
//〇〇が含まれる

_(アンダーバー)

任意の1文字

SELECT * FROM テーブル名 WHERE カラム名 LIKE "_〇〇";
//1文字+〇〇で終わる

空のデータの取得するNULL

中身のデータがないカラムを取得する場合はNULLを使う

SELECT * FROM テーブル名 WHERE カラム名 is NULL;
//カラム名がないもの

SELECT * FROM テーブル名 WHERE カラム名 is not NULL;
//カラム名がNULLでないもの

表示件数を変えるLIMIT

LIMIT + 数字で表示件数を変えられる

SELECT * FROM テーブル名 LIMIT 数;
//指定した件数を表示

並べ替えるORDER BY

データを並び替える場合はORDER BYを使う

SELECT * FROM テーブル名 ORDER BY 並び替えの条件;

並べ替えたものの順番を変える場合はASCDESCをそれぞれ使う

SELECT * FROM テーブル名 ORDER BY 並び替えの条件 ASC;
//昇順

SELECT * FROM テーブル名 ORDER BY 並び替えの条件 DESC;
//降順

絞り込みの条件を増やす場合はカンマで区切る

SELECT * FROM テーブル名 ORDER BY 並び替えの条件1, 並び替えの条件2;
//条件1で絞ったあと、条件2で絞る

WHEREと組み合わせてもOK

SELECT * FROM テーブル名 WHERE 条件 ORDER BY 並び替えの条件;

重複データを除くDISTINCT

重複データを除くときはDISTINCTを使う

SELECT DISTINCT カラム名 FROM テーブル名;
//重複データを除いたカラム名を一覧で取得

データを操作する

集計関数

関数名意味
SUM合計
AVG平均
MAX最大値
MIN最小値
COUNTレコード数を数える
/*   データの取得   */
SELECT SUM(カラム名) FROM テーブル名;
//カラム名の合計を出す

SELECT AVG(カラム名) FROM テーブル名;
//カラム名の平均を出す

SELECT MAX(カラム名) FROM テーブル名;
//カラム名の最大値を取得

SELECT MIN(カラム名) FROM テーブル名;
//カラム名の最小値を取得

SELECT COUNT(カラム名) FROM テーブル名;
//カラムの数を取得

グループ分けするGROUP BY

「~ごとの」、「~毎の」という感じでグループ分けしたい時に使う

SELECT カラム名 FROM テーブル名 GROUP BY カラム名;
//カラム名ごとのデータをグループ化する

GROUP BYの結果をさらに絞り込む場合はWHEREではなくHAVINGを使う

SELECT カラム名 FROM テーブル名 GROUP BY カラム名 HAVING 条件;
//カラム名ごとのデータをグループ化し、さらにそれを条件で絞り込む

コメント