SQL課題〜ブログ用のデータベースを作成しよう!

ここでは次のカリキュラムで使用するデータベースを作成して頂きます。今回はブログ用のデータベースの中にブログのデータを管理するテーブルとコメントを管理するテーブル、ユーザー情報を管理するテーブルの3つを作成したいと思います。
なお、SQL復習〜iタウンページで解説したことはヒントとして記述しません。

また、MAMP / XAMPP環境のMySQLにDBを作成してほしいので、不安な方はMAMP、XAMPPの使い方を確認して進めてください。
本項では提出課題はありませんが、以下のDB、テーブル(3つ)を作成しておかなければ、後々のカリキュラムに影響が出ます。
必ず作成してください。

データベース

  • YIGroupBlog

テーブル

  • posts
  • comments
  • users

データベース名


YIGroupBlog

テーブル


posts

記事を管理します。
このテーブルのみ、例としてSQL文を記載します。

カラム名 備考
id INT NOT NULL AUTO_INCREMENT
title VARCHAR(50) ブログのタイトル
content VARCHAR(255) ブログの内容
time TIMESTAMP 記事が作成された日時

※ TIMESTAMPは以下の形で時を取得してくれます
“0000-00-00 00:00:00”

テーブル作成

CREATE TABLE posts (
  id INT NOT NULL AUTO_INCREMENT,
  title VARCHAR(50),
  content VARCHAR(255),
  time TIMESTAMP,
  PRIMARY KEY (id)
)DEFAULT CHARSET=utf8;

最後の DEFAULT CHARSET=utf8 はテーブル全体に文字コード「UTF-8」を指定する場合に使用します。
この文字コードの指定をしないとデータベースにデータを保存した際に日本語が「?????」となって保存されてしまうことがあります。

レコード作成

レコードの作成はINSERT文を使用するんでしたね。

INSERT INTO `posts` (`title`, `content`) VALUES
('お腹が空いたよ', 'そうだ、冷やし中華を食べようか'),
('今日もまたまたお腹が空いたよ', '今日もまたまたまたまた冷やし中華を食べたよ。美味しかった。また食べよう。');

さて、じつはこのINSERT文を実行した後、テーブルを確認すると、あることに気づきます。
そう、idカラムに勝手に値が入っています!

# テーブルのデータを全件表示
SELECT * FROM posts;

これがAUTO_INCREMENTの効果です。
重複をなくす、ということは空欄であってもダメなので、 連番で値を入れておいてくれます
これで一意にデータを特定することができますね!

# 例
SELECT * FROM posts WHERE id = 1;

comments

コメントを管理します。

カラム名 備考
id INT NOT NULL AUTO_INCREMENT
post_id INT コメントをした記事
name VARCHAR(20) コメントを書いた方の名前
content VARCHAR(255) コメント本文
time TIMESTAMP コメント投稿日時

users

ユーザー情報を管理します。

カラム名 備考
id INT AUTO_INCREMENT
name VARCHAR(50) 登録者
password VARCHAR(255) パスワード
time TIMESTAMP 作成日時

カテゴリー

アーカイブ

Close Bitnami banner
Bitnami