X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0212NAME IS NULL
垢版 |
2017/01/02(月) 20:22:33.09ID:???
質問させていただきます。

2017-01-01 01:00:00
2017-01-02 01:00:00
2017-01-03 01:00:00
2017-01-04 01:00:00
といったdatetime型(Y-m-d H:i:s)のレコードdtimeを持つt1テーブルと
2017-01-02
2017-01-03
といったdate型(Y-m-d)のレコードdateを持つt2テーブルがあります。

t1テーブルのdtimeからt2テーブルのdateと日付(Y-m-d)部分が一致しないレコードを取り出すにはどのような記述をすれば良いでしょうか
この例の場合はdateにある2,3日のレコードを省いて1,4日のレコードのみを取り出したいです。
0213NAME IS NULL
垢版 |
2017/01/02(月) 20:37:55.02ID:???
>>210
365行のテンポラリテーブルを用意してうんぬん
0214NAME IS NULL
垢版 |
2017/01/02(月) 20:39:30.91ID:???
>>212
標準SQLの範囲じゃないような気もするけど、
DateTime型からDateだけ取り出す関数があるだろうからそれを使う。
0215NAME IS NULL
垢版 |
2017/01/02(月) 21:38:43.27ID:???
>>210
Select date_from + g.gs as 日付
, code1,name
From Test1 t
,(
  select generate_series(0,10) as gs
) g
Where g.gs <= t.days;


でも>>211が言うようにdaysは演算で処理すべきだべ
0216NAME IS NULL
垢版 |
2017/01/02(月) 21:45:28.71ID:???
>>212
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);
0217NAME IS NULL
垢版 |
2017/01/03(火) 09:50:33.91ID:???
>>213,215
できました。ありがとうございました。

>>211
テーブル設計自体はすでにあったものでして…
0218NAME IS NULL
垢版 |
2017/01/03(火) 10:39:07.59ID:???
>>214
>>216
できました、ありがとうございました。
datetimeをdateに置き換える簡単な方法があったんですね。
0219NAME IS NULL
垢版 |
2017/01/14(土) 10:16:41.35ID:???
phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない)
コピペをするのに設定などがあるのでしょうか?
0220NAME IS NULL
垢版 |
2017/01/14(土) 10:36:37.05ID:NxfK13Qk
MySQLの質問させてください
データ更新するとき、phpmyadminのインポートで更新するには、sqlのファイルはどのように書けばいいのでしょうか?

新規作成するときは、INSERT文でこんな風にしました
上書きするときの書き方があれば教えてください
INSERT INTO `sample_table` (`abc_id`, `efg_id`, `meta_key`, `meta_value`) VALUES
(202, 4002, '_thumbnail_id', '4001'),
(212, 4012, '_thumbnail_id', '4011'),
(222, 4022, '_thumbnail_id', '4021');
0221NAME IS NULL
垢版 |
2017/01/14(土) 12:04:14.38ID:???
外部結合クエリで
・A LEFT JOIN B
・B RIGHT JOIN A

これらは全く同じものではなく、結果が異なる場合があるので
外部結合は左のみ使うべしってどこかのサイトで見た記憶がある
どなたかそのカラクリを知っていたら教えて
0222NAME IS NULL
垢版 |
2017/01/14(土) 18:06:07.65ID:???
>>221
俺の中ではそんな事ないから答えられない
0225NAME IS NULL
垢版 |
2017/01/14(土) 21:05:14.36ID:???
>>220

insertでするなら on duplicate key update
又は replaceでというのも

それぞれについて説明をちゃんと読んでから使ってね
0226NAME IS NULL
垢版 |
2017/01/15(日) 22:54:38.21ID:???
>>225
ありがとうございます!
確認して使ってみます
0228NAME IS NULL
垢版 |
2017/01/19(木) 06:50:34.21ID:???
DISTINCT がキーボードで打ちづらいです
0229NAME IS NULL
垢版 |
2017/01/19(木) 12:41:28.22ID:???
そんなあなたにオススメDvorak配列キーボード
0230NAME IS NULL
垢版 |
2017/01/19(木) 18:01:27.09ID:???
ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合
テーブルは分けるべきでしょうか?

例えば、Amazon マーケットプレイスのような
販売ユーザーと購入ユーザーの2種類のユーザーが存在する
このような場合のテーブル設計についてご教示いただけると有り難いです。

スレ違いでしたらすいません。
0232NAME IS NULL
垢版 |
2017/01/19(木) 18:56:48.57ID:???
>>231
スレ違いでしたねすいません
スレを教えていただきありがとうございます。
0233NAME IS NULL
垢版 |
2017/01/24(火) 21:51:15.94ID:oe0NRhg4
何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信

仲間という人間に対する盗聴盗撮生ネット配信の会

しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる

そんなことが今この国では行われています

仄めかしの隠語は
猫 穴 水 仲間 
0236NAME IS NULL
垢版 |
2017/01/31(火) 13:26:45.74ID:???
selectで取得するカラムにAUTO_INCREMENTを指定する方法はありませんか
0237NAME IS NULL
垢版 |
2017/01/31(火) 17:11:46.30ID:???
>>236
取得したレコードに連番を付けたいなら方法はある
もしそうなら、これ以降は自分が使っているデータベーススレに移動しろ
0238NAME IS NULL
垢版 |
2017/02/01(水) 19:11:49.33ID:???
>>236
開始番号はどうやって決めるの?
0239NAME IS NULL
垢版 |
2017/02/02(木) 07:10:22.66ID:???
普通は1からだろ100からとか別でも足せばいい
0240NAME IS NULL
垢版 |
2017/02/06(月) 16:33:18.22ID:???
>>237
どのDBでも大差ないだろ・・・
と思って実験したらmysqlとoracleとpostgresとsqliteで全部やり方違うのな
ちょっと面白かった
0241NAME IS NULL
垢版 |
2017/02/08(水) 00:06:58.96ID:wCjGsKbG
>>238
フェッチした順に普通は1から振られる。
0242NAME IS NULL
垢版 |
2017/02/08(水) 23:19:57.51ID:???
質問させて頂きます

社員IDひとつに対して10行の権限管理レコードが必要です
これを500人分ひとつのテーブルに追加します

レコード例

社員ID, 画面ID, 閲覧, 編集, 削除, …
00000, W001, true, false, false, …
00000, W002, true, true, true, …

00000, W010, false, false, false, …

権限管理10行のテンプレと追加したい社員IDのリストはあります
SQL Management StudioかAccessを用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします
0243NAME IS NULL
垢版 |
2017/02/09(木) 01:15:59.62ID:I+KHRssK
>>242
絞り込み条件が社員IDと画面IDなんだろ?
何がやりたいのか書いてくれ。
0244NAME IS NULL
垢版 |
2017/02/09(木) 07:12:02.44ID:???
>>242
手作業多めでいいなら
1 適当なエディタでカンマをタブに変換
2 excelを開いてシート全体を文字列に設定
3 1をシートに貼り付け
4 テーブルとおなじ列に加工
5 accessのテーブルに貼り付け
まあinsert文に加工して実行でもいいかもね
0245NAME IS NULL
垢版 |
2017/02/09(木) 09:16:23.10ID:I+KHRssK
>>244
どう読んだらCSVファイルの取り込みと解釈できるのか?
0246NAME IS NULL
垢版 |
2017/02/09(木) 12:27:52.21ID:???
>>243-245
レスありがとうございます

