00メニュー > 01はじめてのMySQL > 02MySQLの基礎知識 > 03MySQLを使いこなす > 04MySQL+PHPの基礎 > 05MySQL+PHPの実践 > 06Appendix

04データベースの作成(備忘録)→ > 01p > 02p > 03p > 04p > 05p > END

04 データベースの作成

データベースの作成→テーブルの作成→データの挿入→データの確認、そしてテーブルを改造し、コピー、そして削除する方法です。
☆CHAPTER03⇒MySQLモニタ
★CHAPTER04⇒データベースの作成
☆CHAPTER05⇒データ型とデータの入力
☆CHAPTER06⇒テーブルを改造する
☆CHAPTER07⇒テーブルやレコードをコピー・削除する

★CHAPTER04⇒データベースの作成(p37)★

データベースの作成→テーブルの作成→データの挿入→データの確認といった、テーブルの作成までの一連の流れを勉強します。

(1)《データベースを作成する》

(1-1)データベースの作成

●書式⇒データベースを作成

CREATE DATABASE データベース名;

●操作手順

①次のように入力して、データベースを作成する
CREATE DATABASE db1;

【実行結果】

mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.28 sec)

(2)《作成したデータベースを確認する》

(2-1)データベースの確認

●書式⇒データベースの一覧を表示する

SHOW DATABASES;

●操作手順

①次のように入力して、作成したデータベースを確認する
SHOW DATABASES;

【実行結果】

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cdcol |
| db1        |
| mysql |
| phpmyadmin |
| test |
| webauth |
+--------------------+
7 rows in set (0.78 sec)

(2-2)「test」と「mysql」データベース

(3)《使うデータベースを指定する》

(3-1)データベースの指定

●書式⇒使用するデータベースを指定する

USE データベース名;

●操作手順

(データベースを「db1」を使うことを指定する)
USE db1;

【実行結果】

mysql> USE db1;
Database changed

●書式⇒現在使っているデータベースを表示する

SELECT DATABASE();

【実行結果】

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| db1 |
+------------+
1 row in set (0.02 sec)

(4)《テーブル「tb1」を作る》

(4-1)カラムとフィールド

(4-2)データ型

●作成するテーブルの構造 p42

(4-3)テーブルの作成

●書式⇒テーブルを作成する

CREATE TABLE テーブル名 (カラム1 データ型1,カラム2 データ型2・・・);

●テーブル構造 p43

●操作手順

(MySQLモニタで「db1」を使用している状態で、次のように入力する)
CREATE TABLE tb1(bang VARCHAR(10),nama VARCHAR(10),tosi INT);

【実行結果】

mysql> CREATE TABLE tb1(bang VARCHAR(10),nama VARCHAR(10),tosi INT);
Query OK, 0 rows affected (0.25 sec)

(5)《すべてのテーブルを表示する》

(5-1)すべてのテーブルの表示

●書式⇒すべてのテーブルの表示

SHOW TABLES;

●操作手順

(次のように入力して、作成したテーブル「td1」の存在を確認する)
SHOW TABLES;

【実行結果】

mysql> SHOW TABLES;
+---------------+
| Tables_in_db1 |
+---------------+
| tb1 |
+---------------+
1 row in set (0.05 sec)

mysql>

(6)《テーブルのカラムの構造を確認する》

(6-1)テーブルのカラム構造の確認

●書式⇒テーブルのカラム構造の確認

DESC テーブル名;

●テーブルの構造 p46

●操作手順

①次のように入力して、テーブル「td1」の構造を表示する
DESC tb1;

【実行結果】

mysql> DESC tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| bang | varchar(10) | YES | | NULL | |
| nama | varchar(10) | YES | | NULL | |
| tosi | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.84 sec)

mysql>

(7)《テーブにデータを挿入する》

(7-1)データの挿入

●書式⇒データをテーブに挿入する

INSERT INTO テーブル名 VALUES(データ1,データ2・・・);

●実行される内容 p48

●操作手順

①次のように入力して、「td1」のカラムbang,nama,tosiに、それぞれ'A101','佐藤',40のデータを入力する→2件目以降続けて入力する
INSERT INTO tb1 VALUES('A101','佐藤',40);

