MoonWolf(むーんうるふ)です。
今回のテーマは、データベースです。
私はこの一年間、 ゲームプログラムの開発を通して
プログラミングのスキルを上げましょう
というスタンスでやってきました。
ところが、しかし、 このSQL DBを、一歩語り始めると、
実用書の部類に足を踏み入れることになります。
つまり、現役のプログラマー様や
現役のDB屋さんを刺激する可能性が出てきます。
それなので、ひっそりと、
『MoonWolfと学ぶSQL DB 第1巻 超入門編』 ― sqlite3使ってみたよ ―(著)MoonWolf, 2024.08
https://amazon.co.jp/dp/B0DF5VKQZS
この執筆が完成したことを報告します。
読者の対象は、データベースの完全な初心者。
私の選択したRDBMSは、無料のSQlite3
書籍で紹介するクエリ―はGitHubに掲載済
あなたも、これで、今日からSQL DB!
※MoonWolfのDB経験
・MS Access
・MS SQL Server + JavaScriptでWEB化
・SQLite3単体
・SQLite3 + Lazarusで実用DBプログラム
※興味のある方は、 Amazonで「MoonWolfと学ぶ」と検索
-----------------------------------------------
動画作成:Canva
動画編集:VideoStudio2023
音楽生成:Suno
選択楽曲:ワニストーン
総合監督:MooonWolf
-----------------------------------------------
『MoonWolfと学ぶSQL DB 第1巻 超入門編』
第1章 データベースとは何か?
DBMS(データベース管理システム)とは何か?
RDBMS(リレーショナルDBMS)とは何か?
第2章 DB初心者に対するsqlite3の優位性
第3章 SQLの基本
SQL文の最後にはセミコロン
SQL DBの予約語
テーブルの表示:SELECT * FROM テーブル名
指定されたフィールドだけを表示する
WHERE で条件付きのレコードを表示する
SQLの比較演算子と論理演算子
LIKE 演算子の使い方
SQL:テーブルの作成
主キー(PRIMARY KEY)とは何か?
SQL:データの挿入
SQL:複数レコードの一括挿入の例
第4章 sqlite3の入手と準備
sqlite3.exe のセットアップ:
コラム:コマンドプロンプトと重要事項
sqlite3 起動テスト
第5章 sqlite3 初級編
sqlite3 データファイルの作成
sqlite3 テーブル作成
sqlite3 データの挿入
sqlite3 テーブルの表示
sqlite3 フィールドの絞り込み
sqlite3 WHERE によるレコードの絞り込み
sqlite3 WHEREでのLIKEの使い方
sqlite3 初級編のまとめ
コラム:sqlite3で日本語は使えるか?
第6章 sqlite3 中級編
MoonWolfのGitHubについて
sqlite3 フィールドの追加
sqlite3 指定フィールドを条件付きで更新
テーブル結合の表示クエリ
コラム:INNER JOINとLEFT JOINの違い
コラム:TABLEとVIEWの比較
sqlite3 中級編のまとめ
第7章 sqlite3 上級編
sqlite3 テーブルとVIEWの見分け方
sqlite3 VIEW生成のクエリ―を調べる
sqlite3 GROUP BY
sqlite3 ORDER BY
sqlite3 データのExport
sqlite3 BEGIN TRANSACTION
コラム:sqlite3 DBの正規化とインデックス
あとがき(MoonWolf&ChatGPT4)
◆◆◆ご協力者の皆様◆◆◆
参考文献
追記:
せっかく、この記事をご覧いただいたので
sqlite3を使ったDB操作、いくつかお見せしましょう。
さらっと、ご覧になってください。
SQLite3の起動:
>sqlite DBファイル名
DBファイルが存在していれば、それを開く
DBファイルが存在していなければ、新規にDBファイルを作成
テーブルの確認:
sqlite>.tables
Aというテーブルの全てのフィールドを参照する:
sqlite>SELECT * FROM A;
このままですと、フィールド名無し、縦棒区切りの表示
フィールド名の表示とそれに沿った内容の表示:
sqlite>.headers ON -- これでフィールド表示
sqlite>.mode column -- これでフィールドに合わせて表示
もう一度、次を実行すると、綺麗に表示します
sqlite>SELECT * FROM A;
SQLクエリ―の最後には必ず「;」セミコロンを付けること
標示する条件を絞る命令
SELECT * FROM テーブルA WHERE 条件
WHEREの次にくる条件で表示したいレコードを選択できます。
例えば一例として、このような感じになります。
SELECT
id,
family_name,
first_name,
age,
prefecture
FROM
student_profiles
WHERE
age >= 18;
いかがでしょうか?
(※書籍にはsqlite3が実際に使えるようになるために、
必要なものを一通り説明しております。ぜひ、一度はご覧ください。)
SQL DBってどんな立場?
厳密には、変数、条件、繰り返し、関数などを使いプログラムを作成する
コンピュータ言語ではないのですが、
SUM()などという関数を使ったり、
WHEREにて、複雑な条件を使ったり、
フィールドをあたかも変数のように扱ったりするので、
SQLとはコンピュータ言語にかなり近い言語だと考えています。
ChatGPT4とも意見が一致していて、
厳密な意味での、狭義(きょうぎ)の意味でのコンピュータ言語には
分類されないものの、
一般人から見たら、SQL DBのクエリ―を組んでいる姿は
コンピュータ言語を操作しているのと、そう変わらなく見えると予測されるので、
HTML、CSS、SQL DBは、広い意味で、広義(こうぎ)の意味では
コンピュータ言語の仲間と考えらるのではないか。
という見解を持っています。
何が違うか?
本物のコンピュータ言語との違いは、
Delphi/Lazarus, Visual Basic, Python, JavaScript, なでしこ, Unity C#,
こらを使い、スペースインベーダーを作成できます。
ところが、SQL DBのクエリ―をどれだけ頑張って
複雑なものを作成していも、スペースインベーダーはできません。
このような本質的な違いはあるでしょう。
プログラマーの観点からSQL DBを見ると、
図書館のように見えます。
それは書籍が整理整頓された世界です。
必要な情報が、いつでも引き出せるように整理整頓されているのです。
ゲーム作成には必ずしも必要ではありませんが、
ビジネスアプリをプログラム言語で作成する場合、
このSQL DBが大きな力を発揮してきます。
私の次の書籍のターゲットは、Lazarus+SQL DB(sqlite3)の世界を
思い切り描いてみたいと考えています。













