SQLなら俺に訊け [無断転載禁止]©2ch.net
278デフォルトの名無しさん
2024/10/14(月) 14:18:28.43ID:/mng7eSx 日本語が読めないのかSQLを全く知らないのかわからんが救いようのないバカなのは間違いない
279デフォルトの名無しさん
2024/10/14(月) 16:02:24.13ID:iqlRL8W8 11を11、41を41、5を05、7を07という風にしないと結果は不明。
280デフォルトの名無しさん
2024/10/27(日) 09:13:31.20ID:Vdu9Rrcz 良い感じのSQLのGUIクライアントある?
たとえばカラムに連番と画像(画像元のパスなど)があって、
全てのがぞうを表示するようなものを求めてる
殆どのGUIクライアントはそういうDBだ画像は表示されなくてその画像部分のフィールドをクリックしたときに1枚だけ表示されるけど、
そうじゃなくてずらっと並んでる画像パスの入ったフィールド全ての画像を表示したいのだが
たとえばカラムに連番と画像(画像元のパスなど)があって、
全てのがぞうを表示するようなものを求めてる
殆どのGUIクライアントはそういうDBだ画像は表示されなくてその画像部分のフィールドをクリックしたときに1枚だけ表示されるけど、
そうじゃなくてずらっと並んでる画像パスの入ったフィールド全ての画像を表示したいのだが
281デフォルトの名無しさん
2024/10/27(日) 09:41:04.89ID:ThFiCQpU 自分で作るか人が作ったアプリのDB構造に合わせるかしないと無理だろ
いずれにしろSQL関係ない
いずれにしろSQL関係ない
282デフォルトの名無しさん
2024/10/27(日) 15:56:39.28ID:Vdu9Rrcz283デフォルトの名無しさん
2024/10/28(月) 15:33:24.71ID:ehQdeP61 >>280
MS-Access
MS-Access
284デフォルトの名無しさん
2024/10/28(月) 16:27:15.25ID:xaz6ouOz >>283
63bitで最大4Gまでしか扱えないものはノーサンキュ
63bitで最大4Gまでしか扱えないものはノーサンキュ
285sage
2024/10/28(月) 17:18:52.43ID:ehQdeP61 これが条件後出しカッコ悪いというやつか
286デフォルトの名無しさん
2024/10/28(月) 17:25:09.25ID:Hp6dJGZ5 63bit 63bit 63bit 63bit
最大4G 最大4G 最大4G 最大4G
最大4G 最大4G 最大4G 最大4G
287デフォルトの名無しさん
2024/10/30(水) 02:07:11.28ID:p9nsrTZ/ evo tech ωωω
288デフォルトの名無しさん
2024/10/30(水) 02:37:36.07ID:BzmMNap8 >>283,285
accessは他の追随を一切赦さぬDBMS覇権(性能、機能的な意味で)だろ
事実上普及してる全てのDBMSにコネクトできる万能クライアントだし
つまり表向きの売りであるGUIガン無視したとてしても最強
GUIでポチポチした履歴と生成されるクエリ突き合わせて解読をつづけれりゃあSQL資料すら見ずともSQL書きの中の上には成れる
惜しむらくはそれだけ優れててもMSに干されそうなとこか…
OfficeからAccess抜いて別売とか正気とは思えんよ、AccessがOfficeに同梱された時は狂喜乱舞してたなあ…
他のAccessフォロワRDBMS環境はOpen/Libre(とその派生)のBaseだけれども、正
直言って...α版の域すら出てないレベルでCLI叩いててSQL直打ちの方がマシ
accessは他の追随を一切赦さぬDBMS覇権(性能、機能的な意味で)だろ
事実上普及してる全てのDBMSにコネクトできる万能クライアントだし
つまり表向きの売りであるGUIガン無視したとてしても最強
GUIでポチポチした履歴と生成されるクエリ突き合わせて解読をつづけれりゃあSQL資料すら見ずともSQL書きの中の上には成れる
惜しむらくはそれだけ優れててもMSに干されそうなとこか…
OfficeからAccess抜いて別売とか正気とは思えんよ、AccessがOfficeに同梱された時は狂喜乱舞してたなあ…
他のAccessフォロワRDBMS環境はOpen/Libre(とその派生)のBaseだけれども、正
直言って...α版の域すら出てないレベルでCLI叩いててSQL直打ちの方がマシ
289デフォルトの名無しさん
2024/10/30(水) 10:40:48.68ID:x/mNM3SS290デフォルトの名無しさん
2024/10/30(水) 19:37:59.35ID:MyBSxte7 >289
自分で作っちゃえばええやん
sqlでselectしてアプリケーション経由して(phpでもjavaでもTypeScriptでも何でもおけ)適当にhtmlブラウザで表示させればええやん
複雑なjoinとか無くて一つのテーブルで済むなら30分も掛からず出来るっしょ
自分で作っちゃえばええやん
sqlでselectしてアプリケーション経由して(phpでもjavaでもTypeScriptでも何でもおけ)適当にhtmlブラウザで表示させればええやん
複雑なjoinとか無くて一つのテーブルで済むなら30分も掛からず出来るっしょ
291デフォルトの名無しさん
2024/10/30(水) 19:51:27.08ID:x/mNM3SS292デフォルトの名無しさん
2024/10/30(水) 19:57:39.75ID:MyBSxte7 >291
マルチやめなさい。そしてhtml表示は一つの手段でしか無い。他にも方法なんぞ幾らでもあるわ。ただし、開発環境を一切書いてないから助言が出来るわけもなく
あくまで一般的な方法で手っ取り早いのを伝えただけ。
Excelのマクロ組んでもいいだろうし、cuiでコマンド叩いてDBからローカルの画像パス取ってきてホストPCに表示するバッチ組んでも良いだろうし…
「結局最終的にはhtmlで表示するしかない」なんて一言も書いてないぞ
繰り返すが「開発環境を一切書いてないから助言が出来るわけもなくあくまで一般的な方法で手っ取り早いのを伝えただけ。」だぞ
マルチやめなさい。そしてhtml表示は一つの手段でしか無い。他にも方法なんぞ幾らでもあるわ。ただし、開発環境を一切書いてないから助言が出来るわけもなく
あくまで一般的な方法で手っ取り早いのを伝えただけ。
Excelのマクロ組んでもいいだろうし、cuiでコマンド叩いてDBからローカルの画像パス取ってきてホストPCに表示するバッチ組んでも良いだろうし…
「結局最終的にはhtmlで表示するしかない」なんて一言も書いてないぞ
繰り返すが「開発環境を一切書いてないから助言が出来るわけもなくあくまで一般的な方法で手っ取り早いのを伝えただけ。」だぞ
293デフォルトの名無しさん
2024/10/30(水) 20:01:18.39ID:x/mNM3SS >>292
そもそもphpでもjavaでもまたひと手間かよと思ったら泣きたくなってよー
とらいえずExcelでのデータベースはできたんだ
ただ数万の画像表示でクッソ重いからファイルパスに変えたけど
でも画像べらーって表示したいじゃん
これを試しに画像だけでもHTMLでやったらどうなるかと思ったら数万枚数十万のサムネ画像べらーっとはったら重いわ
そうなんだよな、htmlしばりするわけじゃねーもんな
とりあえず、EXCELでデータベース作って、SQliteにぶち込んでそれで様子みてる
そっから先は何でどうするか選択肢がおおすぎてわけわからなくなってんだわ
マツリポストは後生やからさぁ、いまのところかんべんしてつかーさい
そもそもphpでもjavaでもまたひと手間かよと思ったら泣きたくなってよー
とらいえずExcelでのデータベースはできたんだ
ただ数万の画像表示でクッソ重いからファイルパスに変えたけど
でも画像べらーって表示したいじゃん
これを試しに画像だけでもHTMLでやったらどうなるかと思ったら数万枚数十万のサムネ画像べらーっとはったら重いわ
そうなんだよな、htmlしばりするわけじゃねーもんな
とりあえず、EXCELでデータベース作って、SQliteにぶち込んでそれで様子みてる
そっから先は何でどうするか選択肢がおおすぎてわけわからなくなってんだわ
マツリポストは後生やからさぁ、いまのところかんべんしてつかーさい
294デフォルトの名無しさん
2024/10/30(水) 20:04:46.88ID:2JaEjh5Z マルチポストとかこんなところにそんなのが存在するのか?
295デフォルトの名無しさん
2024/10/30(水) 20:07:31.52ID:x/mNM3SS 良く考えたら風俗嬢とかのサイトでも女の子すべてずらーっと見せるの無いよな
数十毎にくぎってページ1とか2にしてるわけだし
数十毎にくぎってページ1とか2にしてるわけだし
296デフォルトの名無しさん
2024/10/30(水) 21:20:15.49ID:J5/QLmGD ガイジ大暴れ
297デフォルトの名無しさん
2024/10/31(木) 13:02:50.98ID:POJr+rF8 馬鹿には無理
298デフォルトの名無しさん
2024/11/01(金) 00:10:42.00ID:EQMsSXTB >>291
そんな付加をかけまくるツール、人間が少しだけ見るためのツールに需要はない。
そんな付加をかけまくるツール、人間が少しだけ見るためのツールに需要はない。
299デフォルトの名無しさん
2024/11/01(金) 09:10:10.59ID:xFfDlU+j300デフォルトの名無しさん
2024/11/01(金) 19:58:15.69ID:p+e2Ja+9 つ<img loading="lazy">
てか結局何がしたいの?
explorer+特大アイコンで駄目な理由は?
てか結局何がしたいの?
explorer+特大アイコンで駄目な理由は?
301デフォルトの名無しさん
2024/11/01(金) 19:58:32.10ID:TgBKHsuN twitterのフォロワー整理ツールとか参考になるわ
302デフォルトの名無しさん
2024/11/03(日) 17:55:14.49ID:sFUWrMLA >>300
画像がDBに入っていると、エクスプローラーでは見れないんだよね
画像がDBに入っていると、エクスプローラーでは見れないんだよね
303デフォルトの名無しさん
2024/11/03(日) 18:18:24.25ID:gYhGbZOp >>302
それはそうだが、そもそも画像をDBに入れる意味がない
ただ初心者あるあるらしく、「(画像掲示板では)そうじゃなくてファイル名だけDBに入れてapacheに直接配信させるんだ」と
説明してたサイトがあったがすぐには出てこない
なおSQLiteはBLOBにもインデックス張れるらしいが、そんな使い方しないだろ
それはそうだが、そもそも画像をDBに入れる意味がない
ただ初心者あるあるらしく、「(画像掲示板では)そうじゃなくてファイル名だけDBに入れてapacheに直接配信させるんだ」と
説明してたサイトがあったがすぐには出てこない
なおSQLiteはBLOBにもインデックス張れるらしいが、そんな使い方しないだろ
304デフォルトの名無しさん
2024/11/03(日) 18:54:12.64ID:sFUWrMLA305デフォルトの名無しさん
2024/11/03(日) 20:08:56.01ID:gYhGbZOp ないと思うが、まあ上級者なら自分で何とかしろ
なお293なら画像をDBに入れてなければ解決してる
なお293なら画像をDBに入れてなければ解決してる
306デフォルトの名無しさん
2024/11/03(日) 22:39:10.72ID:EvIOUlko 何も解決してないだろww
307デフォルトの名無しさん
2024/11/04(月) 14:37:07.62ID:odwm0TPR ずっとBAD GATEWAY
308デフォルトの名無しさん
2024/11/04(月) 14:37:49.34ID:odwm0TPR っつーのは書けるのか なんてこった
解決しなきゃいけない案件じゃねーだろ 画面いっぱいに数万もの大量な画像をずらーっと表示したいなんて要望は
そも、それをしてからその先どうしたいんだ? それを一向に書こうとしない相談者に難がある
表示したらそれで満足なんか?
ランダムに表示するようにでもしなきゃ、毎回その数万の画像のうち特定の一部だけを目撃することに成る それに意味は?
小アイコンサイズで画面いっぱいに貼ったとしてFHDモニタで250枚程度だ もっとちっさくした画像でも貼ろうってのか
いろんな画像が次々湧いてくるようなエフェクト掛けて、とかならDBだのSQLだのほぼほぼ関係ねーわ
解決しなきゃいけない案件じゃねーだろ 画面いっぱいに数万もの大量な画像をずらーっと表示したいなんて要望は
そも、それをしてからその先どうしたいんだ? それを一向に書こうとしない相談者に難がある
表示したらそれで満足なんか?
ランダムに表示するようにでもしなきゃ、毎回その数万の画像のうち特定の一部だけを目撃することに成る それに意味は?
小アイコンサイズで画面いっぱいに貼ったとしてFHDモニタで250枚程度だ もっとちっさくした画像でも貼ろうってのか
いろんな画像が次々湧いてくるようなエフェクト掛けて、とかならDBだのSQLだのほぼほぼ関係ねーわ
309デフォルトの名無しさん
2024/11/04(月) 14:52:26.31ID:1xi3Twsq >>308
何も解決していないのに「なお293なら画像をDBに入れてなければ解決してる(キリッ)」みたいな痛いレスが面白かっただけだよ
何も解決していないのに「なお293なら画像をDBに入れてなければ解決してる(キリッ)」みたいな痛いレスが面白かっただけだよ
310デフォルトの名無しさん
2024/11/06(水) 08:23:55.64ID:spMsN6R2 >>299
RDBでデータ型が画像データというデータ型は聞いたことがない。
RDBは画像データのバイナリデータか、画像データファイル形式に近いラージオブジェクト型。
単に画像データファイルへのリンクが入っているだけという設計もある。
RDBでデータ型が画像データというデータ型は聞いたことがない。
RDBは画像データのバイナリデータか、画像データファイル形式に近いラージオブジェクト型。
単に画像データファイルへのリンクが入っているだけという設計もある。
311デフォルトの名無しさん
2024/11/06(水) 08:54:43.24ID:L0rogwPJ INNER JOINとEXISTSどっちがいいんだ?
312デフォルトの名無しさん
2024/11/06(水) 10:46:12.80ID:2mRFCI0/ 使い途がちがう EXISTSはture/falseを返すだけ
313デフォルトの名無しさん
2024/11/06(水) 11:02:31.90ID:L0rogwPJ INNER JOINでもWHERE EXISTSでも、テーブルBのデータを使ってテーブルAのデータを絞り込んでSELECTするができるじゃん
性能的にどっちがいいんだっていう
性能的にどっちがいいんだっていう
314デフォルトの名無しさん
2024/11/06(水) 12:00:06.03ID:spMsN6R2315デフォルトの名無しさん
2024/11/06(水) 12:02:25.42ID:spMsN6R2317デフォルトの名無しさん
2024/11/12(火) 08:43:58.73ID:ZCUDlG+O PostgreSQL 17 を使ってるんですが
SELECT shohin_bunrui AS aaa
FROM shohin
where aaa = '衣服';
↑実行順序を考えると当然エラーになります。
エラー: 列"aaa"は存在しません
SELECT shohin_bunrui AS aaa
FROM shohin
GROUP BY aaa;
↑エラーになりません。SELECTよりGROUP BYの方が実行順が先なのになぜですか?
SELECT shohin_bunrui AS aaa
FROM shohin
where aaa = '衣服';
↑実行順序を考えると当然エラーになります。
エラー: 列"aaa"は存在しません
SELECT shohin_bunrui AS aaa
FROM shohin
GROUP BY aaa;
↑エラーになりません。SELECTよりGROUP BYの方が実行順が先なのになぜですか?
抽出条件で行の絞り込みをするのは、SELECTでなく WHEREかと
行を絞ってからグループ化するのはそうかもしれないけど、
統一感はあった方がいいとは思いますね
行を絞ってからグループ化するのはそうかもしれないけど、
統一感はあった方がいいとは思いますね
319デフォルトの名無しさん
2024/11/12(火) 11:00:57.73ID:jB7P5Kru320317
2024/11/12(火) 12:30:43.18ID:ZCUDlG+O >> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
321317
2024/11/12(火) 12:30:43.35ID:ZCUDlG+O >> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
322317
2024/11/12(火) 12:30:44.59ID:ZCUDlG+O >> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
323デフォルトの名無しさん
2024/11/12(火) 12:31:48.29ID:ZCUDlG+O すみません。ブラウザの反応がなかったので何回も書込み押してしまいました
324デフォルトの名無しさん
2024/11/12(火) 15:44:40.37ID:3FuqnzdR view造って先にaaaのみにするんじゃね
326デフォルトの名無しさん
2024/11/12(火) 17:29:22.04ID:v7TGFNyn >>322
そんなに列別名を使いたい理由がわからない。
集合演算のSELECTでテーブルによって列名が異なるならやらないといけないが、そういうSELECTでないのにテーブル別名メリットが大きいが、列別名を使うメリットなんてほとんどないよ。
そんなに列別名を使いたい理由がわからない。
集合演算のSELECTでテーブルによって列名が異なるならやらないといけないが、そういうSELECTでないのにテーブル別名メリットが大きいが、列別名を使うメリットなんてほとんどないよ。
327デフォルトの名無しさん
2024/11/12(火) 17:31:02.65ID:v7TGFNyn >>325
SQLの構文解析エンジンの仕様によるような書き方をするのがそもそもの間違いだよね。
SQLの構文解析エンジンの仕様によるような書き方をするのがそもそもの間違いだよね。
>>327
ですね
ですね
LINQを最初に見たとき、なんでこんな順序なんだ? と思ったけど、自然な順序なのかもね
FROM→WHERE→SELECT
しばらくLINQやってないから、うろ覚えで見当違いだったらごめんなさい
FROM→WHERE→SELECT
しばらくLINQやってないから、うろ覚えで見当違いだったらごめんなさい
330デフォルトの名無しさん
2024/11/12(火) 19:58:46.82ID:v7TGFNyn331デフォルトの名無しさん
2024/12/20(金) 16:41:43.73ID:cA4MHukG テーブルごと全てのカラムにまとめて別名付けるとかできないのかな
以下のような場合に別名付けるとき
テーブルA
id
name
description
テーブルB
id
name
description
select
A.id as A_id,
A.name as A_name,
A.description as A_description,
B.id as B_id,
B.name as B_name,
B.description as B_description
from
みたいに書かないといけないのを
A.* as A_*
みたいに書けたら便利なのに
以下のような場合に別名付けるとき
テーブルA
id
name
description
テーブルB
id
name
description
select
A.id as A_id,
A.name as A_name,
A.description as A_description,
B.id as B_id,
B.name as B_name,
B.description as B_description
from
みたいに書かないといけないのを
A.* as A_*
みたいに書けたら便利なのに
332デフォルトの名無しさん
2024/12/21(土) 11:36:41.92ID:KZIgeCwE うちはそのまま A.name のまま扱ってるよ
333デフォルトの名無しさん
2024/12/21(土) 19:55:23.41ID:IOryZJAZ >>331
またそのネタかよw
またそのネタかよw
334デフォルトの名無しさん
2024/12/21(土) 20:43:39.23ID:SDOaO/8s SQLを出力するプログラム位かけるやろ
336デフォルトの名無しさん
2024/12/23(月) 10:17:08.30ID:xh1kOIEb >>333
また、って言うくらいには結構求められている機能だと思う
また、って言うくらいには結構求められている機能だと思う
337デフォルトの名無しさん
2024/12/23(月) 18:35:45.31ID:GjEN+y4a >>329
LINQはそもそも.NETのコードの物だから
メソッドチェーンで書く時の順番がそのままになってるだけよ
HogeList.Where().Select()って書き方になるからクエリ式もそうなる。
LINQはそもそも.NETのコードの物だから
メソッドチェーンで書く時の順番がそのままになってるだけよ
HogeList.Where().Select()って書き方になるからクエリ式もそうなる。
338デフォルトの名無しさん
2024/12/24(火) 09:46:38.33ID:MemH7BuO >>331
すべてのカラムに最初からそういう名前をつけているよ
テーブルA
A_id
A_name
A_description
テーブルB
B_id
B_name
B_description
select
A_id,
A_name,
A_description,
B_id,
B_name,
B_description
from
とシンプルに書けて良いよ
すべてのカラムに最初からそういう名前をつけているよ
テーブルA
A_id
A_name
A_description
テーブルB
B_id
B_name
B_description
select
A_id,
A_name,
A_description,
B_id,
B_name,
B_description
from
とシンプルに書けて良いよ
339デフォルトの名無しさん
2024/12/24(火) 12:30:30.62ID:V4/fVU02 >338
>331を読むに、別名(エイリアス)でテーブル名付けたいって事でしょ
確かに長ったらしいテーブル名は一括で一文字のエイリアス名を付けたいな…の思う事もあるから>338の言わんとしてることも分かる
>331を読むに、別名(エイリアス)でテーブル名付けたいって事でしょ
確かに長ったらしいテーブル名は一括で一文字のエイリアス名を付けたいな…の思う事もあるから>338の言わんとしてることも分かる
340デフォルトの名無しさん
2024/12/24(火) 22:39:03.73ID:S4CkJ4V1 >>335
標示SQLではSELECTよりもWITHが先
標示SQLではSELECTよりもWITHが先
341デフォルトの名無しさん
2024/12/24(火) 22:40:09.34ID:S4CkJ4V1 >>338
同じカラム名なのに意味が異なるという狂った設計なのが間違い
同じカラム名なのに意味が異なるという狂った設計なのが間違い
342デフォルトの名無しさん
2024/12/25(水) 01:30:11.46ID:YXgPFPfq SQLというよりSQL clientの機能の話じゃね?
SELECT a.id, a.name, b.id, b.name FROM foo a INNER JOIN bar b ON …
↑みたいなクエリを書いた時に結果のカラム名が単にid, name, id, nameと表示されるのではなくa.id, a.name, b.id, b.nameと表示されればいいわけでしょ?
プログラムから結果セットにアクセスする時は”a.id”や”b.id”でアクセスするんだから表示調整くらい簡単にできそうだけどな
SELECT a.id, a.name, b.id, b.name FROM foo a INNER JOIN bar b ON …
↑みたいなクエリを書いた時に結果のカラム名が単にid, name, id, nameと表示されるのではなくa.id, a.name, b.id, b.nameと表示されればいいわけでしょ?
プログラムから結果セットにアクセスする時は”a.id”や”b.id”でアクセスするんだから表示調整くらい簡単にできそうだけどな
343デフォルトの名無しさん
2024/12/25(水) 08:15:20.48ID:63Wcp4qk 誰もWITHの話なんかしとらんのに突然の主張w
344デフォルトの名無しさん
2024/12/25(水) 12:26:11.92ID:wfmvBy7R 日本語SQLスズラン
345デフォルトの名無しさん
2024/12/25(水) 15:26:23.80ID:PDJSnv/I be with you
346デフォルトの名無しさん
2024/12/25(水) 17:53:18.64ID:YmcCoB80 >>343
SELECT句よりも先にWITH句を書くので、SELECT句が先ではない。
SELECT句よりも先にWITH句を書くので、SELECT句が先ではない。
347デフォルトの名無しさん
2024/12/25(水) 17:56:53.42ID:YmcCoB80 >>342
根本的に同じカラム名なのに別のカラムという設計がおかしい
どちらかのテーブルにしかないカラムなら、修飾そのものがいらない
それはあんたはSQLの話ではなくて、別の製品の仕様の話をしている
それに同じ名前のカラム名なら別名を定義するべきだ
根本的に同じカラム名なのに別のカラムという設計がおかしい
どちらかのテーブルにしかないカラムなら、修飾そのものがいらない
それはあんたはSQLの話ではなくて、別の製品の仕様の話をしている
それに同じ名前のカラム名なら別名を定義するべきだ
348デフォルトの名無しさん
2024/12/25(水) 17:58:44.64ID:YmcCoB80SQLを適当に書く人間が増えて、めちゃくちゃなシステムだらけになった。
同じカラムが、同じカラムがというなら、結合したビューでも用意しとけよw
349デフォルトの名無しさん
2024/12/25(水) 18:33:32.24ID:WXVFxdaX 元の話も読めないようなヤツはWITHがどうのと主張しとらんと黙っといた方がいいよw
350デフォルトの名無しさん
2024/12/25(水) 18:36:08.08ID:63Wcp4qk >>346
誰もWITHの話なんかしとらんのに突然の主張w
誰もWITHの話なんかしとらんのに突然の主張w
351デフォルトの名無しさん
2024/12/25(水) 19:42:44.67ID:r1WXKMXg352デフォルトの名無しさん
2024/12/25(水) 19:44:16.65ID:r1WXKMXg353デフォルトの名無しさん
2024/12/25(水) 19:47:55.88ID:r1WXKMXg 「クエリ式」はSQLの世界の話ではなく、SQLを組み立てる側のライブラリの世界の話。
使われる方が使う方を意識するという発想で設計書を書かせようとする人間がいるが、それだと延々とドキュメントを修正することになる。
世界中の人間に聞いて回ってドキュメントを修正するなど無理だし、無意味。
使われる方が使う方を意識するという発想で設計書を書かせようとする人間がいるが、それだと延々とドキュメントを修正することになる。
世界中の人間に聞いて回ってドキュメントを修正するなど無理だし、無意味。
354デフォルトの名無しさん
2024/12/25(水) 21:03:35.85ID:WXVFxdaX ダメだわこの頭でっかちw
355デフォルトの名無しさん
2024/12/26(木) 13:44:41.34ID:KwPCWpVD >>341
うれしい副産物として、違うカラム名にできるというメリットもある
うれしい副産物として、違うカラム名にできるというメリットもある
356デフォルトの名無しさん
2024/12/30(月) 02:42:59.39ID:SuC1UiOz357デフォルトの名無しさん
2024/12/30(月) 02:44:55.46ID:SuC1UiOz なぜ「データベース」板を無視して「プログラム」板に書いているのも謎
358デフォルトの名無しさん
2024/12/30(月) 14:22:49.66ID:y1s4zo7f SQLなんて一回描いたら何度も描き治すもんでもないからな
面倒臭がるのは怠慢
面倒臭がるのは怠慢
359デフォルトの名無しさん
2024/12/30(月) 19:29:38.65ID:V3PHz5v0 >>358
なおすでーー
なおすでーー
360デフォルトの名無しさん
2025/01/01(水) 21:42:25.49ID:sxxQrAOo >>359
そう何度も直すことは無いよ
そう何度も直すことは無いよ
361デフォルトの名無しさん
2025/01/01(水) 23:12:26.15ID:21eIb2Fa へぼかったら治すでーー
362デフォルトの名無しさん
2025/01/05(日) 10:38:54.01ID:c9RkuEF2 単にテキストエディタの機能を使いこなせずに毎度、すべてキー入力している初心者は案外、多い。
363デフォルトの名無しさん
2025/01/05(日) 10:48:34.28ID:8kdOFrcZ ORMなんていらん
364デフォルトの名無しさん
2025/01/05(日) 19:51:54.27ID:ToFXQ1cV サブクエリ難しい
365デフォルトの名無しさん
2025/01/05(日) 19:52:23.20ID:ToFXQ1cV 息をするようにSQLを書きたい
366デフォルトの名無しさん
2025/01/05(日) 20:49:47.84ID:ktpqqLIO367デフォルトの名無しさん
2025/01/05(日) 22:36:32.88ID:Gf5gTRAY CTEのおかげてサブクエリの出番はめっきり少なくなったよね
368デフォルトの名無しさん
2025/01/06(月) 12:33:31.51ID:HkxXvSmh >>367
CTEってなに?
CTEってなに?
369デフォルトの名無しさん
2025/01/06(月) 18:37:10.53ID:xyyiC8Hr >>366
ありがとう
やってみる
逆にそれでサブクエリの感覚が掴めるかもしれないと勝手な期待をしている
accessとExcelVBAでやっているけど、IT素人のPC好きなおじさんがやる
やってるから何分感覚がつかめない
ミックさんのデータベース入門は読んでいるけど読み切れていない
ありがとう
やってみる
逆にそれでサブクエリの感覚が掴めるかもしれないと勝手な期待をしている
accessとExcelVBAでやっているけど、IT素人のPC好きなおじさんがやる
やってるから何分感覚がつかめない
ミックさんのデータベース入門は読んでいるけど読み切れていない
370デフォルトの名無しさん
2025/01/06(月) 20:05:07.43ID:PWtKQBnB >>369
そうそう、その視点や観点が本当に大事
プログラム全般そうだけど一気に書こうとするとスパゲティ化して自分でも訳わからなくなるから
必ず最小から始めて、それらをくっ付けて大きくしていくみたいな感覚が大事
そうそう、その視点や観点が本当に大事
プログラム全般そうだけど一気に書こうとするとスパゲティ化して自分でも訳わからなくなるから
必ず最小から始めて、それらをくっ付けて大きくしていくみたいな感覚が大事
371デフォルトの名無しさん
2025/01/09(木) 00:01:55.02ID:8WDo/TAk サブクエリは普通に使うだろ
372デフォルトの名無しさん
2025/01/11(土) 10:22:19.58ID:ouBpeDRU サブクエリを使うクエリを分解したらたいていN+1になるしな
373デフォルトの名無しさん
2025/01/19(日) 01:50:01.24ID:IALgBqxE サブクエリ使う理由ってめんどくさがったり一時領域をケチる以外に理由ないよ
サブクエリを使わずに結果を出すようにした方がメンテもパフォーマンスも上がる
サブクエリを使わずに結果を出すようにした方がメンテもパフォーマンスも上がる
374デフォルトの名無しさん
2025/01/19(日) 02:17:21.82ID:9/Z57kyd サブクエリの有無ごときで議論になるの笑ってしまうなw
どんなちっこいアプリなんだ?電卓とか?
どんなちっこいアプリなんだ?電卓とか?
375デフォルトの名無しさん
2025/01/19(日) 06:33:56.88ID:ugzsMDEi 1週間も経って突然貶し始める方が笑ってしまうわ
376デフォルトの名無しさん
2025/01/19(日) 09:51:50.41ID:pfUoPKo5 どこの句のどういう使い方をするサブクエリなのか書いてくれないと、サブクエリを使うべきなのか、そうでないか答えようがない。
378デフォルトの名無しさん
2025/01/19(日) 16:06:56.18ID:vo12PcwL トランザクションを指定すれば?
379デフォルトの名無しさん
2025/01/19(日) 16:20:11.02ID:MoFiVYUu そこはSQLを複数回に分割して発行するかどうかよりも上位のレベルで
トランザクションや同時実行制御の観点から設計しておくべき事項
担保する必要性の有無は分割しようがしまいが変わらない
トランザクションや同時実行制御の観点から設計しておくべき事項
担保する必要性の有無は分割しようがしまいが変わらない
382デフォルトの名無しさん
2025/01/20(月) 11:39:20.74ID:7SyPOdKK サブクエリを使わないで、一旦チンポテーブルに書き出す方式があったよね
あれなんだっけか
あれなんだっけか
次の3つのフィールドで構成される複合主キーがあり
(PK1, PK2, PK3)
検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか?
(PK1, PK2, PK3)
検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか?
384デフォルトの名無しさん
2025/01/20(月) 18:55:00.26ID:kikzz/Vc キーのバラつき具合やオプティマイザの機能にもよるから一概に不要とも作成すべきとも言えない
385デフォルトの名無しさん
2025/01/20(月) 18:55:26.16ID:kikzz/Vc 実際のクエリプランを見て判断
ありがとうございます>>383です
ちなみにaccessです
ちなみにaccessです
>>3々3です
accessで複合主キーを設定したとき、インデックスは自動で付与されるでしょうか
accessで複合主キーを設定したとき、インデックスは自動で付与されるでしょうか
388デフォルトの名無しさん
2025/01/21(火) 08:53:02.94ID:9Kz0tqcV インデックスじゃない主キーってなんだ……。
>>388
調べてみるとそうみたいなんだけど(主キーにはインデックスが張られる)、単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて
それがどういうことか(インデックスが張られているか)分からなくて
分かりにくくてごめんね
調べてみるとそうみたいなんだけど(主キーにはインデックスが張られる)、単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて
それがどういうことか(インデックスが張られているか)分からなくて
分かりにくくてごめんね
390デフォルトの名無しさん
2025/01/21(火) 11:15:04.33ID:+xYYoS0+ >>389
DBの構成上、主キーであれば最低限1つのインデックスは張られる
それはPK1,PK2,PK3全部揃ったときにB木を辿れればいいだけなので、6(=3P3)通りのどれかだが、
何もなければ PK1->PK2->PK3 の1つのインデックスになる
この場合、PK1,PK2 のセットならインデックスが使えるが、今回のように PK2, Pk3 のセットだと使えない
これはクエリプランを見れば判断出来る
SQLiteだとこのケースでは上記の通り
というかCREATE INDEX時(CREATE TABLE時)に使われ方を予測する事は不可能なので、
DBとしては、記述通りPK1->PK2->PK3で一つ作るか、全組み合わせを作っておくかしか出来ない
よく使われる検索に対して自動的にインデックスを作成して高速化してくれるDBがあるのかもしれんが俺は知らん
DBの構成上、主キーであれば最低限1つのインデックスは張られる
それはPK1,PK2,PK3全部揃ったときにB木を辿れればいいだけなので、6(=3P3)通りのどれかだが、
何もなければ PK1->PK2->PK3 の1つのインデックスになる
この場合、PK1,PK2 のセットならインデックスが使えるが、今回のように PK2, Pk3 のセットだと使えない
これはクエリプランを見れば判断出来る
SQLiteだとこのケースでは上記の通り
というかCREATE INDEX時(CREATE TABLE時)に使われ方を予測する事は不可能なので、
DBとしては、記述通りPK1->PK2->PK3で一つ作るか、全組み合わせを作っておくかしか出来ない
よく使われる検索に対して自動的にインデックスを作成して高速化してくれるDBがあるのかもしれんが俺は知らん
391デフォルトの名無しさん
2025/01/21(火) 11:23:25.76ID:+xYYoS0+ >>389
> 単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて
これは少し勘違いしてる
インデックスはあくまでB木であって、個々のフィールドやカラムとは全く別物
インデックスが当たってるかは、クエリプランで確認すべき事
> 単一主キーだと、該当キーにRequired、Uniqueなインデックスが作成されるけど、複合主キーでは個々のフィールドに個別にはインデックスが作成されてなくて
これは少し勘違いしてる
インデックスはあくまでB木であって、個々のフィールドやカラムとは全く別物
インデックスが当たってるかは、クエリプランで確認すべき事
>>389です
ありがとうございます
(以下Accessです)
新たにテーブルに、主キー(PK1,PK2,PK3)を作成した段階で数万件のレコードを入れ、仮に(PK1,PK3)をキーとしてSELECTで抽出をするとめちゃくちゃ遅い…(1)
上のテーブルの主キーの個々のフィールド(3つ)にインデックスを設定して(1)と同じ条件の抽出をするとかなり速い…(2)
(2)のインデックスを削除して主キーと同じフィールドに複合インデックスを設定するともっと速い…(3)
(1):(2):(3)=65:1.5:1
くらいの比率でした
主キーを設定しただけではとても遅かったです(65倍)
なにか設定・前提に誤りがあるかもしれません
ありがとうございます
(以下Accessです)
新たにテーブルに、主キー(PK1,PK2,PK3)を作成した段階で数万件のレコードを入れ、仮に(PK1,PK3)をキーとしてSELECTで抽出をするとめちゃくちゃ遅い…(1)
上のテーブルの主キーの個々のフィールド(3つ)にインデックスを設定して(1)と同じ条件の抽出をするとかなり速い…(2)
(2)のインデックスを削除して主キーと同じフィールドに複合インデックスを設定するともっと速い…(3)
(1):(2):(3)=65:1.5:1
くらいの比率でした
主キーを設定しただけではとても遅かったです(65倍)
なにか設定・前提に誤りがあるかもしれません
394デフォルトの名無しさん
2025/01/21(火) 16:54:19.10ID:c07BxmkO >>394
すみません、ちょっと投稿内容に誤りがありました
(1)の複合主キーと、(3)の複合インデックスをまったく同じフィールド、個数、順序とすると、(1)と同じように、複合主キーのみでインデックスを設定しないときの同じように65倍の時間が掛かりました
デフォルトで設定されたインデックスと一致しているので当然なのかもしれません
先ほどの(3)の結果としてを得たのは、試行錯誤して複合インデックスから検索キーとしないフィールドを削除したもので、複合主キーのフィールド数より2つ少ないです
後出しになりすみません
データの内容によっても結果は変わるでしょうし、オレ環なので諦めるしかないかなと
すみません、ちょっと投稿内容に誤りがありました
(1)の複合主キーと、(3)の複合インデックスをまったく同じフィールド、個数、順序とすると、(1)と同じように、複合主キーのみでインデックスを設定しないときの同じように65倍の時間が掛かりました
デフォルトで設定されたインデックスと一致しているので当然なのかもしれません
先ほどの(3)の結果としてを得たのは、試行錯誤して複合インデックスから検索キーとしないフィールドを削除したもので、複合主キーのフィールド数より2つ少ないです
後出しになりすみません
データの内容によっても結果は変わるでしょうし、オレ環なので諦めるしかないかなと
397デフォルトの名無しさん
2025/01/22(水) 00:08:11.72ID:l3OLrM1a {PK1,PK2,PK3}で複合キーが定義されてる場合
検索条件が{PK1}か{PK1, PK2}か{PK1, PK2, PK3}であればどのDBMSでも大半のケースでインデックスが使われる
検索条件が{PK1, PK3}の場合はPK1のselectivity次第でインデックスが使われるものがある
検索条件が{PK2, PK3}のように一番左のカラムが含まれない場合はindex skip scanという機能が実装されてなければインデックスは使われない(Accessにはたぶん実装されてない)
他のクエリとの兼ね合いで複合主キーを構成するカラムの順序を変更できないということであれば該当クエリ用に複合インデックスを追加するのは妥当
検索条件が{PK1}か{PK1, PK2}か{PK1, PK2, PK3}であればどのDBMSでも大半のケースでインデックスが使われる
検索条件が{PK1, PK3}の場合はPK1のselectivity次第でインデックスが使われるものがある
検索条件が{PK2, PK3}のように一番左のカラムが含まれない場合はindex skip scanという機能が実装されてなければインデックスは使われない(Accessにはたぶん実装されてない)
他のクエリとの兼ね合いで複合主キーを構成するカラムの順序を変更できないということであれば該当クエリ用に複合インデックスを追加するのは妥当
398デフォルトの名無しさん
2025/01/22(水) 00:28:31.31ID:VcBzYOin >>396
というか何がやりたいのか不明な事になってるが、
> 検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか?
であれば遅い(=インデックスがない)と分かったのだからインデックス作ればいいだけでは
>>393
> 多分見方が分かりませんがw
見方なんて分かる必要なくて、
1. インデックスがある検索に対してクエリプランを出させる(=インデックス検索)
2. インデックスがない検索に対してクエリプランを出させる(=リニア探索)
3. 実際に自分がやりたい検索が、1,2のどちらに似てるか見る、特に先頭付近
ただインデックスが何で、どうやってDBがレコードを抽出してくるのか分かってなさそうなので、1,2が出来ない気もするが
結果で確認したければ、正しくインデックスが作成された後は、
α. SELECT * FROM mytable WHERE PK1=a AND PK2=b AND PK3=c;
β. SELECT * FROM mytable WHERE PK2=b AND PK3=c;
でαとβはほぼ同速になるはずだよ
というか何がやりたいのか不明な事になってるが、
> 検索キーとしてPK2とPK3だけをよく用いるとき、主キー以外にもインデックス(PK2, PK3)を作成すべきですか?
であれば遅い(=インデックスがない)と分かったのだからインデックス作ればいいだけでは
>>393
> 多分見方が分かりませんがw
見方なんて分かる必要なくて、
1. インデックスがある検索に対してクエリプランを出させる(=インデックス検索)
2. インデックスがない検索に対してクエリプランを出させる(=リニア探索)
3. 実際に自分がやりたい検索が、1,2のどちらに似てるか見る、特に先頭付近
ただインデックスが何で、どうやってDBがレコードを抽出してくるのか分かってなさそうなので、1,2が出来ない気もするが
結果で確認したければ、正しくインデックスが作成された後は、
α. SELECT * FROM mytable WHERE PK1=a AND PK2=b AND PK3=c;
β. SELECT * FROM mytable WHERE PK2=b AND PK3=c;
でαとβはほぼ同速になるはずだよ
400デフォルトの名無しさん
2025/01/22(水) 01:53:19.83ID:IIgBVdb4 そもそもACCESSのクエリプラントとか、取得大変だがな
401デフォルトの名無しさん
2025/01/22(水) 05:04:07.48ID:xghKhcgN ACCESSにクエリプランなんてあるん?w
ファイルで配布できる必要があるとかじゃなければ、MS SQL Expressなり使った方がやりやすくない?
昔と違ってGUIツールも今は無料配布になってるし。
ファイルで配布できる必要があるとかじゃなければ、MS SQL Expressなり使った方がやりやすくない?
昔と違ってGUIツールも今は無料配布になってるし。
402デフォルトの名無しさん
2025/01/22(水) 07:08:36.05ID:VcBzYOin >>399
> 最左のカラムを検索キーとするかがポイントなんですね
違う。というか理由を理解ではなく結果を暗記しようとする辺り、文系馬鹿の匂いがするが、
とにかく、「B木」でググって記事を読め
現在のプログラミングでは基本で、そこそこ初心者が記事を書くネタになってるから、いくらでも出てくる
そしてVBAにもハッシュはあるだろ。ググるとScripting.Dictionaryと出てくるが、中身は同様にB木のはずだから、
何か知らんが速いという事で済まさず、この機会にちゃんと理解しろ
そしてその言い方なら、
左側が全部揃ってるかがポイント
が正解になる
ただ、遅くて困るのならインデックス張ればいいだけではあるが
> 最左のカラムを検索キーとするかがポイントなんですね
違う。というか理由を理解ではなく結果を暗記しようとする辺り、文系馬鹿の匂いがするが、
とにかく、「B木」でググって記事を読め
現在のプログラミングでは基本で、そこそこ初心者が記事を書くネタになってるから、いくらでも出てくる
そしてVBAにもハッシュはあるだろ。ググるとScripting.Dictionaryと出てくるが、中身は同様にB木のはずだから、
何か知らんが速いという事で済まさず、この機会にちゃんと理解しろ
そしてその言い方なら、
左側が全部揃ってるかがポイント
が正解になる
ただ、遅くて困るのならインデックス張ればいいだけではあるが
>>402
ありがとうございます
B木の「B」はBinaryでなくBalanceだったのですね
B木の深さは複合キーの個数で一定となるツリーなんですね
二分木をイメージして「??」でしたが、B木の構造がイメージできればインデックスの効果が得られるか否かが分かりやすいと思いました
ありがとうございます
B木の「B」はBinaryでなくBalanceだったのですね
B木の深さは複合キーの個数で一定となるツリーなんですね
二分木をイメージして「??」でしたが、B木の構造がイメージできればインデックスの効果が得られるか否かが分かりやすいと思いました
404デフォルトの名無しさん
2025/01/22(水) 10:44:07.12ID:VcBzYOin >>403
> 二分木をイメージして「??」でしたが
いやそういう問題じゃない
というか相変わらずインデックスが何かさっぱり分かってないようだが、単なるリーフへの探索手段だぞ
実際はこんなキーの分け方はあり得ないが、馬鹿でも分かるように敢えて例とすると、
お前が名詞を1,000枚持ってて、あいうえお順に格納して保管してるとする
これは主キーが複合キーの{PK1:苗字1文字目, PK2:苗字2文字目以降, PK3:名前}として、
石破茂を{'石','破','茂'},
岸田文雄を{'岸','田','文雄'}
と格納されてる状態と見なせる
これに対して、{PK2,PK3}の検索、例えば{'田',’茂'}では全く使い物にならないのは分かるだろ。これがインデックスが機能してない状況
同様に、{PK1,PK3}の{'吉','茂'}も無理ゲーと分かるだろ。これもインデックスが機能してない状況
逆に、{PK1,PK2}の検索、{'鈴','木'}なら範囲を確定させられるだろ。これがインデックスが機能してる状況
というか言っちゃ悪いがVBA+accessってプログラマではなくExcel職人上がりも多いのでこの空回りなのだと思うが、
実際、Excel職人ならこの辺理解せずすっ飛ばして「遅いからインデックス張る」で済ませていい
プログラマなら、ちゃんと理解しろ。「赤黒木」とかもお前には有用だろうよ
> 二分木をイメージして「??」でしたが
いやそういう問題じゃない
というか相変わらずインデックスが何かさっぱり分かってないようだが、単なるリーフへの探索手段だぞ
実際はこんなキーの分け方はあり得ないが、馬鹿でも分かるように敢えて例とすると、
お前が名詞を1,000枚持ってて、あいうえお順に格納して保管してるとする
これは主キーが複合キーの{PK1:苗字1文字目, PK2:苗字2文字目以降, PK3:名前}として、
石破茂を{'石','破','茂'},
岸田文雄を{'岸','田','文雄'}
と格納されてる状態と見なせる
これに対して、{PK2,PK3}の検索、例えば{'田',’茂'}では全く使い物にならないのは分かるだろ。これがインデックスが機能してない状況
同様に、{PK1,PK3}の{'吉','茂'}も無理ゲーと分かるだろ。これもインデックスが機能してない状況
逆に、{PK1,PK2}の検索、{'鈴','木'}なら範囲を確定させられるだろ。これがインデックスが機能してる状況
というか言っちゃ悪いがVBA+accessってプログラマではなくExcel職人上がりも多いのでこの空回りなのだと思うが、
実際、Excel職人ならこの辺理解せずすっ飛ばして「遅いからインデックス張る」で済ませていい
プログラマなら、ちゃんと理解しろ。「赤黒木」とかもお前には有用だろうよ
B木については知らなかったが、今回の複合インデックスの件について二分木は論外だとは分かっています
ちなみに、>>402ハッシュの中身がB木というのは自分の認識と異なります
字面でうまく伝わらない部分はあったと思いますが、B木を知ることができ(あえて理解とは言わない)よかったです
ありがとうございました
ちなみに、>>402ハッシュの中身がB木というのは自分の認識と異なります
字面でうまく伝わらない部分はあったと思いますが、B木を知ることができ(あえて理解とは言わない)よかったです
ありがとうございました
406デフォルトの名無しさん
2025/01/22(水) 11:07:43.80ID:s+SsM2Gu 中途半端な知識で間違ったことばっかり書いてるのに
人を馬鹿する自称バカではない理系おじさんは少し自重したほうがいい
人を馬鹿する自称バカではない理系おじさんは少し自重したほうがいい
408デフォルトの名無しさん
2025/01/22(水) 11:27:27.98ID:VcBzYOin >>405
> 今回の複合インデックスの件について二分木は論外だとは分かっています
いやそうじゃねえ
そもそも論外でもないし、インデックスが二分木でも問題ないし、この場合には二分木もB木の一種だよ
B木とは深さ方向が一定になるように調節されてるものの呼称であり、実際は二分木が多数だろうし
まあ君に理解する気がないのは分かったし、実際に理解しなくても済む人達も大勢居るのも事実
ただプログラマならどのみちいつか引っかかるから、この機会にちゃんと理解しといた方が得だぞという話
君がどうするかは君が決める事
> 今回の複合インデックスの件について二分木は論外だとは分かっています
いやそうじゃねえ
そもそも論外でもないし、インデックスが二分木でも問題ないし、この場合には二分木もB木の一種だよ
B木とは深さ方向が一定になるように調節されてるものの呼称であり、実際は二分木が多数だろうし
まあ君に理解する気がないのは分かったし、実際に理解しなくても済む人達も大勢居るのも事実
ただプログラマならどのみちいつか引っかかるから、この機会にちゃんと理解しといた方が得だぞという話
君がどうするかは君が決める事
409デフォルトの名無しさん
2025/01/22(水) 11:42:36.84ID:a9tNcWhf >B木とは深さ方向が一定になるように調節されてるものの呼称であり、実際は二分木が多数だろうし
君が論外
君が論外
410デフォルトの名無しさん
2025/01/22(水) 12:42:33.57ID:VcBzYOin >>407,409
そうじゃない、というかそこは問題ではない
というのが分からないのが問題なのだろうが、君は全てを「具象」で捉えて「暗記」してるだけだろ、これは典型的な文系のやり方
本来は「抽象」で捉えて「理解」しないといけない項目
「B木」も「二分木」も(昔ながらのハッシュ関数を使った)「ハッシュ」も別物ではなくて、
同一の物を分類してるだけ、しかも直交もしてない
話を戻すと、問題は、
・DBのインデックス動作が分からない
・どうインデックスが作成されるかも分からないし、
・どういうクエリならインデックスが使われるのかも分からない
なんだろ
正攻法:(=プログラマ向け)
・インデックスの実装の仕方(の一つ)を理解する
これにより、インデックスに何が必要か、インデックスで何が出来、何が出来ないかを直感的に判断出来るようになる
(実際の実装では高速化の為にあれこれやってるだろうが、これは今回の目的に対しては全くどうでもいい事)
迂回策:
・クエリプランで毎回確認する
とはいえ読めるのかあれ?
あれを読む努力をするくらいなら、上記のインデックスを理解する努力の方が実になるはず
その上で、このDBではどうなのか?の判断の為に使うものだろあれは
迂回策次善案:(=Excel職人向け)
・クエリが遅い場合はインデックスを作るようにする
だと思うよ
まあ実際Excel職人っぽいしどうぞお好きにだが、
でも今回理解しておかないと次回以降も同じ所で引っかかり続けるだけだから、
それが嫌なら数時間~数日かけてでもこの機会に理解するしかないでしょ
そうじゃない、というかそこは問題ではない
というのが分からないのが問題なのだろうが、君は全てを「具象」で捉えて「暗記」してるだけだろ、これは典型的な文系のやり方
本来は「抽象」で捉えて「理解」しないといけない項目
「B木」も「二分木」も(昔ながらのハッシュ関数を使った)「ハッシュ」も別物ではなくて、
同一の物を分類してるだけ、しかも直交もしてない
話を戻すと、問題は、
・DBのインデックス動作が分からない
・どうインデックスが作成されるかも分からないし、
・どういうクエリならインデックスが使われるのかも分からない
なんだろ
正攻法:(=プログラマ向け)
・インデックスの実装の仕方(の一つ)を理解する
これにより、インデックスに何が必要か、インデックスで何が出来、何が出来ないかを直感的に判断出来るようになる
(実際の実装では高速化の為にあれこれやってるだろうが、これは今回の目的に対しては全くどうでもいい事)
迂回策:
・クエリプランで毎回確認する
とはいえ読めるのかあれ?
あれを読む努力をするくらいなら、上記のインデックスを理解する努力の方が実になるはず
その上で、このDBではどうなのか?の判断の為に使うものだろあれは
迂回策次善案:(=Excel職人向け)
・クエリが遅い場合はインデックスを作るようにする
だと思うよ
まあ実際Excel職人っぽいしどうぞお好きにだが、
でも今回理解しておかないと次回以降も同じ所で引っかかり続けるだけだから、
それが嫌なら数時間~数日かけてでもこの機会に理解するしかないでしょ
411デフォルトの名無しさん
2025/01/22(水) 12:49:28.79ID:VcBzYOin >>410訂正
× 同一の物
○ 同種の物
無駄に絡まれそうなので念のため
まあ俺がどう論外である事を証明したところで、
君がインデックスを理解する事には繋がらないよ
君は努力の方向を間違ってる
(ネットにはこのタイプも多いけども)
× 同一の物
○ 同種の物
無駄に絡まれそうなので念のため
まあ俺がどう論外である事を証明したところで、
君がインデックスを理解する事には繋がらないよ
君は努力の方向を間違ってる
(ネットにはこのタイプも多いけども)
412デフォルトの名無しさん
2025/01/22(水) 13:23:48.02ID:0peR6PAs どんなにアスペな言い訳しようが君がバカだという事実に変わりはないよ
>>405です
途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して
と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと
また、複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました
理解不足は否めませんが、実用上問題がないレベルとなったので、これでよしとします
ありがとうございました
途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して
と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと
また、複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました
理解不足は否めませんが、実用上問題がないレベルとなったので、これでよしとします
ありがとうございました
414デフォルトの名無しさん
2025/01/22(水) 18:46:15.47ID:VcBzYOin >>413
> 複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました
当たり前、というかDBの使い方の初段階で説明/理解すべき事柄
> 途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して
> と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと
そうじゃない
ひととおり設計を理解した上で弄くり回して理解を深めるのなら身に付くが、
今の君のように、何も理解してない状態で試行錯誤したところで時間の無駄でしかないよ
(それよりは記事を漁って理解するまで何度も読み込む努力をした方が何倍もいい)
とはいえ、現実問題としてaccessの実アプリの方が優先なのは分かる
半年に一度くらいしかSQLも書かないのなら今の状態もありだ
ただ、毎日SQLを書いてる状況なら、どのみちいつか理解しなければ不便で仕方ないだけなので、
出来るだけ早いうちに理解を深めておくべき
例えばさ、>>383に戻ると、(この事を言ってるのかもしれんが)
複合主キーを(PK1, PK2, PK3)ではなく、
(PK2, PK3, PK1)としてテーブルを作成しておけば、今回のインデックスを別に作成する必要はなかったろ
だからテーブル作成時の時点で、将来どういうクエリが発行され、インデックスがどう適用されるかも設計されてるし、
逆に今の君のような状態では、適切なテーブル設計は出来ないんだよ
というか、
> 検索キーとしてPK2とPK3だけをよく用いるとき
の場合はむしろ(PK2, PK3, PK1)とするのが普通で、
つまり今回はテーブル設計を間違えてて、それは君がインデックスが何たるかを理解してないから
勿論追加でインデックス張ればクエリは高速にはなるけども、修正の仕方が正しいわけではないよ
> 複合主キーの最左から順に一連の(部分)フィールドで検索できない場合は、別途インデックスを設定することで効果が得られることを確認しました
当たり前、というかDBの使い方の初段階で説明/理解すべき事柄
> 途中、どうも複合主キーの検索が遅く、複合主キーかフィールドを2つ削除して
> と書きましたが、少し理解するうちに、フィールドを削除せずとも順序を入れ替えることで高速化したこと
そうじゃない
ひととおり設計を理解した上で弄くり回して理解を深めるのなら身に付くが、
今の君のように、何も理解してない状態で試行錯誤したところで時間の無駄でしかないよ
(それよりは記事を漁って理解するまで何度も読み込む努力をした方が何倍もいい)
とはいえ、現実問題としてaccessの実アプリの方が優先なのは分かる
半年に一度くらいしかSQLも書かないのなら今の状態もありだ
ただ、毎日SQLを書いてる状況なら、どのみちいつか理解しなければ不便で仕方ないだけなので、
出来るだけ早いうちに理解を深めておくべき
例えばさ、>>383に戻ると、(この事を言ってるのかもしれんが)
複合主キーを(PK1, PK2, PK3)ではなく、
(PK2, PK3, PK1)としてテーブルを作成しておけば、今回のインデックスを別に作成する必要はなかったろ
だからテーブル作成時の時点で、将来どういうクエリが発行され、インデックスがどう適用されるかも設計されてるし、
逆に今の君のような状態では、適切なテーブル設計は出来ないんだよ
というか、
> 検索キーとしてPK2とPK3だけをよく用いるとき
の場合はむしろ(PK2, PK3, PK1)とするのが普通で、
つまり今回はテーブル設計を間違えてて、それは君がインデックスが何たるかを理解してないから
勿論追加でインデックス張ればクエリは高速にはなるけども、修正の仕方が正しいわけではないよ
415デフォルトの名無しさん
2025/01/22(水) 21:30:12.00ID:o3lkJXbH おっさん、文章が長いな。もっと簡潔に書きなさい。あなたの文章にインデックス貼ってクエリもチューニングした方が良いぞ
416デフォルトの名無しさん
2025/01/22(水) 23:15:16.32ID:J/9pPL5e 絵に書いたような老害だなw
417デフォルトの名無しさん
2025/01/22(水) 23:17:45.52ID:J/9pPL5e ありゃ「描いた」だぞと老害に指摘されそうだなw
418デフォルトの名無しさん
2025/01/22(水) 23:29:43.66ID:I1bb5L41 老害でも技術力があれば匿名掲示板では役立つけどどう見てもないから救いようがない
絶対干されてるタイプ
絶対干されてるタイプ
419デフォルトの名無しさん
2025/01/23(木) 19:03:57.14ID:0iiPrNry どうでもいいけど、制約とインデックスを同一として扱ってるのがモヤるわ
ユニーク制約と主キー制約をインデックスで処理しないDBMSはみたことないとしても
ユニーク制約と主キー制約をインデックスで処理しないDBMSはみたことないとしても
420デフォルトの名無しさん
2025/01/23(木) 19:56:56.31ID:hJ60cV1T お前の方が色々混同してそうだが
さ…さすが〜!
し…知らなかった〜!
す…すごーい!
せ…センスい〜ぃ!
そ…そうなんだ〜!
(「合コンさしすせそ」より)
し…知らなかった〜!
す…すごーい!
せ…センスい〜ぃ!
そ…そうなんだ〜!
(「合コンさしすせそ」より)
422デフォルトの名無しさん
2025/01/23(木) 23:29:29.44ID:rNgwBkvb 制約の話で思い出したがAccessの場合は
foreign key制約を設定すればインデックスが自動で出来たはず
(PK1, PK2, PK3)で構成される複合主キーがあって
検索キーとして(PK2, PK3)を利用したいということなら
PK1と(PK2, PK3)は違う親テーブルから主キーを引き継いでるんだろうから
そこにインデックスを張らないという選択はほぼ無いな
foreign key制約を設定すればインデックスが自動で出来たはず
(PK1, PK2, PK3)で構成される複合主キーがあって
検索キーとして(PK2, PK3)を利用したいということなら
PK1と(PK2, PK3)は違う親テーブルから主キーを引き継いでるんだろうから
そこにインデックスを張らないという選択はほぼ無いな
423デフォルトの名無しさん
2025/01/24(金) 04:28:21.32ID:agkokgy5 383以降を見る限り、そんな高級な話ではなく、まるっきり分かってなかっただけだろ
そして(PK2,PK3,PK1)と出来なかった理由の推定なら、そこは(PK1,PK2)とPK3とくくるべき
そして(PK2,PK3,PK1)と出来なかった理由の推定なら、そこは(PK1,PK2)とPK3とくくるべき
424デフォルトの名無しさん
2025/01/24(金) 11:19:27.52ID:SzuokRLj 分かってないのになぜ無理して絡もうとするのが
425デフォルトの名無しさん
2025/02/03(月) 18:36:54.12ID:hEyRnoXc PostgreSQLを使っているのですが、
更新前のデータも参照したいので、
更新処理を、元のデータに変更を加えたデータを追記し、更新元のデータに最新ではないフラグを付ける形でやっています。
新しくカラムを追加したのですが、更新処理の変更を忘れて、更新すると新しいカラムがデフォルト値に戻されてしまうバグを作ってしまいました。
既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか?
更新前のデータも参照したいので、
更新処理を、元のデータに変更を加えたデータを追記し、更新元のデータに最新ではないフラグを付ける形でやっています。
新しくカラムを追加したのですが、更新処理の変更を忘れて、更新すると新しいカラムがデフォルト値に戻されてしまうバグを作ってしまいました。
既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか?
426デフォルトの名無しさん
2025/02/03(月) 23:14:40.68ID:k1KW9LUA >>425
>既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか?
この質問はバグにより作成されたデータの復旧作業方法として質問してる?
それとも一般的にそういう方法ないかということ?
あるいはカラム追加やカラム名の変更があっても更新処理のSQLを修正しなくてもいいようにする方法を聞いてる?
>更新前のデータも参照したいので、
ここで言いってる”参照”は外部キーとして他のテーブルから参照するという意味?
それとも単に更新履歴が閲覧できればいいという意味?
>既存の行をコピーして、primary keyと変更したいカラムだけ変更する方法ってありませんか?
この質問はバグにより作成されたデータの復旧作業方法として質問してる?
それとも一般的にそういう方法ないかということ?
あるいはカラム追加やカラム名の変更があっても更新処理のSQLを修正しなくてもいいようにする方法を聞いてる?
>更新前のデータも参照したいので、
ここで言いってる”参照”は外部キーとして他のテーブルから参照するという意味?
それとも単に更新履歴が閲覧できればいいという意味?
427デフォルトの名無しさん
2025/02/06(木) 00:29:05.51ID:4njYbkok428デフォルトの名無しさん
2025/02/07(金) 21:07:33.75ID:lNWVt+S0 >>425
トリガーというものがあります
トリガーというものがあります
429デフォルトの名無しさん
2025/02/07(金) 21:08:11.88ID:lNWVt+S0430デフォルトの名無しさん
2025/02/07(金) 22:21:05.36ID:mS2jfvem むしろトリガーの変更を忘れてバグったんじゃないの?
431デフォルトの名無しさん
2025/02/07(金) 23:13:03.59ID:El81lTJA > PostgreSQLでは、トリガ動作として、ユーザ定義関数の実行しか認めていません。
> 標準では、多数の他のSQLコマンドを実行させることができます。
> 例えば、トリガ動作としてCREATE TABLEを実行させることも可能です。
> この制限を回避する方法は簡単です。必要なコマンドを実行するユーザ定義関数を作成すればよいのです。
糞仕様杉ワロタ
> 標準では、多数の他のSQLコマンドを実行させることができます。
> 例えば、トリガ動作としてCREATE TABLEを実行させることも可能です。
> この制限を回避する方法は簡単です。必要なコマンドを実行するユーザ定義関数を作成すればよいのです。
糞仕様杉ワロタ
432デフォルトの名無しさん
2025/02/08(土) 11:50:00.86ID:+3qBIV3v > この制限を回避する方法は簡単です。必要なコマンドを実行するユーザ定義関数を作成すればよいのです。
この方針は正しいと思うけどな
こういうセキュリティに敏感な場所は出入口を一ヶ所に絞るのは基本だよ
この方針は正しいと思うけどな
こういうセキュリティに敏感な場所は出入口を一ヶ所に絞るのは基本だよ
433デフォルトの名無しさん
2025/02/08(土) 12:46:18.46ID:3VVdck+P いや色々おかしいよお前、多分DB板出身だろうから帰れ
逆に質問者もDB屋ならDB板の方が合ってるとも思うが
逆に質問者もDB屋ならDB板の方が合ってるとも思うが
434デフォルトの名無しさん
2025/02/08(土) 13:11:35.92ID:fsW85FYF 正しいわけないだろw
Postgresの仕組み的に関数化が必要なら内部的にラップしとけばいいだけ
実行権限をトリガに対して設定できないとか非標準を維持し続けるほど大した意味はない
Postgresの仕組み的に関数化が必要なら内部的にラップしとけばいいだけ
実行権限をトリガに対して設定できないとか非標準を維持し続けるほど大した意味はない
435デフォルトの名無しさん
2025/02/09(日) 03:19:16.45ID:BAiRqfzU ここの人らはNoSQLはどういう扱いなの
436デフォルトの名無しさん
2025/02/09(日) 12:18:58.85ID:kD9FDD3o 俺個人としては同じDB枠の扱い
プライマリキーやインデックス等、DBとしての使い方は同じで、
それを設定する言語が、SQLか、或いは一般プログラミング言語か、という程度だから
だからこのスレも俺には「DBなら俺に訊け」でもいいんだが、このスレはテンプレないんだな
俺が主流派かどうかは分からない
SQLじゃないとヤダ、って奴が多ければスレを分けるべきだろうが、
正直分けるほど人いないし、NoSQLもここで聞いていいのでは?答える奴が居るかは知らんが
ただ、383も425も、SQLではなく、DBを分かってないから話がおかしくなってるので、
実質SQLではなくDBの質問になってるし、NoSQLでも結果的に同じだと思うよ
個別DBに特化した話等なら、DB板に行った方がいい
ただ、DB板の連中はプログラミングをしない/出来ないようなので、
432のように、プログラマから見たら明らかにトンチンカンな回答が返ってくる
それでもDB固有の問題には詳しいだろうよ
プライマリキーやインデックス等、DBとしての使い方は同じで、
それを設定する言語が、SQLか、或いは一般プログラミング言語か、という程度だから
だからこのスレも俺には「DBなら俺に訊け」でもいいんだが、このスレはテンプレないんだな
俺が主流派かどうかは分からない
SQLじゃないとヤダ、って奴が多ければスレを分けるべきだろうが、
正直分けるほど人いないし、NoSQLもここで聞いていいのでは?答える奴が居るかは知らんが
ただ、383も425も、SQLではなく、DBを分かってないから話がおかしくなってるので、
実質SQLではなくDBの質問になってるし、NoSQLでも結果的に同じだと思うよ
個別DBに特化した話等なら、DB板に行った方がいい
ただ、DB板の連中はプログラミングをしない/出来ないようなので、
432のように、プログラマから見たら明らかにトンチンカンな回答が返ってくる
それでもDB固有の問題には詳しいだろうよ
437デフォルトの名無しさん
2025/02/09(日) 18:18:30.19ID:qhqoX22r >>431
トリガーそのものにロジックは必要ないとしてトリガーを仕様に取り込んだせいでそうなっただけ
トリガーそのものにロジックは必要ないとしてトリガーを仕様に取り込んだせいでそうなっただけ
438デフォルトの名無しさん
2025/02/09(日) 18:19:47.93ID:qhqoX22r >>434
Oracle以外はあとからOracleDBに追従したから、元のクソ仕様のせいで制限がたくさんある。
Oracle以外はあとからOracleDBに追従したから、元のクソ仕様のせいで制限がたくさんある。
439デフォルトの名無しさん
2025/02/09(日) 18:31:02.14ID:mMq7ancL 出た!
DB板の荒らし
通称ボラクル君w
DB板の荒らし
通称ボラクル君w
440デフォルトの名無しさん
2025/02/09(日) 22:11:42.79ID:uTje1YE2441デフォルトの名無しさん
2025/02/09(日) 22:42:05.59ID:JhqniwEL ならお前が正しいと思うことを書けばよいだけでは?
442デフォルトの名無しさん
2025/02/10(月) 00:33:14.69ID:VZ2XQokR nosqlは独自に覚えなきゃいけないことが多すぎるうえに制約も多い
awsとazureで同じ設計が通じるわけでもないし
awsとazureで同じ設計が通じるわけでもないし
443デフォルトの名無しさん
2025/02/10(月) 11:53:19.06ID:Z13/KCo3 KVSですね判ります
444デフォルトの名無しさん
2025/02/10(月) 12:41:14.64ID:y2n5AJNm ベンダー違っても中身は全部Redisという場合もあるし単純なセッション管理にKVSを使うとかならベンダー違っても基本的に同じ設計になるしユースケース次第でいろいろ
NoSQLって言うだけだとリレーショナルじゃないくらいの意味しかなくて広すぎるから細かい話は一括りにはできない
NoSQLって言うだけだとリレーショナルじゃないくらいの意味しかなくて広すぎるから細かい話は一括りにはできない
445デフォルトの名無しさん
2025/05/11(日) 23:41:50.22ID:SmeYoeAy ミックさんの達人SQLは名著だと思うんだけど、関係が体であるとしている点については、群ですらないというamazonレビューの指摘の方が正しいように思うんだよね。ただ自分は文系で群とかちゃんと勉強したことないのであまり自信はない。数学できる人教えて。
446デフォルトの名無しさん
2025/05/12(月) 19:12:28.13ID:RxQ7/dSc >>445
集合は数学とは違うよ
集合は数学とは違うよ
447デフォルトの名無しさん
2025/05/13(火) 14:41:24.56ID:C/NhftFY SQLで無限集合出来んかな
448デフォルトの名無しさん
2025/05/14(水) 00:52:49.17ID:qxlPxgMn なんで havingとwhereは使い分ける必要があるの?
全部whereで済むように仕様を直してほしい
全部whereで済むように仕様を直してほしい
449デフォルトの名無しさん
2025/05/14(水) 01:47:48.71ID:tUJULNxS 意味違うと思うぞ。whereだけじゃ足りないんじゃね
450デフォルトの名無しさん
2025/05/14(水) 01:55:11.10ID:tUJULNxS 評価対象が行とグループ
評価タイミングも違うとchatGPTが教えてくれた
評価タイミングも違うとchatGPTが教えてくれた
451デフォルトの名無しさん
2025/05/14(水) 06:22:22.00ID:qNLCsgAG そんなこともAIに訊かなきゃわからないんかよw
452デフォルトの名無しさん
2025/05/14(水) 08:46:47.35ID:e7a03hqN スレ主じゃないので
LLM勉強になるぞ
LLM勉強になるぞ
453デフォルトの名無しさん
2025/05/14(水) 11:40:16.61ID:Ran/8XYC グループ化と関係なくHAVINGを使っているんだろうなw
454デフォルトの名無しさん
2025/05/14(水) 11:41:17.83ID:Ran/8XYC >>452
AIチャットは間違いを指摘してくれない
AIチャットは間違いを指摘してくれない
455デフォルトの名無しさん
2025/05/14(水) 12:56:57.46ID:1iop83U8 LLMの勉強する前に対人会話の勉強しよう?
456デフォルトの名無しさん
2025/05/14(水) 13:29:13.49ID:e7a03hqN お前らもネラーだからLLMと大差ないぞ
教科書レベルの話はLLMさんが正確さ
教科書レベルの話はLLMさんが正確さ
457デフォルトの名無しさん
2025/05/15(木) 09:52:35.44ID:3t3KbsMR 結局、>>445ってどう? 素人考えでは、群の条件のうち、「任意の元に対する逆元が存在する(逆元も関係の元である必要がある)」を、関係および関係上の演算は満たさないようにも思うんだけど。
レスを投稿する
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い
- マクラーレン、女性ドライバー3名を加入 [462275543]
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
