fc2ブログ
 
  ★新作アプリへのリンク→   SQLコマンドリファレンス
プロフィール

ひく16

Author:ひく16
1.SQLとDBの勉強
2.自然観察
3.プログラミング
4.ぼやき

最近のトラックバック
ブログ内検索
ブロとも申請フォーム
QRコード
QRコード

07月25日(木)

SQLのお勉強~SQLite3(4) 拡張関数を使ってみる

SQLのお勉強~SQLite3(4) 拡張関数で算術機能を大幅アップ

SQLite3 (4)
S拡張関数で算術機能を大幅アップ


【拡張関数とは】
SQLiteは、四則計算など基本的な計算はできますが、三角関数や平方根などはできません。
ですが、拡張関数を組込みことで、様々な算術を扱えるようになります。


【注意点】
・拡張関数を組み込むには、MinGWのインストールなど手間が掛かります(下記参照)。
・公式サイトから、以下の趣旨の注意が書かれています。
 「これらのファイル標準のSQLiteパッケージではなく、ファイル内容は未検証です。自己責任で使用してください。」
 The files below are contributed by users and are not part of the standard SQLite package.
 The content of these files has not been verified. Use at your own risk.
  参考元


【手順】
以下、Windows10HOMEで検証しています。


https://www.sqlite.org/download.html
より
sqlite-amalgamation-3290000.zip
をダウンロードし、解凍します。


https://www.sqlite.org/contrib
より
extension-functions.c
をダウンロードします。


http://sourceforge.jp/projects/mingw/
より
mingw-get-setup.exe
をダウンロードします。

MinGW(Minimalist GNU for Windows)とは、GCC などの開発環境をWindowsで利用できるようにしてくれるアプリです。

次に
 1) ダブルクリックでインストールマネージャーをインストールします。

 2) MinGWInstallation Manager が立ち上がりますので、
今回は、
左ペイン「Basic Setup」をクリックし,
  ming32-base-bin
  と
  mingw32-gcc-g++-bin
  をクリックし、メニューが表示されたら、Mark for Installation を選択します。
  sqlite3_17_01.png


3) メインメニューInstallationから、Apply Changes を選択します。
sqlite3_18_01.png


4) インストールが完了したら、×ボタンで終了します。

5) Pathを設定します。
sqlite3_15_02.png

↓Pathの設定の詳細は下記のリンクを参照してください。
④Pathの設定


Pathを設定後、新たにコマンドプロンプトを立ち上げ、
>gcc -v と打って、リターンすると、
エラーではなく、下図のように出力されます。

sqlite3_20_01.png



 1) ②でダウンロードした extension-functions.c をコピーします。

 2) ①で解凍したフォルダ「sqlite-amalgamation-3290000」の中に移動し、
   コピーしたextension-functions.cを貼り付けます。


 コマンドプロンプトを起動し、④のフォルダ内に移動し、コンパイルを実行します。
コマンドは以下になります。
> gcc -shared -o libsqlitefunctions.dll extension-functions.c -lm



  libsqlitefunctions.dllのあるフォルダでsqlite3を実行します。
  まず
  select load_extension("./libsqlitefunctions");
  を実行します。
  これで拡張関数が使えます。

sqlite3_21_01.png
最初のselect squareは失敗し、
select load_extension後の select square は正常に動作します。


例)
$ sqlite3
sqlite> select load_extension("./libsqlitefunctions");
sqlite> select sqrt(25);
5.0


拡張関数は以下になります。
acos, asin, atan, atn2, atan2, acosh, asinh, atanh, difference, degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp, log, log10, power, sign, sqrt, square, ceil, floor, pi. String: replicate, charindex, leftstr, rightstr, ltrim, rtrim, trim, replace, reverse, proper, padl, padr, padc, strfilter. Aggregate: stdev, variance, mode, median, lower_quartile, upper_quartile.


(参考)
↓アンドロイドアプリ「SQLコマンドリファレンス」です。
SQLコマンドリファレンス

スポンサーサイト



 

Trackback

URL :
この記事にトラックバックする(FC2ブログユーザー)

 

Comment


    
 

承認待ちコメント

このコメントは管理者の承認待ちです

 

Re: お疲れ様でした

> 岩殿山お疲れ様でした。

おつかれさまでした。
全然予定通りにいかなかったけど、別の楽しさがいろいろありました。