SQLだけ苦手

1仕様書無しさん
垢版 |
2018/04/17(火) 23:35:25.16
業務でSQLを扱っているけどいまいち理解できないです。

INNER JOIN?何が「内側」なのか理解できない
LEFT OUTER JOIN?はぁ?何を基準に「左」なんだ?しかも「外側」・・・
抽出条件がWHEREだと?条件はIFかWHENだろうが!
直積とデカルト積の違いは?要するに「総当たり」なの?

こんな調子で業務に支障が出始めてます。

どうしたら理解できる?
2018/04/25(水) 10:31:49.32
クソみたいsqlでDBが遅いとか言ってくんなよ。
2018/04/25(水) 22:51:57.15
>>1
頭悪いくせに理屈っぽそうだなw
ミック本読め
2018/05/03(木) 14:17:00.32
ほんとうに難しいのはSQLそのものよりビジネスロジックだと思う
2018/05/05(土) 00:24:36.62
難しいのは客の気まぐれを説き伏せることだろ
15仕様書無しさん
垢版 |
2018/05/22(火) 11:52:20.81
とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

VQI8B
2018/06/16(土) 00:23:58.13
ミックも理解できてない馬鹿ばっかりよ
2018/07/24(火) 10:23:13.29
良く出来るプログラマーほど苦手らしい
しかし大量のデータを扱ったり、インポートエクスポートやったりすると、なんかDBの良さが見えて来る。自分で検索アルゴリズム作ったりするよりも速いし、そういうの見せられると自然と改宗する。
2018/07/26(木) 18:37:38.82
いや、それはいいプログラマーじゃないだろ
2018/07/27(金) 23:59:21.66
>>18
業務SEはDB好きなんだけど、オープンソースで発言力大きそうな人はDBエンジンがブラックボックスなのと、使い道が理解出来ない世界で生きてる感じがするわ。
KVSでなんとかなると言い切る
20仕様書無しさん
垢版 |
2018/07/28(土) 13:23:07.59
プログラマでもなぜかSQLになると平気で明らかに重たい処理をデータベースに要求してくる。

どう処理されるのかまったく考えていないのだと思う。
2018/07/28(土) 13:31:54.62
暗号化された文字列でテーブルフルスキャンを何回か行う設計
速度はしらない
2018/07/28(土) 15:50:20.01
手続き型とは考え方が違う
理解出来るまでやるとしか言えん
2018/07/28(土) 16:20:44.84
>>1はSQLの払い出し作業だけをやってんのか?プログラマのようには見えんし
数百行のSQLとかなんか俺の昔の職場と被るんだがまさか某携帯会社関連じゃないよな?
2018/07/28(土) 16:33:55.12
>>20
チューニング出来る奴ならフルスキャンは不味いと考えるが、件数はどうでもよく動いて納品出来たらあとシラネが普通だよ
2018/07/29(日) 06:12:52.15
>>23
高速化のためにJRの改札もそんなんだっけ
2018/07/29(日) 07:57:36.57
今からでもSQLの文法変えてほしい
SELECTが射影でWhereが選択
SELECT前にあってWhereがSELECT前のグループにかかる
きがくるっとんのか
2018/07/29(日) 10:33:46.76
英語
2018/07/29(日) 12:00:59.15
自分でコンバータ作ればいいだけ。
セキュリティの観点からソースいじってsqlの文法変えるのはアリとは思うけど、使いづらいってのは経験不足なだけ
2018/07/29(日) 15:20:37.15
コンバーターのぶん処理が余計になるし
メンテでそこ疑わなきゃいけいないし
引継ぎ者が誰も知らない文法覚えないといけないし
選択枝としてありえない

