U-style MySQL独学日記  Since2001 メニューに戻る SQLメニューに戻る
タイトルデータを登録する
文書管理番号 作成日 分類1 分類2 キーワード
SQL0005 2003-03-06 DML   insert into

 とっても久々の更新となります。基本情報をあきらめなにやろうか?と迷ったあげく、オラクルを目指すことにしました。ということでまずはSQLです。前回までに少し作ったものがありますのでそれを一部利用し、これから当分の間はSQLに没頭します。

 今後はデーターベースを使う流れで進めたいと思います。昨年までにテーブル作成のCreateとDropまではやりました。Selectもやりましたが、Selectは奥が深いのでこれはもう一度やり直します。
 さて今回はDML(データ操作言語)よりinsert intoを学習します。

INSERT文は表にデータを登録する命令文です。

INSERT INTO 表名 VALUES (列1の値、列2の値、列3の値・・・);
*列の値が列の値が文字列の場合は’ ’(シングルクウォーテーション)でくくります。


CREATE文(表を作成する命令文)の復習も含めて以下に流れを表示します。なお前回まではPOSTGRESQLを利用していましたが、今回よりMYSQLを利用します。MYSQLのインストール(WIN環境で利用しやすいために変更しました。)

mysql> CREATE DATABASE STADYDB;
Query OK, 1 row affected (0.00 sec)

まず、CREATE DATABASE データベース名 で利用するデータベースエリアを作成します。イメージ的には、会社では帳簿や取引先一覧表があります。そしてそれを収めている棚があります。ここでのデータベースはちょうどその棚みたいなものです。

mysql> USE STADYDB;
Database changed

一度作成したデーターベースは消さない限り残ります(あたりまえですが)。その棚であるデータベースを使いたい場合は USE文を使います。
上記のように USE データベース名 で利用可能になります。

mysql> CREATE TABLE 売上表(
-> 店舗番号 CHAR(2),
-> 店舗名 CHAR(10),
-> 売上表 INT
-> );
Query OK, 0 rows affected (0.01 sec)

次はデータベースの中の表を作成します。表は棚の中の帳簿であったり、顧客管理帳であったりします。ここでは売上表を想定してみました。CREATE文に関してはCREATEの説明のを参考にしてください。

mysql> INSERT INTO 売上表 VALUES ('01','本店',1500000);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO 売上表 VALUES ('02','山梨支店',500000);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO 売上表 VALUES ('03','長野支店',600000);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO 売上表 VALUES ('04','名古屋支店',800000);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO 売上表 VALUES ('04','大阪支店',900000);
Query OK, 1 row affected (0.00 sec)

ようやく本日の課題です。上記のようにデータを入力してゆきます。なんでももっと簡単にデータを登録する方法もあるみたいですが、今のところは1件、1件登録です。特に問題は無いと思います。前述したように 文字列には’ ’を忘れないでください。

さて登録した内容を確認したいのでSELECT文をつかいます。これについては次回に詳しく行います。ちょっとだけ説明すると * は全件、つまり全データを表示する。という意味をもちます。したがって、下記は売上表からすべての列(店舗番号列、店舗名列、売上表列)を表示するという意味になります。

 

mysql> SELECT * FROM 売上表;
+----------+------------+---------+
| 店舗番号 | 店舗名 | 売上表 |
+----------+------------+---------+
| 01 | 本店 | 1500000 |
| 02 | 山梨支店 | 500000 |
| 03 | 長野支店 | 600000 |
| 04 | 名古屋支店 | 800000 |
| 04 | 大阪支店 | 900000 |
+----------+------------+---------+
5 rows in set (0.00 sec)