3.1 テーブルへのデータ登録

 本節ではデータを登録する方法について、前章で作成した「bookinfo」テーブルを利用して学習していきます。

3.1.1 日本語のデータを扱うための設定

 当スクールのMariaDBデータベースは、文字コードがUTF-8の環境で構築されているため、コマンドプロンプトから日本語データの登録や検索を行う場合に文字化けが発生します。そのため、データベースへ接続する際に、「SET NAMES CP932;」というコマンドを入力する必要があります。

図 3.1.1 : 文字コードの指定

 コマンドの実行はデータベースへ接続する際に、1度だけ実行すれば大丈夫です。日本語入力を行う際は、忘れずにコマンドの実行をしましょう。

データ登録や検索を行う際の注意点

 UTF-8環境のMariaDBデータベースにコマンドプロンプトを利用して日本語を登録する場合、または表示する場合には「SET NAMES CP932;」コマンドをデータベースに接続した直後に1回だけ実行する。

文字コードと文字化け

 UTF-8とは文字コードの種類の一種です。コマンドプロンプトの画面に表示されている文字は見た目上は普通の文字ですが、コンピュータの中では文字コードと呼ばれる英数字の羅列で管理されています。
 文字コードには複数の種類が存在し、例えば「あ」という文字の場合、UTF-8の環境では「E38182」という英数字で管理されますが、Shift_JISの環境では「82A0」という英数字で管理されています。
 この文字コードは正しく指定されていない場合、大きな問題が発生します。
 例えば、「E38182」をUTF-8の環境で表示すれば「あ」と表示されますが、これをShift_JISの環境で表示させてしまった場合、コードを変換できる文字が存在しないため、全く別の文字になってしまいます。このような現象を「文字化け」と呼びます。

UTF-8と「WindowsOSコマンドプロンプトをするときの文字セット(CP932)」

 当スクールのMariaDBデータベースは、UTF-8の環境で構築されていますが、コマンドプロンプトを使ったデータの入出力はUTF-8に対応していません。WindowsOSでのコマンドラインの文字セットは標準では「CP932(sjis)」という文字コードの環境になっています。
 そのため、コマンドラインでデータの登録や検索を行う場合には、入出力するデータ(「クライアントの文字セット」)がCP932(sjis)の文字コードであることを「SET NAMES CP932;」というコマンドを使ってMariaDBサーバへ伝える必要があります。

3.1.2 データ登録の基本

 テーブルにデータを登録する場合には、「INSERT」キーワードを使用します。

 データを登録するための書式は次のようになります。

書式:INSERT文

 「INSERT」キーワードはテーブルにデータを登録する際に、利用するキーワードになります。
 どのテーブルのどの列にどんな値を登録するか、を指定する構文になっており、テーブル名で指定されたテーブルの列名1に値1が、列名2には値2が格納されます。

 それでは早速、「bookinfo」テーブルにデータを登録してみましょう。
 ここでは次のようなデータを登録していきましょう。

表 3.1.1 :「bookinfo」テーブルへ登録するデータ

 このデータを登録する場合、次のコマンドを実行します。

英文字入力と日本語入力の切り替え

 コマンドプロンプトで英文字入力と日本語入力を切り替える場合には、Altを押しながら半角/全角キーを入力します。

 isbnとtitleはデータ型をVARCHARに指定しています。そのため、値が「’」(シングルクォーテーション)で囲まれていることに注意して下さい。

図 3.1.2 :データの登録

 コマンドを実行した後は、データが正しく登録されているか確認してみましょう。テーブルの中身を検索するには、「SELECT」キーワードを使用します。「SELECT」キーワード詳細については次の章で詳しく学習しますので、ここでは以下のコマンドを実行してみて下さい。

 正しくデータが登録されていれば、下図のようにデータを確認することができます。

図 3.1.3 :登録したデータの検索

INSERTコマンドの別の記述方法

 テーブルの全ての列にデータを登録する場合、テーブル名の後の列名を省略することができます。
 例えば、3.1.2で登録したデータの場合、以下のように記述することもできます。
 「INSERT INTO bookinfo VALUES(‘00001′,’MySQLデータベースとSQL基礎1’,1050);」
 ただし、列名を省略した場合、VALUESキーワードの後ろで指定した値が格納される列は、テーブルを定義した際の列に順に格納されることになります。また、全ての列の値を指定する必要があり、1つでも欠けるとエラーになってしまうため、注意が必要です。

 本節で学習した基本的なデータの登録方法については、書式さえ理解すればそれほど難しいものではありません。また、MariaDBに限らず、大多数のデータベースで使用できるものですので、しっかり覚えておいて下さい。

 それでは、復習を兼ねて以下のデータも登録してみましょう。

表 3.1.2 :「bookinfo」テーブルへ登録するデータ2

 このデータを登録する場合、次のコマンドを実行します。

 登録が完了したら、再度以下のコマンドを実行し、データを確認しましょう。

 データが正しく登録されていれば、以下の5行のデータが確認できます。

図 3.1.4 :データの登録2

 なお、列「isbn」は主キーに設定されていますので重複したデータは登録することができません。
もし間違えて登録してしまった場合には、後の章で学習するデータの削除や更新について学習した後に、訂正してみて下さい。