初心者向けのMySQL入門用に参考になる情報をまとめています。
GUIツールで、データベースの操作感をつかむ
MySQLどころか、SQLもイマイチわからない…というあなたは、GUIツールを使って何が出来るかを確認しておくのがおすすめです。コマンドがわからなくても、直感的な操作が可能です。
ここでは、MySQL用のGUIツールを2つご紹介します。
MySQL Workbenchは、簡単にパソコンにインストールできる
ひとつ目は、MySQLをインストールすると使えるようになる、MySQL Workbench。
【関連記事】
▶MySQL Workbench 8.0を日本語化して、ER図でリバースエンジニアリング
パソコンにインストールすれば使えるため、自宅での学習に最適です。
MySQL自体のインストール方法は、以下の記事を参考にしてください。
【関連記事】
▶MySQL 8.0 インストール ダウンロードから初期設定まで解説
phpMyAdminは、サーバにインストールしてあればすぐ使える
もうひとつは、フリーのMySQL用GUIツールのphpMyAdmin。
WebベースのMySQL用GUIツールで、サーバにインストールしてあれば複数メンバーですぐに利用可能なため、職場などでの学習用に最適です。
フリーのMySQLサンプルデータベースを利用する
MySQLには、公式のサンプルデータベースが用意されています。
employee、world、world_x、sekila、Menagereの5種類です。
下記URLのExample Databasesから、データベース構築用のSQLをダウンロードできます。(employeeデータベースのみ、Githubからのダウンロードとなってます)
参考)MySQL :: Other MySQL Documentation
ここでは、Linuxサーバにemployeeデータベースをインストールする手順をご紹介します。※以下の手順は、ubuntu 18.04にて実行しました。
以下のコマンドを実行し、employeeデータベースのインストール用ファイルをダウンロードします。
% wget https://github.com/datacharmer/test_db/archive/master.zip
master.zipがカレントディレクトリにダウンロードされます。以下のコマンドで、ファイルを解凍します。
% unzip master.zip Archive: master.zip 0b66c2338736779e3b150c7d125b1012d95a961f creating: test_db-master/ inflating: test_db-master/Changelog inflating: test_db-master/README.md inflating: test_db-master/employees.sql inflating: test_db-master/employees_partitioned.sql : :
以下のコマンドで、employeeデータベースをインストールします。
※ここではMySQLのユーザをroot、パスワードをmy-secret-pwという前提で実行しています。rootユーザ以外で実行する場合は、MySQLユーザに以下の権限(privileges)が必要です。
- SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW
% mysql -u root -pmy-secret-pw < ./employees.sql mysql: [Warning] Using a password on the command line interface can be insecure. INFO CREATING DATABASE STRUCTURE INFO storage engine: InnoDB INFO LOADING departments INFO LOADING employees INFO LOADING dept_emp : : data_load_time_diff 00:00:35
以下のコマンドを実行し、インストールが正常におこなわれたことを確認します。
% mysql -u root -pmy-secret-pw < ./test_employees_md5.sql mysql: [Warning] Using a password on the command line interface can be insecure. INFO TESTING INSTALLATION table_name expected_records expected_crc employees 300024 4ec56ab5ba37218d187cf6ab09ce1aa1 departments 9 d1af5e170d2d1591d776d5638d71fc5f dept_manager 24 8720e2f0853ac9096b689c14664f847e dept_emp 331603 ccf6fe516f990bdaa49713fc478701b7 titles 443308 bfa016c472df68e70a03facafa1bc0a8 salaries 2844047 fd220654e95aea1b169624ffe3fca934 table_name found_records found_crc employees 300024 4ec56ab5ba37218d187cf6ab09ce1aa1 departments 9 d1af5e170d2d1591d776d5638d71fc5f dept_manager 24 8720e2f0853ac9096b689c14664f847e dept_emp 331603 ccf6fe516f990bdaa49713fc478701b7 titles 443308 bfa016c472df68e70a03facafa1bc0a8 salaries 2844047 fd220654e95aea1b169624ffe3fca934 table_name records_match crc_match employees OK ok departments OK ok dept_manager OK ok dept_emp OK ok titles OK ok salaries OK ok computation_time 00:00:11 summary result CRC OK count OK
コマンドラインからSQLを実行する
コマンドラインからSQLを実行するには、mysqlコマンドを使用します。
※ここでは、MySQL 5.7.28がインストールされていて、MySQLのrootユーザのパスワードがmy-secret-pwという前提で解説しています。
% mysql -u root -pmy-secret-pw mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.28 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
mysql> というプロンプトが表示されていれば、SQLを入力して実行が可能となります。
データベースを選択するには、useを使用
現在、どのようなデータベースが存在しているのか確認してみましょう。
show databasesで、データベース一覧を確認できます。行の最後の「;」は、行の区切りを表します。忘れないように注意しましょう。
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | employees | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
information_schema、mysql、performance_schema、sysはシステムで使用するデータベースです。先ほどインストールしたサンプルデータベースemployeesを選択してみましょう。
useを使って、データベースの選択ができます。
mysql> use employees; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
これで、以降に入力するSQLは、employeesデータベースに対して実行されます。
MySQLの基本的なSQLを実行する
employeesデータベースのテーブルを確認してみましょう。
show tablesで、テーブル一覧が表示されます。
mysql> show tables; +----------------------+ | Tables_in_employees | +----------------------+ | current_dept_emp | | departments | | dept_emp | | dept_emp_latest_date | | dept_manager | | employees | | salaries | | titles | +----------------------+ 8 rows in set (0.00 sec)
簡単なSQLを実行してみましょう。以下のSQLを実行すると、employeesテーブルの件数を出力します。
mysql> select count(*) from employees; +----------+ | count(*) | +----------+ | 300024 | +----------+ 1 row in set (0.05 sec)
入門編の最後に、SQLの4大ステートメント(select、insert、update、delete)を実行してみましょう。以下の記事に、コピペで実行できるサンプルコードをまとめましたので、お試しください。
【関連記事】
▶SQL文一覧 基本4大ステートメントのサンプルコード集
まとめ
- データベースの操作感をつかむには、MySQL WorkbenchやphpMyAdminなどのGUIツールを操作してみるのがおすすめ。
- MySQLの学習に便利なサンプルデータベースが無料公開されています。基礎を学ぶには、employeeデータベースがおすすめ。
- コマンドラインからSQLを実行するには、mysqlコマンドを実行後、SQLを入力。行の最後に「;」(セミコロン)をつける。