Mac で MySQL:
インストール、初期設定および Table の作成

UB3/informatics/mac/mysql

このページの最終更新日: 2023/06/10


  1. 概要: MySQL とは
  2. Homebrew を使ってインストール
  3. データベースと Table の作成
  4. Table の設定
  5. データを Table に追加する

広告

概要: MySQL とは

MySQL はデータベース (つまりテーブル状の行列の中に、数字や文字列などの形式を指定されたデータが格納されているもの) の管理システムの一種である。

htmlphp と相性が良く、検索が早いのが特徴らしい。また、同じ理由でユーザー参加型のウェブサイトにも使われる。つまり、ユーザーの書き込みなどがサーバー中にある MySQL に格納され、Web ページとして読み出されているわけである。

オープンソースであり、商用利用でもライセンス料は不要 (1,2)。

Homebrew を使ってインストール

このページ に従い、以下のコマンドを ターミナル で順に実行した。2018 年 9 月、OS は High Sierra。

Homebrew と Xcode が必要。なければ検索して公式ページからインストールしておくこと。

  • brew update
  • brew install mysql
  • brew info mysql でインストールされたバージョンの確認などができる。

以下のように、とりあえず立ち上げと終了を行ってみる。

  • mysql.server start で起動。成功すると SUCCESS! というメッセージ。
  • mysql -uroot で root ユーザーとしてログイン。プロンプトが mysql> に。
  • mysql> exit で終了。

セキュリティのため、root ユーザーのパスワード設定など。

  • mysql_secure_installasion とする。基本は全て Yes で。
  • これがうまくいくと、ログインコマンドは mysql -uroot -p になる。

MySQL のパスは /usr/local/bin である。bin の中にコマンドがあることを確認しておいてもいいかもしれない。データの保存場所は /usr/local/var で、database に対応したフォルダが作成される。

データベースと Table の作成

MySQL では、database の中に table があるという構造になっている。このページ を参考に、データベースの作成からデータの追加まで。

Database の作成

mysql> show databases;

これで現在あるデータベースの一覧を見ることができる。セミコロンは命令終了を意味する (3)。とりあえず、 test_database という新しいデータベースを作成し、それを使うことにする。

mysql> create database test_database;
mysql> use test_database

参照先サイトでは大文字になっているが、コマンドは小文字で OK。

データベースを消すときは drop database databasename; を実行する。


Table の作成

次に、test_database 内に test_table を作ってみる。データ形式の指定が入るので、やや複雑になる。

mysql> create table test_table (
id integer not null auto_increment,
title varchar(20) not null,
primary key(id)
);

この意味するところは、2 列のテーブルを作り、1 列目は id、2 列目は title とするということである。

Excel のイメージから「列」と書いたが、実際には id と title は field と呼ばれる。

mysql> describe test_table;

で、テーブルの構造を確認することができる。ターミナル上に次のように表示される。また、データベース内のテーブルを一覧表示したい場合は show tables; である。

MySQLのテーブル

Table の設定

上の表を理解するのに重要な情報を以下にまとめた (3)。

Type

まず、type はデータ型であり、大きく数値、文字列など、および時刻に分けることができる。

int (integer)

整数。int (11) のようなカッコ内の数字はバイト数のようだ。

double

浮動小数点数

bool (boolean)

真偽値

varchar

可変長の文字列で、varchar(255) のようにカッコの中の数字で長さを指定する。数字の上限は 65,535で、数字は文字数でなく行全体のバイト数 (4)。2 と 255 はディスク上の同じ容量を使用するので、255 または 256 に設定する場合が多いようである。

使用される文字コードによって使うバイト数は変わるので、数字と文字数は一致しない。文字コード UTF-8 では、一文字が最大 3 バイトである。

データ入力の際、これを超えた分はカットされるようだ。基本的には、記憶域を節約できる varchar の方が char よりも望ましい。

char

固定長の文字列。バイト数は 255 まで設定できる。

文字が足りない部分には空白が挿入され、通常の設定では取り出すときに空白は削除される。したがって、データが短くても常に最大の記憶域が使用されることになる。

text

varcher 型ではデータベース内に文章が格納されるが、text 型では外部に保存され、データベースではそれを参照するという形になるようだ (5)。

よって読み出しの速度は varcher が勝るが、MySQL データベースにはサイズ制限がある場合もあるので (X server なら 1 GB)、大きなデータベースを想定している場合は text が良いのかもしれない。

blob

バイナリデータ

datetime

日時

date

日付

time

時刻


Null

NULL は、そのフィールドに何も格納していないという意味。データ型に関係なく、そもそもデータが入力されていない状態であるので、値が未入力のフィールドに使うと便利である (参考)。

Null カラムが NO となっているのは NOT NULL 制約と呼ばれ、そのフィールドに NULL を許可しないという意味である。

上記の例では、id および title のフィールドともに NOT NULL 制約がかけられえているが、デフォルト値が NULL になっている。

この NOT NULL 制約を解除するには、以下のように alter コマンドを使う。table_name と filed_name には、対象とするテーブルおよびフィールドの名前を入れる。

alter table table_name modify column field_name text NULL;

MySQLのテーブル NOT NULL制約の解除

データを Table に追加する


広告

References

  1. mysqlでライセンス料の支払い義務が発生するタイミング. Link: Last access 2018/09/11.
  2. MySQLを商用利用すると無料で使えないという都市伝説. Link: Last access 2018/09/11.
  3. Amazon link: できる PROシリーズ, できる MySQL.
  4. MySQLのデータ型の後にある括弧について. Link: Last access 2018/09/11.
  5. テキストにはVARCHAR型と?TEXT型のどちらを使うべきか? Link: Last access 2018/09/16.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。