Mac で MySQL:
インストール、初期設定および Table の作成
UB3/informatics/mac/mysql
このページの最終更新日: 2024/09/30- 概要: MySQL とは
- Homebrew を使ってインストール
- データベースと Table の作成
- Table の設定
- データを Table に追加する
広告
概要: MySQL とは
MySQL はデータベース (つまりテーブル状の行列の中に、数字や文字列などの形式を指定されたデータが格納されているもの) の管理システムの一種である。
html や php と相性が良く、検索が早いのが特徴らしい。また、同じ理由でユーザー参加型のウェブサイトにも使われる。つまり、ユーザーの書き込みなどがサーバー中にある 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 の作成
これで現在あるデータベースの一覧を見ることができる。セミコロンは命令終了を意味する (3)。とりあえず、 test_database という新しいデータベースを作成し、それを使うことにする。
mysql> use test_database
参照先サイトでは大文字になっているが、コマンドは小文字で OK。
データベースを消すときは drop database databasename; を実行する。
Table の作成
次に、test_database 内に test_table を作ってみる。データ形式の指定が入るので、やや複雑になる。
id integer not null auto_increment,
title varchar(20) not null,
primary key(id)
);
この意味するところは、2 列のテーブルを作り、1 列目は id、2 列目は title とするということである。
Excel のイメージから「列」と書いたが、実際には id と title は
で、テーブルの構造を確認することができる。ターミナル上に次のように表示される。また、データベース内のテーブルを一覧表示したい場合は show tables; である。
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 には、対象とするテーブルおよびフィールドの名前を入れる。
データを Table に追加する
広告
References
- mysqlでライセンス料の支払い義務が発生するタイミング. Link: Last access 2018/09/11.
- MySQLを商用利用すると無料で使えないという都市伝説. Link: Last access 2018/09/11.
- Amazon link: できる PROシリーズ, できる MySQL.
- MySQLのデータ型の後にある括弧について. Link: Last access 2018/09/11.
- テキストにはVARCHAR型と?TEXT型のどちらを使うべきか? Link: Last access 2018/09/16.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。