標準化委員会が新しいまともな文法のSQL作って敷衍するべき
2018/07/29(日) 15:24:17.35
コンバーターというかビルダー既にいろいろあるよ
2018/07/29(日) 15:25:13.98
マジデスカ
2018/07/29(日) 15:56:49.61
>>29
動的SQLという言葉は分かります?
大きなプロジェクトだとそういうの許されないんだけど。
LAMPの人には世界が違い過ぎるか
2018/07/29(日) 16:43:33.80
それでどう解決するのかわからんし
そんな単語ごときで何で変にあおられてるのか
34仕様書無しさん
垢版 |
2018/07/30(月) 19:17:26.38
FROM
WHERE
SELECT

の順なのに、これを変えろと言うならANSIに言ってくれ。
2018/07/30(月) 20:15:19.95
お前と俺違う世界線の人間なのか
俺の世界じゃSELECTが先に来てたような気がするんだが
2018/07/30(月) 21:23:27.71
>>32
クズみたいなツール有難がって使うような奴は巨大クソのメンテでもしてろ
2018/07/30(月) 22:18:40.58
>>36
使いこなせないアピールはいいからw
2018/07/31(火) 06:57:53.74
>>36
あのさ
お前が好きな文法でSQLもどきを作るだろ、コンバータにかけるだろ、それを本番のソースに埋め込めよって書いただけだぞ
セキュリティの面やチューニングは別人の専門家がやるという面からも、プログラム動作中に文字列を連結させてSQLを組み立てるはSQLをコンパイルする時間もかかるし禁止されてるプロジェクトもあるんだよってこと
万人月のプロジェクトの経験が無いと意味不明なのはわかるけど文句言うのはおよしなさいよ
2018/07/31(火) 07:22:05.37
>>37
正直どうでも良いし絡んでも仕方ないんだけど
大手様謹製のクソツールに習熟したって大手のクソ仕事にしか役に立たないでしょ
素人が頑張って作ったようなツールよりも、OSSのプロダクトのほうがちゃんとしてるでしょ
俺は仕事選べるうちは、もうああいうのはやらん

>>38
長いよ
40仕様書無しさん
垢版 |
2018/07/31(火) 20:41:16.02
>>39
何を言っているのかわからない
2018/07/31(火) 21:42:38.39
大手様謹製のクソツールって、こいつなんの話をしてんだw
2018/08/01(水) 23:28:40.32
そういえば昔 pro*c ってあったな。今もあるのか?
43仕様書無しさん
垢版 |
2018/08/02(木) 20:47:05.47
>>42
あるよ。C言語をメインに開発しているところでは使われている。ただしPro*Cを使うメリットはほぼない。

C言語しかわからないひとはPro*Cの方がとっつきやすいだけ。
2018/08/03(金) 18:42:56.81
「だけ」というか、なんでSQLを他の言語と混同するのかが解らない。
2018/08/03(金) 19:33:02.52
>>44
DBから任意のデータを抽出するにはSQLを使わざるを得ないでしょ?
嫌ならCSVにでも出力させてから得意な言語で取ったり加工してロードすれば良い。
大量処理の場合、その方が早いこともあるけどな
46仕様書無しさん
垢版 |
2018/08/08(水) 00:42:15.35
10行以上のSQLは
見るの疲れるから止めてください!
2018/08/08(水) 02:26:29.96
>>46
列ごとに1行で書く奴は確かに困るな。
でも結合やサブクエリを多用すると10行は超えることあるわ。
プログラム側でフェッチして書く方がプログラマは納得いくんだろうけど、そこは改宗したつもりでDBに委ねるのがSIerのプログラマだと思う
48仕様書無しさん
垢版 |
2018/08/12(日) 23:18:46.99
>>44
Pro*CはOracle Databaseの世界ではSQLの範疇でC言語ではない。
49仕様書無しさん
垢版 |
2018/08/12(日) 23:19:54.60
>>47
はあ?いつもどんな単純なことしかしてないのか?
50仕様書無しさん
垢版 |
2018/08/12(日) 23:23:13.99
SQLの構文は確かに失敗だった。しかしデファクトスタンダードになってしまったのだから仕方ない。

中途半端な英語の指示は日本人より英語圏の人の方が混乱してわかりにくいだろう。

