LoginSignup
5
5

More than 1 year has passed since last update.

【SQL入門】よく使うSQL

Last updated at Posted at 2019-11-18

概要

Railsに頼りすぎてSQLがわかってない!
ということでSQLについて少し勉強してみました。

データベースに関わる言語ってちょっと難しそう・・と思ってたのですが、基本は意外と簡単なのかなと思いました。

この辺は抑えとこ〜ってとこだけでもまとめようかなと思ってます。

勉強に使ったサイト

SQLZOOってサイトです。
日本語訳にも対応してますし、決して難しくはないので初心者にはいいんじゃないかと思います。

そもそもSQLとは

SQLはデータベース言語の中で、最も普及している言語の一つです。DBMS(データベース管理システム)上でデータやデータベースを制御するための言語であり、ユーザーやシステムからの命令を受けてRDB(リレーショナルデータベース)にクエリ(問い合わせ)を行い、結果を返します。返ってきた結果はモニターなどに表示されます。

とのこと
ちなみに参考はこちら

つまりはRDB(リレーショナルデータベース)とおしゃべりするための言語ってことかな。

前提のデータベース

worldテーブル

name continent area population gdp
Afghanistan Asia 652230 25500100 20343000000
Albania Europe 28748 2831741 12960000000
Algeria Africa 2381741 37100000 188681000000
Andorra Europe 468 78115 3712000000
Angola Africa 1246700 20609294 100990000000

SELECT

SELECTを使うと指定したカラムの値を出してくれます。
書き方は、下記の通り。

SELECT <カラム名> FROM <テーブル名>

上記のデータベースを参考に、nameカラムを出力してみましょう。

入力

sql
SELECT name FROM world

出力

name
Afghanistan
Albania
Algeria
Andorra
Angola

こんな感じです。
SELECTは出力結果の大枠を決めるようなイメージですかね。

WHERE

さっきのSELECTでヒット取得した値の中から、WHEREで条件を与えて表示数を絞ってあげます。。
今回はこんなお題で出力を考えてみます。
areaが28000以上の国を表示するための条件とする。出力結果では、nameとareaを表示すること

では、書いてみます。まずはnameカラムとareaカラムを表示する必要があるので、こんな感じ。

sql
SELECT name, area FROM world;

これで、worldテーブルの中からnameカラムとareaカラムだけ取得した状態になります。
ここでさらにWHEREを使って条件を与えてあげましょう。

入力

SELECT name, area FROM world
  WHERE area >= 28000;

こいつの出力がどうなるかというと・・・。

name area
Afghanistan 652230
Albania 28748
Algeria 2381741
Angola 1246700

areaが28000よりも小さかったAndorraがなくなり、nameとareaカラムを同時に取得する。という形になります。

WHEREの基本的な使い方はこんな感じです。

  WHERE <カラム名> <検索条件>;

LIKE

WHEREと組み合わせて使うことが多いのが、このLIKEというもの。
今までは条件を指定してあげて、表示数をコントロールしている感覚でしたが、LIKEは「検索」のために使います。
つまり、レコードの値は何かを見ようとしてくれる、ということです

こんなお題で検索をしてみましょう。
continentに「a」を含む物を検索し、nameとcontinentを併せて出力する。

今回もまずはSELECTから。nameとcontinentが必要になります。なので・・・

SELECT name, continent FROM world

こんな感じです。
ここまでは慣れてきた方も多いのではないでしょうか。

ではいよいよcontinentに「a」を含むものを検索します

入力

SELECT name, continent FROM world
  WHERE continent LIKE  '%a%'

出力

name continent
Afghanistan Asia
Algeria Africa
Angola Africa

こんな感じになります。
aを含まないEuropeは検索にヒットせずに表示されないということですね

この検索方法、%をつける位置によって意味が変わります。
ですが今回は割愛させてください。

参考までにリンクを貼っておきますのでご覧ください。
【SQL】LIKE句

まとめ

就職活動をしていると、やはりSQLの理解がどこにいっても問われます。
当然といえば当然ですよね・・・重要なデータを管理するための言語ですし・・・。

本記事ではあまり深掘りはできていないのですが、SQLに苦手意識のある方、抵抗感がある方は多いんじゃないかなと思います。
ただ、ひとまずはSELECT、WHERE、LIKEの3つが使えれば、なんとなくデーターベースを操作するという感覚をつかみ、苦手意識が薄れるのではないかと思います。

5
5
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
5
5