【実行結果】

mysql> INSERT INTO tb1 VALUES('A101','佐藤',40);
Query OK, 1 row affected (0.26 sec)

mysql>

(7-2)「tb1」に2件目のデータを追加する

●実行される内容 p49

(7-3)カラムを指定してデータを挿入する

●書式⇒カラムを指定してデータをテーブに挿入する

INSERT INTO テーブル名 (カラム1,カラム2・・・) VALUES(データ1,データ2・・・);

●実行される内容 p50

●操作手順

(次のように入力して、4件目のデータを挿入する)
INSERT INTO tb1 (tosi,nama,bang) VALUES(23,'渡辺','A104');

【実行結果】

未処理

一度にデータを入力する

●書式⇒複数のデータをテーブに挿入する

INSERT INTO テーブル名 (カラム1,カラム2・・・) VALUES(データ1,データ2・・・),(データ1,データ2・・・),(データ1,データ2・・・)・・・;

●操作手順

INSERT INTO tb1 (bang,nama,tosi) VALUES ('A101','佐藤',40),('A102','高橋',28),('A103','中川',20),('A104','渡辺',23),('A105','西沢',35);

【実行結果】

mysql> INSERT INTO tb1 (bang,nama,tosi) VALUES ('A101','佐藤',40),('A102','高橋' ,28),('A103','中川',20),('A104','渡辺',23),('A105','西沢',35);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql>

(8)データを表示する

(8-1)データの表示

●書式⇒カラムごとのデータを表示する

SELECT カラム名1,カラム名2・・・FROM テーブル名;

●操作手順

①テーブル「tb1」のカラム「bang」と「nama」を表示の場合
SELECT bang,nama FROM tb1;
②すべてのレコードを表示の場合
SELECT * FROM tb1;

①の【実行結果】

mysql> SELECT bang,nama FROM tb1;
+------+------+
| bang | nama |
+------+------+
| A101 | 佐藤 |
| A101 | 佐藤 |
| A102 | 高橋 |
| A103 | 中川 |
| A104 | 渡辺 |
| A105 | 西沢 |
+------+------+
6 rows in set (0.44 sec)

mysql>

②の【実行結果】

mysql> SELECT * FROM tb1;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)

mysql>

(9)《(準備)テーブル「tb1」のコピー》p53

●テーブル「tb1」をコピーして「tb1A」「tb1B」「tb1C」を作成します。

※はじめる際は、使用するデータベースを指定することをわすれずに・・・
(データベースを「db1」を使うことを指定する)
USE db1;

CREATE TABLE tb1A SELECT * FROM tb1;
CREATE TABLE tb1B SELECT * FROM tb1;
CREATE TABLE tb1C SELECT * FROM tb1;

●コピーの「tb1A」「tb1B」「tb1C」内容。

mysql> SELECT * FROM tb1A;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)
mysql> SELECT * FROM tb1B;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)
mysql> SELECT * FROM tb1C;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)

<まとめ>

●データベースを作成する手順
●テーブルを作成する手順
●カラム構造を表示する方法
●レコードを挿入する方法
●全レコードを表示する方法

<チェック>

□『CREATE DATABASE…』の使い方を理解している
□『CREATE TABLE…』の使い方を理解している
□『DESC…』の使い方を理解している
□『INSERT INTO…』の使い方を理解している
□『SELECT * FROM…』の使い方を理解している

<練習問題>

問題1 1行の命令で、テーブル「td1」の全レコードを2回表示させる。
問題2 ユーザーの情報は、データベース「mysql」の「user」テーブルのカラム「user」にあります。この情報を表示してください。

<解答>

問題1
SELECT * FROM tb1;SELECT * FROM tb1;

【実行結果】

mysql> SELECT * FROM tb1;SELECT * FROM tb1;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)

+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
6 rows in set (0.00 sec)

mysql>

問題2
USE mysql;
SELECT user FROM user;

【実行結果】

mysql> USE mysql;
Database changed
mysql> SELECT user FROM user;
+------+
| user |
+------+
| pma |
| root |
+------+
2 rows in set (0.50 sec)

mysql>