CodeGym /コース /SQL SELF /PostgreSQLのデータ型入門

PostgreSQLのデータ型入門

SQL SELF
レベル 15 , レッスン 0
使用可能

このレクチャーは、実はコースの最初にやってもよかった内容なんだ。でも、もし最初にこれをやったら、最初の課題やレクチャーがめっちゃ退屈になっちゃうと思う。もし一日だけ建設作業員やってみるなら、最初にレンガの種類や形を勉強したい?それともタワークレーンを30分間運転してみたい?やっぱり後者だよね :)

生徒ってのは、ただ知識を詰め込む器じゃなくて、火をつけて燃やす(でも燃やし尽くさないように!)たい存在なんだ。全部教えようとするんじゃなくて、面白く感じてもらえるようにしたいんだよね。で、今こそデータ型と仲良くなるタイミング!

PostgreSQLのデータ型っていうのは、テーブルの特定のカラムにどんな情報を保存するかを指定するもの。例えば、数字、テキスト、日付とか。これは、収納ボックスを選ぶのとちょっと似てる。小さい箱は小物用、大きい箱は靴用、透明な箱は糸用で中身がすぐ分かる、みたいな感じ。

例:

  • 人の年齢を保存したいなら、数値型がピッタリ。
  • 名前を保存したいなら、テキスト型が必要。
  • 登録日を記録したいなら、日付型を使うのが自然だよね。

データ型って何のためにあるの?

データ型はこんな風に役立つよ:

  1. 入力できる情報を制限できる。例えば、数字が必要なところにテキストは入れられない。
  2. データを構造化できる。どのカラムに何が入ってるか分かれば、クエリも分析も楽になる。
  3. リソースを節約できる。正しい型を使えば、メモリの消費も減る。
  4. 精度を保てる。例えば、金額計算には小数点付きの数値が必要だよね。

やる気が出る例

学生の情報を保存するテーブルを想像してみて:

id name age enrollment_date
1 Otto Mars 22 2023-01-15
2 Anna Song 19 2023-02-10

ここでidはユニークなID(数字)、nameはテキスト、ageは年齢の数字、enrollment_dateは学生の入学日。全部違うデータ型なのは、それぞれ違う側面を表してるからだよ。

PostgreSQLのデータ型の分類

PostgreSQLはデータ型の扱いがめっちゃ柔軟。ざっくり分類を紹介するね。

主なデータ型カテゴリ:

  1. 数値型

    • 整数(例:数量、ID)や小数(例:お金)を保存するための型。
    • 例:INTEGERNUMERICFLOAT
  2. テキスト型

    • テキストや文字列(例:名前、住所)を保存するための型。
    • 例:CHARVARCHARTEXT
  3. 論理型

    • 論理値TRUE(真)やFALSE(偽)を保存するための型。
    • 例:BOOLEAN
  4. 日付・時刻型

    • 日付、時刻、またはその組み合わせを保存するための型。
    • 例:DATETIMETIMESTAMP
  5. 特殊型

    • ユニークID、JSONオブジェクト、配列などいろいろ。
    • 例:UUIDJSONBARRAY

PostgreSQLのデータ型の特徴

PostgreSQLはめっちゃたくさんの組み込み型をサポートしてて、カスタム(ユーザー定義)データ型も作れるんだ。だから、複雑なシステムや特殊な要件があるときに超便利!

面白いのは、PostgreSQLでは地理情報も保存できるし、「自分の半径500メートル以内のカフェを探して」みたいなクエリもできる。こういう用途には専用のデータ型が使われるよ。

データ型を明示するメリットは?

全部のカラムをテキスト型にしちゃえば何でも保存できて楽そう…って思うかも。でも、それはダメなやり方!ちゃんと合ったデータ型を指定すると:

クエリが簡単になる。 PostgreSQLが「このカラムは数字だけ」って分かってれば、SUM()とかの計算も速くなる。

ミスを防げる。 例えば、年齢カラムにうっかり「三十二」って文字列を保存しちゃったら、エラーを見つけるのが超大変になるよ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION