ハイスコアを記録せよ!SQLの基本(INSERT/SELECT)をシューティングゲームで解説

目次

⚔️ はじめに:データベースと会話する魔法「SQL」

前回の記事では、ゲームのセーブデータを保存するための
「箱(データベース)」と「仕切り(テーブル)」を作りました。

しかし、まだ設計図を書いただけで、中身は空っぽの状態です。

これでは、せっかくのハイスコアも保存できません。

そこで今回は、データベースに対して「データを保存して!」「データを見せて!」と命令するための言語、
SQL(エスキューエル)を学びます。

「プログラミング言語がまた増えるの…?」と不安になる必要はありません。
SQLは非常に英語に近く、シンプルで強力なツールです。

これが使いこなせれば、ランキング機能も、アイテム検索も自由自在になりますよ!

1. SQLってなに?

SQL(Structured Query Language)は、データベース専用の言語です。

プログラミング言語(JavaScriptやPHP)とは少し役割が違い、
「データベースにお願い事をする」ために使います。

ゲーム開発でよく使う「お願い(命令)」は、主にこの4つだけ!

これをCRUD(クラッド)と呼びます。

SQLの命令役割ゲームでの例
INSERT (インサート)作成セーブデータを新規作成する、アイテムを入手する
SELECT (セレクト)読み取りロードする、ランキングを表示する、所持金を確認する
UPDATE (アップデート)更新レベルが上がったのでHPを書き換える
DELETE (デリート)削除セーブデータを消す、アイテムを捨てる

今回は、最も基本となる「INSERT(追加)」と「SELECT(検索)」をマスターしましょう。

2. データを追加しよう:INSERT文

まずは、空っぽのテーブルに勇者のデータを追加します。

前回の記事で作った users テーブルを思い出してください。

usersテーブルの設計図

  • id (INT)
  • name (VARCHAR)
  • hp (INT)
  • mp (INT)
  • gold (INT)

📝 INSERT文の書き方

##SQL##
INSERT INTO テーブル名 (カラム1, カラム2...) VALUES (値1, 値2...);

INSERT INTO(~の中に挿入せよ)」と読みます。

実際に「勇者A」のデータを入れるSQLはこうなります。

##SQL##
INSERT INTO users (id, name, hp, mp, gold) 
VALUES (1, '勇者A', 100, 20, 500);

これを実行すると、データベースの中に1行データが生まれます。

ゲームで「冒険の書を作りました」と表示された裏側では、まさにこのSQLが高速で動いているのです。

3. データを取り出そう:SELECT文

データが入ったら、次はそれを取り出してみましょう。

「つづきから」を選んだ時に、保存されたステータスを画面に表示するイメージです。

🔍 SELECT文の書き方

##SQL##
SELECT カラム名 FROM テーブル名;

SELECT(選べ)… FROM(~から)」と読みます。

非常に直感的ですね。

全員のデータを見る

テーブルに入っている全てのデータを見たい時は、ワイルドカード *(アスタリスク)を使います。

##SQL##
SELECT * FROM users;

実行結果:

idnamehpmpgold
1勇者A10020500

条件を絞り込む:WHERE句

ここからがSQLの真骨頂です。

「全員じゃなくて、HPが満タンの人だけ探したい」という時は、WHERE(ホウェア)を使います。

##SQL##
SELECT * FROM users WHERE hp = 100;

ランキング機能などで「スコアが1000点以上のプレイヤー」を探す時も、この WHERE を使います。

##SQL##
-- スコア(score)が1000以上の人を探す例
SELECT * FROM ranking WHERE score >= 1000;

4. まとめ:データの出し入れはこれで完璧!

今回は、データベース操作の基本である2つのSQLを学びました。

  1. INSERT: データを追加する(セーブ作成)
  2. SELECT: データを検索する(ロード、ランキング)

この2つが使えれば、とりあえずゲームのデータを保存して、画面に表示することができます。

次回は、いよいよ「プログラム(PHP/Laravel)からSQLを自動で実行する仕組み」を作ります。
「ゲーム画面のボタンを押したら、裏でSQLが走ってセーブされる」……
そんな本格的なAPI開発への第一歩を踏み出しましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

神奈川県出身
どこにでもいる現役ゲーム会社サーバーエンジニア。大学ではひたすらゲーム!ゲーム!という人生を送ってました。

このブログは「ゲームを作ってみたい!」「プログラミングに関する知識をつけたい!」そんな皆さんの少しでもお役になれば嬉しいなと思い開設しました。

趣味
YouTube鑑賞、ストリートな格闘ゲーム、キャンプ

最近の出来事
・痔主になってしまいました....
・Google Cloud Professional Cloud Architect取得しました。

コメント

コメントする

目次