SQLite 9

このエントリーをはてなブックマークに追加
1NAME IS NULL
サーバの要らない軽量データベース SQLite についてのスレです。

SQLite Home Page
http://www.sqlite.org/
2NAME IS NULL:2011/02/27(日) 01:23:27.45 ID:???
3NAME IS NULL:2011/02/27(日) 01:23:37.18 ID:???
ツール等

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
4NAME IS NULL:2011/02/27(日) 01:23:47.26 ID:???
ネタ

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
5NAME IS NULL:2011/02/27(日) 01:23:55.79 ID:???
和書

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

そーいや、昔は毎日のようにファイル壊れてたAccessも、最近はてんで壊れなくなったなァ…
いや、Accessが良くなった訳じゃないけど。
スレチ杉スマソ
147NAME IS NULL:2011/05/18(水) 04:48:48.32 ID:???
ならACCESSでやれよ無能
148NAME IS NULL:2011/05/18(水) 11:06:01.38 ID:???
>>145
消えろ
149NAME IS NULL:2011/05/19(木) 00:46:57.43 ID:???
>>147
要はAccessが使いにくいから、SQLiteで代用できんかって質問だろw
150NAME IS NULL:2011/05/19(木) 14:34:05.77 ID:???
>>149
そう思ってたら輪をかけてSQLiteがひどいことが判明した
ってとこですよね。
151NAME IS NULL:2011/05/19(木) 15:34:30.97 ID:???
なにをいってるだ
馬鹿じゃないのか?
152NAME IS NULL:2011/05/19(木) 15:57:10.42 ID:???
>>151
馬鹿はあなたですよ。ふふっ
153NAME IS NULL:2011/05/19(木) 16:30:09.82 ID:???
>>152
馬鹿はあなたですよ。ふふっ
154NAME IS NULL:2011/05/22(日) 19:20:36.24 ID:???
          / : : : : : : : : : /: : : : : :` : : : : : ヽ:\
       // : : : : : : : : : /\ : : \: : : : : : : : 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| ,ィー…<   /       \: : /   /
155NAME IS NULL:2011/05/22(日) 22:11:58.40 ID:???
円環さんは理に還ってくれ
156NAME IS NULL:2011/05/24(火) 16:06:03.32 ID:???
SQLiteファイルを分割保存して、一つのSQLとして処理する方法はないでしょうか?
157NAME IS NULL:2011/05/24(火) 18:49:17.52 ID:???
>>156
アタッチできますよ。
158NAME IS NULL:2011/06/05(日) 07:56:33.34 ID:zgB9UHdm
ほしゅ
159 忍法帖【Lv=35,xxxPT】 :2011/06/05(日) 11:41:52.36 ID:???
a
160NAME IS NULL:2011/06/07(火) 15:30:44.24 ID:js37uI9c
環境
MacOSX
sqlite3
apache2
perlでCGI
DBD::sqlite
というDBにコネクトしてる状態で
my $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
などinsert文を実行しようとしたらエラーがでます、select文などは問題ないのですがいったい何が原因なんでしょうか?
161NAME IS NULL:2011/06/07(火) 15:56:20.23 ID:???
アクセス権とか?
162NAME IS NULL:2011/06/07(火) 21:46:42.26 ID:???
>>160
エラーが出ますって
エラーメッセージって出ないの?
163NAME IS NULL:2011/06/07(火) 23:41:45.42 ID:???
>>162
エラーメッセージは出てないんじゃないかな、たぶん
エラーメッセージの出し方から教えてあげるといいよ
164NAME IS NULL:2011/06/08(水) 00:21:54.87 ID:???
$dbh->do($insert) or die $dbh->errstr;
でerrorlogをチェックするとか、
$dbh->trace(1, 'trace.log');
でログを吐くとか。
165NAME IS NULL:2011/06/08(水) 00:49:40.12 ID:???
環境
sqlite3
Android2.2

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

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

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

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

見たまんまなわけだが。
169NAME IS NULL:2011/06/08(水) 13:03:26.83 ID: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
170NAME IS NULL:2011/06/08(水) 13:05:33.32 ID:yzo9cLWq
そして14行目です
my $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
171NAME IS NULL:2011/06/08(水) 13:12:20.28 ID:???
自分でデバッグする気はないようだなw
172NAME IS NULL:2011/06/08(水) 13:12:35.06 ID:???
いや、そこだけ見せられてもw
DBIで宣言したsqliteのDBファイルが存在しないんじゃないの?
173NAME IS NULL:2011/06/08(水) 20:05:30.16 ID:???
Google翻訳:
失敗し、実行:*** cgiの14行でdbdimp.c403行でデータベースファイル(14)を開くことができません
174NAME IS NULL:2011/06/14(火) 00:56:06.64 ID:???
ちょっと教えてください
phpで@sqlite_openで作ったファイルをPupSQLiteで開こうとすると
暗号化されたファイルです。とか出て開くことができませんが、sqlitecc3jだと普通に開けます。
で、PupSQLiteでファイルを作成して、@sqlite_openで読もうとするとエラーになってしまいます。

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

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

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

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

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

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

なお、SQLiteデータ格納部分のファイル形式は、何か詳細なイメージがあるわけではなく、
アプリケーションから読み込み、最終的にsqliteのAPIから使用できれば何でも良いと考えています。
186NAME IS NULL:2011/06/20(月) 21:48:44.68 ID:???
わざわざ内包する意味は?
どうしても内包したいんだったら、起動時に/tmpにでもコピっとけよ
187NAME IS NULL:2011/06/20(月) 21:52:58.16 ID:???
>>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って文字列を渡せばよかったはず(うろ覚えなのでドキュメントで確かめてね)
188187:2011/06/20(月) 21:57:32.48 ID:???
ちなみに、ここまでするメリットがあるかどうか分かりません。

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

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

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

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

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

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

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

>>194補足
↑のイメージならin-memory dbをそのままダンプしてやってファイルに収める仕掛けを実装すれば
いけるんじゃネーノ?とか思ってるけどsqlite.cを読んだことがないヘタレだから出来るのかはワカランorz
196NAME IS NULL:2011/06/22(水) 01:40:33.29 ID:???
>>194-195
昔DRHが近いネタをsqlite-usersに書いてたような気がする。
記憶違いだったらすまん。
197NAME IS NULL:2011/06/22(水) 17:48:46.52 ID:???
>>191
DBサイズが固定なら出来る
サイズが変更されるなら当然無理
198NAME IS NULL:2011/06/22(水) 17:51:13.07 ID:???
プログラムの改造無しでやる方法を思いついた
Linux限定だけど
199NAME IS NULL:2011/06/22(水) 19:58:32.98 ID:???
開発環境 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)
200NAME IS NULL:2011/06/22(水) 22:21:20.96 ID:???
osのファイルキャッシュに載せるんだろ?
201NAME IS NULL:2011/06/22(水) 22:22:07.45 ID:???
しまた
>>198
202NAME IS NULL:2011/06/22(水) 22:27:07.50 ID:???
ん、何かちんぷんかんぷんなこと言ってるな俺
203NAME IS NULL:2011/06/22(水) 22:28:17.75 ID:???
>>197
ヘッダフッタがあるから問題なくね?
普通にできると思うけど全体で見たら遅すぎて話にならない
204NAME IS NULL:2011/06/22(水) 22:34:44.79 ID:???
その部分だけinmemoryDBに載せられるんなら速度は気にするほどでもないような?
205NAME IS NULL:2011/06/23(木) 00:41:08.76 ID:???
どうしても独自フォーマットのファイルを使いたいなら
SQLをdumpして保存したらいいよ。圧縮くらいはしたほうがいいかもな
使うときは、:memoryにimportね
206NAME IS NULL:2011/06/23(木) 19:40:16.74 ID:???
>>205
毎回DB作り直すのかよ
207NAME IS NULL:2011/06/25(土) 03:25:45.33 ID:???
>>191
普通に独自ファイルデータとやらをSQLiteDBに突っ込めよ糞ウンコちゃん
208NAME IS NULL:2011/06/25(土) 12:29:25.66 ID:???
>>206
インメモリDBなら当然だろ。
209NAME IS NULL:2011/06/25(土) 12:30:11.54 ID:???
>>207
頭悪そうw
210NAME IS NULL:2011/06/25(土) 21:27:06.64 ID:???
独自データのファイルサイズにもよるから一概に言えないど、
ひとつの方法ではあると思うぞ。

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
したら思った通りに動いた。色んなものが消えたけど
380NAME IS NULL:2011/09/15(木) 16:40:19.72 ID:???
それで何時間無駄にしてるんだろう
381NAME IS NULL:2011/09/15(木) 19:46:46.63 ID:???
ヒントを全部与えられているんだから自己解決とは言わないだろ・・・w
382NAME IS NULL:2011/09/15(木) 21:09:24.32 ID:???
お前らオッサンの癖して揚げ足取りなんて大人気ないな
383NAME IS NULL:2011/09/15(木) 22:10:15.98 ID:???
だいにんきと読んでしまったw
おとなげないか?
384NAME IS NULL:2011/09/21(水) 23:36:46.60 ID:???
3.7.8
385NAME IS NULL:2011/10/01(土) 00:36:05.63 ID:???
>>5 の「SQL辞典」ですが、第2版が出てました。
立ち読みでパラパラと見てみましたが、
SQLite の関数の章の記述が幾分増えているようです。

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

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

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

長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
387NAME IS NULL:2011/10/20(木) 06:33:47.96 ID:fKz8HpBa
CREATE TABLEするときの、カラムの型指定で、
http://www.sqlite.org/syntaxdiagrams.html#type-name
↑の、
・型名が複数続くケース
・型名の後に(signed-num)が続くケース
・型名の後に(signed-num, signed-num)が続くケース
って何に使われるんでしょう?
388NAME IS NULL:2011/10/22(土) 21:29:55.50 ID:???
よろしくです
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
アドバイスおながいします
389NAME IS NULL:2011/10/23(日) 02:05:49.31 ID:???
>>388
インポートのやり方が間違っているか
取得の方法が間違っているか のどちらかです。
390NAME IS NULL:2011/10/23(日) 13:34:53.73 ID:???
バージョンとやったこと全部書かないとな
391NAME IS NULL:2011/10/23(日) 18:44:19.13 ID:???
うーむ軽量ねぇ
392NAME IS NULL:2011/10/23(日) 18:47:26.89 ID:4TwsFYCq

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

件数が万単位になると急激に劣化するとか
糞すぎて使い物にならんね
さっさとほかのDBの検討したほうがマシだ
423NAME IS NULL:2011/10/24(月) 23:19:17.77 ID:???
>>422
包茎くん、乙
424NAME IS NULL:2011/10/24(月) 23:20:32.48 ID:0tWsNn64
しかし件数が万単位になると急激に劣化するとか
どうなってるんだろうな?
驚くばかりだ
他のDBと比較すると歴然とする
実用に耐えれん
425NAME IS NULL:2011/10/24(月) 23:25:17.82 ID: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
こういう奴ですね。
結局、こっちも内部の型に変換されるだけで意味はないようですが
426NAME IS NULL:2011/10/25(火) 00:48:54.33 ID:???
>>424
サードパーティ製の怪しいJDBCドライバを使っておきながら、原因の切り分けもしないで
SQLiteが糞すぎるの何のアホなこと言うから、主キー云々のアホな回答しか帰ってこなくなる。

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

はぁ?W

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

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

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

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

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

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

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

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

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


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





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

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

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

455NAME IS NULL:2011/10/25(火) 19:30:46.17 ID:gceqE9iT

どうしてだろうな?

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

単純に件数が多いから?

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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



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

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


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





461NAME IS NULL:2011/10/25(火) 22:28:52.34 ID:gceqE9iT
>>459

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

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



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


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


sqlitejdbc.dll

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

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


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

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


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





463NAME IS NULL:2011/10/25(火) 22:36:26.14 ID:gceqE9iT


まぁソースがあるから

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

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

464NAME IS NULL:2011/10/25(火) 22:44:28.34 ID:???
朝から晩までご苦労様です
465NAME IS NULL:2011/10/25(火) 22:52:50.90 ID:???
ふと思うんだが、Oracleってまだ結構使われてるの?
金融系でもMySQLとか増えてるし、KVSにも流れてるし
466NAME IS NULL:2011/10/25(火) 23:36:41.09 ID:???
>>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クエリにネックがある可能性もあるが、
再現ソースが無いなら、そこに問題が無いことの証明と、ネタじゃないことの確認ができないから、やっぱりネタ乙。

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

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

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


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

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

脳みそ入ってますか?w


確実に糞dbのせいだぞw

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

dllも糞なのか知らんが

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




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


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


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

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

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


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

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

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


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

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


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

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

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

たった数万件だぜ!

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


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

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

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

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

マジで使う気がしないわ

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

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

もうすぐ増えると思うが


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


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

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

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

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

信者はツライなぁww



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

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

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


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

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

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


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


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

俺が間違ってたよ

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

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

ざまぁwww

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

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


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



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

ないてるのか?ww


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


はぁ・・・

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


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

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

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


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

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


492NAME IS NULL:2011/10/26(水) 07:18:06.98 ID:???
だんだん面白くなってきた。
このままずっと続けていって欲しい。
493NAME IS NULL:2011/10/26(水) 07:26:18.32 ID:???
なんか開発してるみたいだけど
その生産力の無さに驚くわ
494NAME IS NULL:2011/10/26(水) 08:01:37.43 ID:???
>>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
495NAME IS NULL:2011/10/26(水) 12:49:43.80 ID:???
というかoracleとsqliteの二択ってどんな案件
496NAME IS NULL:2011/10/26(水) 12:54:54.20 ID:???
pure java のファイルDBってなかったっけ?
497NAME IS NULL:2011/10/26(水) 12:56:10.23 ID:???
oracleは別立ての鯖で動いてるってオチじゃなかろうな。
498NAME IS NULL:2011/10/26(水) 22:03:31.63 ID:???
20万件ほどのデータに対して、主キーに条件を入れて検索したら、瞬殺だよ。
ちなみに、ODBC経由。
javaは知らん。
どうせvacuumやreindexとかやってないんだろ。
499NAME IS NULL:2011/10/26(水) 22:23:10.63 ID:???
>>496
いくらでもあるよ。
500NAME IS NULL:2011/10/27(木) 11:12:09.78 ID:VqqPO7vL
H2

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

問い合わせ一瞬

501NAME IS NULL:2011/10/27(木) 11:13:28.88 ID:VqqPO7vL

おらくる
H2


一瞬だった


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



使い門にならんよ

502NAME IS NULL:2011/10/27(木) 11:21:50.87 ID:VqqPO7vL


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


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

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


間違いなく

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


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

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

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


H2

5万件データ

初回問い合わせ 0.5秒

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



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



507NAME IS NULL:2011/10/27(木) 16:57:09.01 ID:VqqPO7vL


さて
糞dbは?


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


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


508NAME IS NULL:2011/10/27(木) 16:58:05.37 ID:VqqPO7vL



全くロジックは同じ


・Oracle さすがの一瞬


・H2意外に高速



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


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


509NAME IS NULL:2011/10/27(木) 17:03:55.59 ID:VqqPO7vL


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

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

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


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

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


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

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


513NAME IS NULL:2011/10/27(木) 21:46:11.95 ID:???
     /: : : : : __: :/: : ::/: : ://: : :/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   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
514NAME IS NULL:2011/10/27(木) 21:47:25.59 ID:???
おい・・・
まさか延々とつぶやいていたのは状況を説明していたつもりだったのか・・・
515NAME IS NULL:2011/10/27(木) 22:00:11.98 ID:???
糞なら使うなよ。いつまでも、未練がましい。
516NAME IS NULL:2011/10/27(木) 22:14:01.51 ID:???
だからネタにマジレスするなよ。それこそ荒らしの思う壷。
517NAME IS NULL:2011/10/28(金) 00:00:52.79 ID:???
道具も使う側次第ってのはITいりゃすぐわかると思うんだがな〜
518NAME IS NULL:2011/10/28(金) 00:26:57.83 ID:???
適材適所
SQLiteはどの環境でもすぐ使える手軽さだけで十分
中規模以下のアプリケーションにしか使わないし問題ない
519NAME IS NULL:2011/10/28(金) 00:54:15.68 ID:???
他に話す事もないんだよな
大抵の疑問点は本家で解決するから
そんな物にも躓ける ID:VqqPO7vL がうらやましい
520NAME IS NULL:2011/10/28(金) 08:31:43.42 ID:rXEAeOdb
使いこなす?w

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

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

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

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


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

525NAME IS NULL:2011/10/28(金) 18:33:31.48 ID:rXEAeOdb

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

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

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

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

ここの馬鹿住民に

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


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


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

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

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

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


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



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


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




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


おrくるのPより






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

好きに解釈してくれ

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



糞dbを使いながら


楽しいか?



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



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


これほど糞dbははじめた


糞すぎるな信者も糞だ




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


さて糞db信者の諸君



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




馬鹿馬鹿しいよ

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


そろそろ


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



だって糞なんだもん


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


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


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


残念だが



おらくるPtosite


もう・・・



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


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

このザマですか?


糞dbすぎるんだが

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


驚くなよ

おれがPだからと言って

そりゃマスタだからね


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



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


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

糞dbは知らんのだよぉ

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

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

困ったなぁ


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

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


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


おらくるPの俺


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

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

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

糞db

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

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

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

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


それ言うか世w

板ww
ぐさっときたぞぉ

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

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

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

ふぁふぁふぁ

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

糞db
全く使えん

どうして・・・

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

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


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

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

使えないdb

誰が何とかしてくるのか

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

さぁ立ち上がろう、

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


なんでこんなに糞なの?


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

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

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

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

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

素晴らしいdbですよ

本当に層思います

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

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

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


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

582NAME IS NULL:2011/10/30(日) 20:03:21.75 ID:VHdVZn4y

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

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

だから我慢しなきゃ

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

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

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

もう限界だわ

見切りつけていいかな?


我慢の限界だわ

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

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

何で糞なんだろうな

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

いい加減にしないと

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


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

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

糞dbなんて嫌いだからね


俺をNGにしたら

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


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


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

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


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


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


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

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

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

598NAME IS NULL:2011/10/31(月) 23:44:49.82 ID:y87CNCpL

懐かしいなぁ

試験受けた

今は昔


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

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

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

601NAME IS NULL:2011/11/01(火) 18:31:08.64 ID:???
いつ取ったの? 9i?
602NAME IS NULL:2011/11/01(火) 22:06:08.72 ID:???
おらくるPさんはもう僕のSQLiteたん罵ってくれないの?
603NAME IS NULL:2011/11/02(水) 07:01:08.55 ID:???
くるくるPさん…ハァハァ
604NAME IS NULL:2011/11/03(木) 01:09:02.98 ID:???
おらおらPさん…ハァハァ
605NAME IS NULL:2011/11/03(木) 14:41:37.76 ID:???
おくらるPさん…ハァハァ
606NAME IS NULL:2011/11/03(木) 23:56:22.55 ID:???
おらくるサボんなよ!
607NAME IS NULL:2011/11/04(金) 22:19:03.81 ID:???
僕のSQLiteたんのこと相手してくれないおらくるPさんなんかもうキライだ!
608NAME IS NULL:2011/11/05(土) 00:35:56.19 ID:???
きらいきらい!
609NAME IS NULL:2011/11/06(日) 21:42:13.03 ID:???
2011 November 1
3.7.9
610NAME IS NULL:2011/11/07(月) 00:10:54.99 ID:???
まあ、DB知らないやつなんだから、何ほざいても、負け犬Pは仕方が無い。
611NAME IS NULL:2011/11/07(月) 05:17:22.84 ID:???
DBってな〜に
612NAME IS NULL:2011/11/07(月) 21:42:02.89 ID:???
>>611
不便で高速なエクセル
613NAME IS NULL:2011/11/07(月) 23:01:43.58 ID:???
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つ作ってみたりしてみましたが今より遅くなってしまいました。

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

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

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

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

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

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

COMMIT TRANSACTION tran1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

PupSQLiteとかWindowsのPHP(pdo)だとエラーにならないんだけど
レン鯖のPHPからだと「そんなカラムねーよ!」っていうエラーになる(´д`;)
727NAME IS NULL:2012/03/19(月) 18:41:11.37 ID:???
実行環境の情報を隠す悪い子には教えてあげますん
728NAME IS NULL:2012/03/19(月) 18:48:41.70 ID:???
>>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
729NAME IS NULL:2012/03/19(月) 20:49:14.25 ID:???
で。エラーメッセージと再現コードは…?
730NAME IS NULL:2012/03/19(月) 21:36:01.52 ID:???
ttp://mindia.jp/book/dobby/keyword/SQLite
同じようなエラーの人いました
731NAME IS NULL:2012/03/20(火) 16:53:44.07 ID:???
小数点ありの数字をINSERTしてSELECTするとマイナスとか付いた文字列に変換されるのだけど仕様ですか?
732NAME IS NULL:2012/03/20(火) 17:49:47.26 ID:???
>>731
REAL型? 普通に使えてるけどなぁ。プログラムの中で変なキャストしてるとか・・・
733NAME IS NULL:2012/03/20(火) 18:01:25.14 ID:???
どもです。
REALも試したけれど、コールバックのchar **columnValuesにマイナスとか付いたのが返される。
ORDER BYで降順にならない
734NAME IS NULL:2012/03/20(火) 18:06:30.41 ID:???
ソース見たらすべて解決するだろ
再現する最小のソースでいいから出してみ
735NAME IS NULL:2012/03/20(火) 20:43:29.77 ID:???
ありがと
事故解決できました。
あまりにも恥ずかしいミスをしてた、、、orz
736NAME IS NULL:2012/03/20(火) 20:47:06.10 ID:???
ここにどんなミスだったか書いてくれると、今後同じバグを出した人の参考になる。かもしれない。
737NAME IS NULL:2012/03/20(火) 21:24:10.36 ID:???
仕方ない、あまりにも初歩的なミスで恥ずかしいけど
//#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %d)" <-- ミスです
#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %f)"
738NAME IS NULL:2012/03/21(水) 00:36:34.18 ID:???
イシンバエワ思い出した
739NAME IS NULL:2012/03/21(水) 06:08:31.62 ID:???
どんまいw このスレに人がいるだけで嬉しい( ´∀`)
740NAME IS NULL:2012/03/21(水) 19:48:56.37 ID:Ny2BPNOP
例えば

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

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

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

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

767NAME IS NULL:2012/04/18(水) 01:30:07.57 ID:???
むう個別にINSERTするようにしたら動いたんで対応してないのかな・・
768NAME IS NULL:2012/04/18(水) 02:28:58.65 ID:???
通常はprepared使うもんじゃないだろうか
769NAME IS NULL:2012/04/18(水) 02:51:21.72 ID:???
>>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.
770NAME IS NULL:2012/04/18(水) 03:33:20.93 ID:???
>>768
てっきりBEGIN〜COMMITで囲めばいいと思ってました
preparedってこういう時に使うんですね。勉強になります

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

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

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

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

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

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

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

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

・実装済み
Oracle
DB2
SQLServer
Sybase
PostgreSQL
Firebird

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

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

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

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

環境はSQLite3 / PHP5.3 / CentOS6.2
817NAME IS NULL:2012/06/20(水) 17:19:47.34 ID:???
818NAME IS NULL:2012/06/20(水) 18:00:32.58 ID:???
たまにじゃないだろ
819sage:2012/06/20(水) 20:45:10.86 ID:???
>>818
文字とおりたま〜に出来ます。
なのでなぜ出来るのか不思議で。
820NAME IS NULL:2012/06/20(水) 20:55:26.15 ID:???
>>819
>>817

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

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

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

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

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

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

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

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

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

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

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

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

だとダメなの?

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

だとダメなの?
856NAME IS NULL:2012/06/30(土) 00:23:31.28 ID:???
>>854
limit 列に入ってる文字列の書式
date 関数が返す文字列の書式
が示されないことにはねえ…
857NAME IS NULL:2012/06/30(土) 00:36:02.58 ID:???
それ以前に、$sql_delete の内容確認した方がいいと思うぞ。
858NAME IS NULL:2012/06/30(土) 09:05:49.28 ID:???
くぉーとしてないからってだけじゃないの?
859NAME IS NULL:2012/06/30(土) 09:12:06.88 ID:???
ぶぉーとしていたんだな
860NAME IS NULL:2012/06/30(土) 19:19:35.61 ID:???
>>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;
861NAME IS NULL:2012/07/01(日) 13:20:25.36 ID:???
>>853です。
遅くなったけどありがとう。できました。
862NAME IS NULL:2012/07/01(日) 13:22:58.84 ID:???
あ、>>855さんへ。
863NAME IS NULL:2012/07/01(日) 14:42:29.78 ID:???
>>860
日付の文字列書式が合ってれば、わざわざ epoch 秒に変換しなくても文字列比較で良くね?
864NAME IS NULL:2012/07/01(日) 23:26:36.68 ID:???
国が違うと面倒くさい
865NAME IS NULL:2012/07/02(月) 22:05:40.38 ID:???
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だから困る…
866NAME IS NULL:2012/07/03(火) 01:22:26.26 ID:???
>>865
test.a がまずいな
867865:2012/07/03(火) 08:18:18.34 ID:???
>>866
どうもありがとうです。
CREATE VIEW testview AS SELECT a, b, c FROM test;
にしたら、エラーは出なくなりました。
3.3.7では「テーブル名.カラム名」という書き方はNGなのかな。
いかんせんDB始めたてでまだまだよくわかってないです。
868865:2012/07/03(火) 08:21:06.99 ID:???
CREATE VIEW propview AS
SELECT tableA.fid, (略), tableB.year FROM tableA
INNER JOIN tableB
ON tableA.fid=tableB.fid

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

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

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

素人でごめん、どうもありがとうでした。勉強になりました。
873NAME IS NULL:2012/07/05(木) 10:45:13.81 ID:???
ある整数型のカラム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}
のようなまとめた書き方があったら教えてください
874NAME IS NULL:2012/07/05(木) 11:20:37.40 ID:???
875NAME IS NULL:2012/07/05(木) 14:28:14.16 ID:???
876NAME IS NULL:2012/07/06(金) 10:55:54.73 ID:sgE42f78
iPhone用アプリとしてXcodeとSQLiteでメニューをデータベースにして、
オーダーエントリーシステムを作ろうと思っているのですが、
SQLiteのデータベースから特定の範囲を指定して呼び出す方法がありましたら
ご教授頂きたくお願い申し上げます。

具体的にはカテゴリーとして「パスタ」「サラダ」「ドリンク」等があり、
テーブルビューのリンクを、それぞれの名称にした上で、
そのカテゴリーの範囲内のみをリンクで表示する場合です。
877NAME IS NULL:2012/07/06(金) 13:05:39.37 ID:???
>>876
select * from メニュー where カテゴリー = 'パスタ';
とか。SQL 勉強しなよ。
878876:2012/07/06(金) 15:07:15.87 ID: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];
}

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

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

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

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

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

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

とかかな。
882NAME IS NULL:2012/07/06(金) 23:31:15.02 ID:???
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)

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

>>882
なるほど、1000 もあれば大抵大丈夫か。
884NAME IS NULL:2012/07/07(土) 07:18:02.18 ID:???
>>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
とか。俺だったらクエリで出来ることはなるべくクエリでやる。
885NAME IS NULL:2012/07/08(日) 00:28:32.91 ID:O1K9KaSi
DATETIME型のレコードを使っていて、それを日別にカウントしたいとき
  GROUP BY date(ctime)
とすると、EXPLAINで見るとインデックスが使われずに full scan となってしまうのですが
良い方法ないでしょうか
886NAME IS NULL:2012/07/08(日) 03:05:44.63 ID:???
どう考えてもフルスキャンが一番早いだろ
887NAME IS NULL:2012/07/08(日) 07:07:42.87 ID:???
>>885
基準日からの日数列を作って、それで group by するとか。
888NAME IS NULL:2012/07/08(日) 15:40:31.69 ID:???
MySQLだとちゃんとインデックス使ってくれるので、クエリプランナが弱いのかな
非正規化するしかないっすかねぇ
889NAME IS NULL:2012/07/08(日) 21:11:21.78 ID:???
グルーピングの時にカバーリングインデックスが使えるならインデックス見たほうが早い。それだけですむから。
そうでなければ全体に対する必要部分の行数でどっちが早いか変わってくるでしょ。
アーキテクチャの違いもあるので、一概にインデックスさえ見れば早いということは言えんのだ。

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

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

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

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

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

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

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

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

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

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

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

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

この仲のaccessを曖昧検索に変えたいのですが曖昧検索ではLIKE と % を使用するというのを見ました。
複数条件があるWHEREの後にLIKEをどのようにつければいいのでしょうか?
923NAME IS NULL:2012/07/26(木) 18:03:51.74 ID:D083zD7I
>>922
普通にaccess like $accessではいかんのか
$accessの中身を%文字%にするんだ
924NAME IS NULL:2012/07/26(木) 18:45:20.34 ID:???
WHERE (access LIKE '%foo%' OR access LIKE '%bar%') AND level=なんたら
925NAME IS NULL:2012/08/02(木) 03:34:36.59 ID:???
sqliteのintegerにunsignedを指定したいのですが不可能でしょうか?
926NAME IS NULL:2012/08/02(木) 06:04:37.73 ID:???
制約
927NAME IS NULL:2012/08/05(日) 14:07:07.11 ID:???
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

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

PRAGMA user_version;
PRAGMA user_version = integer ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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