LoginSignup
0
2

More than 5 years have passed since last update.

SELECT文を使いこなして、SQLデータベースから欲しいデータを取り出そう

Posted at

未来電子テクノロジーでインターンをしているyukako_nishimuraです。

リレーショナルデータベース

2次元の表みたいなもの。

id name grade
1 Tom 2
2 Jerry 3

SELECT文

SQLデータベースからデータを検索できます。

SELECT (DISTINCT) 表示するカラム(, …) 
FROM テーブル名
INNER/LEFT/RIGHT/FULL JOIN 結合するテーブル名 ON 結合条件
WHERE 検索条件
ORDER BY ソートするカラム ASC(昇順)/DESC(降順) 
LIMIT 表示する列数 OFFSET 表示する最初の列番号-1

重複を避ける

SELECTの後にDISTINCTをつけると、重複を省くことができます。

表示するカラムの指定

id name grade
1 Tom 2
2 Jerry 3

この場合のカラムは、

  • id
  • name
  • grade

の3つ。
全部表示したい場合は、カラムに*を指定。

表の結合の種類

内部結合と外部結合

内部結合は、結合条件にマッチする列のみを表示します。
つまり結合条件にマッチしない列は、表示しません。

外部結合は、片方の表にしか存在しない列も表示します。その場合、もう一方の列はNULLで表示します。

種類 意味
INNER 内部結合
LEFT 左側の表のカラムのみを全て表示する外部結合
RIGHT 右側の表のカラムのみを全て表示する外部結合
FULL 両方の表のカラムを全て表示する外部結合

検索条件

検索条件が複数ある場合

検索条件 AND/OR 検索条件 …

数値の比較演算子

演算子 意味
=, !=, <,>,<=,>= 数値の比較
BETWEEN … AND … 数字が範囲内にある
NOT BETWEEN … AND … 数字が範囲外にある
IN(数字,…) 数字のリストに含まれている
NOT IN(数字,…) 数字のリストに含まれていない

文字列の比較演算子

演算子 意味
=, !=, <> 一致、不一致
LIKE, NOT LIKE 一致、不一致(大文字小文字を区別しない)
IN(…), NOT IN(…) リストに一致するものがあるかどうか
% LIKE,NOT LIKEで使える。文字列中で使い、0個以上の任意の文字を表現
- LIKE,NOT LIKEで使える。文字列中で使い、1個の任意の文字を表現
0
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
0
2