トップページ⇒db
985コメント265KB

SQLite 9

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL2011/02/27(日) 01:22:40.55ID:???
サーバの要らない軽量データベース SQLite についてのスレです。

SQLite Home Page
http://www.sqlite.org/
0002NAME IS NULL2011/02/27(日) 01:23:27.45ID:???
過去スレ

sqliteを語るスレ
http://pc8.2ch.net/test/read.cgi/db/1056956494/
SQLite 2
http://pc8.2ch.net/test/read.cgi/db/1140827718/
SQLite 3
http://pc8.2ch.net/test/read.cgi/db/1152367932/
SQLite 4
http://pc11.2ch.net/test/read.cgi/db/1162621344/
SQLite 5
http://pc11.2ch.net/test/read.cgi/db/1176223619/
SQLite 6
http://pc11.2ch.net/test/read.cgi/db/1193118037/
SQLite 7
http://pc11.2ch.net/test/read.cgi/db/1220581676/
SQLite 8
http://hibari.2ch.net/test/read.cgi/db/1250225486/
0003NAME IS NULL2011/02/27(日) 01:23:37.18ID:???
ツール等

Management Tools
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

【GUIツール】 TkSQLite
http://reddog.s35.xrea.com/wiki/TkSQLite.html

【ADO.NET 2.0 Provider】 System.Data.SQLite
http://sqlite.phxsoftware.com/

【ODBC】 SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/

【JDBC】 SQLiteJDBC
http://www.zentus.com/sqlitejdbc/

【ADO.NET provider】 System.Data.SQLite
http://sqlite.phxsoftware.com/

【GUI管理ソフト】 PupSQLite
http://www5.plala.or.jp/Pup/

【Firefox add-on】 SQLite Manager
http://code.google.com/p/sqlite-manager/
https://addons.mozilla.org/ja/firefox/addon/5817
0004NAME IS NULL2011/02/27(日) 01:23:47.26ID:???
ネタ

OS X ハッキング! SQLiteが広げるこれからのアプリケーション
http://journal.mycom.co.jp/column/osx/236/

SQLite Java Wrapperのコンパイル
http://syo.cocolog-nifty.com/freely/2007/10/sqlite_java_wra_f79c.html

SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ):
http://codezine.jp/blog/2007/10/sqliteinsert.php

SQLite性能評価その1
http://www.sutosoft.com/room/archives/000450.html

Fulltext index on SQLite
http://www.dodgson.org/omo/t/?date=20061001

SQLite の全文検索を Python から使ってみる (1)
http://plaza.rakuten.co.jp/kugutsushi/diary/200707270001/

SQLite Full Text Search with MeCab
http://reddog.s35.xrea.com/wiki/SQLite%20Full%20Text%20Search%20with%20MeCab.html
0005NAME IS NULL2011/02/27(日) 01:23:55.79ID:???
和書

SQLite入門 第2版 (西沢直木 著)
http://www.amazon.co.jp/dp/479811944X
和書で SQLite のみにフォーカスした書籍はこれ一択か。
入門用にはとりあえずこの一冊。

PHP+SQLite実践サンプルブック (豊崎直也 著)
http://www.amazon.co.jp/dp/4883374297
(内容不明。補足よろ)

Pocket詳解 SQL辞典 (堀江美彦 著)
http://www.amazon.co.jp/dp/4798018619
各種 RDBMS 対応の SQL のリファレンス本で、SQLite にも対応。
が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
不正確なところもあるように見受けられる。

基礎から学ぶWebデータベースプログラミング (堀川久 著)
http://www.amazon.co.jp/dp/4274065294
前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
が、 SQLite は SQLite2 ベースなので情報が古いかも。


洋書

The Definitive Guide to Sqlite (Mike Owens 著)
http://www.amazon.co.jp/dp/1590596730

