SQLなら俺に訊け [無断転載禁止]©2ch.net (457レス)
上下前次1-新
8(2): 2017/08/26(土)19:24 ID:DSilAr/A(1) AAS
foo_id, bar_id_list
"1", "1,2,3"
"2", "4,5"
"3", "6,7,8"
これを
foo_id, bar_id
"1", "1"
"1", "2"
"1", "3"
"2", "4"
省6
9: 2017/08/30(水)07:14 ID:FYBJnXXr(1) AAS
>>8
お前は秘密の合言葉を言ってない。
「お願いします。どうか教えて下さい」
10: 8 2017/08/30(水)08:02 ID:ItMe6Tvy(1) AAS
再帰クエリでできました
SQLは業務で使うことも多いのにSQLスレに人がいないのは寂しいですね
11: 2017/11/03(金)19:41 ID:N8t7Jq3a(1/5) AAS
てす
12(1): 2017/11/03(金)20:07 ID:N8t7Jq3a(2/5) AAS
SQL初心者です。
複数のrowを一度に取りたいのですがどう書けばいいのでしょうか。
後述の(C)より効率のよい記述を探しています。
(なおRock54回避の為シングルクオートを全角に、またselectをカタカナに変更しています)
用途は掲示板で、以下のような「先頭と最近の5投稿」の取得が目的です。
2ch板:tech
環境はSQLiteです。SQLite依存で構いません。
単純には以下2クエリになりますが、
select * from thread order by no limit 1; // (A)
select * from thread order by no desc limit 5; // (B)
省15
13(1): 2017/11/03(金)22:59 ID:ATL1IZSq(1) AAS
SQLiteがreadでトランザクション使えないって、そうだっけ?
デフォルトがrepeatable readじゃないから勘違いしてるとかじゃなくて?
14: 2017/11/03(金)23:25 ID:N8t7Jq3a(3/5) AAS
>>13
そうなのかもしれませんが、それを変える方法が分かりません。
SQL自体はSQL92準拠らしいです。
外部リンク[html]:www.sqlite.org
ちなみにトランザクションのページはこちら。
外部リンク[html]:www.sqlite.org
なお、select自体は一つのトランザクションらしく、例えば上記(A)(B)を繋いで begin; commit;で囲むと、
「トランザクション中でトランザクションを開始出来ません」というエラーになります。
// Error: cannot start a transaction within a transaction
15: 2017/11/03(金)23:38 ID:N8t7Jq3a(4/5) AAS
ああすいません、これですかね?
PRAGMA read_uncommitted;
外部リンク[html]:www.sqlite.org
ここの書き方だとよく分からないのですが、
デフォはSERIALIZABLEで、これをREAD UNCOMMITTED(true)にして、
さらに書き込み側をBEGIN EXCLUSIVEにしろってことですかね?
> After a BEGIN IMMEDIATE,
> no other database connection will be able to write to the database or do a BEGIN IMMEDIATE or BEGIN EXCLUSIVE.
> Other processes can continue to read from the database, however.
> An exclusive transaction causes EXCLUSIVE locks to be acquired on all databases.
省4
16: 2017/11/03(金)23:58 ID:N8t7Jq3a(5/5) AAS
あ、いや、違いましたね。
read_uncomitted は制限を緩和する方向でした。
まだ全貌を把握しておらず、ここら辺はすみません。
SQLiteはseriarizableを実装しているとは書いてありますが、デフォが何かはよく分かりません。
> SQLite implements serializable transactions
> 外部リンク[html]:www.sqlite.org
ただまあ、今のところ複数selectをトランザクションに指定する方法が分かりません。
多分単発のselectなら自動的にトランザクション化してます。
17: 2017/11/04(土)01:14 ID:tY9TOSMT(1/2) AAS
ちなみに記事は古いんですが、複数のselectをbegin/endで囲むことも出来るっぽいんですよね、、、
外部リンク:stackoverflow.com
私が出来ないのは、こちらの環境の問題でしょうか?
PHP経由でのsqlite3.15.1と、コマンドラインの3.21.0の両方で駄目です。
18: 2017/11/04(土)01:32 ID:tY9TOSMT(2/2) AAS
>>12を取り下げます。
どうやら私の書き方が悪かったようで、別々に打たないといけないらしく、
そうすればあっさり出来ました。
どうもすいません。
参考にしたページは以下です。
外部リンク:d.hatena.ne.jp
19: 2017/11/13(月)20:26 ID:612lbeAQ(1) AAS
このスレはデータベース板にいるやつのネタスレだな。
count(*)は慣習上、このように書いているだけ。
20: 2017/12/15(金)21:10 ID:Tb0OcKpN(1) AAS
SQLは重いというイメージが頭から離れない
またとってくればいいだけなんだが
どうしても一度取得してきたデータを使いまわしたくてプログラムがぐしゃぐしゃになる
21(1): 2017/12/16(土)20:45 ID:VEeoy7XK(1) AAS
ん?普通そうだが、何でぐしゃぐしゃになるのかが分からん
22: 2017/12/16(土)21:34 ID:Bt/T1sYp(1) AAS
スコープの長い変数をずっと持ってないといけないから
メソッドの引数がふえて
だから作ったメソッドが使いづらい
23: 2017/12/17(日)11:36 ID:5FGxeo64(1) AAS
何の言語か知らんけど、構造体とかクラスで使えば良いのでは?
取り敢えず一度取得してきたデータは使いまわすのが基本
その都度発行とか有り得んから、使いまわせるように工夫すべき
24: 2017/12/17(日)13:31 ID:qopiqGcR(1) AAS
えー
せっかくDB側でSQLキャッシュしてくれる機能もってんのに
プログラムでもまたキャッシュの仕組みつくるん?
25: 2017/12/20(水)09:30 ID:CxRyWMoc(1) AAS
SQLってサーバー立てるのがデフォなんですか?
26: 2017/12/21(木)21:57 ID:URpfxR/O(1) AAS
そんなの使い方に依るでしょ
SQLiteのが遥かに適してるのにネットワーク型拵えてるアンチパターンはかなり見るが
この逆は滅多に見ない、SQLiteは玩具過ぎて使えないと言ってる使えない人間はかなり居る
27: 2017/12/21(木)22:06 ID:Mqu0aN7Q(1) AAS
そりゃそうだろ逆にしたら作れないじゃんw
28: 2018/01/28(日)14:32 ID:Erw8GBm0(1) AAS
AccessでのVBAの開発の話なんだが、他言語含めて飽きるほどコード書いてきたという人がSQLで書くようなことはしないと言うんだ。
デザインビューでクエリー作るんだって。
俺とは余りに文化が違うんだが、これって俺がおかしいのかな。
それとも彼がビックマウスなのかどっちだと思う?
29: 2018/01/28(日)15:54 ID:BfkgINY1(1/2) AAS
Accessは知らんが。
これ見る限り、そのやり方もありだろう。
外部リンク[htm]:www.microsoft.com
外部リンク[html]:www.microsoft-access.net
> 俺とは余りに文化が違うんだが、これって俺がおかしいのかな。
> それとも彼がビックマウスなのかどっちだと思う?
お前がおかしいことは確定だが、(ただしお前が言っている意味ではない)
彼がビッグマウスかというのは意味が分からない。(だからお前はおかしい)
そもそも、やり方は一つじゃない。どっちが正しいという考え方がおかしい。
そいつにとって効率がいい方法を使えばいいだけ。
省8
30: 2018/01/28(日)15:55 ID:BfkgINY1(2/2) AAS
以下は推測になるが、、、
おそらくAccessも同様に、自動作成クエリを読み込んで表示するようになっていると思われる。
その場合、手打ちでクエリを作成されると、そこでエラーが発生した場合、クエリデザイナが使えなくなってしまう。
だから、プロジェクトとして、「クエリデザイナしか使うな」みたいな縛りはあり得る。
局所的に手打ちでクエリ書いたとして、そこがデザイナ側に読み込まれないのならエラーにはなりようもないが、
後の人が手打ちでクエリを書けない人ならメンテナンスが出来なくなってしまう。
ただし、デザイナに頼りすぎると後々色々大変になるので、
中にはデザイナは最低限しか使うな、という人もいる。
フォームの場合は「イベントをデザイナで書くな」みたいになるわけだが、
Accessの場合は「クエリをデザイナで書くな」になるんじゃないかな?
省13
31: 2018/05/21(月)19:04 ID:aAfPm2kk(1) AAS
SQLでJOIN等の結果に別名を付けるエイリアスってありますか?
32(1): 2018/05/22(火)02:42 ID:BxsxaQQf(1) AAS
>>21
サブクエリにして別名つければ
33: 2018/05/23(水)11:08 ID:+HKSXK/9(1) AAS
>>32
解決しました。ありがとうございました。
ところでミックさんの本は名著だと思いますが、セルコを読んでみたら、むちゃくちゃわかりやすくて驚きました。
プログラミングの本は洋書に限るという主張はかなり当たっていますね。
34: 2018/05/24(木)01:57 ID:UTbVU3sw(1) AAS
日本語でもあれだけの容量を割ければわかりやすく書けるのでは。
日本語の技術書って2000部出ればヒットの部類だって言うし
国産で6000円の本がどれだけ売れるやら(=コストがかけられるか)
楽器の教則とかも似た感じだが
勢い初心者向けの入門書が多くなり、レベルの高い本はページ数が足らなくて
分かる人だけ分かってとか分かってる人が知識の確認に使う本が多い気がする
個人的には洋書(の翻訳)は
「もうxxでxxする必要はないのです!」
みたいな無駄な例えとかジョークが多くてちょっとイラっとする時がある
35: 2018/05/24(木)21:00 ID:tj3fGZUH(1) AAS
SQLで超高速スクロールシューティングゲームを作りたいのですがどこから勉強したらいいのかわかりません
36: 2018/05/26(土)08:25 ID:ww7rlXCh(1) AAS
何のネタ?
37: 2018/05/30(水)21:07 ID:mJRov030(1) AAS
SQLが出来なさ過ぎて今日解雇されました・・・
上下前次1-新書関写板覧索設栞歴
あと 420 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s