意図を伝える

実世界の課題にSQLを適用する

Dmitriy (Dima) Gorenshteyn

Lead Data Scientist, Memorial Sloan Kettering Cancer Center

なぜ重要か

誰が気にするスマイリー

「…設計どおりに動くなら、書き方なんて誰が気にするのか…」

実世界の課題にSQLを適用する

…6 か月後には

苛立つ人

実世界の課題にSQLを適用する

AS を常に使う

例(改善前)

SELECT title film_title
FROM film;

例(改善後)

SELECT title AS film_title
FROM film;
実世界の課題にSQLを適用する

どの JOIN か明示

例(改善前)

SELECT category, length
FROM film AS f
JOIN category AS c
ON f.film_id = c.film_id;

例(改善後)

SELECT category, length
FROM film AS f
INNER JOIN category AS c
ON f.film_id = c.film_id;
実世界の課題にSQLを適用する

適切な別名の使用

例(改善前)

SELECT category, length
FROM film AS x1
INNER JOIN category AS x2
ON x1.film_id = x2.film_id;

例(改善後)

SELECT category, length
FROM film AS f
INNER JOIN category AS c
ON f.film_id = c.film_id;
実世界の課題にSQLを適用する

適切な別名の使用

例(改善前)

SELECT category, length
FROM film AS x1
INNER JOIN category AS x2
ON x1.film_id = x2.film_id;

例(改善後)

SELECT category, length
FROM film AS f
INNER JOIN category AS c
ON f.film_id = c.film_id;
SELECT category, length
FROM film AS fil
INNER JOIN category AS cat
ON fil.film_id = cat.film_id;
実世界の課題にSQLを適用する

コメントを使う

/* システムテーブル information_schema.columns を使い、
各テーブルの列名をカンマ区切りで生成 */
SELECT table_name, STRING_AGG(column_name, ', ') AS columns
FROM information_schema.columns
-- すべてのデータは public スキーマにあります。
WHERE table_schema = 'public'
GROUP BY table_name;
/* 複数行コメント */
-- 1 行コメント
実世界の課題にSQLを適用する

意図は何でしたか?

実世界の課題にSQLを適用する

Preparing Video For Download...