今回は>>244さんのアドバイスを元に
社員IDと画面IDのテンプレを二重ループで合体させてテキストに出力した5000行を
テキストエディタとExcelで整形してAccessに貼り付けて追加しました
0247NAME IS NULL
垢版 |
2017/02/09(木) 12:36:20.74ID:???
馬鹿がよく分からん絡み方してるw
0248NAME IS NULL
垢版 |
2017/02/09(木) 18:13:26.82ID:???
言語の設定ってインストールするときに指定する仕様なんですか?
何も指定しないと勝手にユニコードになると思っていたのですが
0249NAME IS NULL
垢版 |
2017/02/09(木) 18:16:49.08ID:???
>>248
自分が使っているデータベーススレに移動して、疑問に思っていることをもっと具体的に聞け
0250NAME IS NULL
垢版 |
2017/02/09(木) 18:30:19.23ID:???
>>249
移動します
SQLServer2012なんだけど
俺もよくわかってない
0251NAME IS NULL
垢版 |
2017/02/09(木) 22:23:19.19ID:???
>>242
insert ... select ... from 権限管理10行のテンプレ (innnerとかcrossとか)join 追加したい社員IDのリスト
で行けるんじゃないのか
もうエクセル整形でやったのならそれでいいけど
0252NAME IS NULL
垢版 |
2017/02/09(木) 22:32:25.23ID:???
何をやろうとしているかは大体想像できるんだが、
こういう仕組みを実装する時って、
個人単位で権限を操作するのかな?
新しい機能が追加される度に、全てのユーザーに
権限の可否を設定しないといけなくならないか?
0253NAME IS NULL
垢版 |
2017/02/10(金) 00:54:29.88ID:UY3eO74e
>>252
ロール
0254NAME IS NULL
垢版 |
2017/02/10(金) 03:00:09.46ID:???
>>251
自分も「これは直積(cross join)でやるかな」と思ったんだけど
直積って実用上はあんまり出てこないんだよな
(SQLの考え方としてはとても重要だと思うのだけど)
それを初心者スレで勧めていいものかと躊躇ってしまった
0255NAME IS NULL
垢版 |
2017/02/10(金) 06:43:28.54ID:???
244書いたの俺だけどリストって書いてあったから
深く考えずにテキストファイルかなんかだと思ったわ
騒がせてすまんね
0256NAME IS NULL
垢版 |
2017/02/10(金) 08:29:16.23ID:???
>>242
要件にもよるかも知らんが事前に全部追加せんでいい方向もある。
ユーザーテーブルとの乖離にどう対処するか面倒だし。
ユーザーテーブルがなかったら、うん、まぁ、うん。
0257NAME IS NULL
垢版 |
2017/02/15(水) 17:17:09.16ID:???
超初心者です。
ユーザーごとに掲示板を作る場合
例えば
boardsというテーブルを作って、すべての掲示板の書き込みをそこで管理するのがいいのか、
それともユーザーごとに001boardsみたいにテーブルを作って管理するのがいいのでしょうか?
一元管理の場合、書き込み数が多くなった場合に処理が遅くなるなどの、問題点はないでしょうか?

アドバイスをよろしくおねがいします<(_ _)>
0258NAME IS NULL
垢版 |
2017/02/15(水) 17:33:15.31ID:IlwZKpGL
>>257
ユーザーごとにテーブルを作るのは管理がたいへんだろ。性能の問題はかなりのデータ量でないかぎりは問題ないと思っていい。
0259NAME IS NULL
垢版 |
2017/02/15(水) 17:53:19.35ID:???
>>258
一元管理で設計してみたいと思います。
アドバイスありがとうございました。
0261NAME IS NULL
垢版 |
2017/02/16(木) 01:27:11.83ID:???
>>260
ユーザーごとだとして、
例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

この場合レンタルサーバーなのでsqlite3を使うことになると思います
(Mysqlはテーブル数の制限がある)
0263NAME IS NULL
垢版 |
2017/02/16(木) 01:39:58.29ID:???
レンタルサーバー運営、やろうってこと?
0264NAME IS NULL
垢版 |
2017/02/16(木) 01:45:38.81ID:???
レンタルサーバーでサイトを作るだけです
そこでユーザー登録をして、ユーザーごとに専用の掲示板を建てるイメージです
0265NAME IS NULL
垢版 |
2017/02/16(木) 01:51:19.83ID:???
その程度なら一つのテーブルで良いと思うけど
不具合あると、隣のユーザーの掲示板が覗けるとかあるかもね
0266NAME IS NULL
垢版 |
2017/02/16(木) 02:04:14.76ID:???
>>265
アドバイスありがとうございます。
0267NAME IS NULL
垢版 |
2017/02/16(木) 07:12:43.93ID:???
ユーザー退会したらデータどうすんの?
破棄するならテーブル別がらくじゃね
同一テーブルだと日次で深夜にでも削除実行するんか
0268NAME IS NULL
垢版 |
2017/02/16(木) 07:20:00.53ID:???
また削除フラグの話にw
0269NAME IS NULL
垢版 |
2017/02/16(木) 07:42:42.89ID:???
盛り上ってまいりましたw
0272NAME IS NULL
垢版 |
2017/02/16(木) 12:05:27.40ID:???
>>271
sqliteで複数ユーザーが
同一テーブルにアクセス、

