Webデザインの学習を進めているとMySQLがキーワードとして出てきているのではないでしょうか。しかし、MySQLはプログラミング言語の学習と違い、データベースという抽象的なものを扱うので、とっつきにくさを感じている方も多いと思います。この記事では、MySQLの基本を説明し、最初に覚えるべき10個のコマンドを紹介します。ここを押さえておけば、より深いMySQLの学習も効率よく進められると思いますので、是非チェックしてみて下さい。
Contents
1 MySQLとは何か? なぜ学習すべきなのか?
MySQLとは、データベース管理システムの一種です。データベースとは情報を体系的に整理した形で蓄積したものです。抽象的な概念ですが、情報が体系的に整理されたデータベースによって、情報の検索や並び替え、更には情報と情報を関連付けて有益な情報を抜き出すことが可能となります。MySQLは、オープンソースで提供されていることもあり、データベース管理システムとして広く使用されています。Google、Facebook、Youtube等などの有名なWebサービスもMySQLが使われています。
ではなぜMySQLを学習すべきなのでしょうか。フリーランスを目指す方々や、業務としてIoTシステム構築が必要な方々にとって、次の2つがポイントになると考えています。
・MySQL関連の業務案件が多い
・IoTでもデータベースシステムの構築が必要
1.1 MySQL関連の業務案件が多い
現在、世の中のサービスはどんどんWebをきっかけにして行われるようになってきています。例えば、何かのサービスに申し込みを行うことを考えてみると、一昔前は、電話で申し込んだり、ハガキを送ったりすることもありました。しかし、現在ほとんどのサービスはWebから申し込みを行う形となっています。今後もWebを使ったシステムは益々世の中に浸透し、進化していくはずです。 事実、こういったWebをベースにしたシステム構築でMySQLの業務案件が多くなっています。クラウドソーシングサイトを見ても、たくさんのMySQL関連の仕事依頼があります。
1.2 IoTでもデータベースシステムが必要
本サイトのテーマであるIoTのシステムの構築においても、モノからの情報を体系的に整理して有効活用していくためには、MySQL等のデータベース管理システムの導入が必要不可欠です。IoTのシステムでは、組込み系のエンジニアが中心になって構築していくケースが多いと思います。組み込み系のエンジニアも、Web開発の知識習得としてMySQLを学習する必要が出てくると思います。
前置きが少し長くなりましたが、最初に押さえておくべき10個のコマンドを紹介します。MySQLの学習初期に参考になるのではないかと思います。
2 最初に覚える10個のコマンド
2.1 用語の定義
まずはデータベースに関する用語を整理します。
データベース:テーブルの集まり
テーブル:行と列からなる表。Excelの表のイメージと同じです。
カラム:テーブルの各列のことです。各列の名称をカラム名と言ったりします。
レコード:テーブルの各行のことです。データ1件分を表します。
フィールド:レコードを構成する各要素です。
まとめると下の画像のようなイメージです。ではMySQLの10個の基本コマンドについて見ていきましょう。
2.2 10個のコマンド一覧
代表的なMySQLコマンドを10個リストアップしました。まずはこの10個を覚えておくと、基本的なMySQLの操作は出来るはずです。それぞれの使用方法については下に記載していますので、必要に応じて確認して下さい。
No. | 内容 | MySQLコマンド |
ⅰ | MySQLサーバへログインする | mysql -u ユーザ名 -p |
ⅱ | データベースを作成する | create database データベース名; |
ⅲ | データベースを切り替える | use データベース名; |
ⅳ | データベース内のテーブルを表示する | show tables from データベース名; |
ⅴ | パスワードを設定しユーザを作成する | create user ユーザ名 identified by 'パスワード'; |
ⅵ | ユーザにデータベースアクセス権限を設定する | grant all on データベース名.* to ユーザ名; |
ⅶ | テーブルを作成する | create table テーブル名(カラム名 型, …); |
ⅷ | テーブルにレコードを追加する | insert into テーブル名(カラム名) values(各フィールドの値); |
ⅸ | テーブルの内容を表示する | select * from テーブル名; |
ⅹ | テーブルの設定情報を表示する | desc テーブル名; |
ⅰ MySQLサーバへログインする
このコマンドはコンソールからの入力となります。"-u"は特定ユーザログインのオプションで、その後ろにログインしたいユーザ名を入力します。"-p"はパスワード認証ログインのオプションです。事前にルートユーザでⅴの方法でユーザを作成しておく必要があります。
mysql -u ユーザ名 -p
ⅱ データベースを作成する
このコマンドにはこれといったオプションはありませんが、データベースの作成はルートユーザか、CREATEDBという権限を持つユーザである必要があります。
create database データベース名;
ⅲ データベースを切り替える
MySQLでのデータベースに関するコマンドは、選択しているデータベースに対して働きます。データベースを作成しても、そのデータベースが選択されていない場合はコマンドを実行することが出来ません。このコマンドがデータベースを選択するコマンドになります。
use データベース名;
ⅳ データベース内のテーブルを表示する
データベースに含まれるテーブルの一覧を表示するコマンドです。データベースには複数のテーブルを持つことが出来るため、tablesと複数形のsが含まれています。
show tables from データベース名;
ⅴ パスワードを設定しユーザを作成する
ルートユーザの場合、MySQLのシステムの構成を変更することが可能であり、アクセスや実行の権限が限定された特定ユーザでログインする場合が多いです。このコマンドで、特定ユーザを作成することが出来ます。 実行作成したユーザでログインする際に、ここで設定したパスワードの入力が必要になります。 注意点として、基本的にユーザの作成はルートユーザでしか行なえませんので、ルートユーザでログインしてから実行して下さい。
create user ユーザ名 identified by 'パスワード';
ⅵ ユーザにデータベースアクセス権限を設定する
このコマンドはユーザ名の箇所で指定するユーザに対し、指定するデータベースに対する権限を設定します。"all"の指定と、データベース名の後の".*"の指定で指定するデータベースに対する全ての権限が、指定するユーザに設定されます。
grant all on データベース名.* to ユーザ名;
ⅶ テーブルを作成する
テーブルを作成するコマンドです。テーブルは選択しているデータベースに追加されます。各カラムには、項目毎に入力されるデータの型を指定しておく必要があります。
create table テーブル名(カラム名 型, …);
ⅷ テーブルにレコードを追加する
テーブルにレコードを追加します。valuesには、指定するカラムの型どおりの値を入力しておく必要があります。複数のカラムに対して値を設定する場合は、次のようにカンマで区切り入力します。
テーブル名(カラム名1,カラム名2,…) values(カラム1の型で値を入力, カラム2の型で値を入力, …)
insert into テーブル名(カラム名) values(各フィールドの値);
ⅸ テーブルの内容を表示する
selectコマンドでテーブルの内容を取得出来ます。selectの後にアスタリスクを指定すると、全てのカラムのレコードを取得することが出来ます。テーブル名の後に、where指定をすると指定するレコードのみ抽出することが可能です。
select * from テーブル名;
ⅹ テーブルの設定情報を表示する
指定するテーブルの設定情報を取得します。指定するテーブルのカラム名、データの型、Null入力可否、デフォルト値などの確認が出来ます。
desc テーブル名;
いかがでしたでしょうか。MySQLで覚える最初の10個のコマンドとして紹介させて頂きました。ここで紹介していないコマンドや、各コマンドの詳細な使い方等もこのサイトで紹介して行きたいと思います。最後まで読んで頂きありがとうございます。