2018年6月4日月曜日

VivoBook E203NAで、SQL-Server 2017 Expressを楽しむ

低価格モバイルノートPCのVivoBook E203NA-464Gですが、段々と、本当にお役立ちのなかなか凄いPCに成長して来ました。

色々と良い所がありますが、まず、SQL-Server 2017 Expressが快適に楽しめるのは大きい。


SQL-Server 2017 Expressは無償のRDBMSですが、たとえば、Excel 2016で作った自分のデータを直接読み込んで、SQLでもって自由に分析したりできるのが何と言っても楽しい所です。


■Excelを直接読み込めるようにするには?

SQL-Serverは今やセキュリティがかなり厳しくなっているので、以下のコマンドを入力して、OPENROWSET関数を使えるようにして、Excelファイルをデータとして使えるようにする必要があります(内容はご自分の環境に合わせて読み替えて下さい)。
--データベース選択
USE MORIDB;
GO

--OPENROWSET関数の使用可能化
EXEC sp_configure 'show advanced options', 1
RECONFIGURE 
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE

--Excelをテーブルとして読み込む設定(Microsoft.ACE.OLEDB.12.0は別途インストール必要)
USE master
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1

--テスト(OneDriveに置いた自分のデータ)
SELECT * FROM OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'EXCEL 12.0;DATABASE=D:\OneDrive\HOME\MAIN_DATA\ゲーム関連ドキュメント\所有プレイステーションソフト一覧.xlsx;IMEX=1;HDR=NO',
'SELECT * FROM [GAMEDATA$]');




■ストアドプロシージャを作ると便利

ただワークシートを読むだけにとどまらず、色々な切り口で表示したり、検索を楽にしたり、そういうコードをSQLで作り込んでおいて、ストアドプロシージャにまとめておけばさらに楽しみが広がります!!


ストアドプロシージャは、やり方によっては、結果を細かく見ながら作り込んで行く事も可能なので、JavaやC#で複雑なデータ処理をするよりも遥かに手軽でしかもメンテナンスもしやすいかも知れませんね。

複雑なデータ処理部分をストアドプロシージャで作り込んでおいて、それを呼び出す形にするのが私は好きです。


このようにストアドプロシージャの実行一回で、Excelデータを読み込み、処理し、結果をレコードセットとして返す事も可能です。

こういう事が、低価格のモバイルノートPCで可能になるので、使い方が大きく広がって楽しい!!

もっとこのノートを活用したい!!