LoginSignup
1
0

More than 5 years have passed since last update.

SQLの備忘録メモ

Last updated at Posted at 2019-04-15

間が空くと忘れてしまうのでメモ。
まだよくわかってない人のメモなので鵜呑みにしない。
https://sqlzoo.net/wiki/SQL_Tutorial/ja にひたすらチャレンジ。

用語

name price num
apple 100 1
lemon 200 2
Peach 300 3
テーブル
↑のテーブルのひとかたまり
カラム
列。name/price/name
レコード
行。apple/100/1 でワンセット
フィールド
エクセルで言う「セル」。apple/100/1/lemon…のそれぞれ1つずつ

基本の書き方

SELECT 出力データ FROM テーブル WHERE 条件

出力データの加工

DISTINCT

重複なしでデータを出力する。

https://sqlzoo.net/wiki/Scottish_Parliament の2の問題、

SELECT party.name, leader FROM msp 
RIGHT OUTER JOIN party ON msp.party = party.code
GROUP BY party.name, leader

でも、

SELECT DISTINCT(party.name), leader FROM msp 
RIGHT OUTER JOIN party ON msp.party = party.code

でもいいみたい。
party.name, DISTINCT(leader)は答えが一意にならないので×。

GROUP BY

WHEREの後。
指定カラム(複数可)のデータでまとめる。

複数テーブルの指定

基本の書き方。
JOINの部分は後述のJOINに差し替わる。
LEFT=table1、RIGHT=table2

SELECT * FROM table1
JOIN table2 ON table1.id = table2.id

INNER JOIN

table1にもtable2にもidが存在するテーブルが生成される。

LEFT OUTER JOIN

table1にidが存在するテーブルが生成される。
table2にidが存在しないフィールドはNULLになる。

RIGT OUTER JOIN

LEFTの逆。table2にidが存在するテーブルが生成される。

1
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
1
0