1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者向け】SQL文の基礎まとめ

Last updated at Posted at 2020-06-24

はじめに

  • 今回は改めてSQLについて学び直す機会があったので、SQLの基礎について書きたいと思います。

  • 簡単なサンプルデータを使いつつ、解説とともに実行したデータを画像として貼っているので分かりやすくなっていると思います。

  • 初心者の方で「SQLよく分からない」や「SQL知ってるけど学び直す機会を作ってもう一度知識を入れなおしておきたい」といった方向けに書きたいと思います。

実行環境

※SQLが実行できる環境なら他のものでも問題ないです。

基本的なSQL文

  • 下に簡単なサンプルデータを置いておきますので、試しながらやってみてください。
サンプルデータ
CREATE TABLE fruits
    (`id` int, `name` varchar(6), `price` int);
    
INSERT INTO fruits
    (`id`, `name`, `price`)
VALUES
    (01, 'apple', 150),
    (02, 'orange', 200),
    (03, 'kiwi', 350),
    (04, 'cherry', 400),
    (05, 'banana', 320),
    (06, 'grape', 550)

SELECT文

  • SELECT文はデータベースからデータを取得するために使います。
SELECT文
基本構文 SELECT 項目 FROM テーブル;

 SELECT name FROM fruits;

  • 例だとnameは項目でfruitsはテーブルとなるので、fruitsというテーブルからnameだけを取得してきます。(項目の部分を*(アスタリスク)にすることでデータを全て取得できるので試してみてください)

  • このSQL文を実行すると以下の画像のようになります。
    SELECT.PNG

WHERE句

  • このWHEREはSELECT文の後ろに記述して使います。これを使うことによって絞り込みができます。

  • WHEREで使える比較演算子

比較演算子 説明
= 等しい
> 大きい
< 小さい
>= 以上
<= 以下
!= 等しくない
<> 等しくない
  • WHEREで使える論理演算子
論理演算子 説明
AND 2つの条件の両方が真
OR 2つの条件のうち、どちらか一方が真
NOT 式の結果を反転
BETWEEN a AND b 対象がaとbの範囲内
IN 対象が条件の1つに一致
LIKE 対象が条件に含まれる
WHERE句
基本構文 SELECT 項目 FROM テーブル WHERE 条件;

 SELECT name,price FROM fruits WHERE price >= 400;

  • 例だとname,priceで名前と価格をfruitsというテーブルから取得し、WHEREで絞り込みをしてpriceが400以上のものだけを取得してきます。

  • このSQL文を実行すると以下の画像のようになります。
    WHERE.PNG

DELETE文

  • DELETE文はデータベースからデータを削除するために使います。
DELETE文
基本構文 DELETE FROM テーブル WHERE 条件;

 DELETE FROM fruits WHERE name = 'banana';
   SELECT name FROM fruits;

  • 例だとfruitsというテーブルを取得し、WHEREで絞り込みをしてnameがbananaのものを削除します。

  • このSQL文を実行してすると以下の画像のようになります。
    DELETE.PNG

UPDATE文

  • UPDATE文はデータベースのデータを更新するために使います。
UPDATE文
基本構文 UPDATE テーブル SET 項目 =  WHERE 条件;

 UPDATE fruits SET price = 600 WHERE name = 'orange';
   SELECT name,price FROM fruits;

  • 例だとfruitsというテーブルを取得し、WHEREで絞り込みをしてnameがorangeのpriceを600に更新します。

  • このSQL文を実行してすると以下の画像のようになります。
    UPDATE.PNG

INSERT文

  • INSERT文はデータベースにデータを追加するために使います。
INSERT文
基本構文 INSERT INTO テーブル VALUES ('値','値','値'); 
//VALUESの値は追加したいデータによって変わります。

 INSERT INTO fruits VALUES (07,'muscat',800);
   SELECT * FROM fruits;

  • 例だとfruitsというテーブルを取得し、VALUESの中に記述した値をデータベースに追加します。

  • このSQL文を実行してすると以下の画像のようになります。
    INSERT.PNG

データの並べ替え(ソート)

ORDER BY句

  • ORDER BYはデータベースのデータを並べ替え(ソート)するために使います。
ORDERBY
基本構文 SELECT 項目 FROM テーブル ORDER BY ソートしたい項目 ASC(昇順)DESC(降順);
//昇順か降順を指定しなかった場合は昇順になります。

 SELECT name,price FROM fruits ORDER BY price DESC;

  • 例だとname,priceで名前と価格をfruitsというテーブルから取得し、ORDER BYでpriceを降順で並び替えます。

  • このSQL文を実行してすると以下の画像のようになります。
    ORDERBY.PNG

データのグループ表示

GROUP BY句

  • GROUP BYはデータベースのデータをグループ表示するために使います。

  • GROUP BYでは下にあるサンプルデータを使用します。初めに使用していたサンプルデータに産地を追加で記述しています。

サンプルデータ
CREATE TABLE fruits
    (`id` int, `name` varchar(6), `price` int,`origin` varchar(8));
    
INSERT INTO fruits
    (`id`, `name`, `price`,`origin`)
VALUES
    (01,'apple', 150,'america'),
    (02,'orange', 200,'japan'),
    (03,'kiwi', 350,'america'),
    (04,'cherry', 400,'japan'),
    (05,'banana', 320,'france'),
    (06,'grape', 550,'japan');
GROUPBY
基本構文 SELECT 項目 FROM テーブル GROUP BY グループにまとめる項目;

 SELECT origin,SUM(price) FROM fruits GROUP BY origin;

  • 例だとorigin,SUM(price)で産地とpriceの合計をfruitsというテーブルから取得し、GROUP BYでoriginの合計した価格を表示します。

  • このSQL文を実行してすると以下の画像のようになります。
    GROUPBY.PNG

テーブルの結合

テーブルの結合に関してはこの方の記事が分かりやすいので、下にリンクを貼らせていただきます。
SQL素人でも分かるテーブル結合(inner joinとouter join)

最後に

今回はSQL文の基礎を自分のアウトプットも兼ねてまとめました。
SQLは覚えることは多いですが、実際に手を動かしながら学んでいけばすぐに使えるようになると思います。
次回はまた何かしらのアウトプットか自分が興味のある面白そうな技術について書きたいと思っています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?