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] SELECT文でWHEREを使う

Posted at

はじめに

  • SQLの学習に着手したので、SELECTとWHEREを中心にまとめておく
  • SQL入門1日目

SELECT

SELECT カラム1, カラム2, カラム3
FROM テーブル名

このようにして、テーブルからカラムを取得する

[カラムを計算する]

前提:gdp(国民総生産)とpopulation(人口)についてのカラムがある

①gdp/population(国民一人当たりの国内総生産)として取得できる
SELECT (gdp/population) FROM world
②数値で割ることも可能
SELECT population/1000000 FROM world
③端数を丸めることができる

ROUND(カラム/数値, 桁数)

SELECT ROUND(population/1000000,2 FROM world

意味:人口(100万人単位)を小数点以下2桁

SELECT文におけるWHERE

WHEREについていくつかまとめておく
[比較演算子]
SELECT カラム
FROM テーブル
WHERE 条件 = 1000

条件 = 数値とすれば良い

意味
「=」両辺等しい
「<」右辺が大きい
「<=」右辺が大きいか両辺が等しい
「>」左辺が大きい
「>=」左辺が大きいか両辺が等しい
「<>」両辺が等しくない

[IN/NOT IN演算子]
SELECT カラム
FROM テーブル
WHERE カラム IN ( '値1', '値2', '値3')

指定のカラムの値が指定の値のいずれかと合致するレコードを抽出
NOT INの場合は、一致しないレコードを抽出

[LIKE文]
SELECT カラム
FROM テーブル
WHERE カラム LIKE ’%任意の文字列%’

任意の文字列を含むレコードの指定

[OR/AND]
SELECT カラム
FROM テーブル
WHERE 条件 OR 条件

SELECT カラム
FROM テーブル
WHERE 条件 AND 条件
排他的論理和も可能

前提:area(面積)とpopulation(人口)についてのカラムがある

SELECT カラム
FROM テーブル
WHERE (area >= 3000000 AND population < 250000000) OR (area < 3000000 AND population >= 250000000)

次のいずれかを満たす(*いずれかしか満たさない)

  • 面積が3000000以上
  • 人口が250000000以上
[LENGTH関数]

前提:first_nameとfamily_nameについてのカラムがある

SELECT カラム
FROM テーブル
WHERE LENGTH(first_name) = LENGTH(family_name)

文字数が同じレコードを抽出

最後に

⚠️学習4ヶ月目の初学者による投稿です。
⚠️間違いがあるかもしれません。ご容赦ください。
⚠️ご指導、ご教授いただけると幸いです。

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?