0001NAME IS NULL2016/05/12(木) 05:29:07.61ID:HmbS4CfD SQL初心者用の質問スレッドです。
03483452017/03/03(金) 05:48:15.55ID:???>>346-347 レスありがとうございます。 実例での効果まであげていただいて感謝です。 DATA型でも検索速度は変わらないとのことなので、 このままでCREATEしたいと思います。 0349NAME IS NULL2017/03/03(金) 09:25:17.22ID:???>>348 なぜそう結論できる? 0350NAME IS NULL2017/03/03(金) 12:26:59.01ID:??? 当たり屋かよw 0351NAME IS NULL2017/03/03(金) 17:39:50.51ID:??? (DATA型は)このままでってことだろう 0352NAME IS NULL2017/03/04(土) 06:08:32.02ID:GZ+afmPr RDBMSの内部構造を意識するのが初心者なのかと。 0353NAME IS NULL2017/03/04(土) 07:48:26.00ID:??? まあプログラムやってればその辺はちょっとは検討つくでしょう JavaScriptみたいのしかやったことないとかだとDBいじる機会もなかなかないだろうし ところでDATE型とINT型の検索速度の比較って ググって見るとINT型のほうが早いみたいだけど 0354NAME IS NULL2017/03/04(土) 08:31:07.04ID:??? 郵便番号と地名が書いてるデータベースを作るとして 0から始まる北海道はとりあえず無視するとして 7桁のユニークな数字になるわけですが そういう番号があっても主キーにせずオートインクリメントなサロゲートキーを作るべきですか? 0355NAME IS NULL2017/03/04(土) 08:46:24.32ID:??? 郵便番号は郵便局が自分たちの業務をやりやすくするために振っただけのものであって 地名との一対一の紐付けを保証するものではないし 郵便局の都合で変更されることもある そのへんを理解した上で使うなら別にいいんじゃない? 0356NAME IS NULL2017/03/04(土) 09:03:59.24ID:??? 「郵便番号の」サロゲートだとしたらそのへんは何も変わらんが。 0357NAME IS NULL2017/03/04(土) 09:23:42.43ID:???>>353 > ところでDATE型とINT型の検索速度の比較って > ググって見るとINT型のほうが早いみたいだけど
そらそうよ。プログラムやってれば見当つくはず。
>>354 困ったことに、郵便番号と地名は1:nです 0358NAME IS NULL2017/03/04(土) 09:32:54.15ID:??? データベースは当然、1:n関係を表現できるだろうに。何を困ることがある? 0359NAME IS NULL2017/03/04(土) 09:34:36.06ID:???>>347は嘘やったんやな 0360NAME IS NULL2017/03/04(土) 10:37:00.43ID:??? 郵便番号はちょっと例えが悪かったかな・・・ 例えばクレジットカードとか連番だと都合が悪いけど一意な番号 それでもサロゲートは必要? 0361NAME IS NULL2017/03/04(土) 10:49:39.48ID:??? そういう質問している人には必要ない。 0362NAME IS NULL2017/03/04(土) 11:01:27.93ID:??? だってとりあえずauto incrementを主キーにしとけって書籍に書いてるんだもの 0363NAME IS NULL2017/03/04(土) 11:13:05.17ID:??? 晒せ。 0364NAME IS NULL2017/03/04(土) 11:36:56.78ID:??? 初心者にはあれこれいうよりベストな書き方覚えろっていう ベストでもないオレオレ書き方教える書籍は多い 全部のテーブルにcreated updated作れみたいな 0365NAME IS NULL2017/03/04(土) 15:42:19.31ID:??? SQLはなんで大文字が好きなの? 0366NAME IS NULL2017/03/04(土) 23:32:19.88ID:b+Y4fejK>>353 そもそもどのRDBMSのINT型なのか知らないが、標準SQLではコンピュータの数値表現としているので、速いのはあたりまえ。
ちなみにOracleでは標準SQLのINT型はNUMBER型なのでまったく違う。当然Oracleでは計算が遅くはなる。 0367NAME IS NULL2017/03/04(土) 23:33:46.81ID:b+Y4fejK>>365 プログラミング言語の歴史では、小文字をメインに使うようになったのはC言語あたりから。 0368NAME IS NULL2017/03/04(土) 23:57:32.49ID:??? Oracleの場合、内部で大文字に変えていると聞いたことがある 本当かどうかは確かめたことないし、今もそうなのかは分からないが 使っていた当時は全部大文字で書いてたな 0369NAME IS NULL2017/03/05(日) 04:43:17.86ID:??? DB側で用意してる関数含めてユーザ入力による変数になってる テーブル名とかカラム名以外は全部大文字にしてる `table` `long_table_name` `column` `long_column_name` ご丁寧に``で囲んでるけどこれもいらんのよなあ なんかいい規則があればいいんだけど 0370NAME IS NULL2017/03/05(日) 11:05:14.00ID:??? 基本的に大文字しか使えない環境が当たり前の頃からSQLあるからな、、、 COBOLでの EXEC SQL 文とか懐かしいなあ 0371NAME IS NULL2017/03/05(日) 15:50:25.27ID:ZV3ds4gJ>>368 それを言うのがいるけど、プログラマでそんなことを言ったら恥ずかしいぞ。大文字、小文字を区別しないなら大文字、小文字の判定処理が入るわけで、そこから大文字に変換する処理が遅くて問題になるなど阿呆みたいなこだわりだ。 0372NAME IS NULL2017/03/06(月) 00:07:50.62ID:??? 大文字に変換する処理が遅くて問題になるなんて誰か言ってた? 0373NAME IS NULL2017/03/06(月) 01:05:03.96ID:VHVbqVdu>>368 が書いてるが? 0374NAME IS NULL2017/03/06(月) 01:09:49.78ID:VHVbqVdu 大文字が大文字かどうかより、文字がなんなのかの判定も入るわけで、そんな処理時間はいつの時代のコンピュータの性能で考えているんだよw
こんなことを言い出したらRDBはあらゆることが遅すぎて使えない。現実にRDBはコンピュータの性能が上がったから使い物になるようになった歴史も知らないのか? 0375NAME IS NULL2017/03/06(月) 01:15:29.34ID:???>>371 asp 0376NAME IS NULL2017/03/06(月) 02:48:06.58ID:??? 368本人です。何かお騒がせしてしまい済みません。 相当昔の話です。 動かしていたサーバーはW2k、CPUはP3、メモリー4G程度でした。 できるだけ負荷を減らせと言う指示の中で作業してました。 0377NAME IS NULL2017/03/06(月) 05:47:11.51ID:??? パーサーの仕様で大文字小文字区別しないにしても 大文字しかパースできなくて変換処理が必要だとしても それに判定を挟む必要もなければ ただの一文にすぎないSQLに処理時間なんてギャグかよって話 0378NAME IS NULL2017/03/06(月) 07:05:39.51ID:???>>377 お前の小さい脳みそこそギャグかよww 0379NAME IS NULL2017/03/06(月) 07:25:07.48ID:??? ↑アホ丸出し 0380NAME IS NULL2017/03/06(月) 07:28:15.30ID:???>>378 構文解析にかける時間に比べれば 文字列の処理なんて微々たるものがわからないような猿 0381NAME IS NULL2017/03/06(月) 12:11:06.08ID:0KbRjlYP>>377 判定処理はいるだろw 文字がAならAかどうか判定する。
何この低レベルw 0382NAME IS NULL2017/03/06(月) 12:23:32.62ID:??? 小文字混ざってる前提で全て大文字にしてからパースすればいいだけってのは プログラマーならわかるだろ 0383NAME IS NULL2017/03/06(月) 12:41:33.78ID:???>>381 全部大文字にすればよいでしよw 0384NAME IS NULL2017/03/06(月) 15:24:30.48ID:bDLzF0aS 結局予約語だけ大文字で書けばいいの? 開発効率落ちまくるけどどの参考書もそうしてるよな 0385NAME IS NULL2017/03/06(月) 15:32:38.74ID:??? コーディング規約ってのがそれぞれのチームなり部署なりにあるだろ? それに従えば良いだろ。 んで自分一人のものだけなら好き勝手に 0386NAME IS NULL2017/03/06(月) 15:59:13.62ID:??? そうなんだけどさ、大文字と小文字使い分けるのってすごい面倒なんだよなぁ 玄人の皆さんは使い分けなきゃいけない状況のときどうやって書いてるの? 毎回shift+capslockしてるの?てか列名日本語にするのほんとやめてください 0387NAME IS NULL2017/03/06(月) 16:09:32.32ID:??? 使い捨ては全部小文字 あとで見返すことがあるものは予約後大文字、シフトに指置けばいいべ 0388NAME IS NULL2017/03/06(月) 16:13:07.82ID:???>>384 効率落ちまくるって、どんだけクエリ書いてるんだよ 300char/minだとして、大文字小文字意識しても5秒ほどしかかわらんだろ つまり、1分の差がでるのに3600文字必要 毎日1万字書く奴がいたとしても、せいぜい3分/dayくらいの差だ 0389NAME IS NULL2017/03/06(月) 19:02:01.27ID:aPuKjXeW>>388 お前はキーパンチャーかwどんだけキーボードマスターだよw 0390NAME IS NULL2017/03/06(月) 19:18:44.61ID:??? 全部小文字でもいいだろ好きにしろ ぱっと見てここSQLだなってわかるようにしたいなら大文字にすりゃいいし 動きゃいいんだよ 0391NAME IS NULL2017/03/07(火) 02:45:55.03ID:???>>381 大文字にするにあたって元の文字が大文字か小文字か判定する必要はないって話だと思うんだが、 あなたが言うように判定するのは無駄なので判定しないのが普通。 0392NAME IS NULL2017/03/07(火) 10:30:00.17ID:???>>388 キーパンチャーなみのタイプ速度で、普通は考えられないような量のクエリを1日にタイプするとしても、 それでも1日あたりの作業低下量は3分程度なんだが、>>384はどんだけタイプしてんだよって話だ
読解力ない奴って、底が知れんわ 0393NAME IS NULL2017/03/07(火) 12:02:08.35ID:??? そもそもSQL誕生して何十年も経ってるのにいまだにこの議論してんだから 大文字小文字の問題は根深いよな
>>392 タイピング速度の問題ではなくてストレス的な意味の開発効率を言ってると思うぞ>>384は 0394NAME IS NULL2017/03/07(火) 13:44:27.84ID:???>>393 この程度のコーディングルールでストレスとか、向いてないんじゃねーの? 0395NAME IS NULL2017/03/07(火) 13:54:22.26ID:??? 安価ミスしちゃうそそっかしい人はフォーマッタ使えばいいんじゃないでしょうか。 0396NAME IS NULL2017/03/07(火) 14:03:09.27ID:???>>393 > 大文字小文字の問題は根深いよな 根深いっつーか、どっち派もいるというだけでしょ 他言語だっていつまでたっても中括弧の書き方レベルの議論が終わらないし 0397NAME IS NULL2017/03/07(火) 14:23:20.70ID:??? てか、別に大文字小文字で開発効率が落ちる奴がいても不思議じゃない。 不思議じゃないが、だから何ってはなしで。 俺らには関係ない。 0398NAME IS NULL2017/03/07(火) 15:50:13.46ID:??? スレチかも知れんがMac使ってるやつはSequel入れとけフリーでこんないいの なかなかないぞ 0399NAME IS NULL2017/03/07(火) 16:33:49.67ID:??? 大文字小文字もインデントの具合も全てどうでもいいと思ってるが・・・
カンマを行頭に置く奴だけは許せん!!! 0400NAME IS NULL2017/03/07(火) 17:40:36.93ID:??? 俺もこの程度で効率落ちまくるなら、プログラマに向いてないと思うよ 0401NAME IS NULL2017/03/07(火) 17:52:14.51ID:??? プログラマなら、たとえMISRA-C完全準拠を要求されても、淡々と従うものだ。 0402NAME IS NULL2017/03/07(火) 18:17:10.46ID:???>>381 お前がw このスレでw 一番低レベルだがなwww 0403NAME IS NULL2017/03/07(火) 21:19:09.55ID:???>>381 何度詠んでもわらてまう 0404NAME IS NULL2017/03/07(火) 23:52:37.76ID:??? 俺は逆に面倒だと思う人のほうがプログラマには向いてるとおもうけどな if so を考えるのって大事だと思うぞコーダーって意味なら向いてないと思うけど 0405NAME IS NULL2017/03/08(水) 12:54:37.42ID:???>>404 面倒だと思うのはかまわない
ただ、この程度で効率落ちまくるレベルの奴は、プログラマに向いてないってだけだ 0406NAME IS NULL2017/03/08(水) 15:50:08.89ID:??? 「落ちまくる」のは向き不向きよりも不慣れなだけだろう
向き不向きの話をするなら、大文字で書くことに何の疑問も持たない人の方がプログラマに向いていない 理由があって大文字を選択してるなら良いことだと思うが 0407NAME IS NULL2017/03/08(水) 16:03:35.29ID:??? マジでうざいわ。 いつまでやってんだ。 0408NAME IS NULL2017/03/08(水) 16:10:50.92ID:???>>406 キーワードを大文字で書けくらい、即慣れるだろ ふつーのプログラマなら、効率が落ちまくったりしません 0409resumi2017/03/08(水) 17:37:21.53ID:hjh5f++shttps://goo.gl/l3fSYl これ本当?? 普通にショックだね。。 0410NAME IS NULL2017/03/08(水) 17:54:51.71ID:??? この粘着質、どこかで 0411NAME IS NULL2017/03/08(水) 18:00:24.69ID:???>>386 > 毎回shift+capslockしてるの? 誰も答えないのでコメントしとくか。
普通はCapsLockなんか使わないでしょ。 Shift推しながらタイプするだけ。 0412NAME IS NULL2017/03/08(水) 18:11:39.11ID:??? 予約語なんて一覧にして各RDBのドキュメントに乗ってんだから ちょちょいとコピペして整形して正規表現で置き換えりゃいいだろ 0413NAME IS NULL2017/03/08(水) 19:12:42.88ID:o80qSDDR でたw正規表現厨w 0414NAME IS NULL2017/03/08(水) 19:15:55.09ID:??? その正規表現がこちらになります ↓ 0415NAME IS NULL2017/03/08(水) 19:58:12.66ID:??? age半角wはレベル低すぎんだよ 0416NAME IS NULL2017/03/08(水) 20:37:34.03ID:o80qSDDR それでは気をとりなおしてwレベル高い正規表現どうぞw ↓ 0417NAME IS NULL2017/03/08(水) 21:24:42.52ID:??? エディタに丸投げするだけなのに 本気で言ってるのかどうなのか・・・ 0418NAME IS NULL2017/03/09(木) 18:52:44.02ID:cT/4yIz6>>391 何をわけのわからないことを言ってるのか?コンピュータからしたら大文字と小文字のアルファベットは別の文字だぞ。 0419NAME IS NULL2017/03/09(木) 18:55:38.08ID:cT/4yIz6 初心者が数字列を数値だと言い張ってゆずらないのと同じなのかな?
こういうのは時間の無駄だから関わらない方がいいわ。 0420NAME IS NULL2017/03/09(木) 19:06:21.65ID:??? 全くだな 話がわかってないID:cT/4yIz6 のようなキチガイは構ってはいけない 0421NAME IS NULL2017/03/09(木) 19:25:54.71ID:l9oI+xHV いやいくら馬鹿だからってキチガイさすがには言いすぎだろw
さて与太話はこれくらいにして そろそろ正規表現の話題の戻そうか 0422NAME IS NULL2017/03/10(金) 06:33:59.01ID:???>>421 お前も馬鹿でキチガイのようだがw 0423NAME IS NULL2017/03/10(金) 13:43:59.58ID:??? ぶっちゃけどんなプログラミング言語習得するよりDB極めたほうが金になるよな 業界の中でもDBエンジニアを目指すのが一番おすすめだわ 0424NAME IS NULL2017/03/10(金) 13:44:11.48ID:??? 正規表現、NGにした方がいい? 0425NAME IS NULL2017/03/10(金) 13:58:27.33ID:???>>423 クエリだけ書けてもプログラムないと高度な事できないだろ。分析止まりでランニングできない。 0426NAME IS NULL2017/03/10(金) 14:55:14.16ID:???>>425 逆にクエリが書けなればダイナミックなプログラムはかけないけどな 0427NAME IS NULL2017/03/10(金) 14:59:24.06ID:???>>426 だからどちらかじゃなくて両方必要って話だろ 0428NAME IS NULL2017/03/10(金) 15:05:29.44ID:???>>423 夢見がちな文系エンジニア 0429NAME IS NULL2017/03/10(金) 15:30:00.65ID:??? クエリしか書けないエンジニアなんているの? 0430NAME IS NULL2017/03/10(金) 19:39:42.24ID:??? 正規表現大好き💕 0431NAME IS NULL2017/03/10(金) 19:42:09.92ID:??? 改行考慮や大文字小文字無視するだけでも正規表現使う理由にはなる 正規表現と聞いて脊椎反射するやつはエディタで置換したことないやつ 0432NAME IS NULL2017/03/10(金) 19:54:04.86ID:kvVonAc4 凄く難しいこと言ってSO だけど全体的には凄くアタマ悪SO 正規厨って大体SOUL 0433NAME IS NULL2017/03/10(金) 20:14:25.35ID:??? 難しいように聞こえるならお前の頭が悪いのだろう 正規表現は一般的なテキスト処理にも使われるもので プログラムの中だけで使われるものじゃない 0434NAME IS NULL2017/03/10(金) 20:46:07.46ID:kvVonAc4 突如何者かに向けて正規教室を始めた正規厨SO FOOL 0435NAME IS NULL2017/03/11(土) 09:13:34.14ID:??? 正規とか言ってる阿呆は派遣か契約なのか? 0436NAME IS NULL2017/03/11(土) 11:14:03.17ID:??? いいえ、ニートです 0437NAME IS NULL2017/03/11(土) 11:57:22.36ID:??? 正規表現知ってから、もう、文字数数えて 左から何文字目から何文字目でアレを見つけて 文字数数えて次のアレを見つけて文字数数えて 切り取って、みたいなことやらなくなったから 頭が鈍った気がするけど 便利でもう過去には戻れない。 0438NAME IS NULL2017/03/11(土) 12:24:01.21ID:??? だが正規表現にバグがあった時のことを考えると 怖くて本番業務には使えない 0439NAME IS NULL2017/03/11(土) 12:38:16.89ID:plFNS0RJ 正規厨ってニートだったのかYO 正規ばかり弄ってないで働けYO 0440NAME IS NULL2017/03/11(土) 17:49:09.54ID:??? だからなんだよ正規って 頭悪いのか? 0441NAME IS NULL2017/03/11(土) 21:20:37.60ID:??? え、てか正規表現できないプログラマとかいなくね? 忘れても調べればすぐでてくるし 0442NAME IS NULL2017/03/11(土) 21:35:22.36ID:??? 正規表現ときいたら脊椎反射的に噛みついちゃう非正規おじさんをあんまイジメないでくれる? 0443NAME IS NULL2017/03/11(土) 21:48:24.19ID:???>>438 sqlにもバグがあるけど どう扱うの? 0444NAME IS NULL2017/03/12(日) 02:22:23.08ID:???>>443 SQLにバグがあったらメーカーのテストですぐにわかるだろう 正規表現はどれだけテストされているか怪しいものだ 0445NAME IS NULL2017/03/12(日) 07:55:30.07ID:???>>444 なぜそう思うの? 0446NAME IS NULL2017/03/12(日) 09:32:45.05ID:???>>445 じゃないと正規場かにできないのね 0447NAME IS NULL2017/03/12(日) 09:40:32.67ID:???>>445 テストが大変そうだから 0448NAME IS NULL2017/03/12(日) 10:29:45.30ID:??? SQLより正規表現のがテスト大変て本気で言ってるのか