Table を作成する / TypeScript エンジニアのための PostgresDB
Tweet対応する参考書籍の章
- 1-2 データベースの構成
- 1-3 SQL の概要
- 1-4 テーブルの作成
テーブルって何?
テーブルってなんなのかは雰囲気的にはわかると思うので詳しくは参考書籍をご確認ください。JS 的にはようは配列です。しかも明確に型が決まった item が入っている配列です。
TypeScript 的に記述
type Article = {
id: number;
name: string;
category: string;
};
type Articles = Article[];
const articles: Articles = [
{
id: 1,
name: "this is react article",
category: "react",
},
{
id: 2,
name: "this is rdb article",
category: "rdb",
},
];
見ればわかりますよね。同じ type の item が入っている array を作成しました。どの item もかならず id, name, category という property を持っていることを定義しました。
この構造を明確に表しているのは以下の部分です。
type Articles = Article[];
テーブルもこういう構造になっています
SQL でテーブルを作る
では先ほど TS で定義した配列に対応するテーブルを SQL を発行することで作りましょう。
以下の SQL がそれです。
create table articles
(
id serial,
name text,
category text
);
ほとんど TS と概念的には一緒ですよね。articles
という名称のテーブルを作成します。そのテーブルの構造は、id が serial(連番の整数), name が text, category も text ですよ、ということを指定しています。この部分が schema です。
TS と違うところは?
大きく分けて二つです。型の種類と、: , ;
の使い方です。
型の種類が違う
まず、PostgresDB に number, string という型はありません。これは PostgresDB にあるものに変更しましょう。
単純な整数であれば interger が該当します。しかし今回は serial を使いました。これは自動的に DB が 1 ずつインクリメントしてくれる整数です。id を指定せずに item を追加すれば、最初は id が 1 なり、次は 2 になり…というふうに被らない整数を勝手に付与してくれます。
string は PGDB になりので、かわりに text を使いました。これは長さが自由な文字列の型です。他にも文字列系の型は色々あるので参考書籍で確認してください。
コンマ、コロン、セミコロンの使い方が違う
- TS でいうところの、プロパティと type の仕切りは
:
ではなくスペース
を使う。 - TS では型定義は
;
で区切るが、PGDB の場合は,
で区切る。 - TS のように trail comma は使ってはだめ。つまり
category text
の後ろに,
をつけるとシンタックスエラーになります。
create table の SQL を発行してテーブルを作ろう
では実際に SQL を発行してテーブルを作りましょう〜
すると以下のようにテーブルができたことが確認できました!
この勢いで PostgresDB をマスターだ!
初めての SQL 実行お疲れ様でした! 一個できたらこれを100日継続したら100個できるので、継続しさえすればマスターしたも同然です!
がんばっていきましょう!