Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
非エンジニアのSQL入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ham
May 18, 2021
0
68
非エンジニアのSQL入門
ham
May 18, 2021
Tweet
Share
More Decks by ham
See All by ham
AIと過ごす1日〜全業務フローにAIを組み込む実践ガイド〜
ham0215
0
110
生成AIによる生産性向上〜テック企業やファインディの活用事例〜
ham0215
1
100
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
500
データ駆動経営の道しるべ:プロダクト開発指標の戦略的活用法
ham0215
2
450
開発組織における意思決定の実例〜開発優先度・組織構成・ツール導入〜
ham0215
0
110
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
500
アウトカムを最速で最大化できる開発組織にするために
ham0215
1
210
コード品質向上で得られる効果と実践的取り組み
ham0215
2
380
開発者体験を定量的に把握する手法と活用事例
ham0215
2
350
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
980
The Art of Programming - Codeland 2020
erikaheidi
57
14k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
85
Designing for Timeless Needs
cassininazir
0
170
Joys of Absence: A Defence of Solitary Play
codingconduct
1
310
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Accessibility Awareness
sabderemane
0
82
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
非エンジニアのSQL入門 2020/02/08 ham
はじめに データドリブンと言われるようになって久しい今日この頃、営業や企画など非エ ンジニアの方もSQLを駆使してデータを取得している場面をよく目にするように なりました。 ただ、SQLとかデータベースとかハードル高いよと感じている方も多いと思いま す。 しかしデータを参照するためのSQLだけであればすごく簡単に習得できるので是 非チャレンジしてみてください。
前提条件 • SQLを実行してデータを取得できる環境があり、エンジニア以外もそこにア クセスできること ◦ そもそもデータベースを使っていない場合は対象外です ◦ データドリブンを掲げているのであれば参照専用の環境があるはずです • SQLを毎回書いてデータを取得するのはアドホックなデータを取得したい時
です。定型データはミスなく簡単に取得できるようにシステム化してもらい ましょう。
データについて データは「テーブル」と呼ばれる箱に入っています。テーブルは「カラム」と呼 ばれるデータ項目を持っています。 e.g.) テーブル: users. カラム: id / name
/ email users id name email 1 伊藤一郎
[email protected]
2 鈴木太郎
[email protected]
3 伊藤二郎
[email protected]
データについて データベースを使っているアプリケーションでは複数のテーブルを使ってデータ を保持しています。 保持しているデータはテーブルやカラムの情報がわからないと抽出できないの で、事前にテーブル定義を入手しておきましょう。 (テーブル定義が存在しない場合は知っている人に作ってもらいましょう)
データ取得の基本 データ取得のSQLは下記の構文で記載します。SQLは;までを1つの文章と判断し ます。そのためキーワードとキーワードの間に改行やスペースを入れてもOKで す。 select [参照したいカラム1, カラム2, …] from [テーブル名]
where [抽出条件] ;
参照したいカラム 参照したいカラムを指定します。 usersテーブルからnameとemailのデータを取得します。 select name, email from users ;
条件 whereを指定することで条件に合致したデータだけを取得することができます。 usersテーブルから’鈴木一郎’のデータを取得します。 select id, name, email from users where
name = '鈴木一郎' ;
条件 inを使用することで合致条件を複数指定することができます。 usersテーブルから’鈴木太郎’または’伊藤一郎’のデータを取得します。 select id, name, email from users where
name in ('鈴木太郎', '伊藤一郎') ;
条件 部分一致で検索することもできます。%がワイルドカードです。 usersテーブルから’伊藤’で始まるnameのデータを取得します。 select id, name, email from users where
name like '伊藤%' ;
条件 数値のカラムの場合、完全一致ではなく大なり小なりで条件を指定できます。 usersテーブルからidが2以上のデータを取得します。 select id, name, email from users where
id >= 2 ;
条件 複数条件を指定することもできます。 usersテーブルからidが2以上、かつnameが’伊藤’で始まるデータを取得しま す。 select id, name, email from users
where id >= 2 and name like '伊藤%' ;
複数テーブルの結合 ここまでの知識で1テーブルであればデータが取れるようになりましたが、実務 では複数テーブルのデータを紐づけて取得することが多いと思います。 ここからはテーブルの結合を説明します。
複数テーブルの結合 users exams id name email 1 伊藤一郎
[email protected]
2
伊藤二郎
[email protected]
id user_id answer 1 1 一郎の答え1 2 1 一郎の答え2 3 2 二郎の答え
複数テーブルの結合 nameとanswerを取得します。 fromのところにinner join [テーブル名] on [結合条件]と記載します。 select users.name, exams.answer
from users inner join exams on users.id = exams.user_id ;
複数テーブルの結合 次のようにデータが取得できます。 users join exams users.name exams.answer 伊藤一郎 一郎の答え1 伊藤一郎
一郎の答え2 伊藤二郎 二郎の答え
最後に 単純に抽出するSQLだけであればすごく簡単だということがお分かりいただけま したか? 気軽にデータ抽出できるようになってデータドリブンライフを楽しんでくださ い! SQLをガンガン使っていると、大量データを扱って取得に時間がかかったり(パ フォーマンス問題)もっと複雑なデータ抽出をしたくなってくると思います。 そうなったときにはすでにSQL初心者は脱していると思うので、次のステージへ ステップアップしていってください!