#データベース
表のことを「テーブル」、行を「レコード」、列を「カラム」という
カラムごとにデータ型を設定する
数値データはクォーテーションで囲わない
日付データはクォーテーションで囲う
#データを取得する
SELECT name,price #(カラム名)
FROM purchases; #(テーブル名)
#クエリ終了は;
#全てのカラムを取得する
SELECT *
FROM purchases;
#特定のデータを取得する
SELECT *
FROM purchases
WHERE category = '食費';
#比較演算子が利用できる(日付データでも利用可)
#LIKE演算子
SELECT *
FROM purchases
WHERE category LIKE = '%税%';
#文字列の中に税を含むデータを取得する
#税で始まる文字列'税%'、税で終わる文字列'%税'
#NOT演算子
SELECT *
FROM purchases
WHERE NOT category LIKE = '%税%';
#税を含まないデータを取得する
#NULLデータを取得する
SELECT *
FROM purchases
WHERE category IS NULL;
#NULLではないデータを取得する
SELECT *
FROM purchases
WHERE category IS NOT NULL;
#AND演算子
SELECT *
FROM purchases
WHERE category = '食費'
AND name = '外食';
#OR演算子
SELECT *
FROM purchases
WHERE name = '食料品'
OR name = '外食';
#データを並び替える
#ORDER BY
SELECT *
FROM purchases
WHERE category = '食費'
ORDER BY price DESC;
#ASC:ascend(昇順)、DESC:descend(降順)
#特定範囲のデータを取得する
#LIMIT
SELECT *
FROM purchases
WHERE category = '食費'
ORDER BY price DESC
LIMIT 10;
#MAXとMIN
SELECT MAX(price)
FROM purchases
WHERE category = '食費';
#一番高額な食費のpriceを取得する
#特定のデータを取り除く
#DISTINCT
SELECT DISTINCT(name)
FROM purchases;
#重複したデータを取り除く
#データを使って計算する
#四則演算
SELECT name,price,price*1.08
FROM purchases;
#priceに1.08をかける
#SUM関数
SELECT SUM(price)
FROM purchases
WHERE category = '食費';
#食費のpriceを合計する
#AVG関数
SELECT AVG(price)
FROM purchases
WHERE category = '食費';
#食費のpriceの平均値を計算する
#COUNT関数
SELECT COUNT(price)
FROM purchases
WHERE category = '外食';
#外食の回数を計算する
#priceが空欄(NULL)の場合はCOUNTされない
#COUNT(*)の場合はNULLもCOUNTされる
#データをグループ化する
#GROUP BY
SELECT SUM(price),purchased_at
FROM purchases
GROUP BY purchased_at;
#日付ごとにpriceの合計を計算する(1日の支出がわかる)
#GROUP BYを使えるのは、GROUP BYに指定しているカラム名と集計関数のみ
#WHEREの後にGROUP BYを記述する
#複数のカラムをグループ化する
SELECT COUNT(price),purchased_at,category
FROM purchases
GROUP BY purchased_at,category;
#日付ごとに、categoryごとの買い物回数をまとめる
#HAVING
SELECT SUM(price),purchased_at
FROM purchases
WHERE category = '食費'
GROUP BY purchased_at
HAVING SUM(price) >= 1000;
#グループ化したデータを絞り込む
#サブクエリ(入れ子)
#サブクエリ()
SELECT name
FROM purchases
WHERE price >(
SELECT price
FROM purchases
WHERE name = '焼肉'
);
#焼肉よりも高額な支出を抽出する
#カラム名を変更する
#AS
SELECT price AS '焼肉料金'
FROM purchases
WHERE name = '焼肉';
#カラム名をpriceから焼肉料金に変更
#複数のテーブルからデータを取得する
主キーと外部キーでテーブルを紐づける
#JOIN,LEFT JOIN
SELECT shops.name
FROM purchases
JOIN shops
ON purchases.shop_id = shops.id
WHERE purchases.name = '焼肉';
#purchasesテーブルの外部キーをshopsテーブルの主キーと紐づける
#焼肉のお店が一覧表示される
#LEFT JOINにすればidがNULLのデータも取得できる
#JOIN ONを使えば、複数のテーブルを結合できる
#タスクの順序
テーブルの指定(FROM)→結合(ON,JOIN)→取得条件(WHERE)→グループ化(GROUP BY)→関数(COUNT,SUM,AVG,MAX,MIN)→HAVING→検索(SELECT,DISTINCT)→順序(ORDER BY)→LIMIT
#データを追加する
#INSERT
INSERT INTO purchases(name,price)
VALUES('焼肉',1000);
#AUTO INCREMENTによって、idとid番号は自動で挿入される
#データを更新する
#UPDATE
UPDATE purchases
SET name = 'ハンバーグ',price = 800
WHERE id = 5;
#データを削除する
#DELETE
DELETE FROM purchases
WHERE id = 5;
#取得・追加・更新・削除
取得:SELECT カラム名 FROM テーブル名;
追加:INSERT INTO テーブル名(カラムA,カラムB) VALUES(値1,値2);
更新:UPDATE テーブル名 SET カラムA = 値1,カラムB = 値2 WHERE 条件;
削除:DELETE FROM テーブル名 WHERE 条件;