MySQL

MySQLクライアントの起動

  • DBを指定してMySQLクライアントを起動
$ mysql -u [ユーザ名] -D [データベース名]-p

-u オプションでは MySQL に接続するユーザー名を指定します。  -D オプションでは接続先のデータベース名を指定します。  -p オプションはパスワードを送信する場合に指定します。

例えば、root ユーザーで test というデータベースに接続する場合、下記のようにコマンドを実行します。 尚、root ユーザーにはパスワードを設定しているため、-p オプションも付加しています。

svr001:~$ mysql -u root -D test -p
Enter password:********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2002452
Server version: 5.0.51a-3ubuntu5.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

正しく接続されれば、mysql のプロンプトが表示されます。 終了したい場合は \q を実行するとプロンプトを終了することができます。

mysql> \q
Bye
svr001:~$
  • DBを指定しないでMySQLクライアントを起動
$ mysql -u [ユーザ名] -p

-u オプションでは MySQLに接続するユーザー名を指定します。  -p オプションはパスワードを送信する場合に指定します。

例えば、root ユーザーで下記のようにコマンドを実行します。 尚、root ユーザーにはパスワードを設定しているため、-p オプションも付加しています。 MySQLクライアントにログイン後、データベースに接続します。

svr001:~$ mysql -u root -p
Enter password:********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2002452
Server version: 5.0.51a-3ubuntu5.8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
mysql> use test;

正しく接続されれば、mysql のプロンプトが表示されます。 ログイン後、useコマンドでデータベースに接続します。 終了したい場合は \q を実行するとプロンプトを終了することができます。

mysql> \q
Bye
svr001:~$
  • ポート番号を指定してMySQLクライアントを起動
$ mysql -u [ユーザ名] -p -P [ポート番号] -s

-u オプションでは MySQLに接続するユーザー名を指定します。  -p オプションはパスワードを送信する場合に指定します。  -P オプションはMySQL のポート番号がデフォルトの 3306 以外で起動している場合  ポート番号の指定が必要になります。3306の場合、このオプションは不要です。  -s オプションを付けるとログイン後の余計なメッセージは表示されません。

例えば、root ユーザーで下記のようにコマンドを実行します。 尚、root ユーザーにはパスワードを設定しているため、-p オプションも付加しています。 ポート番号がデフォルトの3306と違う場合、-P 9000 オプションも付加しています。 ログイン後の余計なメッセージを表示したくないので -s オプションを付加しています。

svr001:~$ mysql -u root -p -P 9000 -s
mysql>
mysql> use test;

正しく接続されれば、mysql のプロンプトが表示されます。 ログイン後、useコマンドでデータベースに接続します。 終了したい場合は \q を実行するとプロンプトを終了することができます。

mysql> \q
Bye
svr001:~$

データベースの作成

mysql> create database [データベース名];

例えば、test というデータベースを作成する場合、 下記のようにコマンドを実行します。

mysql> create database testdb;

正しく作成されれば、下記のメッセージが表示されます。

mysql> create database testdb;
Query OK, 1 row affected (0.05 sec)

データベースの確認

mysql> show databases;

例えば、testdb というデータベースを確認する場合、 下記のようにコマンドを実行します。 正しく作成されていれば、下記のメッセージが表示されます。

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| testdb      |
+-------------------------+
36 rows in set (0.00 sec)

データベースの削除

mysql> drop [データーベース名];

例えば、testdb というデータベースを削除する場合、 下記のようにコマンドを実行します。

mysql> drop database testdb;
Query OK, 0 rows affected (0.00 sec)

データベースの権限

mysql> grant all privileges on [dbname].* to [usr]@"%" identified by '[password]';

例えば、testdb というデータベースに GRANT OPTION 以外の全てのシンプルな権限を設定する場合、 下記のようにコマンドを実行します。

mysql> grant all privileges on testdb.* to sanpei@"%" identified by 'xxxxxxxxx';

テーブルの作成

mysql> create table [db_name].[table_name](
    col_name1 data_type1, 
    col_name2 data_type2,
    col_name3 data_type3, 
    ...);

例えば、testdb というデータベースに fruitと言うテーブルで 各要素にcode char型、name vchar型、price int型の 要素を設定する場合、 下記のようにコマンドを実行します。

mysql> create table testdb.fruit(
                    code char(4),
                    name varchar(20),
                    price int);

※ use またはデーターベースを指定して起動した場合は データーベースに接続されているので、テーブル名の前の データベース名の指定は省略可能です。

