新しい CUI ツール mssql-cli の使い方

Microsoft Japan Data Platform Tech Sales Team

佐藤秀和

SQL Server 2017 では Windows 以外に Linux や コンテナ への対応を行いましたので、マルチプラットフォームに対応したクライアント ツールの整備を急ピッチで行っております。
今回は SQL Server の新たな CUI ツール である mssql-cli についてご紹介いたします。

クライアントツールのプラットフォーム対応状況
clip_image001

mssql-cliとは
CUI には 繰り返しの処理実行や正確性( GUI ツールでの押し間違いなど)、実行履歴を保持できる、少ないリソースで動作できる、などGUI にはない多くのメリットがあります。
SQL Server のCUIツールとしては 従来より sqlcmd がご利用いただけますが、Oracle や OSS DB 等他のDB製品をお使いになられている方々には、少し使い勝手が悪く感じられるところがあるかもしれません。また、SQL Server 2017 では、Linux や コンテナなどマルチプラットフォームに対応したこともあり、普段 Linux で CUI をお使いになっている方には、GUI ツールにはちょっと馴染めないという声をお聞きすることもあります。

そこでマイクロソフトは、OSS のコミュティである dbcli コミュニティと連携して、様々なプラットフォームで動作する SQL Server コマンドライン クエリ ツールを開発し、提供を始めました。それが今回ご紹介する mssql-cli です。

セットアップ
mssql-cli のセットアップには、Python が事前にインストールされている必要があります。
お使いの環境に Python がインストールされていない場合は こちら からダウンロードしてセットアップしてください。https://www.python.org/downloads/
Python  は、2.7 およびそれ以降のバージョンに対応しています。

Python のセットアップの際には、pip ( Python パッケージ管理ツール) も Python のインストールの際に併せてセットアップしておくと、後ほど mssql-cli のセットアップの際に楽になります。(インストール画面のオプション機能で pip にチェックマークが入っていることを確認)
また、Windows 環境であれば Path 環境変数に Python のPath設定を追加するオプションを有効にしておくこともお勧めします。
clip_image001[6]

Windows 環境の場合は、コマンドプロンプトで下記スクリプトを実行すると、mssql-cli のセットアップが完了します。image

その他のプラットフォームへのセットアップについては、こちらを参照ください。
・dbcli/mssql-cli /doc/installation_guide.md
https://github.com/dbcli/mssql-cli/blob/master/doc/installation_guide.md#Alternative-Installation-via-direct-downloads

mssql-cli の特長
mssql-cli はインタラクティブなコマンドライン クエリー ツールで以下の様な特徴があります。

・SQL ステートメント の IntelliSense
SQL Server Management Studio や SQL Server Data Tools, Visual Studio をお使いの方であればよくご存知かと思いますが、キーワードの自動入力補完機能です。入力候補をリストから選択することで、キー入力の省力化や、誤入力の低減により、作業性や生産性を高めることが出来ます。
例えば、SELECT クエリで対象のデータベース内のテーブル一覧からテーブルを選択して、列にはそのテーブルの列一覧が表示され、必要な列を選択するだけでクエリーが作成できます。

clip_image001[8] こちらに動作イメージのアニメーションもあります。

・構文の強調表示
SQL ステートメントや定数等は色分けされ表示されます。
・クエリ結果の書式設定
出力結果はデータ型や列名等に応じて罫線が成形されて出力されます。

image

・ショートカット
よく利用されるコマンドラインは、ショットカットキーワードで入力するが可能で、入力を省力化することが出来ます。

ショットカット一覧
image

データベース一覧の出力結果
image

・複数行の編集モード
複数行にわたるクエリの編集では、マルチライン機能 (F3 キー) を有効にすることで、複数行にわたってクエリの編集を行うことが出来ます。クエリの編集が終わりましたらマルチライン機能を OFF にして Enter キーを押下すれば、クエリが実行されます、

image

その他にも、次々と新たな機能が実装されています。直近ではGDPR対応向けの機能としてクエリの実行履歴を保持する機能などが実装されています。

いかがでしたでしょうか?
現時点ではプレビューの扱いとなりますが、冒頭で触れました様にマイクロソフトと OSS コミュニティが連携して開発を行っており、今までに無い大きな可能性を秘めたツールとなりますので、ぜひ評価頂きコミュニティにフィードバックをあげて頂ければと思います。

mssql-cli のフィードバックはこちらから
GitHub Issues