まだわからないかなw
0273NAME IS NULL
垢版 |
2017/02/16(木) 15:04:33.47ID:???
>>261
> (Mysqlはテーブル数の制限がある)
どこ情報かしらないが、普通は制限はないよ

また、仮にsqlite3を使うとしたとき、重大な問題が別に発生する
それは、誰かが書き込みをするとファイルがロックするということ
要件的にそれで大丈夫かどうかは熟考する必要がある

逆にMySQLを使う場合でもユーザ単位でテーブルを分割する場合もある(ユーザIDによる水平分割)
ソシャゲ界隈では良くあること
これも、要件と相談してからだな
0274273
垢版 |
2017/02/16(木) 15:10:47.58ID:???
あ、テーブル数の制限って、レンタルサーバだからなのか
なるほどねー
0275NAME IS NULL
垢版 |
2017/02/16(木) 16:32:37.42ID:???
まあこのまま続けてたら半年後にはなんでこんなバカな質問したんだろうと思うこと請け合い
0276NAME IS NULL
垢版 |
2017/02/16(木) 16:51:32.11ID:???
ユーザ数が1万人を超えるようなサービスを、MySQLのテーブル数が制限されるようなゴミレンサバで実行するなんて・・・

すごーい(別の意味で)
0277NAME IS NULL
垢版 |
2017/02/16(木) 17:08:18.22ID:???
金取るシステムとは思えん
無料サービスだろ
エラーが発生してもデータが壊れても、すいませんテヘで済むような奴
0280NAME IS NULL
垢版 |
2017/02/16(木) 22:26:13.47ID:???
盛り下がってまいりました、、、
0281NAME IS NULL
垢版 |
2017/02/16(木) 22:44:43.41ID:???
会員数1万人のWebベースのサービスやりたいんだったら、SQLがどうのではなく、
それなりの通信環境、ハードウエア、システム要員を用意しないと駄目だろう
0282NAME IS NULL
垢版 |
2017/02/17(金) 07:10:18.37ID:???
そもそもこんなところで質問するようなやつなんだから
訳分からず質問してるだけだろ
察して遊んでやれよ
0284NAME IS NULL
垢版 |
2017/02/17(金) 09:51:42.36ID:???
>例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

要求仕様じゃないかな?
0285NAME IS NULL
垢版 |
2017/02/17(金) 17:25:57.52ID:???
テーブル名をフラグに使ったことならあるよ
テーブルがオープンできない=それは未使用

当時はみな気がくるっていた
0286NAME IS NULL
垢版 |
2017/02/23(木) 21:19:47.86ID:???
これからSQL勉強する者です
独学で本を参考にするつもりですが、まずSQLでデータベースから抽出できます、といえる程度になるにはどのくらいの期間見込めばいいでしょうか?
0288NAME IS NULL
垢版 |
2017/02/23(木) 21:40:25.72ID:???
抽出だけなら、5分も掛からないんじゃないか?
0289NAME IS NULL
垢版 |
2017/02/23(木) 22:36:11.91ID:???
本を買いにいく時間がある
0290NAME IS NULL
垢版 |
2017/02/23(木) 22:43:24.60ID:???
いや真面目に・・3ヶ月くらいだろうか?ととりあえず予測を立てたのですが・・
実務でできないのが痛いところなのですが
0291NAME IS NULL
垢版 |
2017/02/23(木) 22:47:49.28ID:???
何をインストールするのか知らんけど、つまずく奴はRDBを自分のPCにインストールするとこからつまずくからなw
あれこれやる前から考えてもしょーがない。自分でコマンドをどんどん入れてみるこったよw
0294NAME IS NULL
垢版 |
2017/02/23(木) 22:54:07.87ID:???
君がPCを所有していて、OSが入っていて、ネットに接続できているなら
適当なSQLをダウンロードしてインストールすれば
勉強は今すぐにでも開始できそうなんだが
0295NAME IS NULL
垢版 |
2017/02/23(木) 22:55:54.53ID:???
>>290
あんたの才能とやる気次第としか言えない
SQLはかなり癖のある言語だから、ダメな人は1分で本を閉じて終わり
0296NAME IS NULL
垢版 |
2017/02/23(木) 22:58:52.89ID:???
>>291
MySQL
能書きいうよりまずやることは経験済み納得だが、今後の方向づけを検討しての質問だった
0297NAME IS NULL
垢版 |
2017/02/23(木) 23:01:31.26ID:???
>>294
そうなんですよ
いまうちmacしかも壊れた・・(へぼくてすまん)
つうことでうちは会社があまりダウンロードとかうるさくないのですが、
会社のwinマシンに落とすことを目論み中ですが、会社PCに個人で落としてる人いますか?
0298NAME IS NULL
垢版 |
2017/02/23(木) 23:27:33.63ID:???
それはここで聞かずに、上司に聞くべきことだろ
ちゃんと理由を説明して、何をインストールしたいか説明し
それが仕事で必要なことだとなればインストール可能じゃないのかな?

