はじめに
いつもは主にSwiftの投稿をしている自分ですが、ふとデータベースを学びたいと思い、SQLを触ってみることにしました。
今回はSQLの基本をまとめていきたいと思います!
また、注意点としまして、今後扱うデータベースはリレーショナルデータベース(RDB)と言われるものです。ですので、今後の自分の記事で特に断りなく、DBやデータベースと表記されていましたらリレーショナルデータベース(RDB)だと考えてください。このデータベースは、表でデータを管理するような仕組みになっています。
SQLとは
データベースを扱うための言語で、データ分析などに使われる。
DB
DB(データベース)が何かを理解する必要があります。
DBの仕組みを簡単に説明しますと、DBは以下のような表(テーブル)でデータを管理しています。
学籍番号 | 名前 | 出身 |
---|---|---|
1 | 明石家 | 和歌山 |
2 | 大西 | 三重 |
3 | 浜田 | 兵庫 |
4 | 松本 | 兵庫 |
行(横)のことをレコード、列(縦)のことをカラムと言います。
クエリ
クエリとは、DBに送る命令のことで、SQLはこれを書くための言語です。
クエリを書く
SELECT
データを取得するために、「SELECT」を使います。このクエリを用いると、どのカラムのデータを取得するかを指定できます。
name列を取得するクエリを記述してみます。
SELECT name
FROM
SELECTで選んだカラムがどのテーブルのものかを指定するために、「FROM」を使います。
SELECT name
FROM users
最後に、記述をし終わったクエリにはセミコロンをつけます。(Swiftにはないから忘れそう。。。)
SELECT name
FROM users;
また、SQLでは大文字と小文字の区別はないので、小文字で記述しても構いません。
複数カラムを取得
カラムを複数取得する際に、一つ一つSELECTで指定する必要はなく、まとめて指定できます。
SELECT name, birthplace
FROM users;
また、全てのカラムを取得する場合、先ほどのようにコンマで全て取得しても良いのですが、100カラム全てを取得するとなったときに対応しきれないので、省略記号「*」が用意されています。
SELECT *
FROM users;
WHERE
条件に合うものだけを取得したいときに使うクエリです。
「WHERE」は行(レコード)を指定します。
SELECT *
FROM users
WHERE birthplace = "兵庫";
このようにすることで、birthplaceが兵庫であるレコードを取得することができます。
また、今回のようにテキストを指定するときはダブルクオーテーションマーク「"」で指定する必要があることに注意が必要です。
しかし、numberカラムのような数値を指定するときにはダブルクオーテーションマークで囲む必要はありません。
さらに、WHEREには比較演算子を用いることもできます。比較演算子はご存知だと思いますので、説明しませんが、以下のようにすることでnumberが2以上のレコードを取得できます。
SELECT *
FROM users
WHERE number >= 2;
おわりに
今後はDB周りの投稿もしていきたいと思います!