SQLなら俺に訊け [無断転載禁止]©2ch.net

1デフォルトの名無しさん
垢版 |
2017/07/14(金) 07:40:53.63ID:HFjsarQi
さあ
2023/09/02(土) 23:45:29.35ID:xVr9+q3l
全然違う
またいい加減なことを言って振り出しに戻すのやめろ
242デフォルトの名無しさん
垢版 |
2023/09/16(土) 22:45:43.61ID:S29731mD
数学がわからないんだろ
243デフォルトの名無しさん
垢版 |
2023/09/16(土) 22:48:52.44ID:S29731mD
ファンクションプロシージャは結果を戻り値で返す

サブプロシージャはOUTパラメータ(引数)で返す

SQLの関数は関数(ファンクションプロシージャ)で実装しないとSQLの構文が破綻する
244デフォルトの名無しさん
垢版 |
2023/09/16(土) 22:55:55.12ID:S29731mD
>>241
だから、オラクル社はAda言語をそのまま流用しただけだよ。

ANSIはファンクションの方を先に標準SQLに組み込んだだけ。

ファンクションとサブを区別しているかどうかは、Ada言語を踏襲しているかどうかの違い。

C言語のように戻り値を無視する構文がいいのか悪いのかという話だよ。
245デフォルトの名無しさん
垢版 |
2023/09/17(日) 13:55:16.79ID:I/olJ+Ch
perl の戻り値の仕組みは面白いと思ったのは古い思い出
2023/09/17(日) 23:44:17.06ID:70jB6wMR
noSQLのスレはないの
オブジェクト指向データベースとかはsql使うのかな
247デフォルトの名無しさん
垢版 |
2023/09/18(月) 11:28:48.80ID:+ud3D/1q
noSQLスレは以前はあった
248デフォルトの名無しさん
垢版 |
2023/10/06(金) 19:29:28.75ID:Oy8bZUfG
>>246
データベース板を忘れないでください
2024/04/15(月) 01:05:12.02ID:3rGFgNqt
入門レベルです
環境はsqliteをsqlite3 CLIを通して使ってます

expr(式)を評価して簡易に値を確かめる方法はあったりしませんかね?
目的は学習目的の挙動把握実験と切り分けデバッグです、例えば'foo' LIKE 'f_%'とかそんなやつを試したい

sqlで実行できるのはstmt(文)のみなので、今のところexprを受け付ける何らかのstmt(文)に組み込み、その結果から値を間接的に類推してます
類推するにせよ、そもそもstmt毎に固有の意味論があるゆえ、一貫した振る舞いも得られず
なかなかしんどいです…

それっぽいCLIコマンドの.printも、シグネチャが.print STRING+なのでexpr評価がされませんし
2024/04/15(月) 11:17:52.57ID:fSSptXgn
>>249
> %  0文字以上の任意の文字列
> _ 任意の1文字
> [^] 除外
> https://techmania.jp/blog/sql-like/
正規表現と違い、これだけしかないのに要らないだろ。
お前は 1+1 と打って 2 と出る環境がないと死ぬ人か?

(昨今の文系馬鹿が流入してきてる)プログラミングでは、意味のないところに拘って時間を浪費する奴は多々居る。
お前もこれで、この程度なら読んだ瞬間分かるし、
(勘違いや見落としとかではなく)ガチで 'f_%' が 'foo' に一致するか分からないようならプログラミングを止めた方がいい。
普通なら、というか、自分で作りたい物があってSQLを使おうとしてる奴なら、こんなの読んだ瞬間に「はい分かった、次」でしかない。

初学者向けに環境を整備したいのであれば、インタラクティブ環境を整備する意味は大きいが、お前はそうではないのだろ。
それでも試したければ、所詮は正規表現の下位互換、どころかゴミ程度でしかないので、ブラウザでF12押してコンソールに
'foo'.search(new RegExp('f_%'.replace(/_/g,'.').replace(/%/g,'.*')))!==-1
とでも打てばいいだろうよ。でもこれもお前にとっては余計な回り道でしかないから、とっとと進むべきだと思うがな。
2024/04/15(月) 12:03:59.29ID:YG3lrvG/
>>250
やはり標準環境には無さそうな感じですか