途中まではよかったがSQLを拡張していく過程で開発者が面倒になってわかりづらい構文になってしまった。
51仕様書無しさん
垢版 |
2018/08/13(月) 20:27:06.71
SQL苦手だと池袋のシスラボの研修でクビになるよ
52仕様書無しさん
垢版 |
2018/08/14(火) 12:34:00.95
初心者プログラマにSQLを使わせないでDB操作をするためのライブラリとかクラスを作れ。
見たいな仕事は結構したよ。
俺が、DB操作のための新たな言語仕様をでっち上げて、それをSQLに変換するみたいな。
結局、SQLを直に書くが一番と分かった。
53仕様書無しさん
垢版 |
2018/08/14(火) 12:57:25.67
>>52

既存のORM使えばいいじゃん
なぜそんな仕事を...
2018/08/14(火) 13:13:02.03
文法を統一してくれ。
同じメーカーの製品なのに
accessとsqlserverで違うのが
一番納得できん。
2018/08/15(水) 08:07:32.52
>>54
accessのjetは困るね。
まあ、おもちゃだから仕方がない。
mysqlを自分のpcに入れるしかないわ
2018/08/16(木) 01:29:58.94
え、ちょっと待って
MySQLもおもちゃよ?
2018/08/16(木) 08:59:32.39
えっ
2018/08/16(木) 19:37:48.04
煽るなよ。
oracleが正義なのはよく分かるけどさ
ボラクルになってからはもうポスグレかmysqlかsql serverの三択になってるよね。
俺の知識も化石化してる。
59仕様書無しさん
垢版 |
2018/08/18(土) 16:13:59.09
Postgressだろ?
今のバージョンは性能いいらしいぞ?
2018/08/18(土) 16:23:20.91
oracleってロック制御が
へんと言うか特殊だよな。
見えるのか見えないのか
はっきりしてくれ
2018/08/18(土) 17:02:06.02
>>60
そこら辺が病みつきになる理由だよ
ダーティーリードという言葉自体にアレルギー湧いちゃう人にはOracle以外は使えない
2018/08/18(土) 18:08:43.43
設計ミスのカオス系システムだとDBに超絶負荷がかかるからDB職人の神業で対応せざるを得なくなって性能や機能が求められるのでOracleに頼りたくなる
でもDDDのリポジトリパターンにしたがって開発してるとBDの性能とか機能を追求したくなるような場面って思ったよりずっと少なくなるのでPostgreSQLやMySQLでなんの問題もない
2018/08/19(日) 00:48:31.60
>>62
DDDと性能になんの関係があんだよ素人
リポジトリパターンって言いたいだけっしょ
64仕様書無しさん
垢版 |
2018/08/19(日) 09:32:31.12
>>63
>>62に書いてあるじゃん
きみ外人か?
2018/08/19(日) 09:46:48.67
× SQLだけ苦手
○ 他の苦手なものをまだ知らないだけ
2018/08/19(日) 09:48:50.99
>>56
おもちゃかどうかの基準は、クライアントサーバー方式かどうかだ
2018/08/19(日) 09:49:51.80
>>64
では>>62の中から、DDDと性能が関係していることを
示す文章を抜き出してみなさい
2018/08/19(日) 10:03:26.28
>>67
>設計ミスのカオス系システムだとDBに超絶負荷がかかるからDB職人の神業で対応せざるを得なくなって性能や機能が求められるのでOracleに頼りたくなる
>でもDDDのリポジトリパターンにしたがって開発してるとBDの性能とか機能を追求したくなるような場面って思ったよりずっと少なくなるのでPostgreSQLやMySQLでなんの問題もない
69仕様書無しさん
垢版 |
2018/08/19(日) 10:05:22.01
よこからすまんけど、

> 設計ミスのカオス系システムだとDBに超絶負荷がかかるから

そりゃ、設計ミスならそうなるかもなあ(笑)

