C言語(Windows環境)からMySQL #7 データ投入編
C言語(Windows環境)からMySQL #7 データ投入編
C言語(Windows環境)からMySQL #7 データ投入編
~前回までのあらすじ~
Windowsのコマンドプロンプト(文字コード:cp932)からC言語でMySQLにアクセスしたい!!と思い立った勇者筆者は、Sample.exeを実行した。実行時に襲い掛かってきた様々なトラブルを撃破し、ついに、平和が訪れたプログラムがきちんと動くようになった。
プログラムがきちんと動くようになった勇者筆者は、新たな 旅 記事を始める決意を・・・
しようとしたら、その前にデータベースにサンプルデータ入れてないことを思い出し慌ててサンプルデータ作成の記事を書くことにしたのだった。
コピペでサンプルが動かないなら自力でサンプルを作ればいいじゃない(^お^
なお、今回は安全性や動作速度などは一切考えずにあくまでも「Windowsのコマンドプロンプトから直接MySQLを使えるプログラムをC言語で作る」ことに注力しています。
セキュリティ面や動作速度、バグの有無などは考慮に入れていませんので参考にする場合はそのあたりにはお気を付けの上、自己責任で利用してください。
って、急にまじめに戻ってるYO!!
開発環境
C言語
C言語の環境はこちらー>環境導入前編 環境導入後編 おまけその1 おまけその2
MySQLの環境は以下のものを用意しました。
MySQL 5.5.56(zip形式のものをダウンロード、解凍して使用)
Connector/Cは以下のものを用意しました。
Connector/C 6.1.10(zip形式のものをダウンロード、解凍して使用)
本記事は以上の環境を前提に説明を行います。
C言語からMySQLを利用する手順
C言語からMySQLを利用する手順
C言語からMySQLを利用するための手順は大雑把に書くと以下の通りです。
今回はマップに載らない別世界・・・ではなくて、上の手順には載っていないデータベースへのデータの投入を行います。
他の環境(Javaとか)から簡単に叩けるんだし、楽勝!!・・・と思ったら、コンパイルで思いっきり詰まって悔しかったのでメモに残したのは内緒。
実行したらデータが無い
実行したらデータが無い
前回までで、Sample.exeが無事に実行できる環境は整いました。
そこで、改めてプログラムを実行してみると、プログラムが実行できます。
ただし、データが入っていない場合、何も表示されずにプログラムが終了します。
そこで、今回は作成したプログラムが動くようにデータを投入していきます。
データ投入
と、いうことで、mysqlをコンソールから起動して、データを投入していきます。
※root権限でmysqlを操作する前提で説明していきます。よくわからない人は次回の権限設定編を軽く読んでから戻ってきましょう coming soon?
データの投入は以下の手順で行います。
1.(データベースが無ければ)データベースを作成する
2.データベースを選択する
3.テーブルを作成する
4.データを投入する
イメージしやすいように「作成」「投入」といった言葉を使っていますが、厳密ではありませんので あしからず 注意してください。
また、以下では前回までで完成した はず のサンプルがそのまま動くように書いています。データベース名や項目名、値を自分で決めたものを利用する場合は、db_nameやtable_nameなどは適切に書き換えてください。
よくわからない人はとりあえずそのままコピペしてしまいましょう。
では、順に追っていきましょう。
データベースを作成する
そもそもMySQLを導入しただけでは、中にデータが入っていません。そこでまず、データを投入するためのデータベースを作成します。
すでに作成済のデータベースを利用する場合は、この項目は飛ばして大丈夫です。よくわからない人はとりあえずやってみよう(@_@)
以下のコマンドをmysqlのコンソールにコピペしましょう。
CREATE DATABASE `db_name`;
これで、db_nameと言う名前のデータベースの作成ができました。
データベースを選択する
データベースを作成しても、どのデータベースを使うのか選ばないと使えません。そこで次は使用するデータベースを選択します。
以下のsqlをコピペで実行しましょう。
USE `db_name`;
これでdb_nameという名前のデータベースを使用する準備ができました。
テーブルを作成する
データベースを作成しても、その中にテーブルが無いとデータが入れられません。そこで次はテーブルを作成します。
以下のsqlをコピペで実行しましょう。
CREATE TABLE `table_name`( `id` INTEGER(8) PRIMARY KEY AUTO_INCREMENT, `sample_column` VARCHAR(31) NOT NULL DEFAULT '-----' COLLATE utf8_unicode_ci, `date_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP );
これでtable_nameという名前のテーブルができました。
データを投入する
データを入れるテーブルがあっても、データが入っていないと何も出てきません。そこで次はテーブルにデータを投入します。
以下のsqlをコピペで実行しましょう。
INSERT INTO `table_name`(`sample_column`) VALUES ('Hello World!'); INSERT INTO `table_name`(`sample_column`) VALUES ('こんにちは 世界');
これでtable_nameというテーブルの中にデータが投入されました。
以上で、「db_name」と言う名前のデータベースの中に、「table_name」と言う名前のテーブルを作成し、2件のデータを投入することができました。
改めて実行!!
改めて実行の準備が整ったので、もう一度実行してみましょう。
Sample.exe
これで今度こそ実行出来ます(^ω^)
た・だ・し、データベースの権限がきちんと設定されていればね (゜∀゜
(次回、権限設定編・・・は、あるのか・・・?)
筆者のおすすめ記事
C言語(Windows環境)からMySQL #1 環境導入編 ← このシリーズの第1回
MinGW-w64とmsys2で作るC言語環境構築
C言語練習問題一覧
C言語でBINGOを作ろうシリーズ記事一覧
実践力が身につくC言語講座 連載リンク
競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載
アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載
パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載