LIKEはexprの一番簡単な例としてです
実際のところC系等の一般用途のプログラミング言語と比べてsqlのexpr文法って異常に複雑じゃありません?
https://sqlite.org/lang_expr.html

ASTも印字して欲しいくらいだけど、自分でパーサ書いてみるのも勉強になりそうですね
2024/04/15(月) 12:45:09.95ID:cLz3iDP/
普通の言語はstmtの構成要素としてexprが設けられるが、sqlでは逆にexprの中にstmtも入り得る異色の設計だから、exprサブセットのみの評価機は作れないね
まあstmtの評価は単にモックとして構文木を組んでみれば目的には適うし良い勉強になる

区切り文字をあまり使わないSQLは初学者には目に滑る構文だから特にそう
2024/04/15(月) 12:57:20.78ID:cLz3iDP/
>>251
評価の確認はおとなしくSQLiteに投げて、構文解析慣れてるようだし見本はこれ参考で十分だろう
https://sqlite.org/src/artifact/741a270b7f2f85bc

lemonって変わったパーサジェネレータ使ってるのけど、見た感じただのyacc変種なので出会ったトークン種別を単に印字させればよいだけ
2024/04/15(月) 13:34:40.60ID:fSSptXgn
>>251
> やはり標準環境には無さそうな感じですか
実際要らんしね。SQLがCLIから打てるのだから普通はそれで十分。(普通は=使う人にとっては)
PHPer連中はphpLiteAdminという、SQLがWebから打てる奴を使ってるようだが、動作レベルはCLIと同じでSQLだね。

> sqlのexpr文法って異常に複雑じゃありません?
さあ知らん.。というか俺は使う人であって、環境を構築する人ではないので、
ASTとか使ったこと無いし、yacc/lex/bisonあたりは触ったことが無い。
SQLも基本俺がコードに直接書く程度で、コード上でSQLを自動生成しようとはしたことは無いので分からん。
ただ、目がすべる=SQLの区切りがよく分からん、という感じにはならなかった気がする。カッコ使えで終わるし。

方針として「あらゆる道草を食い、遠回りしてるうちに、全体的な力が養える」という考えの奴もいるが、
今やることがあるなら変なところに拘らず先に進んで実装して行ったほうがいいと思うぜ。
その先にもどのみちハードルはあるのだから、同様に学んではいけ、目標実現に直接近づける。

> ASTも印字して欲しいくらいだけど、自分でパーサ書いてみるのも勉強になりそうですね
ちなみにASTに関心があるのなら、Goの方がいい。あれは標準でAST木を吐ける。
あと、パーサも作るのは自由だが、SQLについては公開された仕様書がなかったはず。
SQL92なら特許は切れてるはずなのだけど。
それから、もうやってるだろうがexplainコマンドでクエリプランを出せる。ASTでは無いが、まあ似たようなものではあるだろう。
2024/04/15(月) 14:00:04.64ID:YG3lrvG/
>>252
sqliteの構文図見直したらしっかりselect-stmtってありますねえ…

>>253
まさに求めてたやつです、どうも
各処理系のパーサも見較べるとBison向けでルール/アクションの羅列のpsqlの奴が一番わかり易かった
https://github.com/postgres/postgres/blob/master/src/backend/parser/gram.y

