Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@raigakun

SQL 基礎用語&文法 4

More than 1 year has passed since last update.

はじめに

SQL 基礎用語&文法 3 はコチラをクリック願います。
SQLを学んでいく上で、用語等を中心に整理していきます。
ターミナルにて入力する。もしくはSequelProのクエリにて入力するようにしております。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。

検索する編 ちょっと応用 2

  • SequelProにて行います。
  • テーブルにデータが入っていることを想定する。

複雑なデータ検索

JOIN句

  • 指定したそれぞれのテーブルの、カラムの値が一致するデータを結合する。
  • JOIN句はFROM句の後に記述し、結合の対象となるテーブルを指定する。
  • そしてONの後に、それぞれのテーブル名.カラム名を=で結合する。
-- 式
FROM テーブル1
JOIN テーブル名2 ON テーブル名1.カラム名1 = テーブル名2.カラム名2

-- 実践してみます。
FROM shifts
JOIN users ON shifts.user_id = users.id

--上記のままでは、冗長ですので、各テーブルに別名をつけて短縮する。
--FROMやJOINでテーブル名を指定する際、ついでにそのテーブルの別名も指定する。
--別名は、"shifts"テーブルならs、"users"テーブルならuのように、各テーブル名の頭文字を取ってあげるのが一般的.
FROM shifts s
JOIN users u ON s.user_id = u.id

検索結果を用いた検索

サブクエリ

  • ある検索結果を使用して別のSQL文を実行する仕組み
  • WHERE句で使用されることが多い。
  • SELECT句やFROM句でもサブクエリは使用できる。
--WHERE句でNOT INを使用することでテーブルから、カラムがリストに含まれていない行のみを取得する。

-- 式
SELECT *
FROM テーブル
WHERE カラム NOT IN (リスト)

-- 実践してみます。
SELECT *
FROM users
WHERE id NOT IN (
SELECT DISTINCT user_id
FROM shifts
WHERE date = "2015-07-01"
)

さいごに

日々勉強中ですので、随時更新します。
皆様の復習にご活用頂けますと幸いです。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
raigakun
日々の学習をOutputしようと思いますので、ご指導等頂けますと幸いです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?