MySQL 良く使うコマンド一覧の使い方・方法

私が本当に良く使うMySQLのコマンド一覧です。

操作分けせず、どちらかというと使う流れで書いています。

すぐに忘れてしまうので私が知る限りの最も簡単で短いコマンドの使い方や方法です。

 

現在の環境

  • 設置PC側OS(ホストOS) : Win7 Home Premium 64bit
  • ※DELL INSPIRON N5010
  • ブラウザ : Firefox17.0.1
  • 通信 : Frets 光
  • テキストエディタ : 秀丸
  • Apache 2.4.3
  • MySQL 5.5.27
  • PHP 5.4.7
  • phpMyAdmin 3.5.2.2
  • FileZilla FTP Server 0.9.41
  • Tomcat 7.0.30 (with mod_proxy_ajp as connector)
  • Strawberry Perl 5.16.1.1 Portable
  • XAMPP Control Panel 3.1.0 (from hackattack142)

 

Windows7 64bit版にXAMPP1.8.1をインストールしのコマンドプロンプトでMySQL5を利用する場合は、「c:\xampp\mysql」に毎回移動するのが面倒です。

そのため、Windows7 64bit版のコンピュータのプロパティの環境変数から「Path」を指定した方がすごく楽なので私もそうしています。

 

データベース(DB)、テーブル(TABLE)の確認

下記でも説明がありますが、データベースの簡単な構造を説明すると

データベース > テーブル > [データ]フィールド(fileds,列)・レコード(records,行)

となっています。

mysql –u root –p まずログイン → この後パスワードを聞かれるので入力
show databases; 全データベースを確認
use DB_NAME; 処理するDBを選択
show tables from DB_NAME; DBのテーブルをチェック
show tables; 現在接続しているDBのテーブル自体をチェック
desc TABLE_NAME; 現在接続しているDBのテーブルの構造を確認する
show create database DB_NAME; 現在接続しているDBの文字コードを確認
show create TABLE TABLE_NAME\G; 現在接続しているDBがどのように作成されたかを確認する
select database(); 現在接続しているDBを確認
select * from TABLE_NAME; 現在接続しているDBのテーブルの中身・内容を確認
show index from TABLE_NAME¥G; 現在接続しているテーブルのインデックスに関する情報を出力する
status 現在接続しているdatabaseの文字コードやVer、user、portmなど様々な詳細を表示させる
charactersetが複数(server,Db,Client,Conn)確認可
alter database DB_NAME character set utf8; databaseの文字コードを変更する
文字コードはdatabase毎に違う、(左記はutf8の場合)
alter table TABLE_NAME character set utf8; tableの文字コードを変更する
(左記はutf8の場合)
show variables like ‘character_set%’; 現在の文字コードの設定を確認
client,connection,database,filesystem,results
server,system,dir の確認が可能
set names utf8; 既存DBの文字コードを変更(左記はutf8の場合)
   
   
exit mysqlを抜ける
\q mysqlを抜ける

 

※文字コードの問題は根が深く難しい箇所ですが、今後作成するDBの文字コードを変えても既存のDBの文字コードは変わらなかったりするので現在と過去のDBとで考えること。

 

データベース(DB)、テーブル(TABLE)、レコード(RECORDS)の作成・変更・削除

データベースを作成する際に最低限憶えておきたいことは箱に例えて考えると、まずデータベースの箱がありその中にテーブルという箱が並んでいて、テーブルの箱の中に、必要なもの(データ)を入れて登録します。

すなわちデータベースに登録を行うという事はテーブルに登録するということです。

create database DB_NAME; DBを作成 *1
create table TABLE_NAME (id int, name varchar(20));; 現在接続しているDBにあるテーブルを作成
テーブルを作成する場合は入れるデータも一緒に作成
   
drop database DB_NAME; DB自体を削除
drop table TABLE_NAME; TABLE自体を削除
   
delete from DB_NAME; DBのデータ削除
delete from TABLE_NAME; 現在接続しているDBにあるテーブルのデータを削除 *2
delete from TABLE_NAME where FIELD_NAME = ‘hoge’; 条件に一致したレコードのみ削除
ここではFIELD_NAMEにある値がhoge1だった場合削除
delete from TABLE_NAME where FIELD_NAME in (hoge1,hoge2); 条件に一致・指定した複数レコードのみ削除
ここではFIELD_NAMEにある値がhoge1,hoge2だった場合削除
create databaase xxxdb default character set utf8; 文字コードを指定してDBを作成する
※DB毎に文字コードは設定できます
   
   
   

*1 データベースを作成しただけであってデータの登録・格納はそのデータベースの中に新たに作成するテーブルに行います。

*2 deleteはテーブルのデータの削除は出来ますがテーブル自体は削除しません。drop tableはテーブル自体を削除します。

 

ユーザの権限、作成、削除、その他現状確認

ユーザ関連の操作一覧です。

   
grant all on DB_NAME.* to DB_USERNAME@localhost identified by ‘****’; 該当のデータベースの全権限を付与された
データベースユーザーを作成
select host,user from mysql.user; データベースユーザーを確認
delete from mysql.user where user=’DB_USERNAME’; データベースユーザーを削除
show processlist; 現在データベースへ接続中のユーザーを確認
   
   
   

 

 

一般的な操作方法と作業の流れ

 

root でログインします。

c:\>mysql -u root –p

Enter password: ****

database(exdb:任意)とそのDBを扱うユーザ(dbmar:任意)を作成します。

mysql> create database exdb;

Query OK, 1 row affected (0.01 sec)

※データベース(exdb:任意)の作成

mysql> grant all on exdb.* to dbmar@localhost identified by ‘****’;

Query OK, 0 rows affected (0.01 sec)

※データベース(exdb)の全権限を与えたユーザー(dbmar:任意)を作成