psql用だけど拡張や高度な機能を気にする段階に無いので、ここから必要そうなのを拾い始めました
sqliteのパーサは中でゴチャゴチャ処理してるけど、psqlのパーサはparser/*.cへアクション内で呼ぶ関数がキレイに分離されていて、記述的命名から意味論まで分かるお手本のようなデザインですね
座右の文法リファレンスとして印刷してそのまま使えそうな出来栄え
2024/04/15(月) 14:07:24.63ID:YG3lrvG/
>>254
忠告どうも
たまたまSQLという'言語'が面白そうで規格までしっかりある良さそうなもので意欲を得ました
もしこのSQL'言語'が肌に合わなかったならば、プログラミング言語同梱のリレーショナルデータベースAPIへロールバックするでしょう
私の主眼はスレタイ通りSQLにあります
2024/04/15(月) 14:23:22.62ID:f5jIOgeT
既にRDBバリバリ管理やってる人こそ学ぶべき
むしろ初学が厳しい見た目のSQLだと挫折率高そう
母語に流暢でも英語をサボる理由にはならない

API通ってる環境なら必然的に埋め込みSQLも使える
2024/04/15(月) 14:34:25.57ID:fSSptXgn
>>256
そりゃ規格はあるよ。
ただ無料では仕様書が手に入らないらしい。勿論買えば済むらしいが。

> プログラミング言語同梱のリレーショナルデータベースAPI
てかこれ何ぞ?Oracleのことか?
そもそもDB使ってきててSQL知ラネ、ってのがかなり意味不明なのだが。
ORMの事なら、ぶっちゃけORMで済むのならORMでやるべきだと思うよ。
むしろ今時SQL手打ちか?とも言われてるはずだし。
(AccessとかでもクエリビルダーでSQLを作成してて、SQL自体をプログラマが打ち込む必要はなかったはず)
2024/04/15(月) 14:57:46.75ID:2Ew9RCgX
>>258
標準ライブラリ備えてるような言語には大抵RDB接続機能があって、ホストの文法に沿ってクエリ送れるやろ
例えば.NET共通のLINQとか
.NET言語毎にもあったりしてそれこそ無数
2024/04/15(月) 15:02:39.91ID:2Ew9RCgX
LINQはRDB以外の色々なデータベースモデルも想定してるからSQLとはかなり違う
LINQでRDB管理に習熟してもSQL知識はあまり付かないと思われ
2024/04/15(月) 16:16:36.38ID:Xey1DMe3
>>249
'foo' LIKE 'f_%'とかを試したいならSELECT 'foo' LIKE ‘f_%’;とすればいい
ただSQLを学ぶ目的なら実際に使うSQLでデータのほうを弄りながらいろいろ試したほうが断然効率いいよ
一つ一つ式の評価結果を実際に使うSQLとは別で確認するのは時間の無駄
https://www.db-fiddle.com/f/oUzwVLEEeWgxdxbQN36kvJ/0

あとプログラマー歴が長い人にありがちだけど
SQLをループと条件節のように命令型のパラダイムで捉えるのはお勧めしない
関係演算の感覚を身につける妨げになるから
2024/04/15(月) 16:47:19.47ID:fSSptXgn
むう?なんか書き込み失敗して内容も失ったが、覚えてる範囲でもう一度書く。
復活して同様の物が連投されてたらご容赦を。

>>259-260
LINQはSQL風にC#を書ける物で、C#のArrayに対してSQLを発行できるものではなかったと思ったが違ったか?
俺は後者だと思ってたが前者だったので絶望した。あれが有用になる局面がよく分からん。

俺が希望してたLINQ:
.NETのStreamクラスが匿名パイプ/ネットワークストリーム/ファイルの抽象クラスのように、
.NETのArrayや各種DBに対してSQLを発行できるもの
(つまり、接続先がDBなら通常通り、接続先をArrayにすればオンメモリDBとして、同一コードで一文字も変更なく動く物)

実際のLINQ:
for文を書きたくないでござる、だけのクソったれ

俺はあくまでSQLでDB管理する前提で、LINQが何らかのラッパを提供するものだと思ってた。
だから実際のLINQ見て使えねえと判断したが、全く違う方法でDB管理するのかあれは?
俺は勝手に、SQL書けるがC#書けない奴をC#側の戦力として取り込む文法かと思ってたが。


が、まあ、
> プログラミング言語同梱のリレーショナルデータベースAPI
がLINQ等を指すのはわかった。そして ID:YG3lrvG/ の書き込みを読み直すと、
もしかして自前でSQLインタフェース提供しようとしてる?
ならそれは諦めて、DBをPostgreSQL等に移行するほうが妥当だと思うぜ。
2024/04/15(月) 18:29:06.40ID:x2iyd0ju
>>262
めっちゃくちゃ基本的なこともわかってないからまずは公式チュートリアル的なのを読んだほうがいい
LINQ to ObjectとLINQ to SQL/DataSet/Entitiesの区別くらいは最低限つくようにしてくれ
2024/04/15(月) 19:25:10.27ID:fSSptXgn
>>263
なるほど俺が糞だと思ってたのはLINQ to Objectなのは分かった。
そして俺の思惑とは違い、MSはSQL対象のほうをラップしてるわけか。
俺的希望仕様ならLINQはリテラルか引数で無ければならず、ハードコードベタ書きとか意味不明だったが、
まあこれなら分からんでも無い。

が、そもそもこれはSQLが無駄に方言が増えすぎてたからMSもLINQというSQLモドキを実装しただけの気がするが。
それでもDOMだXPATHだとやるよりはLINQだけで済む方がいいのは確かだが、
ある意味新たなMSSQL方言を生み出しただけの気も。
そしてOracleもSQL方言だとは聞いてるし、やっぱRDB弄っててSQL知ラネ、ってのはよく分からない。
KVSならSQL関係ないが、そういう感じではなさそうだし。まあいいけどね。
2024/04/16(火) 08:55:41.54ID:Fr3sHPgG
LINQはSQLに寄せようとしてる雰囲気があるので中途半端感
普通は言語のインメモリオブジェクト操作の方へ寄せるのだが
C#, VB.NET etc.の多言語前提のデザインだからかな

まあWhereとかSelectとかキーワードを借りて文面ぱっと見だけの話
2024/04/16(火) 10:35:29.23ID:len5k1k5
>>265
MSなりの折衷策なんだろ。

> 言語のインメモリオブジェクト操作の方へ寄せる
これならORMが最上で、それ以上は無いからね。

PHPにはPDOという、無いよりはましだが実質的に意味が無いラッパがあるが、
あれよりはましなDBラッパを用意して、共通文法を考えました、ってところだろ。
実際、forでウダウダやるより宣言型の方が読みやすいのは確かだから、宣言型文法も取り入れたかったのだろうし。
2024/09/22(日) 19:26:44.50ID:kkG3ckzv
初歩的なことで申し訳ありませんがご教授ください。
idカラムに例として 5, 7, 11, 41 があります。
41, 11, 7, 5とソートしたいのですが
order by id DESC では、7, 5, 41, 11とソートされます。
なにか良い方法はございますでしょうか。
よろしくお願いします。
2024/09/22(日) 20:32:30.58ID:UdTQ7EcR
ORDER BY INT(id) DESC
ではどうでしょう
カラムid が文字列となっていないでしょうか

INTは DBによってことなるかも
上手くいかなかったらごめんなさい
2024/09/23(月) 07:02:58.03ID:dfCQ5A4R
いや「初歩的な」と言ってるんだし、
SQLではなく、テーブル作成時の間違いで、

crete table mytable (id INTEGER

とかやれと言った方がいいのでは
2024/09/23(月) 08:28:16.45ID:fL+Xy+IA
>>268さん
ありがとうございます!記述は異なりますが、キャストというヒントから実現できました!
助かります!

>>269さん
ありがとうございます。都合上文字列のカラムなので困っていました。
ありがとうございます!
2024/09/23(月) 09:03:31.51ID:dfCQ5A4R
>>270
> 都合上文字列のカラムなので
嘘だね
でもそのidをTEXTにするのは設計が間違ってるから、早い段階で直しておかないと頓挫する
でなければ壮絶クソコードの山になり、何とか動かせるだけのゴミにしかならないよ

設計的に正しい場合は、そのidが7,5,41,11とソートされて何も問題ないはず
他者の担当部分等の理由で変更出来ないのなら、つまり仕事としてやってるんだろうから、そいつや上司に聞け、ここで聞くのは悪手
(Zは同僚や上司に聞いたら恥とでも思ってるようだが、そうではなく、
部下がどの程度の技術レベルでどこまで仕事振れるかも管理範囲なのだから、分からない事は聞くべきだし、
逆にこの程度の初歩的部分すら分からないのに聞く事も許さないというのは、仕事場/上司に見切り付けるべき
そしてどうしても変更出来ないならCREATE VIEWで誤魔化した方がまだましな気もするが、まあ先に相談だろうね)

だから実際は自分でやってるんだろ、ならさっさとtable定義を直すべき
272デフォルトの名無しさん
垢版 |
2024/09/25(水) 13:39:54.41ID:UPZugvt8
バカは放っとこうよ
273デフォルトの名無しさん
垢版 |
2024/10/14(月) 03:33:42.65ID:iqlRL8W8
>>267
それは文字の照合順序の問題
自分でそうしたのか、他人がそうしたのか書いてないが、一文字目だけで並び替えているだけ。
274デフォルトの名無しさん
垢版 |
2024/10/14(月) 03:34:54.50ID:iqlRL8W8
>>270
少なくとも製品名くらいは書こうぜ
2024/10/14(月) 12:40:53.49ID:mb36WxU5
>>273
新手のバカが現れたw
276デフォルトの名無しさん
垢版 |
2024/10/14(月) 12:49:16.73ID:iqlRL8W8
>>275
文字列は文字コード順になるのが普通

桁数の違う数字列を比較したから、どういう結果になるかは照合順序による

数字列と数値は別物
277デフォルトの名無しさん
垢版 |
2024/10/14(月) 12:50:50.99ID:iqlRL8W8
>>275
彼は7、5、4、1の順になってしまうと書いているが、アスキー文字の数字は1が先で9が後に配置されている。
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という風にしないと結果は不明。
2024/10/27(日) 09:13:31.20ID:Vdu9Rrcz
良い感じのSQLのGUIクライアントある?
たとえばカラムに連番と画像(画像元のパスなど)があって、
全てのがぞうを表示するようなものを求めてる
殆どのGUIクライアントはそういうDBだ画像は表示されなくてその画像部分のフィールドをクリックしたときに1枚だけ表示されるけど、
そうじゃなくてずらっと並んでる画像パスの入ったフィールド全ての画像を表示したいのだが
2024/10/27(日) 09:41:04.89ID:ThFiCQpU
自分で作るか人が作ったアプリのDB構造に合わせるかしないと無理だろ
いずれにしろSQL関係ない
282デフォルトの名無しさん
垢版 |
2024/10/27(日) 15:56:39.28ID:Vdu9Rrcz
>>281
ふーん、やっぱそうなるんだ
それを知りたかったんでね
あと何かむかつくからここから俺がこのスレ乗っ取ることにするわ
日記帳がわりにする
2024/10/28(月) 15:33:24.71ID:ehQdeP61
>>280
MS-Access
2024/10/28(月) 16:27:15.25ID:xaz6ouOz
>>283
63bitで最大4Gまでしか扱えないものはノーサンキュ
285sage
垢版 |
2024/10/28(月) 17:18:52.43ID:ehQdeP61
これが条件後出しカッコ悪いというやつか
2024/10/28(月) 17:25:09.25ID:Hp6dJGZ5
63bit 63bit 63bit 63bit
最大4G 最大4G 最大4G 最大4G
2024/10/30(水) 02:07:11.28ID:p9nsrTZ/
evo tech ωωω
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直打ちの方がマシ
289デフォルトの名無しさん
垢版 |
2024/10/30(水) 10:40:48.68ID:x/mNM3SS
DBのGUIでつまいこういうことをやりたい
(ただ表示する画像はもっと多い)

https://i.imgur.com/e5UznLk.png
2024/10/30(水) 19:37:59.35ID:MyBSxte7
>289
自分で作っちゃえばええやん
sqlでselectしてアプリケーション経由して(phpでもjavaでもTypeScriptでも何でもおけ)適当にhtmlブラウザで表示させればええやん
複雑なjoinとか無くて一つのテーブルで済むなら30分も掛からず出来るっしょ
291デフォルトの名無しさん
垢版 |
2024/10/30(水) 19:51:27.08ID:x/mNM3SS
>>290
結局最終的にはhtmlで出力しかないのか
DBのGUIでずらっと画像だしてくれるものだとおもってた
2024/10/30(水) 19:57:39.75ID:MyBSxte7
>291
マルチやめなさい。そしてhtml表示は一つの手段でしか無い。他にも方法なんぞ幾らでもあるわ。ただし、開発環境を一切書いてないから助言が出来るわけもなく
あくまで一般的な方法で手っ取り早いのを伝えただけ。
Excelのマクロ組んでもいいだろうし、cuiでコマンド叩いてDBからローカルの画像パス取ってきてホストPCに表示するバッチ組んでも良いだろうし…
「結局最終的にはhtmlで表示するしかない」なんて一言も書いてないぞ
繰り返すが「開発環境を一切書いてないから助言が出来るわけもなくあくまで一般的な方法で手っ取り早いのを伝えただけ。」だぞ
2024/10/30(水) 20:01:18.39ID:x/mNM3SS
>>292
そもそもphpでもjavaでもまたひと手間かよと思ったら泣きたくなってよー
とらいえずExcelでのデータベースはできたんだ
ただ数万の画像表示でクッソ重いからファイルパスに変えたけど
でも画像べらーって表示したいじゃん
これを試しに画像だけでもHTMLでやったらどうなるかと思ったら数万枚数十万のサムネ画像べらーっとはったら重いわ
そうなんだよな、htmlしばりするわけじゃねーもんな
とりあえず、EXCELでデータベース作って、SQliteにぶち込んでそれで様子みてる
そっから先は何でどうするか選択肢がおおすぎてわけわからなくなってんだわ
マツリポストは後生やからさぁ、いまのところかんべんしてつかーさい
2024/10/30(水) 20:04:46.88ID:2JaEjh5Z
マルチポストとかこんなところにそんなのが存在するのか?
2024/10/30(水) 20:07:31.52ID:x/mNM3SS
良く考えたら風俗嬢とかのサイトでも女の子すべてずらーっと見せるの無いよな
数十毎にくぎってページ1とか2にしてるわけだし
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
そんな付加をかけまくるツール、人間が少しだけ見るためのツールに需要はない。
2024/11/01(金) 09:10:10.59ID:xFfDlU+j
>>298
色々なサイトでサムネを1ページの中に限定して表示してるのは数を無限や数万数十万にすると負荷がかかるからか
なるほどなあ
2024/11/01(金) 19:58:15.69ID:p+e2Ja+9
つ<img loading="lazy">

てか結局何がしたいの?
explorer+特大アイコンで駄目な理由は?
2024/11/01(金) 19:58:32.10ID:TgBKHsuN
twitterのフォロワー整理ツールとか参考になるわ
2024/11/03(日) 17:55:14.49ID:sFUWrMLA
>>300
画像がDBに入っていると、エクスプローラーでは見れないんだよね
2024/11/03(日) 18:18:24.25ID:gYhGbZOp
>>302
それはそうだが、そもそも画像をDBに入れる意味がない
ただ初心者あるあるらしく、「(画像掲示板では)そうじゃなくてファイル名だけDBに入れてapacheに直接配信させるんだ」と
説明してたサイトがあったがすぐには出てこない

なおSQLiteはBLOBにもインデックス張れるらしいが、そんな使い方しないだろ
2024/11/03(日) 18:54:12.64ID:sFUWrMLA
>>303
上級者でもあるあるだけどね
デメリット大きいけどDBに入れたら入れたで便利なことも多いんだよね
もっと良かったこと探しをしろ
2024/11/03(日) 20:08:56.01ID:gYhGbZOp
ないと思うが、まあ上級者なら自分で何とかしろ
なお293なら画像をDBに入れてなければ解決してる
2024/11/03(日) 22:39:10.72ID:EvIOUlko
何も解決してないだろww
2024/11/04(月) 14:37:07.62ID:odwm0TPR
ずっとBAD GATEWAY
2024/11/04(月) 14:37:49.34ID:odwm0TPR
っつーのは書けるのか なんてこった

解決しなきゃいけない案件じゃねーだろ 画面いっぱいに数万もの大量な画像をずらーっと表示したいなんて要望は
そも、それをしてからその先どうしたいんだ? それを一向に書こうとしない相談者に難がある
表示したらそれで満足なんか?
ランダムに表示するようにでもしなきゃ、毎回その数万の画像のうち特定の一部だけを目撃することに成る それに意味は?
小アイコンサイズで画面いっぱいに貼ったとしてFHDモニタで250枚程度だ もっとちっさくした画像でも貼ろうってのか
いろんな画像が次々湧いてくるようなエフェクト掛けて、とかならDBだのSQLだのほぼほぼ関係ねーわ
2024/11/04(月) 14:52:26.31ID:1xi3Twsq
>>308
何も解決していないのに「なお293なら画像をDBに入れてなければ解決してる(キリッ)」みたいな痛いレスが面白かっただけだよ
310デフォルトの名無しさん
垢版 |
2024/11/06(水) 08:23:55.64ID:spMsN6R2
>>299
RDBでデータ型が画像データというデータ型は聞いたことがない。

RDBは画像データのバイナリデータか、画像データファイル形式に近いラージオブジェクト型。
単に画像データファイルへのリンクが入っているだけという設計もある。
2024/11/06(水) 08:54:43.24ID:L0rogwPJ
INNER JOINとEXISTSどっちがいいんだ?
2024/11/06(水) 10:46:12.80ID:2mRFCI0/
使い途がちがう EXISTSはture/falseを返すだけ
2024/11/06(水) 11:02:31.90ID:L0rogwPJ
INNER JOINでもWHERE EXISTSでも、テーブルBのデータを使ってテーブルAのデータを絞り込んでSELECTするができるじゃん
性能的にどっちがいいんだっていう
314デフォルトの名無しさん
垢版 |
2024/11/06(水) 12:00:06.03ID:spMsN6R2
>>313
そもそも実行計画・実行プランくらいは見ろよ
書き方がどうとかいい加減にしろ!
315デフォルトの名無しさん
垢版 |
2024/11/06(水) 12:02:25.42ID:spMsN6R2
>>313
対象レコードの存在有無を判定するのに内部結合をするのは意図がわからないのでやめなさい。

しかも処理コストが高くなるのが普通だ。
316313
垢版 |
2024/11/07(木) 08:53:30.88ID:Qi1p5GFP
>>314-315
はい、ごめんなさい……
317デフォルトの名無しさん
垢版 |
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の方が実行順が先なのになぜですか?
2024/11/12(火) 09:07:16.39ID:+Q7wUFQ5
抽出条件で行の絞り込みをするのは、SELECTでなく WHEREかと
行を絞ってからグループ化するのはそうかもしれないけど、
統一感はあった方がいいとは思いますね
2024/11/12(火) 11:00:57.73ID:jB7P5Kru
>>317
GROUP BYでもcolumn aliasが使えるようPostgresが拡張してるから
集約関数とかを両方に書かないといけないの面倒でしょ?
320317
垢版 |
2024/11/12(火) 12:30:43.18ID:ZCUDlG+O
>> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
321317
垢版 |
2024/11/12(火) 12:30:43.35ID:ZCUDlG+O
>> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
322317
垢版 |
2024/11/12(火) 12:30:44.59ID:ZCUDlG+O
>> 319
Postgresさんが気を利かせてくれてるわけですね?
ありがとうございます。
323デフォルトの名無しさん
垢版 |
2024/11/12(火) 12:31:48.29ID:ZCUDlG+O
すみません。ブラウザの反応がなかったので何回も書込み押してしまいました
2024/11/12(火) 15:44:40.37ID:3FuqnzdR
view造って先にaaaのみにするんじゃね
2024/11/12(火) 16:45:36.43ID:+Q7wUFQ5
WHEREによるフィルタが先で、SELECTによるマップがあとなのかな
326デフォルトの名無しさん
垢版 |
2024/11/12(火) 17:29:22.04ID:v7TGFNyn
>>322
そんなに列別名を使いたい理由がわからない。

集合演算のSELECTでテーブルによって列名が異なるならやらないといけないが、そういうSELECTでないのにテーブル別名メリットが大きいが、列別名を使うメリットなんてほとんどないよ。
327デフォルトの名無しさん
垢版 |
2024/11/12(火) 17:31:02.65ID:v7TGFNyn
>>325
SQLの構文解析エンジンの仕様によるような書き方をするのがそもそもの間違いだよね。
2024/11/12(火) 18:00:22.86ID:+Q7wUFQ5
>>327
ですね
2024/11/12(火) 18:13:14.69ID:+Q7wUFQ5
LINQを最初に見たとき、なんでこんな順序なんだ? と思ったけど、自然な順序なのかもね
FROM→WHERE→SELECT

しばらくLINQやってないから、うろ覚えで見当違いだったらごめんなさい
330デフォルトの名無しさん
垢版 |
2024/11/12(火) 19:58:46.82ID:v7TGFNyn
>>329
SQLは自然言語に近い表現で作られた
英語の語順になっているから、日本人には変な順番に見えるだけ
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_*
みたいに書けたら便利なのに
2024/12/21(土) 11:36:41.92ID:KZIgeCwE
うちはそのまま A.name のまま扱ってるよ
333デフォルトの名無しさん
垢版 |
2024/12/21(土) 19:55:23.41ID:IOryZJAZ
>>331
またそのネタかよw
334デフォルトの名無しさん
垢版 |
2024/12/21(土) 20:43:39.23ID:SDOaO/8s
SQLを出力するプログラム位かけるやろ
335313
垢版 |
2024/12/23(月) 08:20:37.09ID:hrYrd+aN
>>330
クエリ式であってSQLじゃねぇだろ
SQLの語順ならSELECTが最初だ
2024/12/23(月) 10:17:08.30ID:xh1kOIEb
>>333
また、って言うくらいには結構求められている機能だと思う
2024/12/23(月) 18:35:45.31ID:GjEN+y4a
>>329
LINQはそもそも.NETのコードの物だから
メソッドチェーンで書く時の順番がそのままになってるだけよ

HogeList.Where().Select()って書き方になるからクエリ式もそうなる。
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
とシンプルに書けて良いよ
2024/12/24(火) 12:30:30.62ID:V4/fVU02
>338
>331を読むに、別名(エイリアス)でテーブル名付けたいって事でしょ
確かに長ったらしいテーブル名は一括で一文字のエイリアス名を付けたいな…の思う事もあるから>338の言わんとしてることも分かる
340デフォルトの名無しさん
垢版 |
2024/12/24(火) 22:39:03.73ID:S4CkJ4V1
>>335
標示SQLではSELECTよりもWITHが先
341デフォルトの名無しさん
垢版 |
2024/12/24(火) 22:40:09.34ID:S4CkJ4V1
>>338
同じカラム名なのに意味が異なるという狂った設計なのが間違い
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況