基礎からMySQLの基礎を学びます。その3

DB作成を作成しよう

DB作成→テーブル作成→データ挿入→データ確認の流れで学んでいきます。

DB作成

DB作成には、下記のコマンドを使用します。

CREATE DATABASE データベース名; //デリミタを忘れずに

実行してみます。

mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.03 sec) //クエリはOK!一行変わったよ。0.03秒かかったよ。

「Query OK」が表示されたので、DBの作成が無事完了したみたいです。

注意点

SQLのコマンドは、半角文字で入力します。全角文字が入るとエラーになるので注意が必要です。
大文字・小文字は区別しないので、「CREATE DATABASE」でも「Create Database」でも同じコマンドです。
また、DB名やテーブル名は、WindowsとLinuxでは扱いが異なるので注意。Linuxでは大文字、小文字は区別するので、「tb1」と「TB1」は別物になります。

DBの確認

現在存在するDB名を表示するときは、下記のコマンドを実行します。

SHOW DATABASES;

実行してみます。

mysql> show databases;
                                          • +
Database
                                          • +
information_schema
cdcol
db1
mysql
performance_schema
phpmyadmin
test
webauth
                                          • +
8 rows in set (0.07 sec)

先ほど作成したdb1が存在することが確認できました。

使うDBを指定する

MySQLでは、起動してすぐDBが使えるわけではなく、必ず「何のDBを使用するのか」を明示的に宣言する必要があります。
RDBMSによっては、モニタのようなプログラムを起動するときに、一緒にDBを指定しないとダメ!!というものもあるみたいですが、MySQLではいつ宣言しても大丈夫です。

USE データベース名 //「;」は付けない。USEはSQL文ではないから。

実行してみます。

mysql> use db1
Database changed

使用するDBをdb1に指定しました。

現在使用しているデータベースの表示

SELECT DATABASE();

実行結果

mysql> select database();
                          • +
database()
                          • +
db1
                          • +
1 row in set (0.00 sec)
デーブル「tb1」を作ります

db1は空っぽの状態なので、テーブルを作成し、データを挿入していきます。

データ型

カラム(列)に保管するデータの種類をデータ型をいいます。
INTは1,2,3・・・のような整数のデータを保管できることを意味します。
VARCHARは、文字データを保管できます。
「VARCHAR(10)」と書くと、「10個までの文字が入力できる」という意味になります。

テーブル作成

ここでは、3つのカラム(列)と、「データ型」を持つテーブルを作成していきます。
テーブル「tb1」

内容 社員番号 氏名 年齢
カラム名(列名) bang name tosi
データ型 VARCHAR(10) VARCHAR(10) INT

では、実際に作成していきます。

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

db1を使用している状態で実行。

mysql> create table tb1(bang VARCHAR(10), name VARCHAR(10), tosi INT);
Query OK, 0 rows affected (0.15 sec)

テーブルを作成しました。

全てのテーブルを表示する

SHOW TABLES;

実行結果

mysql> show tables;
                                • +
Tables_in_db1
                                • +
tb1
                                • +
1 row in set (0.02 sec)

確認できました。

文字セットを指定してテーブルを作る

MySQLでテーブルに文字を入れたとき、色々な原因で文字化けを起こすことがあります。
そんなときに、「文字コードを指定してテーブルを作成する」という解消法があります。

mysql> create table tb1(bang VARCHAR(10), name VARCHAR(10), tosi INT);
CHARSET=sjis;

こんな感じ。

他のデータベースへのアクセス

SELECT * FROM db2.table;

こんな感じ。USEでデータベースが選択されていない状態でも実行できます。

テーブルのカラム構造を確認する

DECS テーブル名;

実行。

mysql> desc tb1;
                                                                                                          • +
Field Type Null Key Default Extra
                                                                                                          • +
bang varchar(10) YES NULL
name varchar(10) YES NULL
tosi int(11) YES   NULL
                                                                                                          • +
3 rows in set (0.07 sec)

tb1の構造が表示されました。
「Field」がカラム名、「Type」がデータ型を示します。

SHOWコマンドについて

SHOWコマンドは他のRDBMSSQLにはない、MySQL固有のコマンドみたいです。
でもどんどん使用します。

テーブルにデータを挿入する

続いて、データを追加していきます。

INSERT INTO テーブル名 VALUES(データ1、データ2...)

カラムbangに入れる値 nameに入れる値 tosiに入れる値
A101 佐藤 40
A102 高橋 28
A103 中川 20
A104 渡辺 23
A105 西沢 35

こんな感じの5件分のデータを挿入します。1件分のデータを「レコード」といいます。|A101|佐藤|40|がレコード。
また、文字列は「""」(ダブルクォーテーション)、または「''」(シングルクォーテーション)で囲みます。
お好みで。個人的には「""」を使用していきます。

では、実行してみます。

mysql> insert into tb1 values("A101","佐藤",40);
Query OK, 1 row affected (0.13 sec)

「tb1」のカラムそれぞれに、データが挿入されました。
2、3件目も同様に追加してみます。

mysql> insert into tb1  values("A102","高橋",28);
Query OK, 1 row affected (0.05 sec)

mysql> insert into tb1 values("A103","中川",20);
Query OK, 1 row affected (0.06 sec)

4、5件目は別の方法で挿入します。

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

実行。

mysql> insert into tb1 (tosi,name,bang) values(23,"渡辺","A104"); //ここでは順番を変えて挿入します
Query OK, 1 row affected (0.04 sec)

mysql> insert into tb1 (tosi,name,bang) values("A105","西沢",35);
Query OK, 1 row affected, 1 warning (0.03 sec)
一度にデータを入力する

一度に複数レコードのデータを入力する方法もあります。

INSERT INTO デーブル名 (カラム名1、カラム名2…) VALUES(データ1、データ2、…)、(データ1、データ2、…)…;

データを表示する

カラムのデータを表示させるには、「SELECT」コマンドを使います。

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

実行してみます。

mysql> select bang, name from tb1;
                            • +
bang name
                            • +
A101 佐藤
A102 高橋
A103 中川
A104 渡辺
35 西沢
                            • +
5 rows in set (0.03 sec)

テーブル「tb1」のカラム「bang」と「name」が表示されました。イイネ!
ただ、いちいちカラム名を指定するのはメンドクサイですよね。
そんなときは、「全部」を意味する「*」(アスタリスク)を指定しましょう。

mysql> select * from tb1;
                                          • +
bang name tosi
                                          • +
A101 佐藤 40
A102 高橋 28
A103 中川 20
A104 渡辺 23
35 西沢 0
                                          • +
5 rows in set (0.00 sec)

全部のカラムのデータが表示されました。

「SELECT」で指定した値を出力する

たとえば、

mysql> select "テスト";

                  • +
テスト
                  • +
テスト
                  • +

1 row in set (0.00 sec)

これは、単純な関数の値や計算の結果を確認するときに便利です。
また、「SELECT」はMySQL以外のRDBMSでも必ず使え、どんな貴重なテーブルで実行しても、決してデータが壊れることがありません。

まとめ

つかれました(´・_・`)