mysql> use testdb;
mysql> create table fruit(
                    code char(4),
                    name varchar(20),
                    price int);

テーブルの確認

mysql> show tables from [db_name];

例えば、testdb というデータベースの テーブルのを確認する場合、下記のようにコマンドを実行します。

mysql> show tables from testdb;

カラムの確認

mysql> show columns from [db_name].[tbl_name];

mysql> show columns from [tbl_name] from [db_name];

mysql> show columns from [tbl_name];

例えば、testdb というデータベースに fruitと言うテーブルの各要素 を確認する場合、下記のようにコマンドを実行します。

mysql> show columns from testdb.fruit;
mysql> show columns from testdb.fruit from testdb;
mysql> show columns from fruit from testdb; 

mysql> use testdb;
mysql> show columns from fruit;

mysql> desc fruit;

※データーベースに接続されている場合は データベース名の指定は省略可能です。

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | char(4)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| price | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

テーブルに要素を登録

mysql> insert into [db_name].[tbl_name] values(
                  '[column1]', 
                  '[column2]'
                  ,[column3]);

例えば、testdb というデータベースに登録する場合 下記のようにコマンドを実行します。

mysql> insert into testdb.fruit values('1001', 'banana',420)

テーブルの要素を確認する

mysql> select [column1],[column2], ... from [db_name].[tbl_name];

例えば、testdb というデータベースの fruitテーブルの 全要素を確認する場合 下記のようにコマンドを実行します。

mysql> select * from testdb.fruit;
mysql> select code, name, price from testdb.fruit;
mysql> select * from fruit;

+------+---------+-------+
| code | name    | price |
+------+---------+-------+
| 1001 | banana1 |   420 |
| 1002 | apple2  |   300 |
| 1003 | orange3 |   150 |
+------+---------+-------+

データベース接続されている場合、データベース指定は必要あいません。



例えば、testdb というデータベースの fruitテーブルの 要素name, priceを確認する場合 下記のようにコマンドを実行します。

mysql> select name, price from testdb.fruit;
+---------+-------+
| name    | price |
+---------+-------+
| banana1 |   420 |
| apple2  |   300 |
| orange3 |   150 |
+---------+-------+

mysql> select price, name from fruit;
+-------+---------+
| price | name    |
+-------+---------+
|   420 | banana1 |
|   300 | apple2  |
|   150 | orange3 |
+-------+---------+
データベース接続されている場合、データベース指定は必要ありません。

テーブルの要素を変更する

mysql> update [db_name].[tbl_name] set [column1]=[data1]  [, [column2]=[data2] ...] 
      [where [columnx]=[datax]];

例えば、testdb というデータベースの fruitテーブルの codeが1001要素のpraice要素とname要素を更新する場合 下記のようにコマンドを実行します。

mysql> update testdb.fruit set price=4200, name='banana9' where code=1001;
mysql> select code, name, price from testdb.fruit;

+------+---------+-------+
| code | name    | price |
+------+---------+-------+
| 1001 | banana9 |  4200 |
| 1002 | apple2  |   300 |
| 1003 | orange3 |   150 |
+------+---------+-------+

データベース接続されている場合、データベース指定は必要あいません。

テーブルの要素を追加する

mysql> insert into [db_name].[tbl_name] ([column1], [column1], ...)
    values ([data1], [data2], ...);

例えば、testdb というデータベースの fruitテーブルに codeが1008でnameがbanana8でpraiceが198の要素を 追加する場合、下記のようにコマンドを実行します。

mysql> insert into testdb.fruit (code, name, price) values (1008, 'banana8', 198);
mysql> select code, name, price from testdb.fruit;

+------+---------+-------+
| code | name    | price |
+------+---------+-------+
| 1001 | banana9 |  4200 |
| 1002 | apple2  |   300 |
| 1003 | orange3 |   150 |
| 1008 | banana8 |   198 |
+------+---------+-------+

データベース接続されている場合、データベース指定は必要あいません。

テーブルの要素を削除する

mysql> delete from [db_name].[tbl_name] [where [columnx]=[datax]];

例えば、testdb というデータベースの fruitテーブルの nameがbanana8の要素を削除する場合 下記のようにコマンドを実行します。

mysql> delete from testdb.fruit where name='banana8';
mysql> select code, name, price from testdb.fruit;

+------+---------+-------+
| code | name    | price |
+------+---------+-------+
| 1001 | banana9 |  4200 |
| 1002 | apple2  |   300 |
| 1003 | orange3 |   150 |
+------+---------+-------+

データベース接続されている場合、データベース指定は必要あいません。