SQLite (Developer's Library) (Chris Newman 著)
http://www.amazon.co.jp/dp/067232685X
0006NAME IS NULL2011/02/27(日) 03:08:39.69ID:???
乙です
0007NAME IS NULL2011/02/27(日) 09:31:24.35ID:???
おもちゃとして楽しむのがベスト。
どんどん遊びましょう。
0008NAME IS NULL2011/02/27(日) 10:18:12.54ID:???
>>1乙

和書は少し増えてるからテンプレに追加したほうがいいかも。

新標準SQLite
http://www.amazon.co.jp/dp/4797354739/

SQLite ポケットリファレンス
http://www.amazon.co.jp/dp/4774143944/

「PHP+SQLite実践サンプルブック」は6年前の本だし抜いてもいい?

他にOreillyのSQLite本が早く翻訳されないかね。
http://www.amazon.co.jp/dp/0596521189/
0009NAME IS NULL2011/02/27(日) 13:59:21.30ID:???
>>8
こんなのあったのか。とりあえず買った。
技術書の英語なんて日本語と大差ないし。
0010NAME IS NULL2011/02/27(日) 14:12:46.83ID:???
SQLiteに解説書なんて必要ないだろ。
0011NAME IS NULL2011/02/27(日) 15:44:14.18ID:???
SQLiteのSQLで改行コードの置換ってできないんですか?
0012NAME IS NULL2011/02/27(日) 16:42:52.17ID:???
>>11
出来るよ。改行を置換する関数を追加するといい。
http://www.sqlite.org/cintro.html
詳細はここを読んでね。
0013NAME IS NULL2011/02/27(日) 21:02:00.19ID:???
また口だけ神様か・・・
0014NAME IS NULL2011/02/28(月) 13:43:30.75ID:3radngHB
>>12
具体的に説明せよ
0015NAME IS NULL2011/02/28(月) 15:38:14.66ID:???
>>9
SQLiteなんかの解説書読んで何を学びたいの?
何か学べてるの?
0016NAME IS NULL2011/02/28(月) 18:11:38.98ID:???
日本語の解説書は、自分では読まず、布教用に使う。
0017NAME IS NULL2011/03/01(火) 07:39:57.86ID:???
せめてストアドがないと布教には使えません(><
0018NAME IS NULL2011/03/01(火) 10:06:28.83ID:???
節穴か?
0019NAME IS NULL2011/03/01(火) 10:07:27.99ID:???
誤爆すまん
0020NAME IS NULL2011/03/02(水) 03:07:04.27ID:???
>>16
自分では読む価値も無いって思ってる物を人に押し付けるなよw
0021NAME IS NULL2011/03/02(水) 03:09:29.11ID:???
ま、日本語ドキュメントが無いからな…とかいう軟弱は多いな
0022NAME IS NULL2011/03/02(水) 08:02:21.57ID:???
Decimalがない上に開発者が「他使えば」って言う環境じゃ不興には使えません(><
0023NAME IS NULL2011/03/02(水) 08:16:42.36ID:???
ま、日本語ドキュメントが無いからな
0024NAME IS NULL2011/03/02(水) 08:43:51.15ID:???
Decimalが必要な用途でSQLite使っちゃ駄目だろうw
0025NAME IS NULL2011/03/02(水) 22:44:30.87ID:???
弟子丸 忍忍でござるよ
0026NAME IS NULL2011/03/04(金) 21:50:44.53ID:???
SQLite.NETを入れてデザイナで外部キー制約を付けても、一向に反映されない
んですが、もしかしてSQLiteに外部キー制約が実装されていない?
0027NAME IS NULL2011/03/05(土) 07:10:09.46ID:???
>>26
3.6.19以降なら
PRAGMA foreign_keys = ON;
で有効になる。
0028NAME IS NULL2011/03/05(土) 15:16:41.78ID:???
>>27
ありがとうハニー
0029NAME IS NULL2011/03/09(水) 23:37:41.98ID:???
SQLiteって同時にDBアクセスしたりした時の対応とかできないから昔のアクセスカウンターみたいに壊れることあるよ
って同僚から言われたんだがそうなの?
いくら軽量だからっていまどきのDBでそんな初歩的なことをしてないものはないと思うんだけど。
0030NAME IS NULL2011/03/10(木) 00:01:49.31ID:???
>>29
>SQLiteって同時にDBアクセスしたりした時の対応とかできないから昔のアクセスカウンターみたいに壊れることあるよ
>って同僚から言われたんだがそうなの?

んなわけない
0031292011/03/10(木) 00:10:53.57ID:???
だよな
MySQLみたいなのはいいけど、SQLiteは軽量化するために機能を削ってるから複数の人が同時に書き込んだりするとダメになるとあまりにも真剣に言うもんだからよ。
何かと勘違いしてるのか、それとも昔の古いバージョンはそうだったとかだろうか。
0032NAME IS NULL2011/03/10(木) 03:13:02.45ID:???
アクセスカウンターが壊れるってどんな現象なんだろうか。
0033NAME IS NULL2011/03/10(木) 05:24:45.87ID:???
>>29
前スレにロック周りのことがガシガシ書かれているから、読んでみ。
0034NAME IS NULL2011/03/10(木) 09:34:41.40ID:???
>>32
今はないと思うけどカウンターの動きとして
1.ファイル開く
2.中の数字を拾う
3.数字に+1する
4.ファイルを綺麗にする
5.+1した数字を書き込む
って動作になるけど、ファイルのロックとかがない場合に「4」のときに他の人がファイルを開くと
何もないファイルを開いて、それに+1することになるわけ。
そうすっと0+1でアクセス数が1になってしまうってこと。
壊れるってのとはちょっと違うけどロックがないとタイミングによっては意図しないデータになってしまうというオチ。
0035NAME IS NULL2011/03/10(木) 09:53:18.23ID:???
ロックの無いファイルシステムなんてあるの?
読み取りタイミングでカウント漏れなら普通にあるけど
0036NAME IS NULL2011/03/10(木) 10:21:41.99ID:???
>>32
F5 attack とか?
0037NAME IS NULL2011/03/10(木) 10:34:51.31ID:???
>>35
昔のカウンターはflock使ってないのが結構あったんだよ、KENTのとかね。Windows 98でflockが使えなかったのが原因だと思うけど。
0038NAME IS NULL2011/03/10(木) 17:27:45.38ID:???
>>34
それは別の話じゃ?
0039NAME IS NULL2011/03/11(金) 02:58:55.15ID:h7V2p/UX
>>17
ストアドっていうのは、まとまった処理をサーバー側で実行させるので
いちいちクライアントから実行するよりも高パフォーマンスって話なんだが。

DBエンジンが同一プロセスで動作するSQLiteにストアドなんていらんよ。

プリペアドステートメントを必要な数だけ用意しておいて、
まとめて実行すればいいだけ。
0040NAME IS NULL2011/03/11(金) 03:03:37.32ID:???
>>22
適当にBLOBか何かでDecimalの内部データを格納しておいて、
変換関数を定義すればいいだけの話だろ。

検索やインデックスに使いたければ、カスタムコレーションシーケンスを
定義すればいい。
0041NAME IS NULL2011/03/11(金) 06:25:48.52ID:???
>>39
>>40
たちこめる圧倒的馬鹿臭
0042NAME IS NULL2011/03/11(金) 07:08:23.35ID:???
>>41
馬鹿ではなく最近の若者は布教とかお布施とか大好きみたいだぞ
0043NAME IS NULL2011/03/13(日) 16:43:06.58ID:???
今もファイルロック周りはあやしいよね
0044NAME IS NULL2011/03/13(日) 20:08:41.34ID:???
あやしいのはお前の頭だろうw
0045NAME IS NULL2011/03/16(水) 14:10:43.75ID:???
3の初期のころはひどいバグがいっぱいあったが
最近はかなりちゃんとしてる
0046NAME IS NULL2011/03/21(月) 19:06:46.50ID:???
なんかたまにロックしっぱなしになるな
0047NAME IS NULL2011/03/21(月) 19:30:26.03ID:???
どんなときにそうなるのか
検証していただくと
大変感謝されると思います。
0048NAME IS NULL2011/03/21(月) 21:43:49.21ID:???
>>47
頭の弱い>>46にそんな事期待するなよ
可哀想だろう
0049NAME IS NULL2011/03/21(月) 23:50:34.54ID:???
>>48
そうでしたか。
すみませんでした。
0050NAME IS NULL2011/03/22(火) 13:33:42.31ID:???
検証用に insertしてselectしてdeleteする
だけのプログラムを書いて、100万回起動してみた。
シングルスレッド、シングルプロセスなのに、確かに
database is locked が発生するね・・・
0051NAME IS NULL2011/03/22(火) 14:52:50.34ID:???
>>50
頭悪すぎw
0052NAME IS NULL2011/03/24(木) 00:25:31.90ID:???
前のプロセスが完全に終了する前に次のプロセスを起動してるとかじゃないよね
0053NAME IS NULL2011/03/24(木) 15:02:04.42ID:???
そのCソスを出して欲しいね
0054NAME IS NULL2011/03/25(金) 00:41:10.03ID:???
ソースコードと環境を示さない「検証」は大抵あてにならない
0055NAME IS NULL2011/03/25(金) 21:46:03.23ID:6VhxQ0vt
なんでこのスレって、ヒステリックなやつばかりなんだ??
0056NAME IS NULL2011/03/25(金) 23:51:08.49ID:???
ソースとテスト環境がわからんと何も言えんわな
0057NAME IS NULL2011/03/26(土) 06:28:47.24ID:???
>>55
「お手軽に扱える」といううたい文句に釣られたゴミクズの吹きだまりだから。
0058NAME IS NULL2011/03/26(土) 10:03:44.26ID:???
ヒューリスティック
0059NAME IS NULL2011/04/13(水) 09:08:48.85ID:???
ちょっとしたものならCSVで扱ってますが、DBとかを使う場合はみなさんはどういったことを基準に使いますか?
例えば想定ユーザーが1000を超える場合とか、アクセスが1000超える場合とかあれば教えてください。
0060NAME IS NULL2011/04/13(水) 09:50:31.33ID:???
むしろ、よっぽどの理由がない限りCSVなんて使いません。
基本的にすべてDBを使ってます。
0061NAME IS NULL2011/04/13(水) 16:26:12.46ID:???
>>59
検索をするかしないか、で判断します。
検索をしないならCSVファイルのままでいきます。
0062NAME IS NULL2011/04/13(水) 16:45:12.78ID:???
まぁ 速さ云々言わないなら、DBでいいのでわ?
0063NAME IS NULL2011/04/13(水) 17:38:56.62ID:???
「基本的にDBのが遅い」のか? なんか使い方次第なイメージがあるんだが。
0064NAME IS NULL2011/04/14(木) 00:22:44.98ID:???
工数も入れての事です。

ってCSVのハンドルも結構ややこしいか。
でもライブラリ作ってるだろうし。
0065NAME IS NULL2011/04/14(木) 06:52:49.01ID:???
>>59
データ量にかかわらずSQLite使った方が工数的にもパフォーマンス的にも上だから、
何かしらの要件がない限りそもそもCSV(やTSV)を使おうとなど思わない。
アクセス数がどうとかユーザー数がどうとかじゃない。

何かしらの要件、言い換えればCSVのメリットとは、例えば
マスターデータをエンドユーザがメンテする際にTkSQLiteとかの使い方をレクチャーしたくないからExcelで編集させたい場合とか、
自分でもテキストエディタでいじれた方がメンテが楽な場合とか。

>>61
更新するかというのも大きな要素だと思うね。
管理者のみが更新するマスターデータを読み込むだけならCSVでも全然面倒じゃない(CSVとの工数差が僅かしかない)けど、
更新も伴うと排他処理考えなきゃいけなくなるからSQLite使った方が断然楽になる。

例えば2chの板一覧みたいなデータはCSVやTSVでもいいけど、スレの書き込みの内容を保存するDATみたいなデータをCSVにする気は起きない。
0066NAME IS NULL2011/04/14(木) 07:15:18.03ID:???
他に考えられる、CSV等を選ぶシーンとしては、可搬性が重視される場合かな。
どの鯖でもSQLite使えるわけじゃないから。

ちょっと古い話だけどKENTのPerl CGIがレガシーなコードで非常に非効率なのにもかかわらず人気を得た理由の一つに、環境を選ばないということが挙げられるだろう。
「Perlが動く環境ならどこでも使える」シンプルさが受けたんだろう。あれがもしSQLiteを使ってたとしたらそこまでの人気は得られなかったはず。

tDiaryが非効率なテキストベースのデータストアを使い続けてる理由も「Rubyさえ動けば使えます」ということがウリの一つだからだろうね。

そういう意図のないスクラッチなアプリ書くならわざわざCSV選ぶ意味はない。
0067NAME IS NULL2011/04/14(木) 11:42:18.17ID:???
そういう意味では、標準ライブラリにSQLiteが組み込まれているPython最強
しかしSQLiteが組み込まれているのは2.5以降なのに、世の中は2.4以下のサーバが多かった
0068NAME IS NULL2011/04/14(木) 11:54:49.66ID:???
読み込みだけならCSVでもいいけど
書き込みはいやだなぁ
0069NAME IS NULL2011/04/15(金) 00:50:30.62ID:???
CSVより固定長の方がまだマシ
0070NAME IS NULL2011/04/15(金) 03:50:28.94ID:???
csvにする位ならtsvにするな
0071NAME IS NULL2011/04/15(金) 07:22:27.04ID:???
CSVとTSVって比べる意味が無い気がするんだが……せいぜいWindowsで規定されてるかどうかくらい?
0072NAME IS NULL2011/04/15(金) 07:53:01.78ID:???
タブが使えなくて困る場面は相対的に少ないのでタブ禁止TSVにするとエスケープを考えなくてもよくなる
エスケープ必須でちゃんとした仕様が必要ならばRFCのあるCSVのほうがいいかもしれない
0073NAME IS NULL2011/04/16(土) 05:00:48.17ID:???
1セルにタブや改行が含まれることがないならTSVがいいね。処理もCSVより断然軽いし。

CSVってRFCになってたのか。知らなかった。
0074NAME IS NULL2011/04/17(日) 15:16:50.82ID:???
読み書きに普通にSQLが思い浮かぶ人はSQLite
そうでない人はCSVになるんだと思う。
0075NAME IS NULL2011/04/17(日) 16:52:38.85ID:???
後者の人とは一緒に仕事したくないな…
0076NAME IS NULL2011/04/17(日) 19:54:50.76ID:???
SQLが現実的に使える限り、絶対にCSVは使わないでFA
0077NAME IS NULL2011/04/17(日) 22:00:06.38ID:???
>>76
SQLにこだわる理由は?
noSQLでいけるならそっちがいいし
ただのログならCSVでいいよね
0078NAME IS NULL2011/04/17(日) 23:05:14.21ID:???
ログの出力形式にCSVはないわー。
TSVならわかるけどね。
TSVやSQLiteで簡単に済む問題をわざわざ複雑なCSVにしたがる奴ってただCSVしか知らないだけだろ。
0079NAME IS NULL2011/04/17(日) 23:19:39.37ID:???
NoSQL(笑)
0080NAME IS NULL2011/04/18(月) 01:19:39.50ID:???
実際のところ、RDBMSよりKVSが適する用途ならどんどんKVS使えばいいんだけど、
>>59や>>77はそういう次元でものを語ってないから論外だよねっていう。
0081NAME IS NULL2011/04/18(月) 03:52:44.85ID:???
>>78
×CSVしか知らない
○CSVをろくに知らない

まともにCSVを扱おうとするとSQLより圧倒的にめんどくさく、最後に互換性問題でブチ切れる
0082NAME IS NULL2011/04/18(月) 17:15:53.70ID:???
好きな物をつかえよ
0083NAME IS NULL2011/04/19(火) 05:29:25.92ID:???
そこでBerkleyDBですよ、となるのか。
0084NAME IS NULL2011/04/19(火) 07:45:39.89ID:???
BDBみたいなKVSを選ぶのはあり
しかしCSVはまずないな、CSVが適するシーンはかなりのレアケース
0085NAME IS NULL2011/04/19(火) 22:40:08.64ID:???
そよね。
データん中にカンマあったらどうすんのとか。
0086NAME IS NULL2011/04/20(水) 17:58:39.98ID:???
まあたまに外からのデータ受け付けるのに対応することは
あるけどな、エクセルしか使えないような人がcsv出力して持ってくるとか。

でもまあそれでもインポートまでだけどな。
0087NAME IS NULL2011/04/20(水) 22:55:39.44ID:???
CSVで今時自作想定な事に驚いた
0088NAME IS NULL2011/04/21(木) 10:42:20.78ID:???
それほどめんどくさいと言いたいのか?
0089NAME IS NULL2011/04/21(木) 15:04:20.54ID:???
>>85
RFCに則ってつくるだけでいいじゃん
ていうか、テキストなKVSってあんの?
0090NAME IS NULL2011/04/21(木) 18:10:12.47ID:???
CSV扱うのに枯れたライブラリとかあるんだっけ?
0091NAME IS NULL2011/04/21(木) 19:07:40.75ID:???
>>87
何かしらのライブラリを選べる環境で敢えてCSVを選ぶメリットをkwsk
0092NAME IS NULL2011/04/21(木) 19:48:28.72ID:???
>>91
顧客の要求仕様どおりに作ることができる
0093NAME IS NULL2011/04/21(木) 19:56:15.36ID:???
>>92
それは仕様と呼ぶものであってメリットとは呼ばないわな。
複数の選択肢がある中で敢えてCSVを選ぶメリットをkwsk
0094NAME IS NULL2011/04/21(木) 19:59:24.73ID:???
データ永続性

各種データベース形式 20年
CSV形式 1000年
紙 10000年
0095NAME IS NULL2011/04/21(木) 20:14:46.66ID:???
テキストで見れる ってのがでかいかな

DBへインポートもしやすいし
エクスポートも結局CSVだったりするし

TSVは人に説明するのが面倒
0096NAME IS NULL2011/04/21(木) 20:51:10.94ID:???
>>91
>>87がCSVを選ぶ方がいいと考えているレスだと思った理由kwsk
0097NAME IS NULL2011/04/21(木) 21:56:12.74ID:???
いや、ないならないと言ってくれればそれでいいんだけど。
0098NAME IS NULL2011/04/21(木) 22:31:02.80ID:???
紙と墨は2000年の検証に耐えた
との事。
0099NAME IS NULL2011/04/22(金) 02:36:17.43ID:???
まあ話を元に戻すと、>>59のような文脈でのデータ保存形式でCSVを選ぶのはただのアホだよねってことでFA
0100NAME IS NULL2011/04/24(日) 04:58:56.89ID:???
>>92
あほすぎるファクターを持ち込まないでくれ
0101NAME IS NULL2011/04/24(日) 12:35:06.04ID:???
>>100
でもこれが全てでゴールだろ
0102NAME IS NULL2011/04/24(日) 15:42:28.54ID:???
ただのコーディングマシンにとってはゴールかもな
0103NAME IS NULL2011/04/24(日) 21:27:33.45ID:???
>>102
そういうのはマ板でやれよ
0104NAME IS NULL2011/04/25(月) 00:09:22.10ID:bEXHKNc/
複数ヒットするはずなんですが以下のコマンドを打つと最初の1個だけ結果が返ってきます。
SELECT * FROM test WHERE hogehoge = examplehoge
ヒットしたのでそれ以降は検索してないということでしょうか?
DB内のhogehogeカラムにはexamplehogeが10箇所ほどあるので10個ほど結果が返ってくるのを期待したのですが。
環境はSQL3でPHP5.3とPDOを使ってやってます。
念のため結果をvar_dumpしてみましたが1個しか入ってませんでした。
0105NAME IS NULL2011/04/25(月) 00:13:44.62ID:???
SELECT COUNT(*) FROM ...
0106NAME IS NULL2011/04/25(月) 01:25:01.42ID:???
PDOのとこで一個だけ返すメソッド使ってるとか
0107NAME IS NULL2011/04/25(月) 04:07:17.71ID:???
>>106に1票
俺も SQL の問題ではないと見る
01081042011/04/25(月) 07:57:18.87ID:bEXHKNc/
実際のリクエストは
$sql = "SELECT * FROM test WHERE hogehoge = examplehoge";
$conn = new PDO("sqlite:/test.sql3");
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
となってます。
複数の環境に入れる可能性があったのでPDOを初めて使っています。
0109NAME IS NULL2011/04/25(月) 09:22:06.47ID:???
試してないけど、こんな感じにすればできるはず

while ($row = $conn->fetch()) {
  $result[] = $row;
}
0110NAME IS NULL2011/04/25(月) 12:49:03.28ID:???
>>108
ループさせてなきゃ最初の1行しか取れないのは当然だろう。
SQLite 関係ない。
0111NAME IS NULL2011/04/25(月) 14:05:19.28ID:???
>>102
設計と実装をごっちゃにすんなよ屑が
0112NAME IS NULL2011/04/25(月) 14:32:18.34ID:???
>>111がごっちゃにしてるようにしか見えない件について
0113NAME IS NULL2011/04/26(火) 20:58:29.83ID:???
>>111はたぶん安価ミスで、ほんとは>>92って書こうとしたんだろ。
0114NAME IS NULL2011/04/27(水) 18:48:20.19ID:???
>>111が酷いな
0115NAME IS NULL2011/04/30(土) 20:14:11.60ID:???
既存のテーブルのカラムの順番を入れ替えるのはどうやるんですか?
0116NAME IS NULL2011/04/30(土) 20:34:30.73ID:???
ALTER TABLE じゃねえの?
つうかスレ違い
0117NAME IS NULL2011/05/01(日) 08:55:06.88ID:???
>>115
なぜ入れ替える必要があるの?
0118NAME IS NULL2011/05/01(日) 14:09:43.67ID:???
そんなもん色々だろ
入れ替えなければいけないケースはあり得ないとでも?
0119NAME IS NULL2011/05/01(日) 14:54:59.71ID:???
だって意味ないじゃない
0120NAME IS NULL2011/05/01(日) 15:03:53.33ID:???
>>119
無計画にカラム追加したテーブルは開発がし辛いからだろ
0121NAME IS NULL2011/05/01(日) 15:06:52.92ID:???
なんで?
設計書が見づらくなる程度で、プログラム上はなんも変わらないだろ
0122NAME IS NULL2011/05/01(日) 15:31:37.94ID:???
>>121
自動生成物が見づらくなるっつってんの
もう黙って
0123NAME IS NULL2011/05/01(日) 17:18:23.35ID:???
>>121
「見づらい」だけで十分変更理由になると思うが?
つうかスレ違いっつってんだろ
0124NAME IS NULL2011/05/02(月) 11:38:31.69ID:???
見づらいくらいなら全部作りなおすだろう。
0125NAME IS NULL2011/05/02(月) 16:35:00.56ID:???
>自動生成物が見づらくなる
ワロスwww
0126NAME IS NULL2011/05/02(月) 18:46:30.59ID:???
ただ ALTER TABLE するだけでお手軽にメンテナンスしやすくなるものをなんでそんなに必死に変更させまいとするのか意味がわからない
0127NAME IS NULL2011/05/02(月) 18:49:11.34ID:???
RDBMSのスレで初心者がよくする質問の一つだからだよw
0128NAME IS NULL2011/05/02(月) 19:02:45.63ID:???
何がそんなに面白いのか分らない
0129NAME IS NULL2011/05/02(月) 21:01:56.94ID:???
バックアップ取って再createする発想もなかったか
0130NAME IS NULL2011/05/02(月) 22:41:19.38ID:???
ADO.NETだと一回作ると気楽に変更できないんだわな
0131NAME IS NULL2011/05/17(火) 11:46:00.69ID:???
ネットワークフォルダにdbファイルおいて、小規模(数人〜十数人)で使うようなの考えているんだけど、
そんなに高頻度で書き換えなければ、トランザクションで書き換えとけば無問題な感じですか?

基本的なことわかってないので、
そういうロック周りのこと解説してあるところありませんかね?

Access使えって話だけど、2007使えんし、VBAだとイロイロキツいのだす。
0132NAME IS NULL2011/05/17(火) 13:42:45.26ID:???
>>131
問題大有りに決まってんだろ馬鹿が
0133NAME IS NULL2011/05/17(火) 13:51:53.61ID:???
>>131
なんでこういうバカってSQLiteでやろうとすんだろ?
0134NAME IS NULL2011/05/17(火) 14:27:37.50ID:???
>>131
まったく問題ない

>>131,132 のような低能が多いから気をつけろよ
0135NAME IS NULL2011/05/17(火) 15:00:05.26ID:???
134はたぶん131と同一人物
0136NAME IS NULL2011/05/17(火) 15:21:35.13ID:???
>>133
バカに何でだめか、バカでもわかるよう教えてやれw
0137NAME IS NULL2011/05/17(火) 15:35:20.94ID:???
SQLiteのドキュメント読めよ
そういう問いにたいしてちゃんと説明しているぜ

結論から言えば更新頻度が少ないならよっぽど大規模サイトでも無い限り問題ないがな
0138NAME IS NULL2011/05/17(火) 15:44:20.06ID:???
>>137
NFSならな。>>131はどう考えてもWinだぞ。SMBでdbファイル共有なんて
考えたくもないわ。
0139NAME IS NULL2011/05/17(火) 17:40:21.40ID:???
>>138
おんなじように、ネットワークフォルダでAccess使うのと、リスク同じくらいじゃないの?
そりゃ避けた方がより良いのは当然だけど。
0140NAME IS NULL2011/05/17(火) 18:09:10.58ID:???
>>138
大丈夫だよ
sambaもファイルロックはサポートしてます
0141NAME IS NULL2011/05/17(火) 19:26:41.05ID:???
素直にPostgreSQLなりMySQLなりSQL Serverなり使えよ…
0142NAME IS NULL2011/05/17(火) 21:44:01.46ID:???
たかがWebサービスがそんなに難しいことなのだろうかと思ってしまうんだが・・・
0143NAME IS NULL2011/05/17(火) 23:27:31.38ID:???
俺もたまにあるが、入れたくても入れられない事情でもあるんじゃないの?
自分で好きなようにサーバーや、クライアントに入れるソフトを設定できない事もある。
融通が全然きかないと。
0144NAME IS NULL2011/05/17(火) 23:59:57.59ID:???
>>137
更新頻度が少ないなんて理由にもならん理由で問題ないとか言える糞脳みそを持ってると人生楽そうで羨ましい
0145NAME IS NULL2011/05/18(水) 00:12:56.64ID:???
>>144
馬鹿には理解できないからなw
恥さらすなよww
01461312011/05/18(水) 00:50:23.23ID:???
thxです!
どうせ 数回/分 の書き換えなので、ファイルバックアップしながら使ってみることにします。

サーバにRDBMS入れて動かす権限も能力もないのよ… バカでスマヌ

そーいや、昔は毎日のようにファイル壊れてたAccessも、最近はてんで壊れなくなったなァ…
いや、Accessが良くなった訳じゃないけど。
スレチ杉スマソ
0147NAME IS NULL2011/05/18(水) 04:48:48.32ID:???
ならACCESSでやれよ無能
0148NAME IS NULL2011/05/18(水) 11:06:01.38ID:???
>>145
消えろ
0149NAME IS NULL2011/05/19(木) 00:46:57.43ID:???
>>147
要はAccessが使いにくいから、SQLiteで代用できんかって質問だろw
0150NAME IS NULL2011/05/19(木) 14:34:05.77ID:???
>>149
そう思ってたら輪をかけてSQLiteがひどいことが判明した
ってとこですよね。
0151NAME IS NULL2011/05/19(木) 15:34:30.97ID:???
なにをいってるだ
馬鹿じゃないのか?
0152NAME IS NULL2011/05/19(木) 15:57:10.42ID:???
>>151
馬鹿はあなたですよ。ふふっ
0153NAME IS NULL2011/05/19(木) 16:30:09.82ID:???
>>152
馬鹿はあなたですよ。ふふっ
0154NAME IS NULL2011/05/22(日) 19:20:36.24ID:???
          / : : : : : : : : : /: : : : : :` : : : : : ヽ:\
       // : : : : : : : : : /\ : : \: : : : : : : : v:ハ、  な…何なのこの雰囲気…
        : : : : : : : /: : /  丶: : : : : : : : : : : ハ|V{ハ このままじゃあ皆…
       ii : : : : : : : : : /      }: : : : : : : : : : i:i:|ivi:リ
       |i : : : i : : i : :, ー=-‐':|`ヽ:i: : : : : : じじハ
       |i : : : | : :ハ:i|      j|  jハ : : : : |: |i i|ハ, . ヘ、
        ハ : : :iiハi:{ 八     '"芹示 |: : : : ハ: じj/: : : : : ヽ
        V :ハ从,茫ミ、     v:ツ | : : ,/,ハ: V: : : : : : : :/}
          i爪: :\ vリ       ....::::::: ノ : :/r' У: : : : : ,ィ彡'  ,. ヘ、
         ` ミ;ゝ.:: ,        `ー彡|_/: : : : : :/ _/ : : : : :ヽ
            丶    、..:::)   /  |�Y: : : : : :/_,ィ勿' : : : : : ,ィ刋
           ,. :'" > . _ . r: ´   / 丶: : : : i三彡': : : : : :ムィ'"
             / : : : : : :_:_:_:_,≪r‐一 ´   / ̄ ̄ ̄`'く: : : : : :/
             ヽ : r<´ ̄ ̄i i| ,ィー…<   /       \: : /   /
0155NAME IS NULL2011/05/22(日) 22:11:58.40ID:???
円環さんは理に還ってくれ
0156NAME IS NULL2011/05/24(火) 16:06:03.32ID:???
SQLiteファイルを分割保存して、一つのSQLとして処理する方法はないでしょうか?
0157NAME IS NULL2011/05/24(火) 18:49:17.52ID:???
>>156
アタッチできますよ。
0158NAME IS NULL2011/06/05(日) 07:56:33.34ID:zgB9UHdm
ほしゅ
0159 忍法帖【Lv=35,xxxPT】 2011/06/05(日) 11:41:52.36ID:???
a
0160NAME IS NULL2011/06/07(火) 15:30:44.24ID:js37uI9c
環境
MacOSX
sqlite3
apache2
perlでCGI
DBD::sqlite
というDBにコネクトしてる状態で
my $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
などinsert文を実行しようとしたらエラーがでます、select文などは問題ないのですがいったい何が原因なんでしょうか?
0161NAME IS NULL2011/06/07(火) 15:56:20.23ID:???
アクセス権とか?
0162NAME IS NULL2011/06/07(火) 21:46:42.26ID:???
>>160
エラーが出ますって
エラーメッセージって出ないの?
0163NAME IS NULL2011/06/07(火) 23:41:45.42ID:???
>>162
エラーメッセージは出てないんじゃないかな、たぶん
エラーメッセージの出し方から教えてあげるといいよ
0164NAME IS NULL2011/06/08(水) 00:21:54.87ID:???
$dbh->do($insert) or die $dbh->errstr;
でerrorlogをチェックするとか、
$dbh->trace(1, 'trace.log');
でログを吐くとか。
0165NAME IS NULL2011/06/08(水) 00:49:40.12ID:???
環境
sqlite3
Android2.2

アンドロイドで作ったアプリでCSV1からDB1を作成しました。
その後、CSV1の更新ファイルであるCSV2から同じ手順でDB2を作成しました。

CSV2はCSV1のデータをすべて含んでおり、かつ、4行分登録されるデータが多いです。
ところが、作成したDB1とDB2を比べると、データ数の少ないDB1の方がDB2より9k程大きいのです。

データが欠けていないかと、DBファイルをダンプして比較しましたが、
データ自体に欠けはなく、DB2はきちんとCSVの差分だけDB1より多くデータを持っていました。

こういったことが起こる原因について、ご教示願えないでしょうか?
0166NAME IS NULL2011/06/08(水) 03:03:38.83ID:???
>>165
データ量にあわせてDBも大きくなるけど、小さくはならない
アプリがどうやってるかしらんけど、なんか本来のデータとは
別に裏でデータを追加したり削除してるから大きくなった。
0167NAME IS NULL2011/06/08(水) 12:48:00.72ID:yzo9cLWq
エラーメッセージは
[error] [client ::1] DBD::SQLite::st execute failed: unable to open database file(14) at dbdimp.c line 403 at ***.cgi
です
どういう意味でしょうか?
0168NAME IS NULL2011/06/08(水) 12:57:15.42ID:???
「***.cgiの403行目の処理の時点で指定されてるデータベースファイルが開けねーよボケ」

見たまんまなわけだが。
0169NAME IS NULL2011/06/08(水) 13:03:26.83ID:yzo9cLWq
すいません line 14 が抜けてました
[error] [client ::1] DBD::SQLite::st execute failed: unable to open database file(14) at dbdimp.c line 403 at ***.cgi line 14
0170NAME IS NULL2011/06/08(水) 13:05:33.32ID:yzo9cLWq
そして14行目です
my $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
0171NAME IS NULL2011/06/08(水) 13:12:20.28ID:???
自分でデバッグする気はないようだなw
0172NAME IS NULL2011/06/08(水) 13:12:35.06ID:???
いや、そこだけ見せられてもw
DBIで宣言したsqliteのDBファイルが存在しないんじゃないの?
0173NAME IS NULL2011/06/08(水) 20:05:30.16ID:???
Google翻訳:
失敗し、実行:*** cgiの14行でdbdimp.c403行でデータベースファイル(14)を開くことができません
0174NAME IS NULL2011/06/14(火) 00:56:06.64ID:???
ちょっと教えてください
phpで@sqlite_openで作ったファイルをPupSQLiteで開こうとすると
暗号化されたファイルです。とか出て開くことができませんが、sqlitecc3jだと普通に開けます。
で、PupSQLiteでファイルを作成して、@sqlite_openで読もうとするとエラーになってしまいます。

これはPupSQLiteがあんまり良くなくて、読み込みや保存がうまくできないということでしょうか?
0175NAME IS NULL2011/06/14(火) 02:02:55.30ID:???
とりあえずそのPupSQLiteとやらの作者に聞いてみれば?
0176NAME IS NULL2011/06/14(火) 04:17:56.13ID:???
>>174
PHPは詳しくないんだが、確かPHPでのSQLite接続方法は2つあるはず
片方がSQLite2形式でもう片方がSQLite3形式
でPHP製のSQLiteManagerのソースを検索してみたらsqlite_open関数はSQLite2用らしい

SQLiteCC3JはSQLite2とSQLite3に対応していて
PupSQLiteはSQLite3のみに対応しているからそのせいだね
0177NAME IS NULL2011/06/15(水) 22:20:13.52ID:???
調べてみた所、その通りでした。
しかし、phpの関数を変えてもロリポップはsql3が使えなかったんでsql3使えるレンタルサーバー探してみます。
PupSQLiteは使い勝手がいいんで、こっちに問題がなくて良かったです。
ありがとうございます。
0178NAME IS NULL2011/06/19(日) 14:29:00.42ID:???
SQLiteを複数プロセスから扱う場合、
トランザクションの前後でflockすればいいのか?
0179NAME IS NULL2011/06/19(日) 16:07:54.28ID:???
>>178
そんな必要はない
自動的にロックされる
0180NAME IS NULL2011/06/19(日) 20:53:01.04ID:8vVW7TIm
自作アプリケーションで使用する独自ファイル内の一部分にsqliteのデータベースを
内包させることを検討しているのですが、何か方法はありませんでしょうか?

ファイルの該当部分をメモリ上に読み込み、それをsqliteのAPIから利用できる形に
することが出来れば良いと思うのですが、具体的な手段が思いつかず…。
(イメージとしては、インメモリDBとして展開/保存、メモリ上のsqliteデータをopen/close、等々...)

なお、ファイルフォーマットは、以下のようなものを考えています。
 [独自ファイルヘッダ][独自ファイルデータA][SQLiteデータ][独自ファイルデータB][独自ファイルフッダ]

言語はC、OSはLinuxを考えていますが、将来的にWindowsも視野に入れるかもしれません。
0181NAME IS NULL2011/06/19(日) 22:31:00.94ID:???
RAMディスク作ってコピんのが一番楽だろ
0182NAME IS NULL2011/06/20(月) 08:20:15.17ID:???
>>180
起動時にSqliteをiin-memoryとして接続し、shema作ってやればいいんじゃないの?
01831802011/06/20(月) 19:25:23.30ID:fmQ7dwYy
>>181
ありがとうございます。
RAMディスク上に展開したものを普通にsqlite3_open、ということでしょうか。
対象がRAMディスクが使える環境ばかりでは無いので、別の方法を検討します…。

>>182
ありがとうございます。
アプリケーションでschemaを決め打ちにしておいてインメモリDBを作成し、
ファイルから読み込んだデータをインメモリDBへ流し込む、というイメージでよろしいでしょうか?
ファイルにあるデータをインメモリDBへ展開する手段が想像できないので、
お手数ですが、もう少し詳しく説明していただけると助かります。
0184NAME IS NULL2011/06/20(月) 19:38:11.53ID:???
そんなんファイルの形式次第だからkwsk言われてもな
01851802011/06/20(月) 21:03:52.34ID:fmQ7dwYy
言葉足らずですみません。
私の理解力不足で、>>182氏の言っている内容から、
>起動時にSqliteをiin-memoryとして接続し、shema作って
何を「やれば」良いのかが読みとれなかったため、質問させていただきました。

なお、SQLiteデータ格納部分のファイル形式は、何か詳細なイメージがあるわけではなく、
アプリケーションから読み込み、最終的にsqliteのAPIから使用できれば何でも良いと考えています。
0186NAME IS NULL2011/06/20(月) 21:48:44.68ID:???
わざわざ内包する意味は?
どうしても内包したいんだったら、起動時に/tmpにでもコピっとけよ
0187NAME IS NULL2011/06/20(月) 21:52:58.16ID:???
>>185
Sqlite dbをキャッシュとして使用する発想です。
ファイルの内容をin-memory dbに取り込む。
データの更新は、SqliteのAPIは基本SQLの実行以上のことはできなかったと思う(もしかしたら、ユーザー定義関数を使用すればできるかもしれない)ので、このin-memory dbに対してSQLを発行(insert, update, delete)して行う。

最終的にファイルに保存する際、in-memory dbの内容をselect文で抽出し書き込む。

in-memory dbの作成(接続)は、openする時にファイルパスの代わりにmemoryって文字列を渡せばよかったはず(うろ覚えなのでドキュメントで確かめてね)
01881872011/06/20(月) 21:57:32.48ID:???
ちなみに、ここまでするメリットがあるかどうか分かりません。

なせわざわさsqliteに取り込むのか?そこを説明してもらえれば、別の解決策を提示できるかもしれません。
01891872011/06/20(月) 22:01:52.68ID:???
例えば、初めからSqliteのdbファイルに保存しておき、元のファイルへは、exportするよう作りをかえるとか....
0190NAME IS NULL2011/06/21(火) 05:28:32.98ID:???
今までDB未使用で自分でファイルに書き出してた人でしょ?
まぁ、一回騙されたと思ってサンプルどおりに実装してみなよ
01911802011/06/21(火) 19:19:51.52ID:???
>>186-189
皆様ありがとうございます。
ファイル内に取り込みたい最大の理由はファイルの互換性です。

過去に作成したアプリケーションにおいて、以下のようなファイルフォーマットを使用しているのですが、
 [独自ファイルヘッダ][独自ファイルデータA][独自ファイルデータB][独自ファイルフッダ]

アプリケーションの新バージョンを作るにあたって、内部でSQLiteの使用を検討しており、
データ保存の際にはSQLiteのDBも含めて書き出したいため、以下のようなフォーマットを思いついた次第です。
 [独自ファイルヘッダ][独自ファイルデータA][SQLiteデータ][独自ファイルデータB][独自ファイルフッダ]

※過去バージョンの仕様上、新バージョンで書き出したファイルを開く場合は、SQLiteのDB部分を無視し、
 その他のデータ部分のみ参照/編集することが可能、保存の際はSQLiteのDB部(というより未定義部分)はそのまま書き出す。

別ファイル展開も選択肢の一つとして考えていないわけでは無いのですが、そこにデータがあるのに同じ物を展開して
再オープン、というのはどうもスマートではない気がするので、直接読み込む方法を模索している、といった状況です。

>>190
過去スレにそういう人がいたとしたら(いたっけ…?)人違いです。すいません。
サンプルとは…?
0192NAME IS NULL2011/06/21(火) 22:28:50.32ID:fvG5wZhx
>>191
UZEE
0193NAME IS NULL2011/06/21(火) 23:57:48.48ID:???
>>191
センス無いね
そもそも[SQLiteデータ]って何よ?
それに過去バージョンでSQLiteデータとやらを読み飛ばして作業したら、整合が取れないじゃないか
0194NAME IS NULL2011/06/22(水) 00:25:23.69ID:???
ここでsqliteネタをウゼーウゼー言ってるとまたaccess厨が沸くぞw

>>191読んでやりたい事は分かったが俺には思いつかねえw
本体に手を入れてまんまダンプする関数を増やす、とか...   orz
0195NAME IS NULL2011/06/22(水) 00:57:56.29ID:???
>>193
2chでセンスを求めちゃイカンw
>アプリケーションから読み込み、最終的にsqliteのAPIから使用できれば何でも良い
ってあるから、そういうデータなんじゃね?w
例えばsqliteファイルをtar玉ごとメモリに読み込んでdbハンドラに繋げるようなイメージをエスパーしてるが正解かは知らんw

>>194補足
↑のイメージならin-memory dbをそのままダンプしてやってファイルに収める仕掛けを実装すれば
いけるんじゃネーノ?とか思ってるけどsqlite.cを読んだことがないヘタレだから出来るのかはワカランorz
0196NAME IS NULL2011/06/22(水) 01:40:33.29ID:???
>>194-195
昔DRHが近いネタをsqlite-usersに書いてたような気がする。
記憶違いだったらすまん。
0197NAME IS NULL2011/06/22(水) 17:48:46.52ID:???
>>191
DBサイズが固定なら出来る
サイズが変更されるなら当然無理
0198NAME IS NULL2011/06/22(水) 17:51:13.07ID:???
プログラムの改造無しでやる方法を思いついた
Linux限定だけど
0199NAME IS NULL2011/06/22(水) 19:58:32.98ID:???
開発環境 VS2008で
アタッチってできますか?
アタッチはできたみたい(リターン:0)
ですが いざSELECTすると no such table
になってしまいます。。。。

cmd = New SQLiteCommand("ATTACH '" & strdbname & "' AS '" & strname & "'", Me.conn)
cmd.CommandType = CommandType.Text

'SQL実行
intResult = cmd.ExecuteNonQuery()
cmd = New SQLiteCommand
cmd = Me.conn.CreateCommand
cmd.CommandText = "SELECT tablename FROM PDA.tblInfo"
'SQL実行結果をデータセットに格納
Dim adp As SQLiteDataAdapter
adp = New SQLiteDataAdapter(cmd)
 エラー→  adp.Fill(ds)
0200NAME IS NULL2011/06/22(水) 22:21:20.96ID:???
osのファイルキャッシュに載せるんだろ?
0201NAME IS NULL2011/06/22(水) 22:22:07.45ID:???
しまた
>>198ね
0202NAME IS NULL2011/06/22(水) 22:27:07.50ID:???
ん、何かちんぷんかんぷんなこと言ってるな俺
0203NAME IS NULL2011/06/22(水) 22:28:17.75ID:???
>>197
ヘッダフッタがあるから問題なくね?
普通にできると思うけど全体で見たら遅すぎて話にならない
0204NAME IS NULL2011/06/22(水) 22:34:44.79ID:???
その部分だけinmemoryDBに載せられるんなら速度は気にするほどでもないような?
0205NAME IS NULL2011/06/23(木) 00:41:08.76ID:???
どうしても独自フォーマットのファイルを使いたいなら
SQLをdumpして保存したらいいよ。圧縮くらいはしたほうがいいかもな
使うときは、:memoryにimportね
0206NAME IS NULL2011/06/23(木) 19:40:16.74ID:???
>>205
毎回DB作り直すのかよ
0207NAME IS NULL2011/06/25(土) 03:25:45.33ID:???
>>191
普通に独自ファイルデータとやらをSQLiteDBに突っ込めよ糞ウンコちゃん
0208NAME IS NULL2011/06/25(土) 12:29:25.66ID:???
>>206
インメモリDBなら当然だろ。
0209NAME IS NULL2011/06/25(土) 12:30:11.54ID:???
>>207
頭悪そうw
0210NAME IS NULL2011/06/25(土) 21:27:06.64ID:???
独自データのファイルサイズにもよるから一概に言えないど、
ひとつの方法ではあると思うぞ。

頭悪そうと思った理由書いてくれないかな。
0211NAME IS NULL2011/06/25(土) 22:50:59.86ID:???
>>210
俺は209ではないが、
・スレをちゃんと読んでいる場合
→日本語の理解能力が足りない。頭悪そう。
・スレをちゃんと読んでいない
→常識のない人間。頭悪そう。
・いずれの場合でも
→言葉遣いが明らかに頭悪そう。

っていうことだと思うよ。
0212NAME IS NULL2011/06/25(土) 23:08:30.19ID:???
>>211
要するに「頭悪そう」って書きたかっただけなのか。

それこそ頭悪そうだなw
0213NAME IS NULL2011/06/25(土) 23:43:17.66ID:???
3.7.7.0 ビルドでけた
02141802011/06/26(日) 00:22:51.21ID:???
>>194-196
近いネタですかー。mail-archiveあたりで探してみようと思います。
ありがとうございます。

>>205-206
DBのサイズが大きい場合の速度は確かに気になりそうですが、
shell.cのdump_*関数を流用するだけで済みそうなので実装は簡単そうですね。
ありがとうございます。

>>207
それが簡単なのは認識しているのですが、前述の通り互換性の問題から
(前バージョンで開けないファイルになる)選択肢には入れていないのです…。
ありがとうございます。


センスと初期設計がまずいのは自覚しております…。
ヒントを沢山いただいたので、この先は自力で頑張ってみます。
皆様色々とありがとうございました。
0215NAME IS NULL2011/06/26(日) 00:55:38.27ID:???
ぶっちゃけアプリ側のデータ提供部分で吸収してしまえばいいだけだと思うんだが・・・
なぜデータまでまとめようとするのか
旧ver→独自ファイルのみ、新ver→独自ファイル+DB
それだけの話じゃねーの?
0216NAME IS NULL2011/06/26(日) 01:00:51.50ID:???
データファイルを単一にしたいと言うことなんだろうとエスパーしてみる。
0217NAME IS NULL2011/06/26(日) 01:29:39.01ID:???
>>214
意味不明な前方互換にこだわるな

ほんの少し調べりゃdumpが真っ先に見つかるだろボケ

その汚物の様なセンスを人前にさらすな
0218NAME IS NULL2011/06/26(日) 01:48:18.70ID:???
まあ案件によっては前方互換が必須とか結構あるけどね。
そういう話なのかは知らないけどw
0219NAME IS NULL2011/06/26(日) 02:17:55.21ID:???
>>216
言いたい事はわかるが・・・それはどうしても外せない要件ではないだろうし
初期設計どうこう言えないクソ設計としか言いようがない
0220NAME IS NULL2011/06/26(日) 03:29:30.63ID:???
>>219
顧客がアホなんだろ。たぶん。
0221NAME IS NULL2011/06/26(日) 05:24:04.50ID:???
> センスと初期設計がまずいのは自覚しております…。
と言ってるんだから別に顧客からの要求じゃなくて自己満足によるものだろ
0222NAME IS NULL2011/06/26(日) 08:36:18.68ID:???
顧客が絡んでるかどうかはわからんし、前方互換がどこまで必須かもわからない。

でも、他人がとやかく言う話じゃないと思う。
0223NAME IS NULL2011/06/26(日) 13:21:19.87ID:???
変態行為をやろうとしてる奴に動機を聞いてるだけで、とやかく言ってるわけじゃないんだが
0224NAME IS NULL2011/06/26(日) 19:00:04.17ID:???
>>223
動機を聞く ってのがまず余計なお世話なんだよな
「お前のためだから」 って態度がむかつくわ
0225 忍法帖【Lv=14,xxxPT】 2011/06/26(日) 20:28:23.44ID:???
YouTubeやニコ動などのヘビーなサイトでもSQLiteって平気ですか?
0226NAME IS NULL2011/06/26(日) 20:31:20.11ID:???
1ファイル1テーブル
1ファイル1データベース

運用方法としては後者が正しいと思いますが、
やたらdbファイルができるシステムを組んでる人がいて、
中身みてみたら1ファイル1テーブルになっていました。
なんか1ファイル1テーブルにする理由とかあるんでしょうか?
0227NAME IS NULL2011/06/26(日) 21:08:14.58ID:???
>>226
>やたらdbファイルができるシステムを組んでる人がいて、
>中身みてみたら1ファイル1テーブルになっていました。
>なんか1ファイル1テーブルにする理由とかあるんでしょうか?

その人に聞いてみたらいいんじゃね。
0228NAME IS NULL2011/06/26(日) 23:03:39.16ID:???
>>225
あまり平気ではない。
DBが壊れてたりとかは無いけど、パフォーマンスは悪い。
0229NAME IS NULL2011/06/26(日) 23:49:43.55ID:???
>>228
>あまり平気ではない。
>DBが壊れてたりとかは無いけど、パフォーマンスは悪い。

ん?「YouTubeやニコ動などのヘビーなサイト」を SQLite
で運用したことあるってことか?

マジなら漢だと思う。
0230NAME IS NULL2011/06/27(月) 00:20:05.19ID:???
>>226
あれ?SQLiteってファイル単位で排他制御が行われるんじゃなかったっけ?
0231NAME IS NULL2011/06/27(月) 01:22:45.67ID:???
>>229
もしかしてSQLiteがファイルロックってことすら知らないの?
0232NAME IS NULL2011/06/27(月) 13:40:00.83ID:???
なにいってんだーw
0233NAME IS NULL2011/06/28(火) 15:35:20.60ID:???
SQLiteのロックって割と信用できないからな・・・
0234NAME IS NULL2011/06/29(水) 02:55:09.13ID:???
シングルユーザーシングルスレッドで使えば問題ない?
0235NAME IS NULL2011/06/29(水) 07:59:11.70ID:???
マルチでも問題ねえよ
0236NAME IS NULL2011/06/30(木) 06:00:31.88ID:???
3.7.7.1
0237NAME IS NULL2011/06/30(木) 12:39:52.57ID:???
ネットワーク越し、Winの共有フォルダとかNFSとか
だと状況によっては・・・
0238NAME IS NULL2011/06/30(木) 18:02:52.64ID:/Ojq8+Ij
MacのターミナルでDBのテーブルにcsv形式のファイルとインポートするときに、
「expected 32 columns of data but found 40」というエラーが出ます。
どうすればインポート出来ますでしょうか。
ご教授願います。
0239NAME IS NULL2011/06/30(木) 18:27:34.21ID:???
カラム数があっていないと書いてある
0240NAME IS NULL2011/06/30(木) 20:34:40.33ID:???
ネタかと思うほどのあほ
0241NAME IS NULL2011/06/30(木) 21:00:10.06ID:???
>>239は優しいな
0242NAME IS NULL2011/06/30(木) 21:01:10.90ID:???
>>240のアホさが際立ってるな
0243 忍法帖【Lv=12,xxxPT】 2011/07/01(金) 15:02:43.25ID:???
ちんこ
0244NAME IS NULL2011/07/02(土) 20:46:20.78ID:???
SQLコマンドを毎回ターミナルから入力しているのですが
楽をする方法はありませんか?
0245NAME IS NULL2011/07/02(土) 21:09:03.36ID:???
SQLコマンドーはファイルに書いておいて
コマンドーラインからリダイレクトで流してもいい。
0246NAME IS NULL2011/07/02(土) 21:22:24.44ID:???
映画見とる場合かーっ
0247NAME IS NULL2011/07/02(土) 21:23:43.16ID:???
リダイレクトで流してもいいと言ったな。あれは嘘だ。
0248NAME IS NULL2011/07/02(土) 21:52:13.69ID:???
>>244
ファイルに入った SQL の実行
.read <ファイル名>

http://www.kkaneko.com/rinkou/sqlite/sqlitecommand.html#eq_4
0249NAME IS NULL2011/07/05(火) 20:34:20.66ID:???
SQLiteってデッドロック起きるんですか?
0250NAME IS NULL2011/07/05(火) 21:02:16.76ID:???
MySQLからの移行を考えています。
test.sqliteというファイルを作ったら、
これはrootでcreate database testをしたということでいいんでしょうか?
それでtest.sqliteに、テーブルを作っていくわけですが、
create table a (
) encoding=utf8 collate utf8_unicode_ci;
みたいのはどうしたらいいんでしょうか?

pragma encoding="UTF-8";

create table a (
);

create table b (
);
のようにやっていき、

SELECT時にも最初に、

pragma encoding="UTF-8";
と入れればいいのでしょうか?
0251NAME IS NULL2011/07/06(水) 18:00:39.42ID:???
varchar(10)とやっても11文字でも普通にinsertできてしまうんですが、
プログラム側でしっかりチェックしろっていうことでしょうか?
check(length(col<=10))とか制約いれてもエラーにはならないようですが
11文字以上でも普通に入ってしまいます
0252NAME IS NULL2011/07/06(水) 23:32:23.92ID:???
>>251
varcharだのintだのってのはただの飾りですから
0253NAME IS NULL2011/07/07(木) 09:05:54.96ID:???
intカラムに'ABC'INSERTしてもOKな仕様だから無問題
0254NAME IS NULL2011/07/07(木) 11:06:46.90ID:???
NULLじゃなくて'NULL'を入れても問題なし
0255NAME IS NULL2011/07/07(木) 11:12:14.47ID:???
男性カラミにSTICKをINSERTしても無問題?
0256 忍法帖【Lv=17,xxxPT】 2011/07/08(金) 07:59:29.78ID:CxszCXG9
FirefoxのアドオンでSQLite Manager開きながらそっちで使えるクエリー試したり
ブラウザから取り出して表示してみたりしてたところ
ブラウザからの書き込みで延々と処理が先に進まない事態がおきました
これはいわゆるデッドロックってやつかもしれませんがどうやって調べるのでしょうか?
MySQLだとSHOW INNODB STATUSなんかで調べれるみたいですけど
SQLiteではどうするのでしょう?
というかDBレベルのロックだからデッドロック発生しないって書いてたのに・・・
02572562011/07/08(金) 13:59:37.74ID:CxszCXG9
うーん・・・
ChromeとOperaはinsertできるのに
FirefoxとIEはなぜかできないorz
何か情報ないでしょうか?
02582562011/07/08(金) 14:58:49.76ID:CxszCXG9
ごめんなさい
ヘッダ見ながら作業してたら根本的にinsertプログラムへのPOSTができていませんでした
原因はボタン複数回おすのを防止するJavaScriptの挙動がおかしくて
先の画面へいかないことが原因でした
お恥ずかしい・・・
0259NAME IS NULL2011/07/08(金) 18:37:21.24ID:???
リクエストされたSQLを見れるデバッグ処理くらいは付けようず。
0260NAME IS NULL2011/07/10(日) 15:43:02.54ID:???
携帯ゲームをつくるのにSQLiteを使おうと思ってるのですが、
同時書き込みができないのを考えるとSQLiteは向いてませんかね?
0261NAME IS NULL2011/07/10(日) 15:47:29.04ID:???
書き込むプロセスが1つなら問題ないだろ?
0262NAME IS NULL2011/07/10(日) 15:58:32.67ID:???
スクリプト言語ほど動作が遅くて、多重アクセスがある場合は良い。
C言語が使えるなら、データベースはそれより遅い。
0263NAME IS NULL2011/07/10(日) 16:00:07.48ID:???
携帯にSqliteは組み込まれているのか?
オープンソースだから梱包すれば良いのか
0264NAME IS NULL2011/07/10(日) 16:07:45.51ID:???
携帯ゲームといっても、GREEみたいなブラウザゲームです
0265NAME IS NULL2011/07/10(日) 16:07:49.36ID:???
サーバーでSqliteを使ってモバイルからアクセス来るようなケースか?
マルチ・同時アクセスも処理できるだろ。
0266NAME IS NULL2011/07/10(日) 16:14:06.67ID:???
1日数万ページビューだと、不具合出るらしいぞ。


http://ziddy.japan.zdnet.com/qa4310712.html
PHP5.0+SQLite2.8でユーザー投稿型のサイトを個人運営しています。
1日数万ページビューほどの規模で、
データベースのテーブルのレコード数は数万件、1レコードあたりのカラム数は数十件ほどあり、そのテーブルに1日数百件の投稿があります。
それらのデータは随時更新・削除・検索されます。

データベースファイルへのINSERT、UPDATE、DELETE、SELECTなどが重なると「database is locked」とのエラーメッセージが表示され、
それからもずっとユーザーによるデータベースへのアクセスが続くため、データベースへのアクセスがしづらい、もしくはまったくできない状態が延々と続いてしまいます。
0267NAME IS NULL2011/07/10(日) 23:36:30.24ID:???
他のDBならサーバー側が自前で実装してるところを、OSやFSにまかせてるからな。
0268NAME IS NULL2011/07/11(月) 00:09:40.38ID:???
やっぱそれくらいが限界なのかな?
一日数万ビューって多いのか普通なのかわからんが。
0269NAME IS NULL2011/07/11(月) 01:41:15.21ID:???
1日は86400秒なんだから、数万ビュー/日ってことは数秒に1回か。
0270NAME IS NULL2011/07/11(月) 01:50:48.74ID:???
こういうのは瞬間最大風速しらべないと意味ないよな
0271NAME IS NULL2011/07/13(水) 09:09:23.84ID:???
vacuumしたらサイズが小さくなるって書いてたのでやってみたら35kbぐらいだったのが300kbになったんですが
だまされたでー
0272NAME IS NULL2011/07/13(水) 11:38:23.45ID:???
んなことあるわけないだろ
0273NAME IS NULL2011/07/13(水) 17:03:23.57ID:???
>>271
あるあるw
0274NAME IS NULL2011/07/13(水) 19:14:24.77ID:???
35KBのファイルをVACUUMする必要があるのか?
0275NAME IS NULL2011/07/14(木) 03:50:12.45ID:???
select distinct sid from tableはうまくいくんですが、
select distinct sid, unameみたいに複数指定して取り出そうとすると消えてくれません。
たぶんこの場合sidとuname両方が重複してれば削除ということになるんでしょうが、
sidのみの重複を削除してその他のカラムも一緒に取りたい場合どう書けばいいんですか?
0276NAME IS NULL2011/07/14(木) 08:15:42.49ID:???
削除?
02771872011/07/14(木) 08:26:28.47ID:???
>>275
sidの重複を排除した際、どのunameを取得するんだい?
02782752011/07/14(木) 13:25:33.51ID:???
>>277
order byで一番上にきてるものを取得できないかな?と思ってます
無理ですかね?
0279NAME IS NULL2011/07/14(木) 14:15:29.18ID:???
uname以外に無ければ、
select sid,min(uname) from table group by sid
とかできるけど、、、
あとはサブクエリかな
0280NAME IS NULL2011/07/16(土) 16:10:35.52ID:yPv+Kx9j
みなさんはdb作る時、文字コードは何を利用してますか?
0281NAME IS NULL2011/07/16(土) 17:27:35.88ID:???
unicode
0282NAME IS NULL2011/07/16(土) 23:11:08.88ID:???
UTF8
0283NAME IS NULL2011/07/16(土) 23:42:03.52ID:???
作ったデータベースがunicodeだったからそのまんま使ってるわ
プログラムで使用してるのはutf8でデータベースに入れてるのもutf8だけど不都合は今のところ生じてない
0284>>2802011/07/17(日) 04:31:36.46ID:???
みなさんトンクス。

>>283
その場合、例えば sqlite3_column_text16() 呼んだ後に、アプリ側でutf8に変換してるって事ですかね。
あれ? もしかしてsqlite3_column_text()使えば変換してくれるのかな?
sqlite3_prepare系は引数のsql文の文字コードにあわせて読んでやれば、勝手にdbに適した文字コードに変換される?
0285NAME IS NULL2011/07/17(日) 09:41:30.17ID:???
メモリも8GBで4000円を切るようになって、これからは、UTF-32の時代だな
文字ごとに長さがころころ変わるUTF-8は問題外、サロゲートだの何だの無理やり感満点のUNICODEももう役割を終える時期
0286NAME IS NULL2011/07/17(日) 22:31:42.88ID:???
プログラム側でループさせてSELECTの処理速度計測してるのですが、
1レコード増えるだけでだいぶ時間が遅くなってきます。
SQLiteの組み込み関数を使ったり、150レコードと50レコードほどのものをUNIONしたものを、
さらにSELECTしている感じですが、
1件レコードを増やしたら1回のセレクトが5/100000秒増えます。
適切なインデックスは貼ってるつもりで、トランザクション処理も行っています。
単純計算でレコードが1万あったら0.5秒、10万件あったら5秒もかかります。
データベース使うのは始めてなんですが、こういうものなんでしょうか?
それとも僕の設計が悪いんでしょうか?
いらないレコードはどんどん削除したほうがいいんでしょうか?
質問だらけですみませんが、よろしくお願いします。
0287NAME IS NULL2011/07/17(日) 23:06:29.54ID:???
>>286
設計が悪いんだろうな
スキーマ見せれ
0288NAME IS NULL2011/07/17(日) 23:07:18.88ID:???
インデックスが適切じゃないんだろうな
0289NAME IS NULL2011/07/17(日) 23:36:12.22ID:???
初心者ほどツールや環境のせいにしたがるよな
02902862011/07/17(日) 23:39:14.03ID:???
>>287
こんなかんじになります。

member
id integer pk nn
name text nn

callender
id integer pk nn
uid integer nn --member.id
date integer nn --日付を表すunixtime
todo text nn
unique(uid, date)

default_callender
id integer pk nn
uid integer nn --member.id
week integer nn --曜日を表す数字0〜6
todo text nn
unique(uid, week)

インデックスはcallender.dateに貼っています

これでcallenderとdefault_callenderの曜日を
strftimeでY-m-d形式に変換したものをunionしています。
02912862011/07/17(日) 23:50:37.10ID:???
追記です。
callender.dateに貼っているのは、
callender側の条件で1週間以内を指定するからです。
where `date` < strftime('%s', 'now')-(3600*24*7)

default_callenderは月曜日にピアノの稽古みたいなのが入っていて、
callenderは7/18(のunixtime)に◯◯さんと食事みたいのが入ります。
unionすると7/18は◯◯さんと食事とピアノの稽古といった具合になります。
0292NAME IS NULL2011/07/17(日) 23:59:42.25ID:???
インデックスが適切じゃない
0293NAME IS NULL2011/07/18(月) 00:02:36.71ID:???
>>290
idにも晴
02942862011/07/18(月) 00:10:05.64ID:???
>>292
週間カレンダーのSELECTでして、whereはdateしか指定ないですし、
uidにも貼ってみたんですが、こちらはやはり効果がありませんでした。
default_callender.weekについてもやはり効果はありません。
callender.dateはやはり効果がありました。
他にインデックス貼るものはない気がしますが、
そうなると設計自体に問題があるんですかね・・・
strftimeとか使ってるところもマイナス要素なんでしょうか。

>>293
idはpkなのでたぶん最初から貼られてます。
0295NAME IS NULL2011/07/18(月) 00:33:14.53ID:???
strftime('%s', 'now')-(3600*24*7)
これをwhereに書くな
って言うかどっかで見た
マルチだな
02962862011/07/18(月) 00:35:51.99ID:???
where `date` < strftime('%s', 'now')-(3600*24*7)
を、
where `date` < (select strftime('%s', 'now')-(3600*24*7))
に変えたら1%ほど早くなりました。

>>295
マルチはしていません。
教えていただければそのやりとりを見たいです。
02972862011/07/18(月) 00:54:46.66ID:???
見直したら不必要なorder byが入ってました。
取り除いたところ30%以上早くなりました。
他にも無駄がおおそうなので後はなんとか頑張ってみます。
お騒がせしました。
0298NAME IS NULL2011/07/18(月) 05:56:55.91ID:???
nn って何だよとしばらく考え込んだが NOT NULL のことか。
人に説明するのに中途半端なオレオレ用語使うなよ…
0299NAME IS NULL2011/07/18(月) 06:18:18.79ID:???
nnは俺のイニシャルだろ
0300NAME IS NULL2011/07/18(月) 07:16:48.06ID:???
オレオレ用語じゃないような
DB設計ツールでよく見るぞ
0301NAME IS NULL2011/07/18(月) 09:19:25.87ID:???
いや、それでも nn を見て not null だと判断できる人間が何人居ると思ってるんだよ
0302NAME IS NULL2011/07/18(月) 09:47:40.58ID:???
わりといるだろ。
知らないなら覚えときな。

PK = PRIMARY KEY
FK = FOREIGN KEY
UNN = UNIQUE NOT NULL
NN = NOT NULL
0303NAME IS NULL2011/07/18(月) 10:12:47.48ID:???
UNNよりNN,Uだな
まぁ略語は察せるようにはなったほうがいいよ
あまり変なものだとキレたくなるけどNNは一般的だから
0304NAME IS NULL2011/07/18(月) 10:26:18.36ID:???
>>301
漏れはすぐに判った
0305NAME IS NULL2011/07/18(月) 10:50:09.85ID:???
ちょっと勉強になったと思う
0306NAME IS NULL2011/07/18(月) 11:53:36.82ID:???
PK FK はサッカーでは有名ですよ。
0307NAME IS NULL2011/07/18(月) 11:56:07.96ID:???
うんうん。
プライマリーキックと
フォーリンキックな
0308NAME IS NULL2011/07/18(月) 12:47:00.93ID:???
FWがFireWallの略だと知ったときはかなりショックだった
0309NAME IS NULL2011/07/18(月) 13:41:58.10ID:???
フレームワークじゃないのか
0310NAME IS NULL2011/07/18(月) 14:33:42.32ID:???
WAF っていうと Firewall のことだったり Framework のことだったり分脈で2分されるよな
0311NAME IS NULL2011/07/18(月) 18:27:24.13ID:???
WAF>ω<
0312NAME IS NULL2011/07/18(月) 20:24:19.55ID:???
VBがウイルスバスターの略だと聞くとイラッと来る
0313NAME IS NULL2011/07/19(火) 11:50:05.12ID:???
>>301
http://www.google.co.jp/search?q=sql+nn&lr=lang_en
の結果を見ても一般的な頭字語とは到底思えないけど
PKと同じ文脈でNNが出てきたら判る
まぁ select * from sqlite_master の結果を張った方が質問する方も回答する方も楽よね
0314NAME IS NULL2011/07/19(火) 12:44:01.43ID:???
Netscape Navigator
0315NAME IS NULL2011/07/21(木) 22:24:44.67ID:???
sqliteって文字数の固定長ないよね
VARCHAR(255)とかTEXT(255)があったほうがFileIOの効率いいと思うし
他のRDBはみんなあると思うがなんでないの?
0316NAME IS NULL2011/07/21(木) 23:31:10.14ID:???
>>315
面倒くさいから
0317NAME IS NULL2011/07/22(金) 01:12:36.85ID:???
>>315
なのに速いんだよな。
なんでなんだろうな。
0318NAME IS NULL2011/07/22(金) 01:13:29.84ID:???
排他処理無いから
0319NAME IS NULL2011/07/22(金) 14:05:23.35ID:???
お前は喋んなくていいぞ
0320NAME IS NULL2011/07/22(金) 21:10:18.24ID:???
違う人物が似たよなものつくればもっと速いはず
0321NAME IS NULL2011/07/23(土) 10:38:12.82ID:???
言い出しっぺの法則
0322NAME IS NULL2011/07/23(土) 14:37:17.54ID:???
>>315
そんなことでFileIOの効率なんざ変わらないから
馬鹿なお前の場合、HDDは4KB単位でしか読み書きできないと覚えておくと良い
0323NAME IS NULL2011/07/23(土) 14:48:47.93ID:???
セクタ単位なら 512 バイトから可能
0324NAME IS NULL2011/07/23(土) 21:20:42.29ID:???
クラスタサイズとブロックサイズの違いもわかってないアホは放置で。
0325NAME IS NULL2011/07/23(土) 21:38:53.11ID:???
HDDもSSDも読み込みたいのはたった1byteだろうと、物理的には前後数十KB〜数百KB読み込んでんだよ
512バイトから可能とか寝ぼけた事言わんように
0326NAME IS NULL2011/07/23(土) 22:38:02.82ID:???
ほら、やっぱり理解できてないだろ。(w
0327NAME IS NULL2011/07/23(土) 22:45:45.01ID:???
半角wを使う奴って馬鹿ばかりなのは何故?
0328NAME IS NULL2011/07/23(土) 22:50:19.55ID:???
>>326

頭悪そうな煽りばかりでなく正解を示したら?
0329NAME IS NULL2011/07/24(日) 00:42:36.96ID:???
仲良くしてね
0330NAME IS NULL2011/07/24(日) 01:14:13.90ID:???
>>328
>頭悪そうな煽りばかりでなく正解を示したら?

適当な HDD のデータシートのセクターサイズ見ればいいだけだろ。

例えば HGST Deskstar 7K3000
http://www.hitachigst.com/tech/techlib.nsf/techdocs/155901D3B251D9A9862577D50023A20A/$file/DS7K3000_ds.pdf

0331NAME IS NULL2011/07/24(日) 05:10:40.93ID:???
やっぱ頭悪いだけだったね
0332NAME IS NULL2011/07/24(日) 08:49:32.19ID:???
秋に基本情報技術者試験受けに行かないとな
0333NAME IS NULL2011/07/24(日) 14:32:25.37ID:???
今年は競争率低いから受かる鴨試練ぞ
0334NAME IS NULL2011/07/24(日) 14:37:26.86ID:???
競争率て
0335NAME IS NULL2011/07/24(日) 15:43:53.10ID:???
定員はないから基準点超えれば何人でも合格する
つまり合格率はあるが競争率は無いな
0336NAME IS NULL2011/07/24(日) 20:03:14.27ID:???
>>331
どこが間違ってるか具体的に指摘してやったほうがいい。
正論でガツンと凹ませてやれ。
0337NAME IS NULL2011/07/24(日) 20:11:59.93ID:???
>>336
無理。頭悪いからw
0338NAME IS NULL2011/07/24(日) 20:41:42.60ID:???
>>331
> やっぱ頭悪いだけだったね

頭悪そうな煽りばかりでなく正解を示したら? (w
0339NAME IS NULL2011/07/24(日) 20:59:48.42ID:???
オレは>>331が正しい解説をしてくれると信じてるよ
0340NAME IS NULL2011/07/24(日) 21:01:45.00ID:???
たまにはそっちを苛めないとね
0341NAME IS NULL2011/07/24(日) 21:44:41.93ID:???
苛めてるつもりだったんだ...
0342NAME IS NULL2011/07/25(月) 00:46:46.82ID:???
ファームウェアが512bytes単位のアクセスを提供してるからって
物理的に512bytesぴったりで読み書きしてると思うなんてクサレ脳みそ過ぎるだろ
一体何のために何十MBもキャッシュ積んでると思ってんだ
馬鹿すぎる
0343NAME IS NULL2011/07/25(月) 01:30:30.88ID:???
あ、もしかして「固定長をサポートしてなかろうとIO効率は大して変わらない」という主張をしてる俺に
「HDDは1sector(512bytes)単位の読み書きをサポートしている」と繰り返してたって事か?
んなこと知ってるから安心してくれ
0344NAME IS NULL2011/07/25(月) 01:59:16.46ID:???
>>342
>物理的に512bytesぴったりで読み書きしてると思うなんてクサレ脳みそ過ぎるだろ

「HDDは4KB単位でしか読み書きできないと覚えておくと良い」とかほざいてた奴が
いたようだが? (w
0345NAME IS NULL2011/07/25(月) 02:53:41.86ID:???
「馬鹿なお前の場合」を抜かすなよ馬鹿…
0346NAME IS NULL2011/07/25(月) 06:49:24.50ID:???
結論

>>324がブッチギリに恥ずかしい

以上
0347NAME IS NULL2011/07/25(月) 10:52:40.92ID:???
>>345
>「馬鹿なお前の場合」を抜かすなよ馬鹿…

馬鹿に嘘教えてドヤ顔?
どんどん深みにはまってるぞ。(w

>>346
そんなに悔しかったの?
反論するなら 4KB がどこから来たのか説明してからにしてくれよな。
0348NAME IS NULL2011/07/25(月) 13:59:42.62ID:???
ブロックサイズのMS語がクラスタサイズってだけやんw
他に何が違うのか教えてほしいわwww
0349NAME IS NULL2011/07/25(月) 14:38:47.48ID:???
このスレID出ないのか
0350NAME IS NULL2011/07/25(月) 15:14:47.09ID:???
ID無くても馬鹿臭は隠せない
0351NAME IS NULL2011/07/25(月) 18:23:37.03ID:???
問題は馬鹿が一人か複数かということ
0352NAME IS NULL2011/07/25(月) 19:17:45.74ID:???
どちらにしろ馬鹿なんだから問題ない
0353NAME IS NULL2011/07/25(月) 19:45:12.23ID:???
複数ならもうこのスレに用は無いが
一人なら全力で追い出す
0354NAME IS NULL2011/07/25(月) 19:56:32.15ID:???
知りようが無いものを行動基準に設定する>>353は馬鹿。
>>353がすべてを自演してない限り>>353含め馬鹿は複数居る。

よかったね。さよなら。
0355NAME IS NULL2011/07/26(火) 00:32:49.23ID:???
クラスタサイズとブロックサイズの違いとは一体なんだったのか
0356NAME IS NULL2011/07/26(火) 01:21:47.14ID:???
これ一人が書いてんのか?なんでここまでスレ違いな話を数ヶ月もダラダラやれるんだ
精神異常か
0357NAME IS NULL2011/07/26(火) 01:31:32.23ID:???
なに言ってんだこいつw
0358NAME IS NULL2011/07/26(火) 01:37:41.54ID:???
いつの間に数ヶ月の月日が・・・
0359NAME IS NULL2011/07/26(火) 04:27:38.14ID:???
時空を超えて数ヶ月未来から書き込んでるつもりなんだろう
精神異常だな
0360NAME IS NULL2011/07/26(火) 08:05:27.33ID:???
viewを作ってWebアプリケーション経由でブラウザからアクセスしてベンチマークをとっていました。
どのSQLがいいかを見極めるためにいくつかviewを作ったり改良したりしながら、
F5を連打して秒数を測っていたのですが、あるタイミングから(たぶんF5を抑えつけたとき)
viewを作成できなくなり、select以外の他の操作も受け付けなくなりました。
トランザクション開始→select * from viewを1000回測って平均を出す→コミット
という感じでやってたのですが、何が原因でどう対処したらいいのでしょうか?
データベースファイルが壊れてしまったんでしょうか?
03613602011/07/26(火) 08:16:51.24ID:???
ブラウザも閉じて他から参照もされてないと思ったのですが、
削除も移動もできないため、Apacheを止めてみたら削除できるようになりました。
本番環境で同じことが起きたら非常に困るのですが、これデッドロックですかね?
F5押しっぱなしによるApacheの処理が終わらない段階で、
クライアント側で(Apacheとは関係ない所で)ビューを作成してしまったから起きたのでしょうか?
ログもないし原因がわからず困ってます。
0362NAME IS NULL2011/07/26(火) 09:26:09.60ID:???
けんかになってるということは両方同レベル
0363NAME IS NULL2011/07/26(火) 10:34:52.22ID:???
>>360
ロック中にapacheのスレッド状態とか見てなかったの?
0364NAME IS NULL2011/07/26(火) 10:44:56.89ID:???
Apacheじゃなくて
コンソールプログラムから
同じトランザクション、同じクエリをforループでおくりまくってみたら?
人力でF5押すより再現性があると思うし、Apacheが関係しているかもわかるはず。
03653612011/07/26(火) 11:02:16.74ID:???
>>363-364
レスありがとうございます。

>ロック中にapacheのスレッド状態とか見てなかったの?
Apacheはあまり詳しくなく、見ていませんでした。
エラーログも見てみましたが、さすがになさそうです。

>コンソールプログラムから
>同じトランザクション、同じクエリをforループでおくりまくってみたら?
>人力でF5押すより再現性があると思うし、Apacheが関係しているかもわかるはず。
再現しようと思ってなかなかできなかったので試してみます。
0366NAME IS NULL2011/07/27(水) 20:51:42.32ID:???
どうだった?
0367NAME IS NULL2011/07/28(木) 04:53:43.45ID:???
よかったよ
0368NAME IS NULL2011/08/26(金) 14:00:32.32ID:???
復帰test
0369NAME IS NULL2011/09/09(金) 19:18:35.78ID:aXxL9ygv
ログイン情報を格納したいのですが、
ログイン後に操作するデータベースとファイルを分けたほうがいいでしょうか?
それとも同じファイルでテーブルだけ分ければいいでしょうか?
0370NAME IS NULL2011/09/09(金) 23:31:57.78ID:???
なぜ分けた方が良いと思ったのか、それ次第だな
0371NAME IS NULL2011/09/11(日) 00:04:28.03ID:???
MySQLとかでユーザにつき1つのデータベース付与するのと同じイメージでいいんじゃない?
1つしかデータベース付与されないから全部それでやるしかないでしょ?
0372NAME IS NULL2011/09/11(日) 20:45:29.69ID:???
$sqlite3 -version
すると
>SQLite header and source version mismatch
とメッセージが出て対処法が分かりません。教えてください
初心者スレがあったら誘導してください
0373NAME IS NULL2011/09/11(日) 22:11:17.88ID:???
>>372
Google 知ってるか?
0374NAME IS NULL2011/09/11(日) 22:28:59.83ID:???
そんなもんとっくに調べたわボケ
0375NAME IS NULL2011/09/11(日) 22:38:48.38ID:???
そのメッセージでググればいくらでもヒットするが、英語が読めないのか?
0376NAME IS NULL2011/09/11(日) 22:40:17.37ID:???
>>372
自分で貼ってるメッセージに書いてある通りでしょ。
mismatchだと言ってるんだから同じにしてやればいいんじゃないの?
0377NAME IS NULL2011/09/11(日) 22:50:47.53ID:???
>>375
小学生に何を求めているの?

>>376
その手段が分からない
0378NAME IS NULL2011/09/11(日) 23:42:45.63ID:???
>>377
何でそんなに偉そうに質問してるんだよ。

答えて欲しかったらまず自分の環境とやりたいことくらいは最初に書け。
OSは?OSのバージョンは?SQLiteのインストール手順は?
SQLiteのバージョンは?ヘッダファイルのバージョンは?
利用はコマンドラインから?それとも何かのプログラム言語から?

ちなみに、開発者サイト[http://www.sqlite.org/]からたどれば大抵のことは解決するよ。
mail-archiveへのリンクとかもあるし。
0379NAME IS NULL2011/09/15(木) 16:25:17.77ID:???
偉そうにするとムカついて正論返してくれるじゃん

Ubuntu11.04
インストール手順
公式からsqlite-autoconf-3070701.tar.gzをDL
$tar zxvf sqlite-autoconf-3070701.tar.gz
$cd sqlite-autoconf-3070701
$./configure
$make
$sudo make install
バージョンは不明
利用はコマンドラインから

ちなみに自己解決した。sqlite関連全部消してみて
/usr/local/bin/sqltie3がコマンドで消しても残ってたので管理者権限で消した
$sudo apt-get install sqlite3
したら思った通りに動いた。色んなものが消えたけど
0380NAME IS NULL2011/09/15(木) 16:40:19.72ID:???
それで何時間無駄にしてるんだろう
0381NAME IS NULL2011/09/15(木) 19:46:46.63ID:???
ヒントを全部与えられているんだから自己解決とは言わないだろ・・・w
0382NAME IS NULL2011/09/15(木) 21:09:24.32ID:???
お前らオッサンの癖して揚げ足取りなんて大人気ないな
0383NAME IS NULL2011/09/15(木) 22:10:15.98ID:???
だいにんきと読んでしまったw
おとなげないか?
0384NAME IS NULL2011/09/21(水) 23:36:46.60ID:???
3.7.8
0385NAME IS NULL2011/10/01(土) 00:36:05.63ID:???
>>5 の「SQL辞典」ですが、第2版が出てました。
立ち読みでパラパラと見てみましたが、
SQLite の関数の章の記述が幾分増えているようです。

自分はもう買うつもりないので、買った方いたらレビューよろしくです。

SQL辞典 第2版―7大データベース対応 (Pocket詳解) (堀江美彦 著)
http://www.amazon.co.jp/dp/4798030821
0386NAME IS NULL2011/10/14(金) 12:08:04.39ID:???
訃報: C 言語の開発者、デニス・リッチー氏が死去
ttp://developers.slashdot.jp/story/11/10/13/0224245/

Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。
70 歳 (Rob Pike 氏による Google+ への投稿) 。

長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
0387NAME IS NULL2011/10/20(木) 06:33:47.96ID:fKz8HpBa
CREATE TABLEするときの、カラムの型指定で、
http://www.sqlite.org/syntaxdiagrams.html#type-name
↑の、
・型名が複数続くケース
・型名の後に(signed-num)が続くケース
・型名の後に(signed-num, signed-num)が続くケース
って何に使われるんでしょう?
0388NAME IS NULL2011/10/22(土) 21:29:55.50ID:???
よろしくです
SQLiteでこのようなフォーマットのテーブルに
datetime,real,real,real,real
↓この形式のcsvファイルをインポートするのですが
2008-01-02 18:01:00,64.30,64.30,64.30,64.30
↓このように、時間が記録できません
2008-01-02 64.30 64.30 64.30 64.30
アドバイスおながいします
0389NAME IS NULL2011/10/23(日) 02:05:49.31ID:???
>>388
インポートのやり方が間違っているか
取得の方法が間違っているか のどちらかです。
0390NAME IS NULL2011/10/23(日) 13:34:53.73ID:???
バージョンとやったこと全部書かないとな
0391NAME IS NULL2011/10/23(日) 18:44:19.13ID:???
うーむ軽量ねぇ
0392NAME IS NULL2011/10/23(日) 18:47:26.89ID:4TwsFYCq

自作アプリで
5万件のデータに対して抽出処理を行ったけど

勿論、ロジックは同じ
DB接続は数種類切り替えれるような設計になっている


・sqliteは検索結果画面を出すのに数秒かかる
・Oracleに接続を切り替えると、一瞬で検索結果画面が出る

扱う件数が万を超えるような処理になると
実用に値しない
0393NAME IS NULL2011/10/23(日) 18:58:32.42ID:???
>>392
インデックスの張り方間違えてね?
5万件程度なら一瞬だぞ
0394NAME IS NULL2011/10/23(日) 19:00:21.38ID:???
Oracle側はそれなりに最適に動作するよう調整してるんだろうから
SQLite側も同じくらいには高速動作するよう調整しなきゃダメだろ。
0395NAME IS NULL2011/10/23(日) 19:12:22.88ID:4TwsFYCq
>>393
インデックスも何も主キーで問い合わせてるんだがw
同じSQLと処理でこうも違うと致命的だな
0396NAME IS NULL2011/10/23(日) 19:22:00.00ID:???
不思議な話もあるもんだな
うちも10万件程度のを扱ってるけど主キーで取るのに
数秒なんてありえない。それこそ一瞬だわ。
画面に出力するロジックが悪いんじゃないか?
0397NAME IS NULL2011/10/23(日) 20:02:42.35ID:4TwsFYCq
既出の文章ぐらい読め

>>392 で
「oracleでは一瞬で画面まで出ている」
と書いてるだろう

ロジックは同じで
sqliteの場合だけ異常に遅い

どう考えてもsqliteに問題があるとしか思えん

ちなみにアプリはjava
使用しているJDBCドライバは
sqlite-jdbc-3.6.20.jar

これに不具合があるのかも知れんが、そこまでは知らん

0398NAME IS NULL2011/10/23(日) 20:30:17.67ID:???
ソース見ないと何とも言えない。
0399NAME IS NULL2011/10/23(日) 20:50:54.44ID:4TwsFYCq
同じコードで
同じ条件で処理させて
sqliteの場合だけ異常に遅い
原因はsqlite側に在るのは明らかだ

あとは、sqlite側のドライバの問題なのか?本体の問題なのか?
どっちかだ

仮に
最新版のドライバに更新したら改善されたのならJDBCドライバの問題だろう

それでも解決しなければsqlite本体の問題だろう
0400NAME IS NULL2011/10/23(日) 21:47:41.05ID:???
>最新版のドライバに更新したら改善されたのならJDBCドライバの問題だろう
まず試してから質問しろよ
0401NAME IS NULL2011/10/23(日) 22:25:57.75ID:4TwsFYCq


質問だと?w
何を勘違いしてるんだ?

ドライバの問題だったとしても
sqlite が糞であることには変わりない

そもそも
何で更新しなきゃならんのだ?

sqlite-jdbc-3.6.20.jar
は実用に耐えれるから、当時配布したんじゃなかったのか?

それを普通に使って
数万件程度の問い合わせで、異常に遅くなるようなシロモノだったのか?

いずれにせよ実用には値しない
0402NAME IS NULL2011/10/23(日) 22:30:38.34ID:???
うんこ
0403NAME IS NULL2011/10/24(月) 00:02:02.20ID:???
>>401
>sqlite-jdbc-3.6.20.jar
>は実用に耐えれるから、当時配布したんじゃなかったのか?

誰もそんなの検証してないよ。
sqlite作者とは関係ない、ただの個人が作って配布してるだけだし。
そんなjdbcドライバとoracleを比べてる時点で間違い。
0404NAME IS NULL2011/10/24(月) 00:11:48.48ID:???
何を怒ってるのか知らないが、コマンドラインで試してみたか?
それでも数秒かかるならSQLiteが悪いんだろうがそうでなきゃ
JDBCがヘボいだけかと。
0405NAME IS NULL2011/10/24(月) 00:58:16.42ID:???
主観で遅い遅い言ってないで
マならクエリやスキーマの一つでも張れよ
0406NAME IS NULL2011/10/24(月) 02:20:16.49ID:???
具体的なスキーマと問い合わせ文見ないと何とも言えないけど、
とにかく何かOracleでだけインデックスが効くような使い方してるんだろうな。

例えば count(*) は SQLite ではフルスキャンになるからクソ遅くなるけど、Oracle は一瞬で出る、とかね。

とにかく具体的なスキーマと問い合わせ文出してくれないことにはまともな議論にならんよ>>399
0407NAME IS NULL2011/10/24(月) 02:55:42.31ID:0tWsNn64
信者ががんばってるなw
主キーで書いてるのに虫かよw
0408NAME IS NULL2011/10/24(月) 08:08:59.47ID:???
あ、おとなしくなった
0409NAME IS NULL2011/10/24(月) 08:10:46.31ID:???
いや、純粋に主キーだけが条件ならあり得ないから。
さっさとスキーマと問い合わせ文晒してみ。
まともな話する気がないなら巣にお帰り。
0410NAME IS NULL2011/10/24(月) 18:04:48.57ID:0tWsNn64
検索でコレかよ
使えん糞DBだな
0411NAME IS NULL2011/10/24(月) 18:51:27.72ID:???
>>407-408,410
いいからさっさと晒せ
0412NAME IS NULL2011/10/24(月) 19:06:46.47ID:0tWsNn64
なんで糞なの?
主キーで検索かけて遅延するってどういうこと?
いくらなんでも我慢できん

ほかのDB探すわ
0413NAME IS NULL2011/10/24(月) 19:18:23.12ID:???
まぁ無理に使わんでも
0414NAME IS NULL2011/10/24(月) 19:43:51.59ID:0tWsNn64
糞すぎるDB使っても
いい事なんか無いことわかった
0415NAME IS NULL2011/10/24(月) 19:57:25.32ID:???
>414
再現できるようにするのがフェアじゃないかな

信者じゃないけど
プロトタイプとか簡単なテストはSQLiteで済ませているから糞でも構わない
まぁ、体感的に遅い気はするけど、自分で*DBMS/KVSを書くよりましだろうし
0416NAME IS NULL2011/10/24(月) 20:14:43.40ID:0tWsNn64
> 例えば count(*) は SQLite ではフルスキャンになるからクソ遅くなるけど、Oracle は一瞬で出る、とかね。

おまえ基本知らないだろw
0417NAME IS NULL2011/10/24(月) 21:06:32.18ID:09cja/xi
過疎だから回答ないだけかと思ってたのに
人一杯いるじゃん!
>>387 おせーてよ!
0418NAME IS NULL2011/10/24(月) 21:10:20.49ID:???
他の探すとか言いつつまだ粘着しているのかよ。
0419NAME IS NULL2011/10/24(月) 21:18:07.72ID:0tWsNn64
どんだけ糞なのか
ハkッキリとわかった
まさか主キーで検索してこの座mあとか・・・
使え根ー
0420NAME IS NULL2011/10/24(月) 22:09:05.55ID:???
>>417
よく知らんが、いくつか検索した結果をまとめると
テーブル定義の時点では他のプログラマのために
カラムの文字数や数値の範囲を明示するために使用するようだ。
これはSQLiteで型指定が大雑把すぎることが起因する。
0421NAME IS NULL2011/10/24(月) 23:04:40.19ID:???
>417
>CREATE TABLEするときの、カラムの型指定で、
>http://www.sqlite.org/syntaxdiagrams.html#type-name
>↑の、
>・型名が複数続くケース
知らん

>・型名の後に(signed-num)が続くケース
varchar(20)とか

>・型名の後に(signed-num, signed-num)が続くケース
知らん
0422NAME IS NULL2011/10/24(月) 23:14:54.77ID:0tWsNn64

件数が万単位になると急激に劣化するとか
糞すぎて使い物にならんね
さっさとほかのDBの検討したほうがマシだ
0423NAME IS NULL2011/10/24(月) 23:19:17.77ID:???
>>422
包茎くん、乙
0424NAME IS NULL2011/10/24(月) 23:20:32.48ID:0tWsNn64
しかし件数が万単位になると急激に劣化するとか
どうなってるんだろうな?
驚くばかりだ
他のDBと比較すると歴然とする
実用に耐えれん
0425NAME IS NULL2011/10/24(月) 23:25:17.82ID:09cja/xi
>>420
>>421
はーなるほど
サンクス

それならと、探してみたら明記されてました。
http://www.sqlite.org/datatype3.html
の 2.2 Affinity Name Examples
 Note that numeric arguments in parentheses that following the type name
 (ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose
 any length restrictions (other than the large global SQLITE_MAX_LENGTH limit)
 on the length of strings, BLOBs or numeric values.
(数字)つけても意味ない、と。

>・型名が複数続くケース
UNSIGNED BIG INT
DOUBLE PRECISION
VARYING CHARACTER
NATIVE CHARACTER
こういう奴ですね。
結局、こっちも内部の型に変換されるだけで意味はないようですが
0426NAME IS NULL2011/10/25(火) 00:48:54.33ID:???
>>424
サードパーティ製の怪しいJDBCドライバを使っておきながら、原因の切り分けもしないで
SQLiteが糞すぎるの何のアホなこと言うから、主キー云々のアホな回答しか帰ってこなくなる。

そもそも組み込みDBのSQLiteと、Oracle DBを比較している時点で目的が意味不明。
Oracleを使える環境で、Oracleが良いなら、黙ってOracleを使えば良いだけ。

そうじゃなくて組み込みDBを使いたいなら、SQLiteは標準ではC言語用のAPIしかサポートしてないから、
同じJavaで書かれているDerbyなりH2DBなりを使った方が幸せになれるよ。
0427NAME IS NULL2011/10/25(火) 07:08:48.75ID:???
>>426
ただの荒らしにマジレスするなよ
0428NAME IS NULL2011/10/25(火) 07:10:29.96ID:???
もう相手するなよ
0429NAME IS NULL2011/10/25(火) 07:37:32.19ID:gceqE9iT
いまどき正規のドライバを配布してないとか
どんだけマイナーなんだよw
アプリから使う想定してないDBなんか使えるかw
0430NAME IS NULL2011/10/25(火) 08:09:28.07ID:gceqE9iT
最新にバージョンアップしたが
sqlite-jdbc-3.7.2.jar

特に改善傾向なし
これは本体DBの問題に間違いないな・・・

そもそも正規のJDBCドライバを配布してないとか
どんだけ糞なんだよ
DBなんてアプリから使われるから存在するんだろ

まさかコマンドラインのみの使用を想定してるのか?w
どんだけ間口が狭いんだよw


この分じゃあ・NET系統ドライバも怪しいな・・・


0431NAME IS NULL2011/10/25(火) 08:15:26.05ID:gceqE9iT
あまりにも糞すぎてワロタ

いや失望した
と言った方がいいな

まさかjavaからの接続に正規サポートすらしてないとか・・・
今の主流言語さえも対応してないのか?
この糞DBは

一体、どういう使われ方を想定してんだ?w
まさかコンソールからのコマンド入力しか想定してねーのか?w

どうせ、・NET系統ドライバも正規対応してねーんだろ?

アプリからは接続非推奨です!キリッ
って書いとけよw

0432NAME IS NULL2011/10/25(火) 08:21:04.44ID:???
何か根本から勘違いしてる気がする
0433NAME IS NULL2011/10/25(火) 08:28:46.56ID:???
おれタダシイ
世界中バカばっか
と思えるところがすごい
普通じぶんがどこか違ってるんじゃないかって思うよね

次に環境も症状も書き込まずに延々内容のないグチしかないのがすごい
インターネットは双方向のコミュニケーションなのに、ググッてなんでも調べられるからオレ、インターネット得意とかいっちゃうタイプ
0434NAME IS NULL2011/10/25(火) 09:00:22.17ID:gceqE9iT
根本的に使えないな・・・
0435NAME IS NULL2011/10/25(火) 09:09:50.41ID:gceqE9iT
これで10万件とか
増やしたらとまるんじゃね?

と懸念してしまうほど糞すぎる

何なら他のdbでも試みてもよい
たとえばh2、あるいはmYsqlなども候補だが

しかし、まさか10万件程度で異常なほど遅いことにはなるまい

0436NAME IS NULL2011/10/25(火) 10:12:23.57ID:???
>>432-433
勘違いとか何とかじゃなくてただのネタなんだから反応するなよ
0437NAME IS NULL2011/10/25(火) 10:23:25.90ID:gceqE9iT
信者が必死だな
事実が糞なんだから仕方ない
0438NAME IS NULL2011/10/25(火) 10:26:53.34ID:gceqE9iT
論理的に反論さえも出来ないカス信者ども

なぁ、アプリ用途に正規ドライバさえも出さないような
糞dbをどうやって使えばいいんだ?
教えてくれよwwww
0439NAME IS NULL2011/10/25(火) 10:30:59.97ID:???
アプリ用途にSQLite使うとか正気とは思えない
プロトタイプとテスト用途に使ってください

どれくらい遅いのか数値なりグラフなり再現可能なデータセットを示してから議論をお願いしますね
0440NAME IS NULL2011/10/25(火) 10:31:22.51ID:???
使わなきゃいい
0441NAME IS NULL2011/10/25(火) 11:03:10.02ID:gceqE9iT
>>439
おらくる---一瞬
糞db---5秒


このデータ突きつけられて
まだ言い訳するのか?

おらくる最強
そして糞dbは使えない、いくらフリーだからって、もっと良いdbあるだろ?
0442NAME IS NULL2011/10/25(火) 11:04:24.07ID:gceqE9iT
> プロトタイプとテスト用途に使ってください

はぁ?W

そのテスト用とさえも使えないんだよ!

何しろアプリと接続したらボトルネックが凄いんだからW
もう実用に耐えれるレベルじゃねーだろ・・・

0443NAME IS NULL2011/10/25(火) 12:48:16.95ID:???
いつまで無駄な時間使ってるの?
0444NAME IS NULL2011/10/25(火) 12:58:54.20ID:???
>441
君のマシンが糞だったんだろうな、FS見直したらどうだろうか

再現性の無いデータに意味はあるのでしょうか
0445NAME IS NULL2011/10/25(火) 13:26:35.29ID:???
だから反応するなって言ってるだろ、糞ども
0446NAME IS NULL2011/10/25(火) 13:49:57.26ID:gceqE9iT
どうしてこんなに糞なんだろうか?

最初使ってた時は軽量で使いやすいと思ってた
気軽にアプリと接続できたし
特に設定いらなかった

型とか、文字数の厳密な定義なしに自動的に拡張してくれる仕組みも
お手軽さは好感していた

しかし、データが万を超えると
急激にレスが悪化するとは・・・
これは予想してなかった・・・
こんな糞DBを使い続けろというのか?
それは勘弁してくれ
0447NAME IS NULL2011/10/25(火) 13:51:10.81ID:gceqE9iT
>>444
再現性もなにも
毎回異常にレスポンスが遅いんだが
つまり再現率100パーセントだ!

こんな糞DBは使いたくないよ・・・
0448NAME IS NULL2011/10/25(火) 14:32:21.03ID:???
じゃあ使うなって。
お前はここに何を求めて書き込んでるんだ。
0449NAME IS NULL2011/10/25(火) 14:38:17.40ID:???
餌を与えちゃダメだよ
おねだりの芸を始めるようになるから
0450NAME IS NULL2011/10/25(火) 15:32:56.98ID:gceqE9iT
おらくると比べるのは
確かに酷だが

それにしても
たった数万件の問い合わせ如きで異常な遅延が」発生するって
もう絶句だわ・・・


どうやって
こんな糞dbを使えばいいんだ?





0451NAME IS NULL2011/10/25(火) 18:31:38.06ID:???
ここまで粘着されると逆に興味湧かない?w

単なる荒らしって面白くもなんとないし自分に得られる事も何一つとして無い無駄な時間じゃん。

何か目的があるんだろうけど、具体的な構成や問い合わせ方法を聞いても答えが返ってこないのを
見ると、煽って問題無い実例を引き出そうとしてんのかな?
0452NAME IS NULL2011/10/25(火) 18:50:14.24ID:???
既に俺は哀れんですらいるよ。
余程の糞案件にぶち当たって鬱憤晴らしたいんだろうな、とか。
0453NAME IS NULL2011/10/25(火) 19:17:26.59ID:???
いや、性能も何もみんなネタだろ
0454NAME IS NULL2011/10/25(火) 19:24:47.54ID:gceqE9iT
ネタならどんだけいいか
期待していた分、コレだよ・・・

0455NAME IS NULL2011/10/25(火) 19:30:46.17ID:gceqE9iT

どうしてだろうな?

「主キーで検索してるだけ」なんだが
こんなにレスが遅い理由がわからんよ

単純に件数が多いから?

つまり糞dbでFA?
0456NAME IS NULL2011/10/25(火) 20:18:16.12ID:???
>>454
ネタじゃないならマジレスしてやるが、どうしてもSQLiteを使わないといけない案件を抱えていて、
遅くて困ってるなら相談に乗るから、その「主キーで検索してるだけなのに遅い」現象の再現ソースを全部貼れ。

出来ないなら、糞DBかどうかFAを出す材料が無い(最新版とやらのJDBCドライバだって怪しい)し、
遅いと言っているのが本当かどうか証明にもならないから、他の組み込みDBに乗り換えろ。さようなら。

上でも書かれてるけど、SQLiteはC言語用の組み込みDBだからC言語のAPIしか提供していないし、
DerbyはJava言語用の組み込みDBだからJava言語のAPI(JDBC)しか提供してない。組み込みDBってのはそういうもの。
特に理由も無いのに、正規にサポートされてない言語のAPIを使って文句を言うのはただの馬鹿。

あと、速くて素敵なOracle社はSQLiteのスポンサーなので、遅いのが本当ならOracleにも文句言っとけば?
0457NAME IS NULL2011/10/25(火) 20:23:51.56ID:gceqE9iT

> 上でも書かれてるけど、SQLiteはC言語用の組み込みDBだからC言語のAPIしか提供していないし、


この書き方だとCからの呼び出しなら
ちゃんと遅延なく結果が返ってくるように読み取れるんだが

どうせCでも遅いんだろ?

一回試してみるから
そのCのライブラリとやらを教えてくれ

取得部分だけCで書いてみる
そして、それをJAVAから呼び出す

0458NAME IS NULL2011/10/25(火) 21:04:21.92ID:???
>>456
100%ネタなんだからマジレスするなっつってるだろ
0459NAME IS NULL2011/10/25(火) 22:01:01.28ID:???
>>457
知識不足乙。「SQLite」が、C言語で書かれたライブラリの名前。
SQLiteというDBMSがあって、それに接続するためのC言語のライブラリが配布されているわけじゃない。

お前が使っているJDBCドライバも含めて、色んな人が趣味で書いて公開しているSQLiteのJDBCドライバは、
まさにその「取得部分だけC」で書いて、インターフェースをJavaのJNIで叩く、ということをやってるだけ。

その怪しいJDBCドライバの中によほど余分な処理が詰め込まれてるなら別だが、基本的にJNIでもJNAでも
速度を求めるには使い物にならないほど遅いから、わざわざ同じものを自作しても結果が変わらずに時間を無駄にするだけ。
そもそもJavaからCは色々無理がある。別のプロセスを呼び出しなんてやったら更に遅いしね。
まあ、自作して少しでも速度が改善するようなら、JDBCドライバの作者がアホだったことの証明にはなるかもしれんが…。

マジレスついでに聞くけど、そこまでしてSQLiteを使わないといけない理由は?
使い物にならないなら使わなけりゃ良いだけだし、再現ソースも貼らずに文句垂れてるだけだから、ネタにしか見えない。
「SQLiteじゃないと駄目な理由」が言えないなら、ネタは終わりにしてOracle DBを使え。

>>458
マジレスしたいお年頃だったんだ。ごめんね。
0460NAME IS NULL2011/10/25(火) 22:26:35.84ID:gceqE9iT
> その怪しいJDBCドライバの中に


最新にバージョンアップしたが
sqlite-jdbc-3.7.2.jar



これが怪しいのか?
一般に公開されていて、他のサイトでも紹介されてるようだが
何でお前如きが「怪しい」と断言できるんだ?

それなりに定評あるドライバじゃないのか?


まぁ糞dbであることには間違いないがねw





0461NAME IS NULL2011/10/25(火) 22:28:52.34ID:gceqE9iT
>>459

そもそも「公式のドライバ」が無い時点でおかしいだろ!
アプリから接続を想定してないのか?

一体、どんなアプリだったら「公式」の接続が想定されてるんだ?w
お前なら知ってるだろ?w



それともコマンドラインしか使えない糞dbでFAか?
0462NAME IS NULL2011/10/25(火) 22:35:11.61ID:gceqE9iT


> まさにその「取得部分だけC」で書いて、インターフェースをJavaのJNIで叩く、ということをやってるだけ。


sqlitejdbc.dll

まさにコレのようだが
コイツが糞と言いたいのか?

まぁ実際に糞ロジックなんだろうがw


それとも取得部分のsqliteパッケージのコードも糞と言いたいのか?

まぁ実際に糞ロジックなんだろうがw


dbも含めて全部糞なのは間違いない
そこだけは意見は一致するw





0463NAME IS NULL2011/10/25(火) 22:36:26.14ID:gceqE9iT


まぁソースがあるから

どこがボトルネックになってるか
追跡も可能だが

どうせ本体も糞なんだからなぁw

0464NAME IS NULL2011/10/25(火) 22:44:28.34ID:???
朝から晩までご苦労様です
0465NAME IS NULL2011/10/25(火) 22:52:50.90ID:???
ふと思うんだが、Oracleってまだ結構使われてるの?
金融系でもMySQLとか増えてるし、KVSにも流れてるし
0466NAME IS NULL2011/10/25(火) 23:36:41.09ID:???
>>460
本当に朝から晩まで中身の無いレス乙。
ますます文章が支離滅裂になってきたな。

一般に公開されていて、他のサイトで紹介されていても、
「怪しくない」ことの証明にも「それなりに定評がある」ことの証明にはならねえよ。
それとも、怪しくなくて、それなりに定評があったら速度も速いのか?

「SQLiteはCライブラリの名前」だと言っているだろう。「SQLite」という、C言語で使うdllファイルが配布されているだけ。
「公式()笑にJavaから利用できるドライバ」の時点で意味が通じない。Javaの勉強をし直してこい。
馬鹿に分かりやすく説明するなら、「access.dllは公式のドライバが無い時点でおかしい!」と言ってるのと同じ。

あと、馬鹿だから理解できてないみたいだけど、
SQLite本体 + 「取得部分だけC」 = sqlitejdbc.dll で、
sqlitejdbc.dll + 「それ用のJDBCドライバ」 = sqlite-jdbc-3.7.2.jar
だから、ネックはSQLite本体だけじゃなくて、sqlitejdbc.dllにある可能性も、JDBCドライバにある可能性もあるぞ。

もちろん、お前が書いたソースやSQLクエリにネックがある可能性もあるが、
再現ソースが無いなら、そこに問題が無いことの証明と、ネタじゃないことの確認ができないから、やっぱりネタ乙。

何かを質問したりする気が無いなら板違いだから、馴れ合い板か、自分のブログにでも書いてろ。
0467NAME IS NULL2011/10/25(火) 23:41:30.14ID:???
>>465
使うところでは結構使われてるよ。
流れているとは言っても、そう簡単には減らないと思う。

OracleはOracleでSQLiteのAPIをBerkeley DBに載せてみたりして
KVSや、それ以外の可能性も色々試しているように見えるけど…w
0468NAME IS NULL2011/10/25(火) 23:52:48.09ID:???
他のDBが少し増えた、という程度で、Oracle自体が減ったというほどじゃないような。
0469NAME IS NULL2011/10/25(火) 23:57:13.43ID:gceqE9iT
>>466
お前って馬鹿だろ?w

どうしようもない馬鹿だな
一回視ねよw


oracleで一瞬で帰ってくるクエリが
同じくそのまま糞DBで使ってるだけなんだが

何度もそういってるのに理解できないのか?

脳みそ入ってますか?w


確実に糞dbのせいだぞw

解釈のオプティマイザが糞なのか
ドライバの問題なのか

dllも糞なのか知らんが

あぁ全部糞の可能性も高いなw




それとも糞dbには糞SQLを専用に書き直さないとならんのかね?w


0470NAME IS NULL2011/10/26(水) 00:00:10.28ID:UVgFZr+f
> SQLite本体 + 「取得部分だけC」 = sqlitejdbc.dll で、


何いってるんだ?コイツw
脳みそあるのか?

「sqlitejdbc.dll」 自体が糞dbの本体だろ!

それさえも知らんのか?w
一回視ね


この糞dll自体がとてつもなく極悪なつくりになってるんだろうなぁw
マジで使えないわ

まだH2の方が遥かに使えるんだが

何とかしろよ
糞dllを書き直すなりしろよ糞PG


0471NAME IS NULL2011/10/26(水) 00:08:05.89ID:???
いくら吠えても、自分でJavaへのコネクタをC言語で書けない時点で負け犬だろjk
0472NAME IS NULL2011/10/26(水) 00:09:34.20ID:???
>>459,>>466,>>470
「荒らしをスルーできない人もまた荒らし」って言葉、知ってる?
0473NAME IS NULL2011/10/26(水) 00:10:27.66ID:???
間違った、>>470は元荒らしか
0474NAME IS NULL2011/10/26(水) 00:13:37.02ID:???
>>472
日付が変わってIDが違うだけで、>>470は荒らし本体と思ふ。
吠えてると言っても、自分に都合の悪い正論は全部読み飛ばしているだけの遠吠え。

>>465
あんまり詳しくないんだけど、金融系でKVSって、例えば何を使うんだろう?
0475NAME IS NULL2011/10/26(水) 00:20:07.43ID:???
再現ソースを貼らない限り、それが「oracleで一瞬で帰ってくる」かどうかすら証明できてない。口では何とでも言える。
0476NAME IS NULL2011/10/26(水) 00:22:15.58ID:UVgFZr+f
sqlに特殊性なんてあると思ってるのか?w


他のDBでも試しても良いが

間違いなく
糞db以外は一瞬で帰ってくるだろうよ

MYSQLが良いか?それともH2でさえ一瞬で返してくれるさ

たった数万件だぜ!

この程度の問い合わせで一瞬で返してくれない糞仕様dbを体験したのは初めてだぜ・・・


0477NAME IS NULL2011/10/26(水) 01:02:45.28ID:???
俺が使ってるsqliteのdbもたった数万件だけど、oracleと同じクエリ投げて一瞬で帰ってくるから>>476のsqliteが遅くても正直どうでもいい。
0478NAME IS NULL2011/10/26(水) 01:18:13.61ID:???
俺が使ってるSQLiteもたった数百万行のDBだが一瞬でSELECT返ってくるから他の奴がいくら遅くてもどうでもいい
0479NAME IS NULL2011/10/26(水) 01:19:31.27ID:???
なんでSQLiteのdllで検証しないのか

なんで朝から晩まで粘着しているのか

データベースのスキーマは?
0480NAME IS NULL2011/10/26(水) 01:49:43.42ID:UVgFZr+f

しかし糞DBは
何という遅さなんだ?

マジで使う気がしないわ

どうやったら数万程度の問い合わせでこうなるんだ?

データが10万件超えたらどうなるんだ?

もうすぐ増えると思うが


考えただけでも怖いわ・・・・


0481NAME IS NULL2011/10/26(水) 01:51:14.74ID:rCz++wh/
俺が使ってるのは200万件くらいのSQLite DBだが、リレーションの親子関係も含んだ
それなりに複雑なクエリーでも 20ms くらいで結果が取得できてる。

どうせ >>476 が作った DB は「主キー」とやらがただのカラムで、
インデックスなんか1個も作ってないんだろう。
0482NAME IS NULL2011/10/26(水) 01:56:19.59ID:???
>>467
> OracleはOracleでSQLiteのAPIをBerkeley DBに載せてみたりして
kwsk
0483NAME IS NULL2011/10/26(水) 01:57:06.56ID:UVgFZr+f
馬鹿がいるなぁ

明確にPRIMARI KEYでテーブル作成して
そして主キーで検索かけてるんだが

これでも現実を否定するのか?

信者はツライなぁww



お前の言う複雑なクエリってのが

どうせwhere句に条件チョット入れただけのお子様SQLだろうがw

0484NAME IS NULL2011/10/26(水) 01:58:13.20ID:???
月別、日別などにして、肥大化させないと速い。
0485NAME IS NULL2011/10/26(水) 01:58:47.73ID:UVgFZr+f


ひょっとして糞dbってに
PRIMARI KEY
と指定しても

アホだからインデックス構造すらないのかな?www

どうりで検索アホなわけだよwww


なーんだ基本のにPRIMARI KEY構造さえも無かったのかよww
そりゃ使えんわwww


0486NAME IS NULL2011/10/26(水) 01:59:12.86ID:???
起動時、チェック時が時間くう。サイズが小さいと速い。
0487NAME IS NULL2011/10/26(水) 02:00:03.68ID:UVgFZr+f

俺が間違ってたよ

万を超えるデータになってしまったのが悪かった

糞dbに万以上の問い合わせなんて土台無理だったんだよ・・・
すまんな糞dbと糞信者ども

ざまぁwww

0488NAME IS NULL2011/10/26(水) 02:02:03.28ID:???
>>483
いえいえ、自称PRIMARY KEY(笑)だけで検索するような
赤ちゃんSQLよりは遥かに複雑でございますよ

で、CREATE TABLE と SELECT 文はいつになったら
見せてくれるんですかね?
0489NAME IS NULL2011/10/26(水) 02:03:47.05ID:UVgFZr+f
>>488
明確にPRIMARI KEYでテーブル作成して
そして主キーで検索かけてるんだが


それでも
たった数万件で超絶遅延が起こるワケだが



これでも現実を否定するのか?
信者はツライなぁww

ないてるのか?ww


0490NAME IS NULL2011/10/26(水) 02:06:03.22ID:???
>>489
そりゃぁ PRIMARI KEY (爆笑) じゃぁ主キーにはならないよなぁw
0491NAME IS NULL2011/10/26(水) 02:08:24.03ID:UVgFZr+f


はぁ・・・

しかし、こんな糞dbは今まで見たことも聞いたことも無いわ


普通は主キーで問い合わせるのが一番高速なのだが

この糞dbには主キーの概念すらないのか?

どうせ
テーブル作成時の指定なんて、ただの飾りなんだろwww


そりゃサーバーとして動いてないような糞dbなんだから
マジでお子様db以下だよ

こんな糞dbに大事なデータなんて預けられんわ


0492NAME IS NULL2011/10/26(水) 07:18:06.98ID:???
だんだん面白くなってきた。
このままずっと続けていって欲しい。
0493NAME IS NULL2011/10/26(水) 07:26:18.32ID:???
なんか開発してるみたいだけど
その生産力の無さに驚くわ
0494NAME IS NULL2011/10/26(水) 08:01:37.43ID:???
>>482
最近のBerkeley DB。
http://www.oracle.com/jp/products/database/berkeley-db/index.html

Wikipediaにもちょっと説明があるよ。
http://en.wikipedia.org/wiki/Berkeley_DB#Architecture


ちなみに、OracleがSQLiteに出資し始めたのが去年。(その前から色々やってはいたみたいだけど。)
http://blogs.oracle.com/berkeleydb/entry/oracle_join_the_sqlite_consort
http://journal.mycom.co.jp/news/2010/07/06/032/index.htm
0495NAME IS NULL2011/10/26(水) 12:49:43.80ID:???
というかoracleとsqliteの二択ってどんな案件
0496NAME IS NULL2011/10/26(水) 12:54:54.20ID:???
pure java のファイルDBってなかったっけ?
0497NAME IS NULL2011/10/26(水) 12:56:10.23ID:???
oracleは別立ての鯖で動いてるってオチじゃなかろうな。
0498NAME IS NULL2011/10/26(水) 22:03:31.63ID:???
20万件ほどのデータに対して、主キーに条件を入れて検索したら、瞬殺だよ。
ちなみに、ODBC経由。
javaは知らん。
どうせvacuumやreindexとかやってないんだろ。
0499NAME IS NULL2011/10/26(水) 22:23:10.63ID:???
>>496
いくらでもあるよ。
0500NAME IS NULL2011/10/27(木) 11:12:09.78ID:VqqPO7vL
H2

3万ほどデータ突っ込んでみた

問い合わせ一瞬

0501NAME IS NULL2011/10/27(木) 11:13:28.88ID:VqqPO7vL

おらくる
H2


一瞬だった


さて糞dbは?数万件のデータで糞遅延・・・



使い門にならんよ

0502NAME IS NULL2011/10/27(木) 11:21:50.87ID:VqqPO7vL


javaで書かれた
H2さえ一瞬だぞ


Cで書かれたという糞db様は?
えっ?遅延だと?

使い物にならんね・・・
0503NAME IS NULL2011/10/27(木) 11:22:59.78ID:VqqPO7vL


間違いなく

sqlliteは糞dbである
ことが証明されました!


この糞dbを使いこなすには
特殊な技術がいるんかね?

特殊技能認定受けてるのかね?ww

0504NAME IS NULL2011/10/27(木) 12:00:03.50ID:???
>>498
だよね。 sqliteでも数万件程度なら一瞬で検索が終わる。
上のほうで遅い遅いと騒いでる人がいたけど、問題解析能力が
無いのかな。
0505NAME IS NULL2011/10/27(木) 12:01:02.61ID:???
むむ、レス番が飛んでるぞ。
例の荒らしがNGパターンに引っかかったのか
0506NAME IS NULL2011/10/27(木) 16:56:36.88ID:VqqPO7vL


H2

5万件データ

初回問い合わせ 0.5秒

次回からはキャッシュが利いてるようだ
一瞬



どっちにしても一瞬の出来事だ



0507NAME IS NULL2011/10/27(木) 16:57:09.01ID:VqqPO7vL


さて
糞dbは?


数秒もかかるんだけど、それも毎回


なんで、こんなに糞なの?


0508NAME IS NULL2011/10/27(木) 16:58:05.37ID:VqqPO7vL



全くロジックは同じ


・Oracle さすがの一瞬


・H2意外に高速



・糞db、やっぱり糞は糞ですね・・・


もう糞dbを使うのは疲れるよ・・・


0509NAME IS NULL2011/10/27(木) 17:03:55.59ID:VqqPO7vL


おらくるに勝てないのは
仕方ない

だがH2でも一瞬で出来ることが

なんで糞dbになると出来ないの?
糞だから?
それを言っちゃあおしまいだよ
0510NAME IS NULL2011/10/27(木) 20:37:40.45ID:???
>>509
何度も自分でいっとるやん。議論おわっとるやん。議論する気無いやん。
前も聞いたんだが、ここに何を求めて来てるの?
問題を解決する手段が欲しいのなら状況をきちんと晒せと言われてるし、貴方以外の環境での反論も出てるわけだが、それへ反証する気も無いの?
0511NAME IS NULL2011/10/27(木) 21:03:31.20ID:???
>>510
荒らしてれば、同じ環境でこれだけ速いみたいな反証が出てくると思ってるんじゃない?
0512NAME IS NULL2011/10/27(木) 21:28:59.08ID:VqqPO7vL
>>510
> 状況をきちんと


俺のレスをちゃんと読んだ?

これ以上
どう説明しようがあるんだ?


主キーで検索して、このザマだぞ・・・

こんな糞db使いたくないよ


0513NAME IS NULL2011/10/27(木) 21:46:11.95ID:???
     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
0514NAME IS NULL2011/10/27(木) 21:47:25.59ID:???
おい・・・
まさか延々とつぶやいていたのは状況を説明していたつもりだったのか・・・
0515NAME IS NULL2011/10/27(木) 22:00:11.98ID:???
糞なら使うなよ。いつまでも、未練がましい。
0516NAME IS NULL2011/10/27(木) 22:14:01.51ID:???
だからネタにマジレスするなよ。それこそ荒らしの思う壷。
0517NAME IS NULL2011/10/28(金) 00:00:52.79ID:???
道具も使う側次第ってのはITいりゃすぐわかると思うんだがな〜
0518NAME IS NULL2011/10/28(金) 00:26:57.83ID:???
適材適所
SQLiteはどの環境でもすぐ使える手軽さだけで十分
中規模以下のアプリケーションにしか使わないし問題ない
0519NAME IS NULL2011/10/28(金) 00:54:15.68ID:???
他に話す事もないんだよな
大抵の疑問点は本家で解決するから
そんな物にも躓ける ID:VqqPO7vL がうらやましい
0520NAME IS NULL2011/10/28(金) 08:31:43.42ID:rXEAeOdb
使いこなす?w

主キー検索で問い合わせてるのに
マトモに返してくれない
遅延糞dbをどうやって使いこなせば良いんだ?w

裏技でもあるんか?w
0521NAME IS NULL2011/10/28(金) 11:03:46.68ID:???
主キー主キーと連呼する様を見てると
覚えたての専門用語を縦に、詳しい人たちの中に割って入ろうとする馬鹿みたいで
ほほえましいな
0522NAME IS NULL2011/10/28(金) 16:00:11.78ID:rXEAeOdb
一応おらくるのPなんだがw
0523NAME IS NULL2011/10/28(金) 17:37:40.70ID:???
oracleのP持ち様がsqlite如きにこんな時間割いて構ってくださるなんて
通常ありえないことだよな。ありがてぇありがてぇ。
0524NAME IS NULL2011/10/28(金) 18:32:42.40ID:rXEAeOdb

ほぅ、その存在を知っているのかね君は

もちろん
糞dbには無い資格なのだよ


ちなみにP取ったら
バッチと賞状が貰えるの知ってたかね?

0525NAME IS NULL2011/10/28(金) 18:33:31.48ID:rXEAeOdb

ついでに
嬉しくてクリアケースも買っちゃったw

商売上手なおらくるだよw
0526NAME IS NULL2011/10/28(金) 19:38:31.96ID:???
おっさんがついていけなくて拒否反応出してんのかと思ってたらPです(キリッってガキじゃねーかよw
0527NAME IS NULL2011/10/28(金) 19:40:55.91ID:rXEAeOdb
驚いたか?

お前らと素養が違うんだよ

底辺の諸君、どうだね?w
糞dbは楽しいかね?w
0528NAME IS NULL2011/10/28(金) 20:03:31.14ID:???
俺もoracle p持ちだけどsqliteに主キー検索で問い合わせて高速に帰ってくるから、もっと素養が高いわ。
0529NAME IS NULL2011/10/28(金) 20:06:14.12ID:rXEAeOdb
羨ましいか?w

ここの馬鹿住民に

スーパーマンの俺が登場したのも何かの縁だ


糞dbの無力さと
信者の馬鹿さ加減を思い知るが良い
0530NAME IS NULL2011/10/28(金) 20:12:23.99ID:???
糞>>529の無力さと、オラクル信者の馬鹿さ加減を思い知ることができた。
ありがとう。
0531NAME IS NULL2011/10/28(金) 20:16:31.50ID:rXEAeOdb
どういたしましてw


さて酒気ーでさえ糞遅いのならんとかならんかね?

催促の
インデックスなんだが

データ的にはこのインデックスで最適なんだがねぇ

データが重複が多いのなら、別のインデックスを考慮するが


ユニークなデータだからな



勿論他のDBではH2も高速だった


つまり結論は糞dbは劇主ということだ




五時変換は許せ
治すのメン土井w


おrくるのPより






0532NAME IS NULL2011/10/28(金) 20:27:06.03ID:???
PってPinkってことでいいんだよね?
0533NAME IS NULL2011/10/28(金) 20:28:43.05ID:rXEAeOdb

好きに解釈してくれ

0534NAME IS NULL2011/10/28(金) 20:30:08.34ID:???
うわ1分で返ってきた。気持ち悪い。
0535NAME IS NULL2011/10/28(金) 20:52:10.83ID:rXEAeOdb



糞dbを使いながら


楽しいか?



全く使えんし使う気にも慣れん



歩優れ・マイ、いるんなdb使ってきたが


これほど糞dbははじめた


糞すぎるな信者も糞だ




0536NAME IS NULL2011/10/28(金) 20:57:14.28ID:???
全角英数は馬鹿しかいない定説の好例をありがとう
0537NAME IS NULL2011/10/28(金) 20:57:21.00ID:???
Enterを押す手の震えが激しくなってるようですが
アルコールが切れてませんか?
0538NAME IS NULL2011/10/28(金) 21:01:26.39ID:rXEAeOdb


さて糞db信者の諸君



そろそろ糞dbなんて
見切りつけていいかね?




馬鹿馬鹿しいよ

使う気になれんのだ
0539NAME IS NULL2011/10/28(金) 21:09:49.89ID:???
そうですか
0540NAME IS NULL2011/10/28(金) 21:20:30.30ID:rXEAeOdb


そろそろ


こんな糞dbは見切りつけようと思う



だって糞なんだもん


主キーで問い合わせてこんなレスだよ


壊れてるんじゃね?設計段階からw


0541NAME IS NULL2011/10/28(金) 21:58:49.37ID:???
文章がおかしいと思ったら日本人じゃないのか。納得。
0542NAME IS NULL2011/10/28(金) 22:10:14.30ID:rXEAeOdb


残念だが



おらくるPtosite


もう・・・



ああ、なんちう糞dbなんだよ


主キーで検索かけてるのに

このザマですか?


糞dbすぎるんだが

0543NAME IS NULL2011/10/28(金) 22:19:46.15ID:???
無駄な改行といいずいぶん若い奴だな
厨房かも知れん
0544NAME IS NULL2011/10/28(金) 22:25:27.15ID:???
いい年したおっさんがやってたら
痛いを通り越して哀れみを感じる
0545NAME IS NULL2011/10/28(金) 22:35:52.89ID:???
ちょっとビックリしたね
0546NAME IS NULL2011/10/28(金) 23:40:11.84ID:rXEAeOdb


驚くなよ

おれがPだからと言って

そりゃマスタだからね


俺は君の、おまいらの一億倍のスキルもってんだよ



それでも糞dbには手を焼いてるけどね


0547NAME IS NULL2011/10/28(金) 23:48:17.32ID:???
驚いた。俺と同じPなのに、俺が高速で出来る「SQLiteで主キーで検索」が出来ないなんて…。
きっと、君は俺の一億分の一くらいのスキルしか無いんだろうな。
0548NAME IS NULL2011/10/28(金) 23:51:37.13ID:rXEAeOdb

糞dbは知らんのだよぉ

おらくる様なら
どのインデックスで検索するとか
統計情報で分析するんだがねぇ

なんせ糞dbだから、たちが悪いんだよねぇ・・・

困ったなぁ


0549NAME IS NULL2011/10/29(土) 00:11:18.97ID:???
ちっとぐぐったらこういうページが見つかった。
ttp://kzworks.at.webry.info/200809/article_67.html
レコードのサイズが大きくてOSのメモリを使い切ってしまうことがあったみたい。
今でもそうなのかは素人なのでよく分からない。
0550NAME IS NULL2011/10/29(土) 00:26:06.60ID:???
>>549
資源の上限の話だったら本家のドキュメントにちゃんと書いてあるよ。
http://www.sqlite.org/limits.html
0551NAME IS NULL2011/10/29(土) 01:05:19.78ID:???
自分の使えないものはダメなもの

こんな考えを持つゆとりさんが増えているようです
0552NAME IS NULL2011/10/29(土) 02:42:41.90ID:???
>>550
勉強になりました。感謝。
0553NAME IS NULL2011/10/29(土) 10:23:39.42ID:bPqXvzbh


s2とすぷりんぐマスターの俺


おらくるPの俺


でも糞dbだけは解析する気せんせん

時間の無駄だよ
こんな糞db

0554NAME IS NULL2011/10/29(土) 10:35:43.25ID:???
おはようございます。今日精が出ますね。
0555NAME IS NULL2011/10/29(土) 11:44:55.06ID:bPqXvzbh

糞db

きらいだぁ
0556NAME IS NULL2011/10/29(土) 12:02:02.44ID:???
人の話を聞く気無し、問題解決をする気無し、挙句の果てに架空の資格取得自慢話。

プラチナ持ってる奴って、こんなに頭悪いわけないよね?

むかつく上司が持ってるけど仕事はできる。
尊敬する上司も持ってるけど、こっちも当然仕事できる人。

単なる荒らしと思わざるを得ないんだが、
こうゆう荒らしって、そんなに面白いもんなのか?純粋に不思議だわ。
0557NAME IS NULL2011/10/29(土) 12:31:43.30ID:???
昔のプラチナは大したことないらしいよ
0558NAME IS NULL2011/10/29(土) 12:40:15.68ID:???
>>555
毎日楽しみにしてます
これからももっと長文いっぱいお願いします
0559NAME IS NULL2011/10/29(土) 14:05:14.46ID:bPqXvzbh
>>557
。。。。


それ言うか世w

板ww
ぐさっときたぞぉ

0560NAME IS NULL2011/10/29(土) 15:51:00.88ID:???
これがエアー資格ってやつなのか
0561NAME IS NULL2011/10/29(土) 15:55:16.63ID:bPqXvzbh
Phaほんとだよぉ

嘘いうりゆうないじゃん
0562NAME IS NULL2011/10/29(土) 20:31:50.51ID:bPqXvzbh

実はじゃヴぁとおらくるの達人なのdれすよ

ふぁふぁふぁ

なんでもきいてよ
0563NAME IS NULL2011/10/30(日) 12:52:59.26ID:???
今日はおらくるPさん来ないのかな
毎日楽しみにしてるんだけど
0564NAME IS NULL2011/10/30(日) 13:44:50.73ID:VHdVZn4y
pですお
0565NAME IS NULL2011/10/30(日) 16:21:06.53ID:???
もっと、僕のSQLiteをもっといっぱいdisってくださいハァハァ
0566NAME IS NULL2011/10/30(日) 16:22:12.35ID:???
お前のものじゃねえよ
0567NAME IS NULL2011/10/30(日) 16:24:26.73ID:VHdVZn4y

糞db
全く使えん

どうして・・・

酒気ーでkんさくしてろのに
このザマかよ

糞すぎてつかうきなくしたわ


0568NAME IS NULL2011/10/30(日) 16:34:47.08ID:???
笑いが止まらなくなった。
なんかに似てるよな〜と思ったらバイオの日記じゃんw

「やと ねつ ひいた も とてもかゆい 」
0569NAME IS NULL2011/10/30(日) 16:37:46.97ID:VHdVZn4y

使えないdb

誰が何とかしてくるのか

立ち尽くすような絶望の日歩

さぁ立ち上がろう、

でも糞dbのせいsで経ちあがっれないよぉ・・・


なんでこんなに糞なの?


なんで主きでアクセスsちえるのに治安するの?

誰か教えて
0570NAME IS NULL2011/10/30(日) 16:37:53.65ID:???
かゆい うま
0571NAME IS NULL2011/10/30(日) 17:07:01.85ID:???
同じ事を何度も何度も繰り返し書き込むのは、なんて病気だっけ?

むしろ、これbotか?
0572NAME IS NULL2011/10/30(日) 17:14:06.90ID:VHdVZn4y
同じdbをしつこく使うあば
馬鹿って誰?

信者?それとも病気?W
0573NAME IS NULL2011/10/30(日) 17:39:13.59ID:???
もっと、もっと罵ってくださいハァハァ
0574NAME IS NULL2011/10/30(日) 17:39:54.62ID:VHdVZn4y
信者って
きもい
0575NAME IS NULL2011/10/30(日) 18:51:13.21ID:???
信者ってのがよく分からんけど、このスレに書いてる奴はSQLiteしか使わないとでも思ってるのか?
0576NAME IS NULL2011/10/30(日) 19:28:21.90ID:VHdVZn4y
うん
0577NAME IS NULL2011/10/30(日) 19:32:45.21ID:???
なんだ。ただの馬鹿だったのか。
0578NAME IS NULL2011/10/30(日) 19:37:20.91ID:VHdVZn4y
信者って
どうして阿呆なんだ?

こんな糞dbを後生大事にしてどーなるwww
0579NAME IS NULL2011/10/30(日) 19:39:34.67ID:???
なるほど。ここ数日間で一番スレに書き込んでるに違いない>>576は、素晴らしすぎるSQLiteをもっと広めるために頑張ってる、と。
すげぇな。高度すぎて分からなかったわ。
0580NAME IS NULL2011/10/30(日) 19:57:28.37ID:???
糞dbってだけじゃなくてもっと酷く罵ってくださいハァハァ
0581NAME IS NULL2011/10/30(日) 20:02:27.39ID:VHdVZn4y

素晴らしいdbですよ

本当に層思います

僕らの忍耐力を鍛えてくれる

いつ帰ってくるかもわからんほど
待たされる

そのいらいらを我慢しなきゅならん


そういう意味では最高の精神鍛錬のdbですよww

0582NAME IS NULL2011/10/30(日) 20:03:21.75ID:VHdVZn4y

このdbは
僕らに我慢の大切さをおしえてくれましたwww

主キで問い合わせても
糞遅いこともあるんだ

だから我慢しなきゃ

そう教えてくれる最高のdbですよwww

0583NAME IS NULL2011/10/30(日) 22:39:50.29ID:???
全然我慢できてねえじゃん。
0584NAME IS NULL2011/10/30(日) 22:56:09.90ID:VHdVZn4y

何でkんな糞使い続けなきゃならんの?

もう限界だわ

見切りつけていいかな?


我慢の限界だわ

0585NAME IS NULL2011/10/30(日) 23:12:20.51ID:???
別に誰も強要してないんだから、使いたくなければ使わなければいいだろ。
0586NAME IS NULL2011/10/30(日) 23:44:41.12ID:???
>>440で答えは出てたんだけどな
0587NAME IS NULL2011/10/31(月) 00:21:11.03ID:y87CNCpL

しかし、主キーで検索かけてうのに

何で糞なんだろうな

遅延にもほどがあるんだが

いい加減にしないと

もう二度と使う気が起こらんよ


だってH2でさえ一瞬なんだが

0588NAME IS NULL2011/10/31(月) 00:25:36.75ID:???
今日の分のNGIDをこんなに早く提供してくれるとは
0589NAME IS NULL2011/10/31(月) 00:41:11.45ID:y87CNCpL

糞dbなんて嫌いだからね


俺をNGにしたら

一日たりともスレが伸びてないだろw


俺に反応するスレもNGにしてるんお?


まぁ糞信者どもは阿呆だなw
0590NAME IS NULL2011/10/31(月) 09:49:04.43ID:???
おらくるPさん今日もいっぱい罵ってくださいハァハァ
0591NAME IS NULL2011/10/31(月) 15:23:02.07ID:???
今日は忙しいのかな?
0592NAME IS NULL2011/10/31(月) 16:51:27.31ID:???
なんてたってPだからな・・・引っ張りだこなんでしょw
0593NAME IS NULL2011/10/31(月) 20:26:20.52ID:y87CNCpL
P持ちは本当ですお

経験もそれなりにある
ノウハウも持ってる


だが糞dbだけは使えませんな


提案できませんわ、こんな糞db


0594NAME IS NULL2011/10/31(月) 22:07:28.73ID:???
>>593
おい、何サボってんだよ。引っ張りだこなのはわかるが書き込み少なすぎだろ。
0595NAME IS NULL2011/10/31(月) 22:41:30.19ID:???
おらくるPさんもっと…ハァハァ
0596NAME IS NULL2011/10/31(月) 23:26:46.46ID:???
くるくるPさん…
0597NAME IS NULL2011/10/31(月) 23:44:20.87ID:y87CNCpL
羨ましいか?

好きこそものの上手なれだ

勿論、金はかかったが
充分元が取れるよ

0598NAME IS NULL2011/10/31(月) 23:44:49.82ID:y87CNCpL

懐かしいなぁ

試験受けた

今は昔


しかし受験料高いんだよなぁw

0599NAME IS NULL2011/10/31(月) 23:53:21.91ID:???
高いけど会社持ちだったから別に・・・。
0600NAME IS NULL2011/10/31(月) 23:57:22.52ID:y87CNCpL

良い会社だねぇ
俺は自費だったわ・・・

0601NAME IS NULL2011/11/01(火) 18:31:08.64ID:???
いつ取ったの? 9i?
0602NAME IS NULL2011/11/01(火) 22:06:08.72ID:???
おらくるPさんはもう僕のSQLiteたん罵ってくれないの?
0603NAME IS NULL2011/11/02(水) 07:01:08.55ID:???
くるくるPさん…ハァハァ
0604NAME IS NULL2011/11/03(木) 01:09:02.98ID:???
おらおらPさん…ハァハァ
0605NAME IS NULL2011/11/03(木) 14:41:37.76ID:???
おくらるPさん…ハァハァ
0606NAME IS NULL2011/11/03(木) 23:56:22.55ID:???
おらくるサボんなよ!
0607NAME IS NULL2011/11/04(金) 22:19:03.81ID:???
僕のSQLiteたんのこと相手してくれないおらくるPさんなんかもうキライだ!
0608NAME IS NULL2011/11/05(土) 00:35:56.19ID:???
きらいきらい!
0609NAME IS NULL2011/11/06(日) 21:42:13.03ID:???
2011 November 1
3.7.9
0610NAME IS NULL2011/11/07(月) 00:10:54.99ID:???
まあ、DB知らないやつなんだから、何ほざいても、負け犬Pは仕方が無い。
0611NAME IS NULL2011/11/07(月) 05:17:22.84ID:???
DBってな〜に
0612NAME IS NULL2011/11/07(月) 21:42:02.89ID:???
>>611
不便で高速なエクセル
0613NAME IS NULL2011/11/07(月) 23:01:43.58ID:???
2万件くらい入ってるテーブルをselectして100〜200件位を取得しているのですが、
iPhone3GSで大体0.05〜0.1秒かかっています。
これをせめて0.01秒くらいまでチューニングしたい。

create table TBL_A (
COL_A INTEGER NOT NULL
, COL_B INTEGER NOT NULL
, COL_C INTEGER NOT NULL
, COL_D INTEGER NOT NULL
, COL_E INTEGER NOT NULL
, COL_F INTEGER NOT NULL
);
create index IDX_A on TBL_A(COL_A, COL_C, COL_B, COL_D);

select COL_A, COL_B, COL_C, COL_D, COL_E
from TBL_A
where COL_A <= 200
and COL_B >= 100
and COL_C <= 4000
and COL_D >= 3000
;

explain で確認すると
6 OpenRead 0 49 0 9 00
7 OpenRead 1 1323 0 keyinfo(4,BINARY,BINARY) 00
とあるので、キー読みは出来ているのではないかと思うのですが、
そもそも読み方が良く理解出来ていないのかもしれません。

インデックスを COL_A, COL_B, COL_C, COL_D や COL_C, COL_D, COL_A, COL_B、
それぞれ1列ずつ4つ作ってみたりしてみましたが今より遅くなってしまいました。

あと、何か検討出来ることはあるかしら?
0614NAME IS NULL2011/11/08(火) 00:08:51.44ID:???
>>613
条件式の並べ替えかな。
結果が少なくなりそうな順序がわかれば少し高速化できるはず。
0615NAME IS NULL2011/11/08(火) 00:10:18.32ID:???
たとえば、COL_D >= 3000 でばっさり300件くらいに絞れるとか
そんな都合のいい条件があれば、それを最初にするといい。
06166132011/11/08(火) 00:43:27.53ID:???
>>614さん、レスありがとう御座います。

COL_A〜COL_Dはそれぞれ均等に分布していて、条件の数字は可変なんです。
なので COL_D >= 3000 では確かに300件くらいになるかもしれないのですが、
他のタイミングでは COL_D >= 300 とかになってしまうので、あまり効果が無さそうです。
後だし情報で申し訳ないです。

やっぱり2万件ってのと範囲指定で複数条件ってのが厳しいのかなぁ。
0617NAME IS NULL2011/11/08(火) 02:45:58.95ID:???
ハードウェア的にはどれくらいの速度が期待できるの?
まさかそれも分からずに0.01秒くらいにならないかなぁーとか言ってるわけじゃないよね
0618NAME IS NULL2011/11/08(火) 03:21:48.58ID:???
>>617
0.01秒くらいは普通に見込める。
ていうかiPhone3GSって書いてあんだし手元で試せるだろ。
0619NAME IS NULL2011/11/08(火) 04:53:55.74ID:???
手元にないけど、手元で試せるなら速度でてるってことで万々歳じゃね?
0620NAME IS NULL2011/11/08(火) 20:20:51.50ID:???
データベースの物理サイズを数メガに分割すると速い。
0621NAME IS NULL2011/11/09(水) 02:01:39.45ID:???
kwsk
0622NAME IS NULL2011/11/09(水) 03:06:39.33ID:???
>>618が試してくれりゃあいいんだけどな。
てか、回答もしてやれよと思うわ
0623NAME IS NULL2011/11/10(木) 02:28:33.49ID:soAweL/z
最近のsqlite3のコマンドプロンプトでは、UTF-8の文字を入力してもビット落ちしてしまうんですけど、この問題に遭遇して解決された方はいませんか?
0624NAME IS NULL2011/11/10(木) 02:45:58.36ID:???
BASE64エンコードなど
0625NAME IS NULL2011/11/11(金) 21:04:50.48ID:???
おらくるPさん…ハァハァ
0626NAME IS NULL2011/11/13(日) 21:10:38.54ID:???
TEXT型のフィールドに0001と入れると1になってしまいます。
仕様ですか?
0627NAME IS NULL2011/11/13(日) 22:00:04.44ID:???
0001を入れたのか"0001"を入れたのかどっちなんだ
0628NAME IS NULL2011/11/13(日) 22:03:46.28ID:???
>>627
Navicat for SQLiteでテーブルを開いた状態で入れました

どっちになるんでしょう
0629NAME IS NULL2011/11/13(日) 22:10:09.08ID:???
>>628
Navicatのサポートに聞け。
0630NAME IS NULL2011/11/15(火) 08:31:49.33ID:bVKL53qp
メインスレッドでINSERT発行し続けて、
別スレッドでたまにCOMMITするとどうなりますか?

つまりメインで
BEGIN TRANSACTION
INSERT
INSERT
...
BEGIN TRANSACTION
INSERT
INSERT
...

をやっていて、
あるトランザクションでINSERTが出揃った時点で
別スレッドでCOMMITすると、次のトランザクションが(メインで)開始してしまいますが、
ロックされてINSERTできない、みたいなことになりますか?
0631NAME IS NULL2011/11/15(火) 18:38:30.00ID:???
自分で試せ
0632NAME IS NULL2011/11/15(火) 19:34:21.82ID:3Q3XMG+/
BEGIN TRANSACTION tran1
処理a
BEGIN TRANSACTION tran2
処理b
COMMIT TRANSACTION tran2

COMMIT TRANSACTION tran1

↑こーゆー感じで実行すると、
COMMIT TRANSACTION tran2 の時点で処理aと処理bがCOMMITされちゃうんですが、
処理bだけCOMMITしたいときはどうすればいいんでしょうか??
0633NAME IS NULL2011/11/16(水) 12:18:12.64ID:???
ここの荒らしさんも報告したら規制対象にいれてくれるの?
0634NAME IS NULL2011/11/16(水) 12:40:40.14ID:???
ここで聞かれても困ります
http://www.2ch.net/accuse2.html
を見てください
0635NAME IS NULL2011/11/16(水) 14:24:36.91ID:???
>>632
begin;
savepoint tran2;
release tran2;
commit;
0636NAME IS NULL2011/11/27(日) 01:31:12.61ID:???
話題無い時は本当に無いな。
一応の保守。
0637NAME IS NULL2011/11/28(月) 03:26:17.05ID:c+RTLTZb
あったああ
0638NAME IS NULL2011/11/29(火) 06:03:53.66ID:PoYxGkxU
10万件男の話なんだけど、これ本当に起こっているなら、原因はサイズです。
データベースが一つのファイルで構成されている関係上、性能が劣化しやすいんです。
ここら辺はベンチとればすぐわかります。
プラットフォームの性能で変わるので一概に言えないのですが、個人的に10GBを
一つの目安としています。
64ビットのOSでは制限が緩くなる可能性があります。
ファイルサイズとメモリーの関係について文書が用意されていたはずです。

BLOBに写真を突っ込むような使い方をする場合、設計をよく考えなければなりません。
0639NAME IS NULL2011/11/29(火) 09:11:36.55ID:???
ネタにマジレスすんなよ
0640NAME IS NULL2011/11/29(火) 20:41:37.76ID:???
データ型TEXTのフィールドに、改行を含んだ文字列を書き込みたい場合、
SQL文はどのように書けば良いのでしょうか?
どなたかアドバイスを頂けると助かります。
よろしくお願いいたします。
0641NAME IS NULL2011/11/29(火) 20:50:37.60ID:???
念のために聞くが、SQLiteの話だよな?
0642NAME IS NULL2011/11/29(火) 22:21:28.78ID:???
>>641
はい、そうです。
0643NAME IS NULL2011/11/29(火) 23:12:53.22ID:???
何が聞きたいのかさっぱり分からん。

SQLiteは改行を含む文字列がTEXT型フィールドに入れられるか、という質問?
 →だとしたらYES。普通のinsert文でOK。

TEXT型フィールドに改行を含んだ文字列を入れたらエラーになったが、どうすればいいか、という質問?
 →だとしたら問題のSQL文を書くこと。

SQLiteに限らず、SQL文全般の質問
 →だとしたらスレ違い。
0644NAME IS NULL2011/11/30(水) 16:53:31.12ID:???
sqliteのコマンドラインツールから操作するときの話じゃね?
0645NAME IS NULL2011/11/30(水) 19:56:20.49ID:???
自演っぽい
0646NAME IS NULL2011/11/30(水) 20:07:00.64ID:???
っぽいというか。
0647NAME IS NULL2011/11/30(水) 21:27:01.26ID:???
テーブルで初期に設定したフォーマットを出力するにはどうしたら良いですか。
06486472011/11/30(水) 21:32:13.02ID:???
自己解決しました
0649NAME IS NULL2011/11/30(水) 23:11:57.74ID:???
>>633
>>644
そうそのコマンドラインツールでの話です(^_^;)
コマンドラインでテキストを挿入する際、
改行コードを入れるにはどうするのでしょうか?
06506492011/11/30(水) 23:14:04.33ID:???
>>649アンカミスしました。
>>633 でなく>>643 です。
0651NAME IS NULL2011/12/01(木) 00:10:10.20ID:???
>>650
普通に改行すれば改行コードごと入るけど馬鹿なの?
0652NAME IS NULL2011/12/01(木) 00:28:19.05ID:???
>>651
ありがとう
正に馬鹿でした
0653NAME IS NULL2011/12/02(金) 02:48:33.94ID:???
皆様にはくだらない質問でしょうが聞いてください。
あるテーブルのある列を集めて別のテーブル(ビュー)を作るのがリレーショナルデータベースだと分かりました。
では、そのビュー(テーブル)自体を一つのレコードとして集めたテーブルを作るのはリレーショナルデータベース
ではどうするのでしょうか?
例えば、十月売上品テーブルを作るのにメーカーテーブルや色テーブルから列を集めたのですが、
その売上品テーブル自体を一レコードとする年間売り上げ品テーブルを作るには
どうしたら良いのでしょうか?
0654NAME IS NULL2011/12/02(金) 03:07:08.58ID:???
group byしてsumする
0655NAME IS NULL2011/12/02(金) 22:07:59.97ID:???
以下のような状態でprimary keyに対してlike演算子を使用したのですが
検索が非常に遅くなっています
これをはやくする方法はないでしょうか

create table dictionary(spell text primary key, content text);
select * from dictionary where spell like 'run%'
06566472011/12/02(金) 22:24:04.54ID:???
フルテキストインデックスを利用する

通常は、Like演算子を使って検索するが、この方法で結果を得た場合にデータ量によっては、数分程度の検索時間になることがある。

http://blog.livedoor.jp/akf0/archives/51005817.html
0657NAME IS NULL2011/12/03(土) 00:51:00.50ID:???
>>653-656
ここはSQLiteのスレであって、SQLの文法相談所ではない。

 SQL質疑応答スレ 12問目
 http://hibari.2ch.net/test/read.cgi/db/1316769778/

こっちへ。
0658NAME IS NULL2011/12/03(土) 01:26:01.33ID:???
>>656
それ SQL Server の記事みたいだけど SQLite でも使えんの?
0659NAME IS NULL2011/12/03(土) 01:56:11.79ID:???
SQLiteの全文検索を使ってみる
http://blog.mwsoft.jp/article/34911345.html

SQLiteで全文検索 - DiaryException
http://d.hatena.ne.jp/LaclefYoshi/20110604/1307175819
0660NAME IS NULL2011/12/03(土) 09:35:35.30ID:???
>>654
ありがとうわかった気がします。
0661NAME IS NULL2011/12/03(土) 18:27:36.55ID:???
>>657
おもしろいな
0662NAME IS NULL2011/12/12(月) 12:58:12.11ID:yToQ1TQG
ためになったよ
0663NAME IS NULL2011/12/13(火) 02:38:16.61ID:???
pysqlite3 いいね
0664NAME IS NULL2011/12/23(金) 23:48:27.53ID:???
sqliteのDBが壊れたので修復を試みています。
具体的には壊れたDBをdumpして、DB新しく作り直しています。
殆どデータは修復出来ましたが、データの一部が消失しているようで
、なんとか修復したいのですが、何か良い方法はありませんでしょうか?
よろしくお願いします。
0665NAME IS NULL2011/12/24(土) 01:11:55.96ID:???
無理
0666NAME IS NULL2011/12/24(土) 05:02:45.35ID:???
>>664
> データの一部が消失しているようで

何をもってそう判断したのか知らないけど、"消失している"なら修復できないだろ。
SQLiteは魔法ではありません。
0667NAME IS NULL2011/12/24(土) 14:38:02.19ID:???
>>666
了解です。
dumpして修復できない場合は、もう無理と言うことですね。
ありがとう御座いました。
0668NAME IS NULL2011/12/24(土) 15:17:56.92ID:???
壊れたってどういうことだろう。
間違えて(またはバグで)レコードを消したことを指してる気がしなくもない
0669NAME IS NULL2011/12/25(日) 13:49:28.95ID:???
どうやったら壊れたのか知りたいところ
0670NAME IS NULL2011/12/25(日) 14:10:56.94ID:???
>>669
androidアプリを作っているんですが、sqliteを使ってデータを保存しています。
複数のスレッドで排他制御せずに同時にアクセスすると、dbが壊れる事があるようです。
0671NAME IS NULL2011/12/25(日) 15:20:33.27ID:???
>>670
sqliteは排他制御してても壊れるから心配するな
0672NAME IS NULL2011/12/25(日) 16:15:48.10ID:???
>>671
排他制御してても壊れるんですか?
それはどんな状況で発生するのかな。
0673NAME IS NULL2011/12/25(日) 16:33:13.03ID:???
書き込み中に電源切ってみれば分かるだろ.
0674NAME IS NULL2011/12/25(日) 16:38:49.00ID:???
ほかのRDBMSだとそれをしても大丈夫なんですか.
0675NAME IS NULL2011/12/25(日) 17:16:56.22ID:???
>>674
結構大丈夫
0676NAME IS NULL2011/12/25(日) 17:37:12.10ID:???
そんなのどうすりゃいいんだ。
一セッション毎のバックアップは必須だな。
0677NAME IS NULL2011/12/25(日) 18:08:11.77ID:???
一応、そういう評価もやってはいるみたいよ。
http://www.sqlite.org/testing.html#crashtesting

と言うか、そんなのタイミング次第。
SQLiteだって結構大丈夫だし、他の組み込みDBだって壊れるときは壊れる。
0678NAME IS NULL2011/12/25(日) 19:32:59.48ID:???
て言うか排他制御関係ないだろ。
0679NAME IS NULL2011/12/25(日) 21:57:10.72ID:???
>>676
普通はログを・・・
0680NAME IS NULL2011/12/25(日) 22:21:18.18ID:???
SQLiteってログ無いだろ
0681NAME IS NULL2011/12/25(日) 23:32:53.22ID:???
ログが欲しかったら出せばいいだろw
0682NAME IS NULL2011/12/26(月) 02:59:50.20ID:???
>>681
>>679の言うようなログは出せないよ
0683NAME IS NULL2012/01/04(水) 16:29:30.35ID:???
tksqliteって表示するテーブルの容量に制限あるんでしょうか
ある程度大きいサイズだと致命的エラーが出ます
あるとしたら何バイトでしょうか
0684NAME IS NULL2012/01/04(水) 16:43:14.28ID:???
>>683
あるとしたら2G
0685NAME IS NULL2012/01/04(水) 17:09:58.73ID:???
>>684
700MB程度のテーブルもひらけないですね
メモリの使用状況見ると、70MBのテーブル開くのにも210MBくらいメモリ食っていたので
単純にメモリ不足で開けなかったっぽいです
まさか3倍も使うとは思ってませんでしたorz
Pup's Sqliteでも同じくらいメモリ食って開けないので
自分の環境向けにテーブルを小分けにするしかなさそうです
0686NAME IS NULL2012/01/04(水) 18:16:51.73ID:???
全件開こうとしてんの?
0687NAME IS NULL2012/01/04(水) 18:37:42.85ID:???
>>683
上限の話は公式ドキュメントに書いてある
http://sqlite.org/limits.html

と言うか「テーブルをひらく」って、何をしようとしているんだろう…。
0688NAME IS NULL2012/01/04(水) 19:16:55.29ID:???
名前からするとGUIのツールっぽいが、もしかしてそのツールでテーブルを「開く」と
全件表示しようとするんじゃないだろうか。
いずれにしても、使うツールのためにスキーマ変更するというのはバカらしいが。
0689NAME IS NULL2012/01/04(水) 20:34:59.14ID:???
両方ともおそらく使用ライブラリがSystem.Data.SQLite

非同期型にアプリ側で実装されてると
一旦メモリに全部読み込むんだが
UTF16で文字列はロードするので
DBファイルがUTF8だったとき
ANSI文字がまず2倍
あとダーティフラグなんかもつくんで
三倍くらいいってもおかしくない気がする
0690NAME IS NULL2012/01/07(土) 14:42:12.93ID:???
sqlteで検索したい文字のなかに「:」とか「;」などがあるときはどうすればいいでしょうか
0691NAME IS NULL2012/01/07(土) 14:59:56.55ID:???
ふつうに’’で囲えば良いんじゃないの?
select * from foo where bar like '%;%';
0692NAME IS NULL2012/01/07(土) 15:59:48.91ID:???
>>691
すいません
なんか勘違いしていたみたいで普通に出来ました
0693NAME IS NULL2012/01/10(火) 11:55:47.38ID:???
sqlite3でひとつのテーブルに100万件のレコード管理するのって無謀ですか?
0694NAME IS NULL2012/01/10(火) 14:52:14.64ID:???
平気
0695NAME IS NULL2012/01/11(水) 04:47:50.76ID:???
かな?
0696NAME IS NULL2012/01/11(水) 09:34:01.86ID:???
一気に読み込むときは10万行はきつかった
0697NAME IS NULL2012/01/11(水) 12:12:24.06ID:???
しかし別に俺が疲れるわけでもないしな
0698NAME IS NULL2012/01/11(水) 12:33:00.09ID:???
>>693
1000万件ぐらいならやったことあるけど。
AutoCommit さえオフにすれば全然おk
0699NAME IS NULL2012/01/19(木) 00:50:40.88ID:???
3.7.10
0700NAME IS NULL2012/01/30(月) 02:50:35.74ID:???
SQLiteをCGIで使う場合、マルチプロセスで同一ファイルに同時アクセスすることになりますが、
問題ないでしょうか。
たぶん問題ないと思いますが、念のため聞いてみました。
またマルチプロセスで同時にデータベースファイルを開く時に、なにか気をつける点があればおしえてください。
0701NAME IS NULL2012/01/30(月) 18:46:25.04ID:???
>>700
なにが「問題ない」のか、その質問だけじゃ読み取れないので答えようがない。
0702NAME IS NULL2012/01/30(月) 22:10:42.90ID:???
>>700
lockingはファイルロック=DBロックになるので、用途によっては使いものにならない。
素直にPostgreSQLやMySQLみたいなものを使ったほうが幸せになりやすい。
0703NAME IS NULL2012/01/31(火) 00:50:36.08ID:???
>>701
マルチプロセスで同じデータファイルを操作しても、データベースが壊れたり不整合が発生しないかどうかという意味です。

>>702
それはロックの粒度が荒いので、性能がでないという意味でしょうか。
性能はひとまずおいておくとして、今は不整合が発生したりファイルが壊れたりしないかどうか、教えて下さい。
0704NAME IS NULL2012/01/31(火) 08:14:01.44ID:???
別プロセスだろうがちゃんとロックされるから安心しな
親切なことにw SELECT発行するだけでもDB全体がロックされる
読み込みだけの操作でもCOMMITするまでロックしっ放しの親切設計だ
0705NAME IS NULL2012/01/31(火) 08:23:06.06ID:???
つかそんなに心配ならDB使わなきゃいいんじゃないの、と。
0706NAME IS NULL2012/01/31(火) 12:50:18.58ID:???
>>702
1行目には賛同するが2行目には同意できない。
んなもん「用途による」としか。
0707NAME IS NULL2012/01/31(火) 20:18:34.30ID:???
>>706
>>700がCGIで使う場合って書いているでそ。そんな用途では「素直にPostgreSQLやMySQLみたいな
ものを使ったほうが幸せになりやすい」のは確かでそ。
0708NAME IS NULL2012/01/31(火) 22:52:22.23ID:???
なんでそうなるかなぁ。

全ての Web がガンガンアクセスされてるわけじゃないでしょ?

うちの自宅サーバーみたいに1リクエスト/日かも知れないよ。

それでもアクセスが重なる可能性は 0 じゃないから、
ロックしててもいいから不整合は避けたいって言うことなら、
簡単な SQLite の方がいいと思うけどね。
0709NAME IS NULL2012/02/01(水) 00:38:39.02ID:???
>>704
>別プロセスだろうがちゃんとロックされるから安心しな
了解しました。その答えが欲しかった。ありがとうございます。

>親切なことにw SELECT発行するだけでもDB全体がロックされる
>読み込みだけの操作でもCOMMITするまでロックしっ放しの親切設計だ
たしかに同時接続が多い場合は困るでしょうね。

>>708
>それでもアクセスが重なる可能性は 0 じゃないから、
>ロックしててもいいから不整合は避けたい
まさにこの通りです。703に書いたように、性能はひとまず置いてて構わないので、
データの破損や不整合は何としても避けたいという事情です。


0710NAME IS NULL2012/02/04(土) 14:07:58.35ID:???
普通にMovable Typeとかでも選択できるDBなんだから心配する必要なくね?
0711NAME IS NULL2012/02/04(土) 20:16:45.18ID:???
うん。>>702,>>707の視野が狭いだけ。
0712NAME IS NULL2012/02/05(日) 01:18:38.75ID:???
>>710
MovableTypeって基本的にhtmlを静的生成だし、用途的に書き込みアクセスは
極端に少ないから、あんまり参考にはならないと思う。
0713NAME IS NULL2012/02/06(月) 01:35:56.12ID:???
だから用途次第ってことだろ。
0714NAME IS NULL2012/02/27(月) 21:29:18.07ID:???
odbcドライバ(http://www.ch-werner.de/sqliteodbc/)でutf8の日本語対応されてたの?
cseで化けなかった。
0715NAME IS NULL2012/03/07(水) 01:07:14.99ID:dQiolw7D
PupSQLiteってビューは編集できないんでしょうか?
テーブルは編集できるけど。
0716NAME IS NULL2012/03/07(水) 04:04:07.34ID:???
そもそもSQLiteってビューの編集に対応してるの?
0717NAME IS NULL2012/03/07(水) 04:08:20.86ID:???
え、ALTER VIEWないの?( ゚Д゚)ポカーン
0718NAME IS NULL2012/03/07(水) 09:57:17.44ID:???
UPDATEのことでしょ
0719NAME IS NULL2012/03/07(水) 13:36:01.00ID:???
え、ビューの定義編集の話だったの?スレの空気を読めずにごめんね
0720NAME IS NULL2012/03/07(水) 14:52:09.42ID:???
こちらこそ説明不足ですみません。ALTER VIEWのことでした。
そもそもSQLiteにそのコマンドがないんですね・・・それは思いつかなかったw
DROPしてCREATEし直すしかないんですね。
0721NAME IS NULL2012/03/07(水) 19:23:20.61ID:???
SQLite Consortiumのメンバーが増えてる。
0722NAME IS NULL2012/03/07(水) 22:01:50.52ID:???
どちらにしてもなかったのね。
お騒がせしました
0723NAME IS NULL2012/03/12(月) 19:52:16.31ID:???
System.Data.SQLiteってもしかしてAndroidじゃうごかんの?
0724NAME IS NULL2012/03/12(月) 20:46:07.43ID:???
>>723
C#のライブラリはJavaでは使えません
0725NAME IS NULL2012/03/13(火) 22:45:25.52ID:???
>>724
full-managedなら、monodroidで動くかもね。

SQLiteのは、ネイティブとの混合だから無理そう。
0726NAME IS NULL2012/03/19(月) 17:08:37.21ID:???
ビューって定義のときに
 テーブル名.カラム名 AS 新カラム名
をちゃんと定義しないとダメなの?(カラム名と新カラム名が同じでも)

PupSQLiteとかWindowsのPHP(pdo)だとエラーにならないんだけど
レン鯖のPHPからだと「そんなカラムねーよ!」っていうエラーになる(´д`;)
0727NAME IS NULL2012/03/19(月) 18:41:11.37ID:???
実行環境の情報を隠す悪い子には教えてあげますん
0728NAME IS NULL2012/03/19(月) 18:48:41.70ID:???
>>727
あ、すんません。んと、何の情報晒せばいいのかよくわかってないけど
レン鯖はこんなかんじ↓

PHP Version 5.2.17

pdo_sqlite
PDO Driver for SQLite 3.x enabled
PECL Module version (bundled) 1.0.1 $Id: pdo_sqlite.c 293036 2010-01-03 09:23:27Z sebastian $
SQLite Library 3.3.7
0729NAME IS NULL2012/03/19(月) 20:49:14.25ID:???
で。エラーメッセージと再現コードは…?
0730NAME IS NULL2012/03/19(月) 21:36:01.52ID:???
ttp://mindia.jp/book/dobby/keyword/SQLite
同じようなエラーの人いました
0731NAME IS NULL2012/03/20(火) 16:53:44.07ID:???
小数点ありの数字をINSERTしてSELECTするとマイナスとか付いた文字列に変換されるのだけど仕様ですか?
0732NAME IS NULL2012/03/20(火) 17:49:47.26ID:???
>>731
REAL型? 普通に使えてるけどなぁ。プログラムの中で変なキャストしてるとか・・・
0733NAME IS NULL2012/03/20(火) 18:01:25.14ID:???
どもです。
REALも試したけれど、コールバックのchar **columnValuesにマイナスとか付いたのが返される。
ORDER BYで降順にならない
0734NAME IS NULL2012/03/20(火) 18:06:30.41ID:???
ソース見たらすべて解決するだろ
再現する最小のソースでいいから出してみ
0735NAME IS NULL2012/03/20(火) 20:43:29.77ID:???
ありがと
事故解決できました。
あまりにも恥ずかしいミスをしてた、、、orz
0736NAME IS NULL2012/03/20(火) 20:47:06.10ID:???
ここにどんなミスだったか書いてくれると、今後同じバグを出した人の参考になる。かもしれない。
0737NAME IS NULL2012/03/20(火) 21:24:10.36ID:???
仕方ない、あまりにも初歩的なミスで恥ずかしいけど
//#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %d)" <-- ミスです
#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %f)"
0738NAME IS NULL2012/03/21(水) 00:36:34.18ID:???
イシンバエワ思い出した
0739NAME IS NULL2012/03/21(水) 06:08:31.62ID:???
どんまいw このスレに人がいるだけで嬉しい( ´∀`)
0740NAME IS NULL2012/03/21(水) 19:48:56.37ID:Ny2BPNOP
例えば

●高校 ×学年 ■組 みたいなのを主キーで表すと1となるんでしょうか?
では外部キーとは何ですか?
よくわかりません
0741NAME IS NULL2012/03/21(水) 19:53:03.95ID:Ny2BPNOP
主キーと外部キーの違いがよくわかりません。ご教授お願いします。
0742NAME IS NULL2012/03/21(水) 20:11:00.40ID:???
>>741
マルチしすぎ
0743NAME IS NULL2012/03/21(水) 22:41:59.94ID:???
おいおい迷える子羊は今どこにいるんだ
0744NAME IS NULL2012/03/21(水) 22:45:20.32ID:???
あなたのお腹にいますよ
0745NAME IS NULL2012/03/21(水) 23:02:54.74ID:???
中に誰もいませんよ
0746NAME IS NULL2012/03/22(木) 00:53:57.00ID:???
>>741
よし分かった。わかりやすく俺に御教示してくれ
0747NAME IS NULL2012/03/22(木) 02:59:10.59ID:???
あー、教授と教示の違いね、それ恥かくだけだからやめておいたほうがいいよ。
0748NAME IS NULL2012/03/22(木) 11:28:21.38ID:???
2chだからネタで、言ってみただけ。
普段はそんな揚げ足取りはしないよ。
0749NAME IS NULL2012/03/22(木) 12:22:07.14ID:???
揚げ足の取り方を間違えておいて何を。
0750NAME IS NULL2012/03/22(木) 12:38:24.94ID:???
むしろ2chのほうが普通のとこよりも
そういうのするのダサい場所だよな
0751NAME IS NULL2012/03/22(木) 23:48:51.79ID:???
>>746
教授でも意味は通じるよ。
よりずうずうしいけど。
0752NAME IS NULL2012/03/29(木) 11:56:13.72ID:???
BLOBがORDER BYできないんだけど、バグ?
0753NAME IS NULL2012/03/29(木) 16:23:33.66ID:bq4KjbwI
sqlite3_clear_bindings() ってみんな使ってる?
おれはつかっていない。
0754NAME IS NULL2012/03/31(土) 15:45:35.42ID:???
>>753
使ってないっす

CREATE TABLE table (a INTEGER UNIQUE, b INTEGER) したデータベースから
SELECT * FROM table WHERE a = %d した時に b の降順(ORDER BY b DESC)で並べ替えた順番を知る方法ってありますか
0755NAME IS NULL2012/03/31(土) 15:48:03.02ID:???
いまはORDER BY b DESCした全データを使って新しくデータベースを作って
そこからSELECTしてます。
0756NAME IS NULL2012/04/01(日) 00:38:59.25ID:???
?
0757NAME IS NULL2012/04/02(月) 03:51:03.25ID:???
SELECT * FROM table WHERE a = %d ORDER BY b DESC
じゃだめなん?
0758NAME IS NULL2012/04/02(月) 21:49:00.27ID:???
説明不足な質問に答えていただきありがとう。
そーなんだけど
見つかった a が b の並び順の何番目になっているかってのが知りたいのです。
0759NAME IS NULL2012/04/02(月) 22:15:03.50ID:???
SQL質疑応答スレ向きだな

select a, (select count(*) from table as t2 where t2.b > t1.b) from table as t1 where a = %d
0760NAME IS NULL2012/04/03(火) 00:06:29.86ID:???
そー言うスレがあったのか、、、
ありがとです。
で、つらつらと眺めてみたけどなかなか馴染みにくいわぁ >SQL
0761NAME IS NULL2012/04/03(火) 05:24:22.72ID:???
select a, (select count(*) from table as t2 where t1.a = t2.a and t2.b > t1.b) from table as t1 where a = %d
じゃないかな
0762NAME IS NULL2012/04/04(水) 14:29:03.66ID:???
こんなSQL文を読み込んで処理しているプログラムの中身に興味が沸いてきた。。。
07637542012/04/14(土) 20:46:31.36ID:???
>>759 >>761
プログラムの方向転換があって今は必要なくなってしまいました。
時間があれば試してみます。m(_ _)m
0764NAME IS NULL2012/04/14(土) 22:47:36.25ID:???
方向転換・・・
0765NAME IS NULL2012/04/16(月) 18:02:34.46ID:???
設計の方向性の違いにより解散
0766NAME IS NULL2012/04/18(水) 01:20:44.73ID:???
すみませんSQLiteはVALUESをまとめて使えますか?

INSERT INTO TABLE_NAME1 ('COLUMN_A', 'COLUMN_B')
VALUES
(VALUE_A11, VALUE_B12),
(VALUE_A21, VALUE_B22);

0767NAME IS NULL2012/04/18(水) 01:30:07.57ID:???
むう個別にINSERTするようにしたら動いたんで対応してないのかな・・
0768NAME IS NULL2012/04/18(水) 02:28:58.65ID:???
通常はprepared使うもんじゃないだろうか
0769NAME IS NULL2012/04/18(水) 02:51:21.72ID:???
>>766
対応したのはつい最近だね

http://www.sqlite.org/releaselog/3_7_11.html
> SQLite Release 3.7.11 On 2012 March 20 (3.7.11)
> Enhance the INSERT syntax to allow multiple rows to be inserted via the VALUES clause.
0770NAME IS NULL2012/04/18(水) 03:33:20.93ID:???
>>768
てっきりBEGIN〜COMMITで囲めばいいと思ってました
preparedってこういう時に使うんですね。勉強になります

>>769
むぅ、最近だとまだ共用サーバーでは使えないですね > <
ありがとうこざいましたm(__)m
0771NAME IS NULL2012/04/20(金) 13:00:59.66ID:???
sqlite3_mprintf をもっとガンガン使おうぜ
0772NAME IS NULL2012/04/28(土) 21:33:14.40ID:???
whereの演算子で()は有効でしょうか?
当然あるものと思いたいけど、解説サイトの演算子一覧のどこにも載っていません
http://blogs.yahoo.co.jp/sleepy_1005/792418.html
http://www.dbonline.jp/sqlite/select/index11.html

0773NAME IS NULL2012/04/28(土) 21:40:31.26ID:???
有効でなければANDやNOTとORの組み合わせができないだろ
0774NAME IS NULL2012/04/28(土) 21:53:12.43ID:???
ですよね。
まさかまさか無いのかと思ってどうやってand or not組み合わせればいいのか頭をひねってました。
ありがとうございます
0775NAME IS NULL2012/04/29(日) 10:55:32.58ID:???
>>772
質問する前に試せ。
手間じゃないんだから。
0776NAME IS NULL2012/04/29(日) 14:54:13.86ID:???
>>772
有効かどうかだけなら、>>775 の言うように試せばいいし、
きちんと知りたいなら、ドキュメントを見るのが吉かと。

・where に続いて expr を書く。
http://www.sqlite.org/lang_select.html

・expr は、'(' expr ')' と書ける。
http://www.sqlite.org/lang_expr.html
0777NAME IS NULL2012/04/29(日) 18:37:09.02ID:???
英語は読みたくないんだろうなぁ
0778NAME IS NULL2012/04/29(日) 18:44:47.07ID:???
SQLiteの日本語の本は良いものがないからなあ。
0779NAME IS NULL2012/04/29(日) 18:51:28.85ID:???
lemonの使い方を教えて
0780NAME IS NULL2012/04/30(月) 09:00:30.51ID:???
梶井基次郎を読めばわかる
0781NAME IS NULL2012/04/30(月) 09:49:47.21ID:???
まだ上げそめし前髪の
林檎のもとに見えしとき...
0782NAME IS NULL2012/04/30(月) 09:53:39.73ID:???
それ違う
0783NAME IS NULL2012/04/30(月) 09:54:02.42ID:???
それにしても心といふ奴は何といふ不可思議な奴だらう。
その檸檬の冷たさはたとへやうもなく良かった。
0784NAME IS NULL2012/05/15(火) 06:20:52.64ID:???
select load_extension('xxx.so');
したときに改行が出力されてしまうのですが、何も出力しない方法はありますか?
具体的にはコマンドラインから
> sqlite3 -list aaa.db 'select load_extension("xxx.so"); select * from tbl;'
という使い方をしています。
0785NAME IS NULL2012/05/16(水) 23:42:58.84ID:???
よく分からんのだけど、改行されると困る理由は…?
0786NAME IS NULL2012/05/17(木) 00:22:54.83ID:???
>>784
改行を消しちゃえばよくね?
0787NAME IS NULL2012/05/17(木) 07:56:08.56ID:???
>>786
シェルの標準IOでそういうコマンドがあるんですか?
¥rのことならダメです。
見た目の問題ではないので。
0788NAME IS NULL2012/05/17(木) 18:47:47.82ID:???
>>787
そういうコマンドはあるよ
0789NAME IS NULL2012/05/17(木) 21:46:16.41ID:???
改行されると困る理由は?と、>>785と同じ疑問をぶつけてみるよ
0790NAME IS NULL2012/05/18(金) 02:24:14.53ID:???
>>789
その出力を使う別のプログラムが居て、空白行を期待していない、というだけ。

>>788
外部でsed挟むか・・・
SQLite内ではムリ、ということでよろしいですか?
0791NAME IS NULL2012/05/18(金) 20:47:20.64ID:???
SQLiteのライブラリを直接叩くんじゃダメなの?
0792NAME IS NULL2012/05/18(金) 22:03:34.60ID:???
.loadとか.outputとかは?
0793NAME IS NULL2012/05/18(金) 23:45:21.80ID:???
>333
応用まで対応できるか分からないけど、SQLのリファレンスの本買ってきて、
SQLiteってDBをいじると感覚的にSQLとDBが分かると思うよ。

SQLiteの参考サイト多いし、フリーのツールも多くある。
0794NAME IS NULL2012/05/19(土) 08:12:35.53ID:???
手軽で勉強にもピッタリよねsqlite
sqlの強化を少しして欲しいかな

cteとwindow関数が使えるようになってくれたら申し分ない。
0795NAME IS NULL2012/05/21(月) 15:06:54.22ID:???
cteは嫌い
0796NAME IS NULL2012/05/21(月) 19:00:04.18ID:???
嫌いだったら使わなければ良いだけじゃん。

標準化されてて(SQL99)主要DBが実装してる機能を
嫌いだからって実装しないのは違うと思うぞ。

・実装済み
Oracle
DB2
SQLServer
Sybase
PostgreSQL
Firebird

window関数は正直sqliteクラスじゃ必要ないと思うが
withは便利だと思う。
0797NAME IS NULL2012/06/08(金) 22:42:10.65ID:XSSaqzr4
1つのDBに4つテーブルを作ったんですが
SELECT * FROM sqlite_master WHERE type='table' order by name
で取得できるテーブル名が1つです。
別アプリでファイルを見るとちゃんとテーブルは出来ているのですが、複数テーブルがある
場合にテーブル名を取得する方法ってまた別にあるんでしょうか?
0798NAME IS NULL2012/06/09(土) 01:59:04.00ID:???
どうせアプリにそのクエリ埋め込んだはいいものの
一行しかとってきてないってオチ
コマンドラインから試してみな
0799NAME IS NULL2012/06/09(土) 04:23:00.72ID:???
>>798が正解ならSQLite云々とかじゃなくてコーディングのレベルが低すぎる…。
08007972012/06/09(土) 10:19:10.60ID:ucCrRTp2
>>798-799
こんな感じです。

$conn = new PDO("sqlite:" . $dir . "" . $file);
$sql = "SELECT * FROM sqlite_master WHERE type='table' order by name ";
$stmt = $conn->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch())
{
echo $row['tbl_name'];
}

コマンドラインで出来ればいいのですが、制約多くてコマンドラインが試せない環境だったもので。
0801NAME IS NULL2012/06/09(土) 11:44:36.20ID:???
2回目のfetchは?
0802NAME IS NULL2012/06/09(土) 12:08:46.25ID:???
まず、SELECT COUNT(*) で取得件数をチェックして問題切り分け
0803NAME IS NULL2012/06/11(月) 21:18:59.60ID:???
3.7.13
0804NAME IS NULL2012/06/12(火) 18:06:25.53ID:WjdPxXde
sqlite3でInsertした際のinsertid取得がうまくいきません。
$result = $connect->prepare($sql);
$result->execute();
$id = $result->{mysql_insertid};
var_dump( $id );
結果はNULLなんですがデータは正常に追加されています。
MySQLしか使ったことがないので、この使い方自体があっているかどうかが不明なんですが
間違いあればおしえてもらえないでしょうか。
0805NAME IS NULL2012/06/12(火) 19:16:42.80ID:???
>>804
何の釣りか知らないけど質問する時は実行環境も書くこと。その質問じゃ何言語かすら分からん。
で、貴方が書いたコードには「mysql_insertid」とかいう、MySQLを連想させるワードが入っているけど、これは正しいの?
0806NAME IS NULL2012/06/12(火) 20:00:34.17ID:???
800は解決したのか?
0807sage2012/06/12(火) 21:51:06.19ID:???
sqliteの場合はlast_insert_rowidだったと思う
$sql = "select テーブル名 last_insert_rowid";
だったかな。今sqliteの環境ないからわからんけど間違ってたらこれでもかってくらい激しい突っ込みあると思う
0808NAME IS NULL2012/06/12(火) 22:36:40.61ID:???
たぶん"select last_insert_rowid() from table;"かな。テーブル名は必要ないかもしれん。
と言うか環境云々の前に>>807はSQL構文的にアウトっぽい…。

既出かもしれないけど、SQLiteは"integer primary key"な列がある場合には、
それをrowidとして扱い、それ以外なら別にrowidが振られる、という仕様だったと思うので、
前者なら上の関数で返るのは最後に挿入したプライマリキーの値になるはず。
# その場合に"mysql_insertid"ってのと同等機能になるのかは知らんよ!

詳細は公式ドキュメントを。
0809NAME IS NULL2012/06/13(水) 22:47:57.82ID:???
インデックス生成が遅くてかなわん
整数値3列 x 1億行程度のインデックス生成になぜ3日もかかる
0810NAME IS NULL2012/06/13(水) 23:42:04.03ID:???
質問なら再現コードと実行環境を貼ること。
独り言ならチラシの裏に書くこと。
0811NAME IS NULL2012/06/13(水) 23:45:53.17ID:???
命令なら嫁に言うこと。
0812NAME IS NULL2012/06/14(木) 10:24:44.33ID:???
確かにインデックス作成はPgやMySQLと比べて糞遅いよな。
値に偏りがある場合は特に酷い。
0813NAME IS NULL2012/06/14(木) 22:27:38.62ID:???
SQLiteの悪口は言わないこと。
0814NAME IS NULL2012/06/14(木) 23:55:58.19ID:???
2chで何を言ってるんだw
0815NAME IS NULL2012/06/15(金) 00:03:06.32ID:???
うむ 確かに
0816sage2012/06/20(水) 17:05:03.14ID:???
db-journalというファイルがたまに生成される時があるんですが、
特に作成を指示するようなコマンドは出していません。
これは何か作成される条件があるんでしょうか。

環境はSQLite3 / PHP5.3 / CentOS6.2
0817NAME IS NULL2012/06/20(水) 17:19:47.34ID:???
http://www.sqlite.org/tempfiles.html
0818NAME IS NULL2012/06/20(水) 18:00:32.58ID:???
たまにじゃないだろ
0819sage2012/06/20(水) 20:45:10.86ID:???
>>818
文字とおりたま〜に出来ます。
なのでなぜ出来るのか不思議で。
0820NAME IS NULL2012/06/20(水) 20:55:26.15ID:???
>>819
>>817

たまにじゃない。
0821NAME IS NULL2012/06/20(水) 21:53:54.09ID:???
>>819
せっかくレスくれた>>817をなぜ読まないの?
0822NAME IS NULL2012/06/21(木) 00:39:16.89ID:???
たしかにたまにできるな
0823NAME IS NULL2012/06/21(木) 01:10:22.62ID:???
>>816
トランザクション有効化した場合にコミットするまでの間作られる、というようなことがたぶん>>817のリンク先に書いてある
0824NAME IS NULL2012/06/21(木) 01:29:50.84ID:???
トランザクション中に鯖が落ちてjournalファイルがゴミとして残ることがたまにある
ゴミが残ったままのせいで新たにトランザクション開始出来なくなるっていう
0825NAME IS NULL2012/06/21(木) 02:26:26.12ID:???
もともとSQLiteのトランザクション制御は信用してはいけないので
なるべく自前でやるようにしたほうがいい
0826NAME IS NULL2012/06/21(木) 07:24:30.44ID:???
>>825は信用してはいけない
0827sage2012/06/23(土) 10:23:32.06ID:???
ひとつの接続でselectやuploadやinsertが出来ないとかあります?
それぞれ単体ではちゃんとできるんですが、1個の接続でやろうとすると失敗します。
selectで検索した結果をinsertしたりupdateしたいのですが。
0828NAME IS NULL2012/06/23(土) 12:05:01.04ID:???
>>827
質問する時は人に分かるように書くこと。

1行目 → 「ひとつの接続」の意味が分からない。
2行目 → 「それぞれ単体」「1個の接続」の意味が分からない。「ちゃんとできる」「失敗します」がそれぞれどういう状態なのかも分からない。
3行目 → 普通にできる。
0829NAME IS NULL2012/06/24(日) 10:00:13.15ID:ECwSEUIK
「ひとつの接続」
「一個の接続」
要は「一回データベースを開いてそのコネクション内で複数のコマンドを動かすことはてきるのか」ということではないかと。
「それぞれ単体」
操作毎にコネクションを張り直す、ということかと。
つまりインサートのためにコネクションを張り、完了したらコネクションを切り、
セレクトのためにまたコネクションを張る、とか。
0830NAME IS NULL2012/06/24(日) 12:24:01.48ID:???
>>828には読解力がない
0831NAME IS NULL2012/06/24(日) 16:05:37.46ID:???
>>830がエスパーなのはよく分かった
0832NAME IS NULL2012/06/24(日) 16:26:23.23ID:???
まあ、>>829 ぐらいは想像付くけど、「「失敗します」がどういう状態なのかも分からない」から
誰も答えようとしないんだろ。

要するに、答えが欲しけりゃ「質問する時は人に分かるように書くこと。」を実践しろってこった。

それぐらいエスパーでなくてもわかるだろ。
0833NAME IS NULL2012/06/24(日) 20:01:10.60ID:???
>>827
普通にできるから、できないならお前のプログラムが悪い
>>828
読解力なさすぎ
0834sage2012/06/25(月) 11:23:26.69ID:???
sqliteはDB全体を暗号化するような関数あったりしますか?
0835NAME IS NULL2012/06/25(月) 14:09:07.80ID:???
sqlite 暗号化 でググればわかるよ
0836sage2012/06/25(月) 17:23:16.30ID:???
SQLiteを使い始めたものです。
selectについて質問させてください。

部分一致検索をしたいのですが対象となるワードを%で囲むと一致しなくなります。
SQLiteでの検索では%による曖昧検索は使えないのでしょうか。
0837NAME IS NULL2012/06/25(月) 18:16:46.86ID:???
使えないか使えるかで言うと「使える」
君ができないからって「できないのでしょうか?」って言い方は
sqliteを見下しているように聞こえる

あなたの場合、環境を書いた上で
「曖昧検索のやり方がわかりません。どのようにするのでしょうか?」が正しい
0838NAME IS NULL2012/06/25(月) 18:25:29.49ID:???
like検索?
ftsでのmatch検索?
もわからん。。
ていうか環境はおろか、クエリも書かないってどないじゃ。
0839NAME IS NULL2012/06/25(月) 18:33:09.07ID:???
知らない間にエスケープされてたと推測
0840NAME IS NULL2012/06/25(月) 19:13:40.45ID:???
explainの読み方がさっぱりわかりません。
公式は英語だし・・・
なんか視覚的にわかるツールとかないでしょうか?
難しい情報はみてもわからないので
そのクエリが早かったか遅かったかだけを知りたいので
何msで結果が返ってきたとかそういう単純な情報がほしいです
0841NAME IS NULL2012/06/25(月) 19:35:32.49ID:???
>>840
そのクエリが何msで返ってきたかを計測すればいいと思うよ。
難しい情報を見て分からないなら、見て分かるようになるまで勉強しましょう。

あと、英語だから分かりませんは、たぶん通用しないよ。
0842NAME IS NULL2012/06/25(月) 19:43:57.70ID:???
cpu使用時間でいいのであれば
.timer on
実際の時間となると>>841だなぁ。
アプリで計測するか、シェルでtimeコマンド使うとか。

ただ、explainの結果くらいわかるようにならないと、
実行時間だけで見てると、クエリの潜在的な問題を見落とすことになるぞ。

ていうか、
意図したように実行させるクエリが書ければ、
explainの結果も自然と読めるようになると思う。

現在のRDB製品ではどうしても物理パスを意識しなければならないという、
SQL仕様自体の欠点だな。
0843NAME IS NULL2012/06/25(月) 19:54:30.32ID:???
>>841-842
ツールの類はないってことですね?

アプリケーションじゃ純粋な実行時間はわかりませんが
どちらが早いかの目安にはなるのでそれでいこうと思います

ていうかすごいですね
みんな読めるのが普通なのか・・・
僕にはアセンブラコードと変わらないよorz
0844NAME IS NULL2012/06/25(月) 19:56:59.86ID:???
自分がチューニングするしかない立場にいるのであれば、読めるようになるのは必須だけど、
英語きついお;;ってことは、そういう立場でもなさそうだし。
自分がやるしかないけど、勉強中なんだってことなら、ほかに優先すべき学習内容があるならそちらを優先してもいいと思う。
0845NAME IS NULL2012/06/25(月) 20:00:09.60ID:???
読めるのが〜、ってexplainの結果の話だと思った。
英語は俺も苦手だが、アメリカ人が作ってアメリカ人が保守しているものを使おうとしているんだから読む覚悟は必要。
0846NAME IS NULL2012/06/25(月) 20:12:49.84ID:???
え、explainの話でしょ?
08478422012/06/25(月) 20:37:38.20ID:???
あ、俺何か勘違いしてたかも。
explainててっきりexplain query planのことだと思ってたけど(これくらいなら誰でも分かりそうなのになぁと)
そっちのexplainのほうか。
確かに内部のopcodeとかここまではそうそう必要なさそうな気がする。
0848NAME IS NULL2012/06/26(火) 13:32:59.61ID:???
>>836
聞きたいのは部分一致検索?曖昧検索?
%による「部分一致」検索なら当然できるけど。
0849NAME IS NULL2012/06/26(火) 15:40:03.54ID:???
>>836
部分一致をしたいときは like を使うよ
0850NAME IS NULL2012/06/26(火) 16:40:41.12ID:???
ドリームジャーニーの種付けは何頭ぐらい終わったの?
0851NAME IS NULL2012/06/26(火) 16:41:44.43ID:???
すまん誤爆した。
0852NAME IS NULL2012/06/26(火) 19:31:36.89ID:???
LIKEに似たGLOBっていう演算子もあるね。
他のDBとは互換性ないけどね。
0853NAME IS NULL2012/06/29(金) 15:02:16.54ID:???
カラム列の中に含まれる文字データの文字数の最大文字数を取得剃る方法ないですか?
0854NAME IS NULL2012/06/29(金) 20:07:57.15ID:TKFPaofb
時間の比較をして今の時間より前の時間であればDELETEしたいと思っています。
$now_time = date('Y-m-d H:i:s');
$sql_delete = "DELETE from test_tbl WHERE limit < $now_time";
WHEREで一致したものを削除したいのですが、これではダメなようです。
SQLiteで時間の比較はどのように行えばよいでしょうか。
0855NAME IS NULL2012/06/29(金) 23:57:24.71ID:???
>>853
select max(length(カラム列)) from テーブル

だとダメなの?

>>854
delete from test_tbl where limit < datetime('now');

だとダメなの?
0856NAME IS NULL2012/06/30(土) 00:23:31.28ID:???
>>854
limit 列に入ってる文字列の書式
date 関数が返す文字列の書式
が示されないことにはねえ…
0857NAME IS NULL2012/06/30(土) 00:36:02.58ID:???
それ以前に、$sql_delete の内容確認した方がいいと思うぞ。
0858NAME IS NULL2012/06/30(土) 09:05:49.28ID:???
くぉーとしてないからってだけじゃないの?
0859NAME IS NULL2012/06/30(土) 09:12:06.88ID:???
ぶぉーとしていたんだな
0860NAME IS NULL2012/06/30(土) 19:19:35.61ID:???
>>854
LIMIT は予約語
日時の比較はjulianday()でepoch秒にしてから

CREATE TABLE tc (n TEXT, t DATE);
INSERT INTO tc VALUES('A', date('2021-12-21'));
INSERT INTO tc VALUES('W', 'now');
DELETE FROM tc WHERE julianday(t) < julianday('now');
SELECT count(n) FROM tc;
0861NAME IS NULL2012/07/01(日) 13:20:25.36ID:???
>>853です。
遅くなったけどありがとう。できました。
0862NAME IS NULL2012/07/01(日) 13:22:58.84ID:???
あ、>>855さんへ。
0863NAME IS NULL2012/07/01(日) 14:42:29.78ID:???
>>860
日付の文字列書式が合ってれば、わざわざ epoch 秒に変換しなくても文字列比較で良くね?
0864NAME IS NULL2012/07/01(日) 23:26:36.68ID:???
国が違うと面倒くさい
0865NAME IS NULL2012/07/02(月) 22:05:40.38ID:???
perl5.8.8でCGI作ってて不思議なことが起きたので知ってる人がいたら教えてください。
ビューからデータをSELECTする時、WHEREを使うとSQLite3.3.7でno such columnとか言われます。

CREATE TABLE test(a TEXT, b TEXT, c TEXT);
INSERT INTO test VALUES('123', '456', '789');
CREATE VIEW testview AS SELECT test.a, test.b, test.c FROM test;
SELECT * FROM testview WHERE a='123'; #←WHEREを入れるとaがno such columnって言われる
SELECT * FROM testview; #←WHEREを入れなければ問題ない

これはSQLiteのバグ?俺の頭のバグ?
自宅鯖(3.6.13)だと起きないんだけどレンタル鯖(coreserver.jp)が3.3.7だから困る…
0866NAME IS NULL2012/07/03(火) 01:22:26.26ID:???
>>865
test.a がまずいな
08678652012/07/03(火) 08:18:18.34ID:???
>>866
どうもありがとうです。
CREATE VIEW testview AS SELECT a, b, c FROM test;
にしたら、エラーは出なくなりました。
3.3.7では「テーブル名.カラム名」という書き方はNGなのかな。
いかんせんDB始めたてでまだまだよくわかってないです。
08688652012/07/03(火) 08:21:06.99ID:???
CREATE VIEW propview AS
SELECT tableA.fid, (略), tableB.year FROM tableA
INNER JOIN tableB
ON tableA.fid=tableB.fid

実際のビュー定義は結合を使ってるので、「テーブル名.カラム名」がNGだとさてどうしたものかと。
ビューを使わない方法を考えないといけないのかな…
0869NAME IS NULL2012/07/03(火) 09:07:30.82ID:???
[tb].cl
tb.[cl]
[tb].[cl]
上記[]を``にする

とかやっても駄目なの?
0870NAME IS NULL2012/07/03(火) 19:58:50.31ID:???
View 作るときの select test.a に
as a とかつけるんではいかんのか。
0871NAME IS NULL2012/07/03(火) 21:47:05.38ID:???
普段ROM専で忍法帖なんて持ってないから制限がきっつい…

>>869
全通り試してダメだったけど、想像で"tb.cl"ってやってみたら通りました。
でも単純なクエリなら期待通りに動作するけど不可思議動作することもちらほら。
3.6ではcl tb.cl "tb.cl"等の書き方によってなぜか結果が違ったり。
不思議です。
0872NAME IS NULL2012/07/03(火) 21:49:20.83ID:???
>>870
SELECT test.a AS a
で魔法のように解決してしまいました。
今日一日の苦労はなんだったのだ…

素人でごめん、どうもありがとうでした。勉強になりました。
0873NAME IS NULL2012/07/05(木) 10:45:13.81ID:???
ある整数型のカラムnumがあって、
その内容が、100以下の素数であるレコードだけ抜き出すために
SQLを簡潔に書く方法はありますでしょうか

where num=2 or num=3 or num=5 (略) num=89 or num=97
と書いてもいいんですが、
たとえば
where num={2,3,5,7,11,(略),83,89,97}
のようなまとめた書き方があったら教えてください
0874NAME IS NULL2012/07/05(木) 11:20:37.40ID:???
>>873
http://www.dbonline.jp/sqlite/select/index5.html
0875NAME IS NULL2012/07/05(木) 14:28:14.16ID:???
http://toro.2ch.net/test/read.cgi/db/1316769778/825-
http://toro.2ch.net/test/read.cgi/db/1298737360/873-
http://kohada.2ch.net/test/read.cgi/php/1340275027/215-
0876NAME IS NULL2012/07/06(金) 10:55:54.73ID:sgE42f78
iPhone用アプリとしてXcodeとSQLiteでメニューをデータベースにして、
オーダーエントリーシステムを作ろうと思っているのですが、
SQLiteのデータベースから特定の範囲を指定して呼び出す方法がありましたら
ご教授頂きたくお願い申し上げます。

具体的にはカテゴリーとして「パスタ」「サラダ」「ドリンク」等があり、
テーブルビューのリンクを、それぞれの名称にした上で、
そのカテゴリーの範囲内のみをリンクで表示する場合です。
0877NAME IS NULL2012/07/06(金) 13:05:39.37ID:???
>>876
select * from メニュー where カテゴリー = 'パスタ';
とか。SQL 勉強しなよ。
08788762012/07/06(金) 15:07:15.87ID:sgE42f78
>>877
早速ありがとうございます。


-(void)readWordFromDatabase {
db = [FMDatabase databaseWithPath:databasePath];
aryDatabase = [[NSMutableArray alloc] init];
[db setLogsErrors:TRUE];
[db setTraceExecution:TRUE];
if (![db open]) {
NSLog(@"Failed to open database");
return;
}
else {
NSLog(@"Openned database successfuly");
}
FMResultSet *rs = [db executeQuery:@"SELECT DISTINCT * FROM menu"];
while ([rs next]) {
//int aID = [rs intForColumn:@"id"];
int aPk = [rs intForColumn:@"pk"];
int aCategory = [rs intForColumn:@"category"];
int aPrice = [rs intForColumn:@"price"];
//int aCt = [rs intForColumn:@"category"];
NSString *aCtname = [rs stringForColumn:@"ctname"];
NSString *aName = [rs stringForColumn:@"name"];
singleStudent *sStudent = [[singleStudent alloc] initWithData:aPk :/*aID :aCt*/aCategory :aPrice :aCtname :aName];
[aryDatabase addObject:sStudent];
[sStudent release];
}
[db close];
}

今、現状がこうなっていのですが、イメージとしては、テーブルビューのメニューで、
データベースはひとつのファイルのまま、パスタ、サラダ、ドリン等のカテゴリーから
パスタを選ぶと、ペペロンチーノ、カルボナーラ、アンチョビとキャベツのパスタ
といった様に、各商品が選べる様にしたいのですが、現状で、パスタのメニューの数だけ、
パスタ、パスタ、パスタ、パスタ、パスタ、パスタ、パスタ、と表示されてしまうので、
カテゴリー毎にまとめられないかと思っていたのですが、可能でしょうか?
0879NAME IS NULL2012/07/06(金) 21:33:02.00ID:???
なんじゃこの質問の仕方

どこをポイントにしたいんだ?
クエリか?
テーブル構造か?
それともコードか?
最低でも現状のテーブル構造とか出せる情報は出してよ

普通はカテゴリマスタとメニュー商品マスタ作って結合するだろ
0880NAME IS NULL2012/07/06(金) 21:35:30.37ID:???
何をしていいか分かっていないんだろうねw
0881NAME IS NULL2012/07/06(金) 21:48:27.01ID:???
>>873-874
where とか in 句の数とかって上限なかったっけ?

100 までの素数ぐらいだったら大丈夫かな。

もっと大きいところまでやるなら、素数テーブルを用意して

select テーブル.* from 素数テーブル left join テーブル on 素数テーブル.素数 = テーブル.num;

とかかな。
0882NAME IS NULL2012/07/06(金) 23:31:15.02ID:???
sqliteLimit.h
# define SQLITE_MAX_SQL_LENGTH 1000000000
# define SQLITE_MAX_EXPR_DEPTH 1000

$ for i in {1..1000}; do stmt="${stmt} OR id = ${i}"; done
$ echo -n "SELECT name FROM people WHERE id = 0 ${stmt};" | sqlite3 entry.sqlite3
Error: Expression tree is too large (maximum depth 1000)

08838812012/07/07(土) 05:38:53.25ID:???
>>881
ぼけてるな > 俺
left じゃなくて、inner だった。

>>882
なるほど、1000 もあれば大抵大丈夫か。
0884NAME IS NULL2012/07/07(土) 07:18:02.18ID:???
>>878
あーわかった
メニューにはカテゴリ名が直接入ってて、それでグルーピングしたいってことね。

select カテゴリ from メニュー group by カテゴリ

アプリでもSQLでも出来るだろうけどカテゴリごとに件数数えるとかじゃなければ、
普通はカテゴリだけならカテゴリだけのテーブルから名前を持ってくる。
メニューのテーブルにはカテゴリの名は直接入れちゃダメ
そういうテーブル構成になってないんならそう作り直したほうが良い。
どうせ宿題でしょ?正規化とか結合でググるんだ

メニューテーブルmenu(メニューに関する属性のみ)
menu_id menu_name price menu_desc cat_id

カテゴリテーブルcategory(カテゴリに関する属性のみ)
cat_id cat_name

メニューを出す時にカテゴリ名も引っ張ってきたい時は結合を使う
select
menu_name,
cat_name
from
menu m left join category c
on m.cat_id = c.cat_id
where
price <= 2000
とか。俺だったらクエリで出来ることはなるべくクエリでやる。
0885NAME IS NULL2012/07/08(日) 00:28:32.91ID:O1K9KaSi
DATETIME型のレコードを使っていて、それを日別にカウントしたいとき
  GROUP BY date(ctime)
とすると、EXPLAINで見るとインデックスが使われずに full scan となってしまうのですが
良い方法ないでしょうか
0886NAME IS NULL2012/07/08(日) 03:05:44.63ID:???
どう考えてもフルスキャンが一番早いだろ
0887NAME IS NULL2012/07/08(日) 07:07:42.87ID:???
>>885
基準日からの日数列を作って、それで group by するとか。
0888NAME IS NULL2012/07/08(日) 15:40:31.69ID:???
MySQLだとちゃんとインデックス使ってくれるので、クエリプランナが弱いのかな
非正規化するしかないっすかねぇ
0889NAME IS NULL2012/07/08(日) 21:11:21.78ID:???
グルーピングの時にカバーリングインデックスが使えるならインデックス見たほうが早い。それだけですむから。
そうでなければ全体に対する必要部分の行数でどっちが早いか変わってくるでしょ。
アーキテクチャの違いもあるので、一概にインデックスさえ見れば早いということは言えんのだ。

0890NAME IS NULL2012/07/11(水) 16:45:44.22ID:???
autoincrementでつけた主キーをselect以外で取得する方法はありますか
0891NAME IS NULL2012/07/11(水) 16:46:16.33ID:???
主キーはインデックスが自動的につくられるんですか
0892NAME IS NULL2012/07/11(水) 17:41:31.35ID:???
>>890
select * from sqlite_sequence;
0893NAME IS NULL2012/07/11(水) 22:27:54.03ID:???
>>892
要件をよく読め

> select 以外
0894NAME IS NULL2012/07/12(木) 09:53:17.54ID:ynTShOVI
sqlite3のdbに " を含む内容を登録したいのですが " 以降が登録されません。
sqliteの中身は以下です。
$query = $con->prepare("SELECT * FROM sample WHERE list=?");
$query->execute(array($list));
$listの中身は"を何個か含む200文字程度の内容になります。
0895NAME IS NULL2012/07/12(木) 12:58:27.15ID:???
array の意味がわからん。
なんで $list 直接指定しないの?
08968942012/07/12(木) 13:06:39.03ID:+vrI1x3+
エスケープとかプレースホルダーを使っている場面やクエリーの増減があるため使いまわしていたためです。
特に問題がなかったのでarrayで渡してました。
0897NAME IS NULL2012/07/12(木) 13:22:53.93ID:???
なんで登録したいのに提示したSQLはselectなんだよw
0898NAME IS NULL2012/07/12(木) 20:12:52.12ID:???
>>896
>エスケープとかプレースホルダーを使っている場面やクエリーの増減があるため

文脈がよくわからん…
array 外すか array の中身を晒すかどっちかにしてくれ

>>897
ほんとだワロタw
それじゃ " 以降がどうこう以前に行自体登録できるわけないじゃん
0899sage2012/07/13(金) 09:26:52.79ID:???
仮にarrayの中身が
aaaaaaa"fuga"bbbbbbb
としたら\でエスケープしてもダメなんだっけ?
0900NAME IS NULL2012/07/13(金) 13:23:40.42ID:???
エスケープすれば問題ないし、プレースホルダ使ってればエスケープする必要もない
0901NAME IS NULL2012/07/13(金) 23:02:48.14ID:???
>>899
\ 自体も適切にエスケープしないといけないなど面倒だから、
使える環境ならプレースホルダ推奨。
0902NAME IS NULL2012/07/16(月) 01:05:37.73ID:???
主キーはお気に入りなんですよ。
だい主キー とか言ったりしてな!
0903NAME IS NULL2012/07/16(月) 18:13:28.29ID:???
かなり酒呑んでるようですがw
0904NAME IS NULL2012/07/17(火) 23:40:19.97ID:???
ちょいと質問してもいいかい?
0905NAME IS NULL2012/07/17(火) 23:50:24.59ID:???
何の用途でsqliteを使ってるの?ちょっとした自作プログラム用?
0906NAME IS NULL2012/07/17(火) 23:54:24.33ID:???
大企業の基幹システムで使っております
0907NAME IS NULL2012/07/18(水) 01:28:08.26ID:???
業務ではメールサーバのアクセスログ解析のための中間データ置き場として、
プライベートではTwitterの自作botの元データ蓄積場所として、
日々お世話になっております
0908NAME IS NULL2012/07/18(水) 04:17:23.46ID:???
C# SQLite

80台のパソコンで共有フォルダがあります
そこに1つのSQLiteDBファイルをおいて
80台のクライアントから10秒ごとにselectするのは無謀でしょうか?

データ更新は1日に20回くらいしかないのですが更新されたら即座に通知したいと思っています
0909NAME IS NULL2012/07/18(水) 09:44:44.36ID:???
テーブル設計、
データ量、
取得クエリ、
実行するマシンのスペックによって
余裕だったり、きつかったりするよ!
0910NAME IS NULL2012/07/18(水) 13:41:49.49ID:???
共有フォルダって、SQLiteのプログラム自体は各クライアントにあるの?
共有のシステムにもよるが多分破綻するぞ
0911NAME IS NULL2012/07/18(水) 13:50:16.03ID:???
素直にSQL Server Expressとか使えばいいのに
0912NAME IS NULL2012/07/18(水) 14:36:32.41ID:???
その規模だとタダでつかえるDBがたくさんあるのにSQLiteに固執する
意味がわからない
0913NAME IS NULL2012/07/18(水) 19:08:47.89ID:???
>>908
まずは用途と、SQLiteを使わないといけない理由を。

その上で、どうしてもSQLiteを使うなら、せめて各クライアントからは直接DBを叩かずにサーバ側のSQLiteで一括して処理するようにするべき。
80台のクライアントから同じ共有ファイルに同時アクセスし続けないといけない状況は、SQLiteと関係なく設計がまずい気がする。
0914NAME IS NULL2012/07/18(水) 21:22:22.25ID:???
ポーリングするより、イベントアラータのようなクライアントへの通知機能もったDB使った方がよいと思う。
09159082012/07/19(木) 01:39:41.71ID:???
実はSQLServer2008とVisualWebDeveloperで作成したものでデータ管理はしております

私はプログラム歴2年の新米なのですがデータ管理をするにあたって、
いろいろ調べていたらSQLiteを見つけました

インストールなし、ファイル1個、そのくせパワフル?、Androidに標準搭載
パソコンのOSで言ったらLinuxか?? みたいな感じで一目惚れでした

今回、管理するデータは重要な物でもないし量も多くないし
SQLiteを試してみよと思いいろいろ挑戦していた次第でした

多くのアクセスを使いこなすにはそれなりにハードルがあるんですね
でももうちょっと挑戦してみます
0916NAME IS NULL2012/07/19(木) 06:25:46.11ID:???
現状はWebサーバーがあってその上で走るCGIなりASPが SQL Server 2008 にアクセスするようなシステム構成なんですか?
09179082012/07/19(木) 12:58:02.39ID:???
>>916
1台のPCにSQLServer2008とIISをインストールしてそこにクライアントがIEでアクセスしてます
0918NAME IS NULL2012/07/19(木) 15:54:48.74ID:???
>>917
やろうとしている事を乱暴に言ってしまえば、
複数のSQL Serverインスタンスを用意して
全てのサーバーが一つのデータディレクトリを参照しているようなもの
読み取り専用としてならいいけど今回のケースなら止めて置いた方が…
0919NAME IS NULL2012/07/19(木) 23:51:45.86ID:???
いやいや
それなら行けるんじゃないか?
walモードが使えるから。
walなら更新は読み込みを阻害しないよ。
取り敢えずやってみて検証結果を教えて欲しいっ。
0920NAME IS NULL2012/07/19(木) 23:54:57.30ID:???
それならって言うのは現状と同じようにdbへのアクセスを一台のノードか代理する形ね
0921NAME IS NULL2012/07/23(月) 14:22:08.46ID:???
>>917の構成ならまあできないこともないが
最初の質問とちょっと形態が違うからなあ
0922NAME IS NULL2012/07/26(木) 16:54:14.10ID:/aBlwIAM
Sqlite3で以下のクエリで検索してます。

SELECT * FROM list WHERE sample=$sample and access=$access and level=$level LIMIT 1

この仲のaccessを曖昧検索に変えたいのですが曖昧検索ではLIKE と % を使用するというのを見ました。
複数条件があるWHEREの後にLIKEをどのようにつければいいのでしょうか?
0923NAME IS NULL2012/07/26(木) 18:03:51.74ID:D083zD7I
>>922
普通にaccess like $accessではいかんのか
$accessの中身を%文字%にするんだ
0924NAME IS NULL2012/07/26(木) 18:45:20.34ID:???
WHERE (access LIKE '%foo%' OR access LIKE '%bar%') AND level=なんたら
0925NAME IS NULL2012/08/02(木) 03:34:36.59ID:???
sqliteのintegerにunsignedを指定したいのですが不可能でしょうか?
0926NAME IS NULL2012/08/02(木) 06:04:37.73ID:???
制約
0927NAME IS NULL2012/08/05(日) 14:07:07.11ID:???
python3.2からsqlite3使ってたんだけど
text型のフィールドにYYYY-MM-DD形式の日付をinsertして
selectで取り出したらなぜか4桁になってた
両端にシングルクォーテーションつけ忘れてるだけだった……

sql = "insert into test values (2012-08-05)" #←x selectすると結果が1999になる
sql = "insert into test values ('2012-08-05')" #←o

実際は変数使ってるから解決するまでにすごい悩んだ
0928NAME IS NULL2012/08/05(日) 15:16:01.60ID:???
prepare使おうぜ
0929NAME IS NULL2012/08/05(日) 20:13:09.11ID:???
お前の父ちゃんは文字列連結でSQL文を作っちゃいけないということも教えてくれなかったのか?
0930NAME IS NULL2012/08/06(月) 09:05:35.56ID:???
SQLite ManagerでおもむろにDB設定をクリックしたら
ユーザーバージョンなる項目がありました
SQLiteでそれを変更したり参照する文があるのでしょうか?
バージョンはテーブルを作ってそこで管理していたので
デフォルトでそのようなものが用意されていたなら次からはそれを使おうと思うのですが
0931NAME IS NULL2012/08/06(月) 11:02:30.60ID:???
http://www.sqlite.org/pragma.html
の中の記述

PRAGMA user_version;
PRAGMA user_version = integer ;

で参照と設定ができるそうです
0932NAME IS NULL2012/08/07(火) 00:05:53.41ID:???
へ〜っ、こんな機能あるんだ。

通りすがりだけど、勉強になった、サンクス。
0933NAME IS NULL2012/08/09(木) 20:46:09.61ID:???
sqliteでtext型の漢字ソートってやっぱ厳しいですか?
普通にorder byしても思った通りにならず・・・
0934NAME IS NULL2012/08/09(木) 20:58:42.52ID:???
そもそも君が思っている漢字ソートってどんなのよ。

まさかと思うが、読みの順とかいいだすんじゃ…
0935NAME IS NULL2012/08/09(木) 21:00:00.50ID:???
>>933
どのDBMSでも漢字ソートには無理がある
0936NAME IS NULL2012/08/09(木) 21:04:08.40ID:???
そのとおりです読みの順番です
やっぱ膨大な辞書DBでもないと無理ですよね
なんか関数を組み込めるらしいので出来たりしないかなと思ったのですが
0937NAME IS NULL2012/08/09(木) 22:20:29.57ID:???
>>936
漢字コードの並びはJIS第一水準が音読みで第二水準が部首順じゃなかったかな。
だから読みで並べるのは無理だし、漢字には複数の読み方があるので
期待通りには並ばないな。

素直にフリガナ付けてそっちでソート
0938NAME IS NULL2012/08/10(金) 05:28:19.10ID:???
>>936
> やっぱ膨大な辞書DBでもないと無理ですよね

>>937 も書いてる通り、「漢字には複数の読み方がある」から根本的に無理。
特に人名は顕著だし。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1238067142

たまに間違えてもいいなら、膨大な辞書もって統計的に推定する方法が取れ
るかもしれないが。
0939NAME IS NULL2012/08/10(金) 10:05:53.54ID:???
ふつうに考えれば音訓複数の読みがある上に複合語では同じ単語でも読みが異なるとか
そのままソートが不可能だと思わないのかな?
0940NAME IS NULL2012/08/10(金) 10:47:54.29ID:dgVF/wY5
老舗と世論が並んでたらどっちが先にくるのかっていう
0941NAME IS NULL2012/08/10(金) 11:22:23.57ID:???
>>939
漢字列でソートしてくれなんて要求が有ったら
脊髄反射レベルで断る。
0942NAME IS NULL2012/08/10(金) 12:41:38.02ID:???
日本向けにカスタマイズされた日本製RDBMSでもあれば
そういう機能も組み込んでるでしょう
まあたぶんないけど
0943NAME IS NULL2012/08/10(金) 13:17:36.07ID:???
>>940
?と思ったけど「ろうほ」なんて読み方有るんだな、知らなかった。
0944NAME IS NULL2012/08/10(金) 13:27:16.96ID:dgVF/wY5
浅草と浅草寺とか
0945NAME IS NULL2012/08/10(金) 13:42:11.42ID:???
>>942
組み込んでるも何も、原理的に無理という話なんだが。
0946NAME IS NULL2012/08/10(金) 15:03:22.17ID:???
原理的に無理じゃない
作ろうと思えば作れる
0947NAME IS NULL2012/08/10(金) 15:20:50.22ID:???
じゃあ >>240 の分だけでいいから、作ってみなよ。
0948NAME IS NULL2012/08/10(金) 15:44:23.82ID:dgVF/wY5
藤村俊二と島崎藤村とか
0949NAME IS NULL2012/08/10(金) 21:38:08.93ID:???
>>946
漢字の1〜n個の全ての組み合わせのソート用辞書を作れば不可能ではないな。
そんなんやるんなら素直にふりがな付けます。
0950NAME IS NULL2012/08/10(金) 21:56:43.55ID:???
>>949
その組み合わせのどれを選択するつもりなんだよ…。

ネタで言ってるんじゃないなら、まじでプログラマー向いてないと思うぞ。
0951NAME IS NULL2012/08/11(土) 14:01:32.87ID:???
>>949
>>940はどうすんだよ、池沼
0952NAME IS NULL2012/08/11(土) 16:44:51.06ID:???
>>950
漢字の全ての組み合わせに決まっておろうw
組み合わせの結果、存在しない熟語も含めて全てふりがな辞書を作る。

JIS第1と第2で6,355文字あるので10文字の組み合わせだけでも
107437414620186645551479209503916015625通り

計算違うか?w
今のハードでは無理だな
0953NAME IS NULL2012/08/11(土) 16:52:52.12ID:???
>>952
熟語の振り仮名が一つじゃないって言う例が >>940 に書いてあるんだが…
0954NAME IS NULL2012/08/11(土) 17:33:11.66ID:???
プログラマーに向いているとかの前に日本人じゃないんだろう。漢字を知らないとしか思えない。
0955NAME IS NULL2012/08/11(土) 17:55:25.89ID:???
>>953
そういうのは普通のアプリ開発でも制限事項とするだろう。
それが許容されるかどうかは >>933 の顧客(?)の要求仕様次第。
0956NAME IS NULL2012/08/11(土) 17:56:51.51ID:???
>>954
漢字を知らない連中がユニコード作っちゃったわけだが
0957NAME IS NULL2012/08/11(土) 18:42:07.46ID:???
>>955
複数の読み方がある熟語は入力禁止とか? (w

これを「制限事項」とか言ってくるベンダーいたら今後取引しないよ。
0958NAME IS NULL2012/08/11(土) 19:18:02.08ID:???
世論はせろんでもよろんでも意味は同じだが
追従はついしょうとついじゅうで意味が異なる。
困ったなw
0959NAME IS NULL2012/08/11(土) 21:16:49.53ID:???
>>933-958
板違い。SQLiteどころかデータベース関係ないし。

続きは↓あたりでどうぞ。

・プログラム技術
 文字コード総合スレ part7
 http://toro.2ch.net/test/read.cgi/tech/1306595564/
0960NAME IS NULL2012/08/11(土) 21:18:18.91ID:???
>>957
なんでやねん
片方の読みに統一やがな

>>958
『追従』だけでてきたら何かわからんがな

>>952 にあるような天文学的組み合わせが出てきた時点でネタ確定ですがな
おまえら暇なんやのぅ
0961NAME IS NULL2012/08/12(日) 08:39:04.56ID:???
>>959
ORDER BYの話題だろ
0962NAME IS NULL2012/08/12(日) 17:24:37.04ID:???
ORDER BYの話題になってないって話でしょ。
0963NAME IS NULL2012/08/12(日) 20:58:14.31ID:???
これ任意のソートってできないの?
0964NAME IS NULL2012/08/13(月) 00:33:33.79ID:???
「任意のソート」とか言う、オレオレ用語をちゃんと定義してくれ。
0965NAME IS NULL2012/08/13(月) 01:28:27.32ID:???
つまりオレオレ並べ替え。
一行目を二行目と三行目の間に突っ込むとか。
0966NAME IS NULL2012/08/13(月) 01:37:23.98ID:???
Excel でも使っとけ。
0967NAME IS NULL2012/08/13(月) 07:53:51.50ID:???
みんな難しい事考えてるのね
0968NAME IS NULL2012/08/13(月) 08:54:20.50ID:???
× 難しいこと
○ アホなこと
0969NAME IS NULL2012/08/13(月) 09:01:17.16ID:???
おまえらしょうもないスケージュール管理とかそんなことしかやってないの?
0970NAME IS NULL2012/08/13(月) 09:07:04.84ID:???
ちょと何言ってるかわかんない
0971NAME IS NULL2012/08/13(月) 10:06:11.02ID:???
ORDER BY に延々と書けば好きな順番にできるw
0972NAME IS NULL2012/08/13(月) 10:24:19.03ID:???
夏休みで空気脳が降臨しましたw
0973NAME IS NULL2012/08/13(月) 11:04:10.00ID:???
日本脳炎ですね
0974NAME IS NULL2012/08/13(月) 11:40:26.14ID:???
>>971
>>933を解決してください。
0975NAME IS NULL2012/08/13(月) 11:56:49.81ID:???
>>974
>>963へのレスだよ。
同じ読みは人間でも区別付かないから無理だろ。

任意の順番なら、 ORDER BY num = 15 DESC, num = 3 DESC , ・・・
とかつなげりゃ好きな順番にできる。
0976NAME IS NULL2012/08/13(月) 11:58:01.64ID:???
×同じ読み
○漢字の読み

ミスった
0977NAME IS NULL2012/08/13(月) 12:28:32.00ID:???
>>971
一行目、二行目、三行目を識別するフィールドが無い場合は?
>>963 みたいな奴は、そういうテーブルでも何とかしろとか言うぞ。
Excel はできるからな。(w
0978NAME IS NULL2012/08/13(月) 13:46:16.75ID:???
識別するフィールドとかそういう専門用語はわからないけど個別にidならふってるよ
0979NAME IS NULL2012/08/13(月) 14:50:46.24ID:???
カードのシャフルみたいにidとか関係なく何枚目を何枚目の後に移動とかそういう事じゃないの?
0980NAME IS NULL2012/08/13(月) 15:14:19.82ID:???
だからそう言ってんじゃん
0981NAME IS NULL2012/08/13(月) 15:19:58.81ID:???
978を読めよ
0982NAME IS NULL2012/08/13(月) 21:30:14.97ID:???
このスレきもすぎ
0983NAME IS NULL2012/08/13(月) 23:00:13.37ID:7Zv3PRLA
というか文字列型って単なるbinary string扱いなんだよな

substr() がマルチバイト対応されてないので、五十音索引ページとか作ろうとすると、
アプリ側でもう一度集約処理してあげないといけなくて、うへぇ。。
0984NAME IS NULL2012/08/14(火) 21:41:33.98ID:???
ふり仮名データみたいなのを一緒に持たせないときびしい
0985NAME IS NULL2012/08/15(水) 02:56:06.09ID:???
>>983
> substr() がマルチバイト対応されてないので

http://www.sqlite.org/lang_corefunc.html
substr(X,Y,Z): If X is a string then characters indices refer to actual UTF-8 characters.

> create table t (name text);
> .separator '\n'
> .import test.txt t1 -- test.txt は、このスレの内容を utf-8 で保存したもの。
> select substr(name, 1, 1), count(*) from t group by substr(name, 1, 1) order by count(*);
...
"お",94
"な",96
"あ",102
"ど",110
s,128
h,130
"こ",136
S,178
9,194
4,222
6,226
5,228
7,228
8,230
2,240
3,248
1,260
"そ",272
>,724
"",1562
レス数が950を超えています。1000を超えると書き込みができなくなります。