> DDDのリポジトリパターンにしたがって開発して

設計をやりなおせば、まともに近づくのはそりゃ当たり前すぎて
馬鹿なのかお前は子供か?

と思ったw
70仕様書無しさん
垢版 |
2018/08/19(日) 10:08:09.02
DDDなんてわざわざ読む価値があるのか?
普通のSEなら知ってることばかりじゃないか?

DDDのような屁理屈本を初心者が読むと
勘違いして弊害のほうが多くなるからなあ(笑)
71仕様書無しさん
垢版 |
2018/08/19(日) 12:56:53.59
>>69
バカはお前やん

俺は最初から当たり前のことを当たり前のように言っただけだぞ

それをお前が「あっこれ当たり前のことだ」って気がつくまでやたら時間をかけて
子供でもすぐに気がつくことに気が付かなかった羞恥心をごまかすためにそんなレスをしたんだろう
2018/08/19(日) 13:07:44.68
設計ミスのバカシステムしか作れないバカは高機能高スペックのDBを使ってゴリ押しするしかない
まともな設計をしている常識人は平凡な機能と平凡なスペックのDBでもなんの問題もなくやっていける

当たり前すぎるレス内容だから即座に内心同意して既読スルーする以外の選択肢などないと思っていたが
こんなアタリマエのことに突っかかってくる個性的な人も世の中にはいたんだね
73仕様書無しさん
垢版 |
2018/08/19(日) 17:10:43.69
>>71
馬鹿はお前だろがクズ。

DDDなんて関係ないだろうが?

なに知ったかして書いてんだクズ。

おれさまDDD知ってるもん!とか思ってんだろ高卒の馬鹿w
2018/08/19(日) 17:36:53.16
あらら壊れちゃった
2018/08/19(日) 19:40:23.42
スキル不足を棚に上げてボラクルの性能に頼ろうとするクズPG
2018/08/19(日) 21:45:15.39
DBのスキルとPGのスキルは少し違うよね?
スーパープログラマはDBA目指さないし
意味不明にロックして泣きそうにデバッグ?するよかOracleでガンガンコードを書き進めたいよ
2018/08/19(日) 22:39:00.24
>>76
典型的な素人
2018/08/19(日) 23:19:26.04
>>77
俺が素人ならお前さんは何者なんだい?
IT弁慶かな?
2018/08/20(月) 00:21:02.46
>>76
いやいや、全部ひっくるめてエンジニアスキルでしょ。
判らなくて良いんだってのは、有り得ないから。
判らなくて恥ずかしいと思わないと。
2018/08/20(月) 02:33:40.61
>>79
40代だとDB=Oracleだったので、当時のプラチナ持ちまでいたと思うけど時代は変わってしまったよ。仕方がないけどね
81仕様書無しさん
垢版 |
2018/08/20(月) 18:48:24.98
>>意味不明にロックして泣きそうにデバッグ?するよかOracleでガンガンコードを書き進めたいよ
Oracle{に}がんがんコード書いて、ロックしても意味不明で泣きそうになってる。んだろが。
2018/08/22(水) 21:54:30.38
始まったら思い出す
終わったらわすれる
(最初に戻る)
83仕様書無しさん
垢版 |
2018/09/04(火) 15:21:45.96
>>80
昔のオラクルマスターのプラチナはいまのBronzeレベル。
841
垢版 |
2019/03/29(金) 21:01:31.57
SQLから逃亡してもう1年になるのか
今はasmメインなので活き活きしてるよ。
2021/01/11(月) 23:25:12.30
構文だけに着目すれば標準的な一階論理とほぼほぼ同じなんだけど、シンタックスシュガーがあまあますぎる…
selectとかjoinとかもうね
論理記号で書いてテキスト置換して食わせようかしら…
2021/09/30(木) 00:38:23.57
一階述語論理から始めるのがいいと思う
87仕様書無しさん
垢版 |
2024/03/29(金) 13:38:24.47
まさか占い信じてるのかわからんわ
40超え
ここまでエアコンつけてないからな
88仕様書無しさん
垢版 |
2024/03/29(金) 15:17:07.82
コスパ良くね?
2024/03/29(金) 16:03:50.53
持ってるだけ
運行しないと正しい判断をしたんだよ
脇でも大迫力の演技
90仕様書無しさん
垢版 |
2025/09/16(火) 20:46:14.72
>>65
確かにw
2025/09/24(水) 23:03:25.10
C#ならsql一切見なくてもDB使えるよな?
92仕様書無しさん
垢版 |
2025/09/26(金) 18:02:27.90
そりゃ無理だろ
細かいことしようと思ったらSqlCommand使うしかないし
2025/09/26(金) 18:05:48.75
SqlCommandは万能だけど文字列連結でSQLを作ってぶち込む馬鹿が居るから使用禁止にしてた
2025/09/27(土) 02:13:33.82
それがNGかどうかは場合によるだろ
2025/09/27(土) 07:59:47.96
当然場合によるよ
うちは無能なSESが多い現場だったからそうせざるを得なかった
2025/09/27(土) 09:25:18.32
sqlで細かい事やろうとしなければいいんだよ
ガバッと取り込んで、あとはlinqでやる
2025/09/27(土) 13:53:06.24
場合によるとか、そんな当たり前過ぎる話をされてもね
98仕様書無しさん
垢版 |
2025/09/27(土) 14:29:13.69
無知で申し訳ないんだけど、LINQするときって内部的にはWHERE句が使われるんだろうか?
ググると「SqlCommand使おう!」みたいないかがでしたかブログしか出てこない
まさかSELECTで全部取得した結果に対してWhere()で絞ったりとかは無いよね?
2025/09/27(土) 14:32:39.57
Where()したときにWHERE句が使われるかどうかを知りたい
ChatGPTはそう仰ってたけどソースがないから信用ならん
2025/09/27(土) 15:02:08.73
SQL作るところはプロに任せて、知らない若手にはラッパーで操作してもらうが最適解に思えてきた
上で既に結論が出てるっぽいけど
2025/09/27(土) 19:54:24.65
クエリパラメータを使っていればパフォーマンス的には問題ないし、バックエンドでの処理ならインジェクションのリスクも少ない

