C言語+MySQL入門 PartⅠ

MySQLと開発環境を理解しよう

「C言語から、本格的なデータベースへつないでみよう。」

C言語でデータベースを扱えるようになると、作れるアプリの世界がぐっと広がります。PartⅠでは、MySQLの基本的な仕組みから、Windowsでの開発環境づくり、そしてC言語からMySQL Serverへ接続するところまでを、順番に学んでいきます。SQLiteとの違いも比較しながら進めるので、「データベースサーバーって難しそう」と感じている方でも大丈夫です。MSYS2 UCRT64、GCC、MySQL、Connector/Cなど、最初は聞き慣れない道具も一つずつ役割を確認します。最後には、自分で書いたCプログラムからMySQLへ接続できるようになります。本格的なデータベースアプリ開発への最初の一歩を、ここから踏み出してみましょう。

第1章 C言語+MySQLアプリをはじめよう

この章では、これから作る在庫管理アプリの全体像を見ながら、C言語とMySQLがどのように協力して動くのかを学びます。SQLiteとの違いや、クライアント/サーバー型データベースの仕組み、Connector/Cの役割などをやさしく整理します。まだプログラムは作りません。まずは16章を通して何を学び、最終的にどんなアプリが完成するのかを確認し、これからの学習の道筋をつかみましょう。

01 C言語からデータベースを使う02 MySQLとは
03 SQLiteとMySQLの違い04 クライアント/サーバー型DBとは
05 C言語からMySQLを利用する仕組み06 接続に必要な情報を知る
07 今回作成する在庫管理アプリ08 コンソール版からGUI版へ進む
09 学習ロードマップ

第2章 Windowsに開発環境を作ろう

C言語+MySQLアプリを作るための開発環境をWindowsに準備します。MSYS2 UCRT64、GCC、MySQL Server、MariaDB Connector/C、GTK 4、VS Codeを順番にそろえ、それぞれが何を担当するのかも確認します。最後はhello.cをコンパイルして実行し、ソースコードを書いてから実行するまでの基本的な流れを体験します。今後の学習で使う章ごとの作業フォルダも、この章でまとめて準備します。

01 今回使用する開発環境02 MSYS2をインストールする
03 UCRT64環境を使う04 GCCをインストールする
05 MySQL Community Serverをインストールする06 MySQL Serverの動作を確認する
07 Connector/Cをインストールする08 GTK 4をインストールする
09 pkg-configを確認する10 VS Codeを準備する
11 C:\c-mysqlを作成する12 章ごとのディレクトリを作成する
13 最初のCプログラムを書く14 簡潔な方法でコンパイルする
15 警告を表示してコンパイルする16 プログラムを実行する

第3章 MySQLの基本を理解しよう

この章ではMySQLクライアントを使い、在庫管理アプリで利用するデータベースを作ります。inventory_dbを作成し、商品を管理するproductsと在庫の動きを記録するstock_historyを準備します。主キーや外部キーを確認しながら、INSERT、SELECT、UPDATE、DELETEも実際に実行します。さらに、次章からCプログラムが使用する学習用ユーザーを作成し、MySQLへ安全に接続する準備を整えます。

01 MySQL Serverの働き02 MySQLへログインする
03 データベースを作成する04 テーブルと主キーを復習する
05 商品テーブルを作成する06 在庫履歴テーブルを作成する
07 商品と履歴を関連付ける08 商品を登録・表示する
09 商品を変更・削除する10 学習用の接続ユーザーを作る
11 接続ユーザーの権限を確認する12 SQLファイルを保存する

第4章 C言語からMySQLへ接続しよう

いよいよC言語からMySQL Serverへ接続します。mysql.h、MYSQL、mysql_init()、mysql_real_connect()など、MySQL C APIの基本的な型や関数を一つずつ確認します。接続に成功した場合だけでなく、ユーザー名やパスワードを間違えた場合のエラー表示や、接続後の切断処理も扱います。最後には、Connector/Cの設定をpkg-configから取得してビルドし、自分のCプログラムからMySQLへ接続できるようになります。

01 VS CodeでGTK 4とMySQLのincludePathを設定しよう02 接続プログラムの流れ
03 mysql.hを読み込む04 MYSQLと接続ハンドル
05 mysql_init()を使う06 接続先を指定する
07 mysql_real_connect()を使う08 接続結果を確認する
09 mysql_error()を使う10 mysql_close()を使う
11 pkg-configでビルドする12 接続プログラムを実行する
13 接続処理を振り返る