[PhpStorm]PhpStorm 7で強化されたデータベースツール
iPhone 5s 手に入れました。発売当日予約しましたが手に入れたのは3週間後で大分乗り遅れ感のあるtanakaです。…と思ったら、次はiPadの発表が。
アップル関連のデバイスもタイムリーな話題ですが、PhpStormも最新版のバージョン7がリリースされました。PHP5.5対応を始め新機能が追加されていますが、今回はその中で強化されたデータベースツールを紹介します。
今回の記事はDatabase Tools and SQL Editor Changes in PhpStorm 7 | JetBrains PhpStorm Blogの内容を実際に試してみたものです。
前準備
前提としてデータベースツールを試す前に接続設定が必要です。SQLが書きやすい!PhpStormからMySQLに接続する方法 | karakaram-blogが参考になるかと思います。開発環境であればデータベースを作ったりできる、rootに近い権限を設定した方が便利です。
無事に接続できたら以下のようにDatabaseビューに追加したデータベースサーバがツリーとして表示されます。
では、PhpStormのデータベースツールの機能を試すためにサンプルデータベースを用意しましょう。以下のSQLを実行して、"sample"という名前のデータベースを作成してください。
CREATE DATABASE sample DEFAULT CHARACTER SET utf8;
USE sample;
CREATE TABLE `cities` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`description` varchar(1000) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `cities` VALUES (1,'Tokyo','','2013-10-23 12:40:38','2013-10-23 12:40:42'),(2,'Paris','','2013-10-23 12:42:08','2013-10-23 12:42:09'),(3,'New York City','','2013-10-23 12:42:57','2013-10-23 12:42:58'),(4,'San Francisco','','2013-10-23 12:44:05','2013-10-23 12:44:08');
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`favorite_city_id` int(11) NOT NULL,
`lives_in_city_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `favorite_city_id` (`favorite_city_id`),
KEY `lives_in_city_id` (`lives_in_city_id`),
CONSTRAINT `users_ibfk_2` FOREIGN KEY (`lives_in_city_id`) REFERENCES `cities` (`id`),
CONSTRAINT `users_ibfk_1` FOREIGN KEY (`favorite_city_id`) REFERENCES `cities` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `users` VALUES (1,'tanaka',1,2),(2,'sato',3,4);
単一レコードをぱぱっと見たい時→Value View / Single Record Transpose View
このツールのもっとも基本的な機能のひとつがテーブルビュー。PhpStorm6でもつかっていましたが一つ不便なことがありました。テーブル内のデータがスプレッドシートのように表示されていますが、単一行のデータ隅々まで見るには横スクロールをするしかありませんでした。(いや、何か方法があったのかもしれませんが…)
MySQLコンソールではレコード内の文字列を一覧したいとき、文末に\GをつけてSQLを実行しますがそのような表示をしたいと思うわけです。そんなときにぴったりなのがValue View / Single Record Transpose Viewの機能です。レコード内のどれかのカラムをクリックして、Ctrl+Q(MacではCtrl+Jらしいですが、Emacsキー設定だとCtrl+Qでした)をおすと以下のように表示されます。
これは、選択中のカラムのデータを表示する機能ですね。長い文字列データを表示するときはありがたい機能です。あと、とても気の利いているのがテーブルのカラムに外部キー制約をつけていると別テーブルのデータを取得して表示してくれます。さて、さらにもう一度Ctrl+Q(またはCtrl+J)を押すと、次のように表示されます。
便利ですね。いままでこれが使えなくてちょっと不便してました。が、これからもう大丈夫!
クエリを作成する簡単な方法 - Building queries with the Table Editor
ちょっと一つのテーブルで絞り込んでソートした結果がほしいだけなのにコンソールログインしてSQL実行するのすらめんどくさい!ってときに使える機能を紹介します。
テーブルエディタのろうとアイコンのボタンを選ぶと上記のウインドウが表示されますのでソートとフィルタの条件を変えるだけでの出力結果をフィルタできます。クエリをもっとカスタマイズしたいときは右上のView Queryを押してSQLをコピーすればOKです。
テーブルを色分け
たくさんテーブルビューを開いていて、区別したいとき便利な機能です。
データベースビューのデータベースやテーブルを右クリックして「Color Setting...」を選ぶと背景色を設定できます。選択した色はテーブルビューのタブ背景色にも反映されます。
その他
- Read Only Data Source - 接続設定で、読み込み専用に設定できるので間違って上書きしたくないときは使いましょう!接続設定ウインドウの右下に「Read-Only」というチェックがあります
- Exporting Data - テーブルビューのデータをCSV/SQL Insertなどの形式でエクスポートできます
- Database Console Variable Substitution - クエリ中に"?" や "$value" などの文字列があるとプレースホルダと認識してくれます。クエリ実行すると、どんな変数を差し込めばよいか入力するダイアログが表示されます。
まとめ
PhpStorm のデータベースツールはSSH越しのアクセスができることもあって以前から使っていましたが、7になって使った方が便利なツールとなった気がします。もしまだPhpStormを使ったことがなければとりあえずデータベースツールのみ使ってみるというのもアリではないでしょうか。