linqだと遅延評価による無駄なクエリ実行やToListしてからwhere書いちゃうミスもある

場合によるというのはそういうこと
102仕様書無しさん
垢版 |
2025/10/06(月) 04:00:36.50
静的SQLのようなもんだしな
2025/10/09(木) 00:28:02.56
sqlなんて今時経理でも書けるぞ
104仕様書無しさん
垢版 |
2025/10/09(木) 14:05:41.69
>>103
そういう世界だったら楽だけどな
2025/10/09(木) 21:43:06.83
何かしら出したいデータセットがあるとして、それをクエリ側でやるべきかアプリ側でやるべきかいつも悩む
何百行の複雑な1SQLで完結させると、メンテできる人が限られるけど関心事がクエリに絞られる
アプリ側で実装するとそれはそれで複雑になるけど対応できる人が限定されにくい
106仕様書無しさん
垢版 |
2025/10/10(金) 08:33:58.86
>>93
別にエエやんけ
禁止すると応用効かへんぞ
107仕様書無しさん
垢版 |
2025/10/10(金) 23:38:59.40
>>105
何のためにストアドプロシージャがあるんだよ?
2025/10/11(土) 00:01:43.28
>>106
SQLインジェクションされても同じ事が言えるのか
2025/10/11(土) 04:01:49.93
ストアドとか生産性クソだし触りたくないな
今どき速度がどうこうでストアド使うことなんてないし
110仕様書無しさん
垢版 |
2025/10/11(土) 12:57:43.56
>>106
全然良くなくて草
プロダクトでそれやったらお終いだよ
お前みたいな無知が居るから禁止しないといけないんだよ
レスを投稿する

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

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