0
0

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 1 year has passed since last update.

SQL文基礎 (データの取得編)

Posted at

こちらの記事について

「基本的なSQL文をざっと見たい!」または「SQLでこの動きをしたいんだけどなんだったっけ?」という方向けです。
このは基礎的なSQL文をまとめています。
自己学習のアウトプットと誰かの役に立てればと思い書きました。
⚠️こちらの記事につきまして初心者が書いたものになります。表現が間違っていることがございます、ご了承ください。

まずSQL文とは

SQL文とはRDBMS(リレーショナルデータベース管理システム)を操作するための言語になります。
まずRDBMSってなんだよ(´Д`;)/
RDBMSでは今回深くは追求しませんがイメージしやすいのはエクセルのような縦、横とマスがあり縦にそれぞれの種類、横にそれぞれの種類にそったデータがどんどん入っていくイメージです。またデータベースの中にテーブルというものがありそちらに値が入るものになります。
下にテーブルのサンプルを用意しましたので参考までに!

データベース

下のテーブルはある飲食店のドリンクメニューをテーブルに起こしたものになります。
idカラム:それぞれのデータに番号を振っています。
name:商品名
price:値段
temp:hotかiceか

drinksテーブル

id name price temp
1 お茶 100 ice
2 オレンジジュース 200 ice
3 ホットコーヒー 300 hot
4 アイスコーヒー 300 ice
5 紅茶 300 hot

取得

・FROM

どこのテーブルから取得するかを指定する際に使用する。

・SELECT

どのカラムを取得するのかを指定する。

SELECT name, price 
FROM drinks;

結果

name price
お茶 100
オレンジジュース 200
ホットコーヒー 300
アイスコーヒー 300
紅茶 300

・WHERE

テーブル内に入っている値を検索する際に使用する。
検索に使われるものとして比較演算子,LIKE演算子がある。

drinkesテーブルからname,priceカラムをとってくる。

SELECT name, price 
FROM drinks
WHERE price=300;

結果

name price
ホットコーヒー 300
アイスコーヒー 300
紅茶 300

drinkesテーブルからname,priceカラムをとってくる。
priceが300未満の時。

SELECT name, price 
FROM drinks
WHERE price<300;

結果

name price
お茶 100
オレンジジュース 200

drinkesテーブルからname,priceカラムをとってくる。
条件としてnameが~コーヒーだったとき
⚠️「コーヒー」の時でも含まれます。

SELECT name, price 
FROM drinks
WHERE name LIKE '%コーヒー';

結果

name price
ホットコーヒー 300
アイスコーヒー 300

・AND演算子

条件式にて条件をもっと絞り込みたいと思った時これを使うべき!
drinkesテーブルからname,priceカラムをとってくる。条件としてpriceが300の時かつtemoがhotの時。

SELECT name, price 
FROM drinks
WHERE price=300 AND temp="hot";

結果

name price
ホットコーヒー 300
紅茶 300

・OR演算子

AND演算子では全ての条件が当てはまらなければ処理が実行されないがOR演算子の場合ではどれか一つの条件が当てはめまれば処理が実行される
drinkesテーブルからname,priceカラムをとってくる。条件としてpriceが300の時またはtemoがhotの時。

SELECT name, price 
FROM drinks
WHERE price=300  OR temp="hot";

結果

name price
ホットコーヒー 300
アイスコーヒー 300
紅茶 300

・ORDER BY

さてテーブルからデータを取得しくる際に並び順を変えたいと思ったことはないでしょうか?
その際に使うのが*ORDER BYです。
こちらはカラムを昇順/降順と並び替えてくれる代物です。
ちなみに昇順の場合はASC、降順はDESCで指定ができる。(何も指定をしていなかったらデフォルトの昇順になる)

SELECT * 
FROM drinks
ORDER BY price DESC;

※ SELECTの後ろに記述のある「*」は全てのカラムという意味です。
結果

id name price temp
3 ホットコーヒー 300 hot
4 アイスコーヒー 300 ice
5 紅茶 300 hot
2 オレンジジュース 200 ice
1 お茶 100 ice

・LIMIT

テーブルから取得する際にどのくらいの数のレコードを取得するかを指定する際に使用するものになります。

SELECT * 
FROM drinks
LIMIT 3;
id name price temp
1 お茶 100 ice
2 オレンジジュース 200 ice
3 ホットコーヒー 300 hot
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?