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コマンドリファレンス

スポンサーサイト



 
07月21日(日)

SQLのお勉強~SQLite3(3) SQL結果が、すごく見やすくなる

SQLのお勉強~SQLite3(3) 一手間でSQL結果が、すごく見やすくなる

SQLite3 (3)
SQL結果を見やすくする


①コマンドプロンプトのSQL結果

SQLite3は、よくコマンドプロンプトを使って、SQLを実行します。
ですが、SQLの実行結果が、かなり見づらいです。

そこで簡単に改善できる方法です。

コマンドプロンプトを立ち上げ、
SQLite3 データーベース名
で、DBにアクセスしたら、
すぐに
> .mode column  で、リターン
> .header on    で、リターン
と連続して打ってください。

これだけで、以下のように表示がかなり改善されます。
(デフォルト表示が見づらすぎるとも言えます)

↓クリックした方が見やすいです(すいません)
sqlite3_14.png

コマンドプロンプト派の方にはお勧めです。


②DB Browser for SQLiteの活用
頻繁にSQLite3を使い方は、DB Browser for SQLite を活用するのもいいかと思います。
↓ダウンロード
DB Browser for SQLite ダウンロード

ダウンロードしましたら、インストールします。
ここは特に問題なくインストールできると思います。
インストールすると、下のようなアイコンができます。

sqlite3_15.png

ダブルクリックして、立ち上げます。

sqlite3_16.png

上段のタブで左から二番目の「Open Database」を押しますと、
ファイル選択用のダイアログを表示されます。
ここでSQLite3のデータファイルを指定します。


SQLite3のデータが読み込まれますと、
下段のダブの左から一番目のDatabase Structure で各テーブルの定義が一覧されます。

sqlite3_17.png



下段のダブの左から二番目のBrowse Dataを選択し、
次にプルダウンメニュー 「Table」 から、参照したいテーブルを選択します。

sqlite3_18.png


DB Browser for SQLiteには、便利な機能が多くあるとのことなので、
リクエストがあれば、調査して取り上げます。


ではまた。
失礼します。


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


 
07月18日(木)

SQLのお勉強~SQLite3(2) SQLiteの型はすごく変

SQLite3 (2)
SQLite3の型はすごく変


①テーブルのカラムに型を指定しなくてよい

OracleやMySQLなど他のDBと違って、
SQLite3は、テーブルのカラムに型指定しなくても大丈夫です。
さらに同じカラムに色々な型で格納できます。

↓カラムに型を指定しなくてもエラーになりません。
  BLOB型(NONE型)となります。
   BLOB型だと、同じカラムに色々な型を格納できます。

sqlite3_12.png

INSERT文などで、実際にDBに格納される際、
SQLite3側が、NULL、INTEGER、REAL、TEXT、BLOBいずれかの型に判別して、格納します。



②カラムに型を指定することもできます ※2

 ですが、数値型のカラムに文字列を格納しようとしても型エラーにはなりません。
 文字列型に自動変換されます ※1。

sqlite3_13.png

個人的には型エラーにしてくれた方が、分かりやすいのですが、SQLite3はそういうものなのです。

こうした仕様を知っておかないと、
「なんで型エラーにならないの?」
と混乱してしまいます。

私は混乱しました。


==========

※1
INTEGERやREALなど数値系の型のカラムに文字列を格納しようとすると、TEXT型で格納されます。
↓詳細は、SQLite3公式HPで解説があります。
SQLite3本家

※2
・CREATE文で指定した型に「INT」という文字列が含まれていると、INTEGER型になります。
・同様に「CHAR」、「CLOB」または「TEXT」という文字列が含まれていると、TEXT型になります。
・「REAL」、「FLOA」または「DOUB」という文字列が含まれていると、REAL型になります。
・型を指定しない場合、または「BLOB」という文字列が含まれている場合、BLOB型(NONE型)になります。
・上記のいずれにも該当しない場合、NUMERIC型になります。





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

 
07月16日(火)

SQLのお勉強~SQLite3(1) windows10にSQLiteをインストール

SQLite3 (1)
windows10にSQLiteをインストール
(動作確認 2019年7月16日)

Windows10にSQLiteをインストールします。

①下記のURLへアクセスします。
https://www.sqlite.org/

アクセスしたら、「Download」をクリックします。

sqlite3_01b.png



② 「SQLite Download Page」 と書かれたページが表示されます。
ここで、
「Precompiled Binaries for Windows」内の
「sqlite-tools-win32-x86-3290000.zip」をクリックします。
↓https://admin.blog.fc2.com/control.php?mode=editor&process=load&eno=207#
sqlite3_02b.png

ダウンロードが始まります。



③ダウンロードされたファイルを解凍して任意のフォルダに格納します。
フォルダの中身は以下の通りです。

sqlite3_03b.png



④PATHを設定します。
 1) まずPCのアイコン上で右クリックし、
   プロパティをクリックします。

sqlite3_04.png


 2) 「システムの詳細設定」をクリックします。

sqlite3_05.png


 3) タブ「詳細設定」の下部にある「環境変数(N)...」ボタンを押下します。

sqlite3_06.png


 4)環境変数ダイアログ内のPathをクリックし、
  編集ボタンを押下します。

sqlite3_07b.png


 5)「環境変数名の編集」ダイアログが表示されます。
   まず新規ボタンを押下し、
  次に先ほどSQLiteを格納したフォルダのパスを記述します。
   最後にOKボタンを押下します。
   これでPathが設定されました。

sqlite3_08.png



⑤SQLiteの動作確認
 1) WINDOWSキーを押下し、メニューから
  「W」欄下のwindowsシステムツールの中にある
  「コマンドプロンプト」を選択し、コマンドプロンプトを立ち上げます。

sqlite3_10.png




2)
2-1) sqliteで使用するデータを格納するフォルダに移動します。
   (ここでは Cドライブ下のsqliteという名前のフォルダに移動していますが、任意に決めてください)

2-2) sqlite3 作成するデーターベース名(任意) を打ち、リターンキーを押下します。

2-3) CREATE TABLE person(id integer, name text); と打ち、リターンキーを押下します。
   これでテーブルが作成されました。

2-4) 作成したテーブル person にデータを挿入します。
   INSERT INTO person values(1, '太郎'); でリターン

2-5) データが正しく挿入できているか確認します。
   SELECT * FROM person;

   1 | 太郎
   と表示されれば、正常に挿入できています。

sqlite3_11.png

(.exit と打ってリターンキーで、終了します。)

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