君の会社での役割が管理者で、PCの設定に関して権限があるなら、聞かなくてもいいだろうけど
0299NAME IS NULL
垢版 |
2017/02/23(木) 23:34:32.60ID:???
やはりこっそりはまずいか…
実務じゃ必要ないって言われるのが関の山だ
だってうちの上司ろくに関数もわからないお馬鹿…なんでもマッチョに力技が得意技なもんで
なくせに色々要求してくる
んでそんなとこを抜け出すためのSQL習得なのです
Winマシンを大人しく速攻買おう
つうことで安いの探すとこから始めます
Dellあたりかなー できたらVAIO
0300NAME IS NULL
垢版 |
2017/02/24(金) 05:16:28.19ID:???
けっこうまじめに質問したんだけどやっぱ2ちゃんだな
冷やかしだけで答えてはもらえないか
ま、いいやとっととやるから
0302NAME IS NULL
垢版 |
2017/02/24(金) 08:44:57.02ID:???
真面目に回答しても冷やかしとしか受け取って貰えない w
0303NAME IS NULL
垢版 |
2017/02/24(金) 09:11:23.71ID:???
>>300
だいぶ抽象的で、何に役立つのか
分かりにくい質問だったことは
覚えておいて。
0304NAME IS NULL
垢版 |
2017/02/24(金) 10:00:29.90ID:???
DB板は、おふざけな質問でない限りマトモに答えてくれるよ
0305NAME IS NULL
垢版 |
2017/02/24(金) 11:03:39.31ID:???
SQLでデータを抽出する基本だけなら、みんな言うように1日でできるぞ
select文流すだけだからな

問題は、SQLを発行する方法とそのための環境の構築が難しいだけで
0307NAME IS NULL
垢版 |
2017/02/24(金) 18:58:00.39ID:U+kKk5Yi
>>305
基本ってなんだよ?
0309NAME IS NULL
垢版 |
2017/02/24(金) 20:52:10.93ID:dYCyIIDS
まず初心者には結合が1日で理解できるかどうか。
0310NAME IS NULL
垢版 |
2017/02/24(金) 21:09:40.60ID:???
批判も応援する言葉もどちらもありがとう

290で3ヶ月と言ったのは、会社のちょっとデータ詳しいちょー意地悪なおっさん(でも非エンジニアで営業部のデータ取りまとめしてる程度)に
SQL独学で3ヶ月でてきて当たり前、オレは3ヶ月で覚えた、と言われて

もちろんそれはマウントしたいだけだからどの辺りまでかなんて言わないしこっちも聞かない

だから漠然とした答えに困るような素人くさい愚問なアホな質問とわかっていたんだけど、
とりあえずの導入としてはどのくらい見ればいいかな、と知りたくなってしまって

だから答えてくれた時間とかはその通りでもあるし、その限りでないこともわかってる

そのおっさんは独学で覚えたのが自慢で、でもそのおっさんがExcelで作ったものはちょっとした普通の作業が汚い

SEの人と一緒に働いたとき当たり前のことをちゃん綺麗に整えて作るからとても感心した

そんななんやかやがあり
スレ違いになり申し訳ない

Hello world
0311NAME IS NULL
垢版 |
2017/02/24(金) 23:02:19.13ID:???
本日、postgresqlをDB2に替えたらwebアプリが動かなくなったわ。
もう逃げたい。俺のせいじゃないけど。
■ このスレッドは過去ログ倉庫に格納されています

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