板検索:
SQL初心者質問スレ (665)
まとめビュー
1
NAME IS NULL[]   投稿日:2016/05/12 05:29:07  ID:HmbS4CfD.net
SQL初心者用の質問スレッドです。


2
NAME IS NULL[sage]   投稿日:2016/05/14 12:04:11  ID:???.net(475)
2get
teradataの識者いる?

3
NAME IS NULL[sage]   投稿日:2016/05/26 15:09:21  ID:???.net(475)
スレなかったっけ、、、と探したら無いな、、落ちたんかな

4
NAME IS NULL[]   投稿日:2016/06/18 19:48:26  ID:wQWiAJ0q.net
外部の利用者が自由にテーブルを追加できるシステムを sqlite で検討しています。
テーブルが重複しないように利用者番号をテーブル名のプレフィックスにつけようと思います。

もしも、同じようなシーンでの一般的な方法などありましたら教えてください。
よろしくお願いします。
コメント1件

5
NAME IS NULL[sage]   投稿日:2016/06/18 21:48:46  ID:???.net(475)
>4
利用者ごとに
dbはどう?
コメント1件

6
NAME IS NULL[sage]   投稿日:2016/06/18 22:19:58  ID:???.net(475)
>外部の利用者が自由にテーブルを追加できるシステム
が一般的な使い方とは思えないのに一般的な方法とか...

7
NAME IS NULL[sage]   投稿日:2016/06/19 04:42:21  ID:???.net(475)
>dbはどう?
この意味がよくわかりません。すみません。

利用者ごとにというのは、少し誤りでした。
正確にはプラグインとして db を操作するモジュールを追加できる仕組みです。
そのモジュールから db に対して create table もできるようにしたいです。
そのときにテーブルの名前の重複を避けたいので、質問させていただきました。

8
NAME IS NULL[sage]   投稿日:2016/06/19 09:41:12  ID:???.net(475)
sql というよりはそのモジュールの運用方法の話のようだな

9
NAME IS NULL[sage]   投稿日:2016/06/19 10:24:19  ID:???.net(475)
無謀な気が
ユーザーごとにDB分けちゃダメなん?
コメント1件

10
NAME IS NULL[sage]   投稿日:2016/06/19 11:22:35  ID:???.net(475)
1つのファイルのほうがユーザが使いやすいかと思っています。

もしかしたら sql という枠組みで話す質問ではないのかもしれません。
sql は初心者なので、動的テーブル名などを調べたのですが何か違う気がしました。
sql は歴史もあるし、自分の考えている程度のことはすでに枠組みができているのかと思い質問しました。

sql の枠組みですんなり当てはまるものがないとわかっただけで前進です。
ありがとうございました。

11
NAME IS NULL[sage]   投稿日:2016/06/19 11:31:36  ID:???.net(475)
DBの世界でデータをストアすると言いますが、
では読み出す場合は何て言うのでしょうか?

12
NAME IS NULL[sage]   投稿日:2016/06/19 11:35:49  ID:???.net(475)
>9
1つのファイルにこだわりすぎていたかもしれません。
DB を分ける案を検討しようと思います。
ありがとうございました。
コメント1件

13
NAME IS NULL[sage]   投稿日:2016/06/19 11:58:16  ID:???.net(475)
>12
5にも礼を言っとけ。
全く同じこと先に言ってる
コメント1件

14
NAME IS NULL[sage]   投稿日:2016/06/19 13:52:20  ID:???.net(475)
>13
そういう意味だったんですね

>5
ありがとうございました。

15
NAME IS NULL[sage]   投稿日:2016/06/21 16:53:37  ID:???.net(475)
一旦作ったテーブルを長期間使うのではなく、一日にテーブルのcreateやdropを何十回も繰り返すような使い方は特に問題有りませんか?
コメント1件

16
NAME IS NULL[sage]   投稿日:2016/06/21 18:07:42  ID:???.net(475)
要件次第

17
NAME IS NULL[sage]   投稿日:2016/06/21 18:32:30  ID:???.net(475)
>15
大丈ー夫

18
NAME IS NULL[]   投稿日:2016/07/09 17:51:20  ID:uRuLwqJe.net(2)
取得した順番に数値をインクリメントして表示したいのですが、どういった文法をすればいいですか?
シーケンスとかそういうことではなく、

select
user,num
from
user

みたいなsqlで
userA 1
userB 2
userC 3

のようにnumに取得した順番に数値をインクリメントしたいです。

19
NAME IS NULL[]   投稿日:2016/07/09 17:59:50  ID:uRuLwqJe.net(2)
set @i:=0;
select @i:=@i+1 as rownum,user_id from user;

こういう書き方で自己解決しました。

20
NAME IS NULL[]   投稿日:2016/07/21 20:04:08  ID:W6OLWaxQ.net
質問するときはRDBの名前くらいは書きましょう。

21
NAME IS NULL[sage]   投稿日:2016/08/07 07:38:31  ID:???.net(475)
mysql 5.6.20 です

daily_tblからcode毎の最新入力日付を得るのに
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
order by code;
で出せたんですが、
今度はその日付が指定の日付でないもののみを出そうとして
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
where max(inout_date) != '2016-08-05'
group by code
order by code;
とすると、Invalid use of group function ってエラーで出来ません。コード毎の最新入力日付が指定の日付でないもののみを
出すようにするにはどうすればいいのでしょうか

22
NAME IS NULL[sage]   投稿日:2016/08/07 10:36:30  ID:???.net(475)
inputなのかinputなのか気になるが、、、
having by 使うケースかなこれ?
コメント1件

23
NAME IS NULL[sage]   投稿日:2016/08/07 10:37:21  ID:???.net(475)
おっとgroup by の文字省いた時にby残しちゃったhaving ね

24
21[sage]   投稿日:2016/08/07 16:10:17  ID:???.net(475)
あぁinoutになってるw inputです

25
21[sage]   投稿日:2016/08/07 16:17:17  ID:???.net(475)
select a.code,code_name ,max(input_date) as saishin
from daily_tbl a
inner join master b
on a.code = b.code
group by code
having max(input_date) != '2016-08-05'
order by code;

で出てきました。実際に使う時に全然havingなんて思いつきもしなかったです^^;
コメント1件

26
NAME IS NULL[sage]   投稿日:2016/08/07 16:18:21  ID:???.net(475)
>22
ありがとうございます

27
NAME IS NULL[]   投稿日:2016/08/07 16:59:37  ID:mqpBG9Ui.net(2)
>25
テーブル修飾があったり、なかったりしているところがちょっと気持ち悪い。

28
25[sage]   投稿日:2016/08/07 18:45:08  ID:???.net(475)
この場合、codeについては付けないと ambiguous 曖昧と言って怒られてしまうんですが、全部にどちらのテーブルのものなのか
はっきりさせておけってことですか?
コメント1件

29
NAME IS NULL[sage]   投稿日:2016/08/07 19:19:26  ID:???.net(475)
>28
はい

30
25[sage]   投稿日:2016/08/07 20:34:00  ID:???.net(475)
努力します^^;

31
NAME IS NULL[]   投稿日:2016/08/07 20:46:40  ID:mqpBG9Ui.net(2)
この例の場合、同じカラムがあるなら、FROM句の最初にあるテーブルのテーブル別名aで修飾するのが一般的。

他人がこのSQLだけを見たとき、この書き方だとどちらのテーブルのカラムか分からない。

32
NAME IS NULL[sage]   投稿日:2016/08/21 09:41:45  ID:???.net(475)
mysql5.7を使用しています
ユーザーのゲーム内マネーをwalletテーブルで管理していて
新たにユーザーの最大マネー記録の管理が必要になったので
recordテーブルを新たに作ることにしました

walletテーブル: id, user_id, gold
recordテーブル: id, user_id, max_gold

質問なのですが、walletテーブルのgoldから
recordテーブルのmax_goldを全ユーザー分一括で更新するにはどうしたらいいでしょうか
よろしくお願いします

33
NAME IS NULL[sage]   投稿日:2016/08/21 14:33:49  ID:???.net(475)
recordには全idすでにある前提?

UPDATE record
SET max_gold = (SELECT MAX(gold) FROM wallet
WHERE record.user_id = wallet.user_id);

とかは?
コメント2件

34
32[sage]   投稿日:2016/08/22 01:44:39  ID:???.net(475)
>33
レスありがとうございます
説明が不足していてすみません
userテーブルとwalletテーブルは1対1になっています
userテーブルとrecordテーブルも1対1です
全user分のwalletとrecordが存在します
walletテーブルのgoldは増減します
recordテーブルのmax_goldは過去最高goldです
あるタイミングで複数walletに一斉にgoldがプラスされます
そのときにwalletのgoldがrecordのmax_goldより大きければmax_goldを更新したいです
自分なりに調べてupdateとjoinを使うのだろうということはわかりましたがSQLを書けずにいます
教えていただけると嬉しいです
よろしくお願いします
コメント2件

35
NAME IS NULL[]   投稿日:2016/08/22 01:49:54  ID:nVybO4PH.net(3)
>34
まずはひとつずつ考えて。

段階的に考えていかないと。

36
NAME IS NULL[sage]   投稿日:2016/08/22 04:14:30  ID:???.net(475)
別にその条件でも>33でいけるだろ

37
NAME IS NULL[sage]   投稿日:2016/08/22 04:17:24  ID:???.net(475)
あー元がmaxより小さいケースがあんのか、でもl条件一つ追加するだけだよな

38
32[sage]   投稿日:2016/08/22 10:24:05  ID:???.net(475)
自己解決できたみたいです

update record
left join wallet on record.user_id = wallet.user_id
set record.max_gold = if(wallet.gold > record.max_gold, wallet.gold, record.max_gold)
where record.user_id = wallet.user_id;

これでやりたいことはできたと思います
ありがとうございました
コメント3件

39
NAME IS NULL[sage]   投稿日:2016/08/22 10:41:57  ID:???.net(475)
ちょっと見ただけですけど
recordテーブルを追加するのではなく、
walletテーブルに max_goldという項目を追加すれば良いのでは?
コメント1件

40
NAME IS NULL[sage]   投稿日:2016/08/22 10:57:44  ID:???.net(475)
user_idごとに1件しか無いのにidが別にあることとかいろいろ気になるけど
まあなんか書いてない理由があるんだろう、、、

どうしても最新状態保つなら単にトリガ書くだけのが早そうだが
コメント1件

41
NAME IS NULL[]   投稿日:2016/08/22 13:08:23  ID:nVybO4PH.net(3)
>38
正直に言ってくそSQLだわ。

他人があとでみたら、こいつ殺すと思われるレベル。

42
NAME IS NULL[sage]   投稿日:2016/08/22 13:40:23  ID:???.net(475)
初心者スレなんだからぼろくそに言うのではなく改善案を提示しないと

43
NAME IS NULL[sage]   投稿日:2016/08/22 13:59:03  ID:???.net(475)
これは更新が1回でも失敗したらもう最大値が出せなくなるじゃん

44
NAME IS NULL[sage]   投稿日:2016/08/22 18:58:47  ID:???.net(475)
>34
walletに時系列データはないのか?
ないと実現出来ないのではないか?
コメント1件

45
32[sage]   投稿日:2016/08/22 20:10:31  ID:???.net(475)
だめなSQLのようですね
どこが悪いのかがわからないのでどう改善していいのかもわかりません
具体的に指摘してもらえると助かります
SQL難しいですね

>39
recordにはユーザーの最大ゴールド以外にもいろいろな記録を持たせようと思っています

>44
時系列データはありません
コメント1件

46
NAME IS NULL[sage]   投稿日:2016/08/22 22:48:38  ID:???.net(475)
開始の残高ファイルと更新データがあれば累計関数使って累計残高viewを作ってその最大値で更新したほうがいいと思う
mysqlでは下記リンク先参照
http://pct.unifas.net/mysql/3712

47
NAME IS NULL[]   投稿日:2016/08/22 23:24:46  ID:nVybO4PH.net(3)
>45
疑問なのは、UPDATE文ひとつでやらないと本当にいけないの?

こういう状況がわからない。
コメント1件

48
NAME IS NULL[sage]   投稿日:2016/08/23 03:22:31  ID:???.net(475)
>38のSQLでは、実行時のwalletの値が最大値だったときしか更新されないぞ
履歴保持してないのに全ユーザ一括は無理(全ユーザのwallet更新タイミングが同じでない限り)

walletが時系列や履歴を持たずに、現在値しか保持してないなら
walletの更新時にrecordを更新しないとダメ

で、普通のDBMSなら、こういうのはwalletにトリガ張ってやる
walletを更新するストアドプロシジャ作ってそれでチェックするって方法もあるけど
コメント1件

49
32[sage]   投稿日:2016/08/23 12:32:35  ID:???.net(475)
>47
どういうサイトなのかを説明すべきでしたすみません
ざっくり言うと競馬のようなサイトをやっています
レース終了後に払い戻しとして的中した全ユーザーのwalletのgoldを
ユーザーが賭けた額×オッズ分プラスします
この払い戻しのタイミングでmax_goldを更新したいと思い>38のようなSQLを考えました
goldが増えるタイミングは払い戻し時のみです

>48
トリガ、ストアドプロシジャを初めて知りました
調べてみようと思います。ありがとうございます

50
NAME IS NULL[sage]   投稿日:2016/08/23 12:41:04  ID:???.net(475)
>40 でトリガって書いてるのになw

51
NAME IS NULL[sage]   投稿日:2016/08/23 12:42:04  ID:???.net(475)
どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
SQL以前にDB設計じゃねえの
コメント1件

52
NAME IS NULL[sage]   投稿日:2016/08/23 12:55:29  ID:???.net(475)
>51
> どっちにしてもストアドもトリガも知らないくらいの初心者がDB設計して使い物になるとは思えない
と思ってるような奴の方が使い物になるとは思えんな

53
32[sage]   投稿日:2016/08/23 13:06:07  ID:???.net(475)
データベースの勉強をおろそかにしてORMに頼ってたツケが回って来た感があります
データベースについて基本からしっかり勉強し直したいのですが
おすすめの本やサイトを教えていただけないでしょうか
コメント1件

54
NAME IS NULL[sage]   投稿日:2016/08/23 14:43:56  ID:???.net(475)
>53
amazonでデータベースで検索し、設計関連の評判の良いものを5冊買え

55
NAME IS NULL[sage]   投稿日:2016/08/24 14:41:29  ID:jYRxe2VKj
元データ
列A 列B
 A  1
 A  2
 B  1
 C  3


結果
 1  2  3
A ○ ○
B ○
C      ○

のような結果を得たい場合、どのようなSQLを書けばよいでしょうか?

56
NAME IS NULL[sage]   投稿日:2016/09/01 16:46:33  ID:???.net(475)
SQLっていうか、DBそのものに関する質問になってしまうんですが。。。

データベースに同じUserID、同じパスワードで複数ログイン出来るってのは一旦資格を与えられたユーザーに
ついてはその権限の範囲なら信用するってことなんですかね。

57
NAME IS NULL[sage]   投稿日:2016/09/01 17:48:15  ID:???.net(475)
1ユーザ1コネクションの制限を設けたとしたら、マルチプロセスやマルチスレッドなクライアントが任意のタイミングでコネクションを生成するのに苦労するよ。

58
55[sage]   投稿日:2016/09/01 18:40:00  ID:???.net(475)
そちらの方のプログラミングには疎いんですが、とにかくそういう制限があるとまずいってわけなんですね。^^;
例えば一般ユーザーに開放しているデータベースがあるとして、そこにアクセスするユーザーにいちいちidとパスワード、権限を
与えるのも大変だなとは思ったんですが。
コメント3件

59
NAME IS NULL[sage]   投稿日:2016/09/01 19:02:23  ID:???.net(475)
何に関しては疎くないの?
コメント1件

60
NAME IS NULL[sage]   投稿日:2016/09/01 20:30:50  ID:???.net(475)
>59
バカ発見
コメント1件

61
NAME IS NULL[sage]   投稿日:2016/09/01 21:43:12  ID:???.net(475)
>60
回答してあげなよ ^^

62
NAME IS NULL[sage]   投稿日:2016/09/01 22:57:57  ID:???.net(475)
>58
なんかいろいろ勘違いしてる

63
NAME IS NULL[]   投稿日:2016/09/02 02:24:24  ID:RT8+OUHE.net
>58
RDBMSでもOSでも1ユーザー、1セッションというものの方が珍しい。

64
NAME IS NULL[sage]   投稿日:2016/09/02 02:39:07  ID:???.net(475)
まあRDBMSによって「ユーザー」というものの定義は異なるけどな

65
NAME IS NULL[sage]   投稿日:2016/09/04 21:42:59  ID:???.net(475)
トランザクションとかの話?

66
NAME IS NULL[sage]   投稿日:2016/09/04 21:58:50  ID:???.net(475)
ユーザ用(id,パスワード)のテーブルがあった方がいいと思うけど

67
NAME IS NULL[sage]   投稿日:2016/09/04 22:33:29  ID:???.net(475)
>58
>例えば一般ユーザーに開放しているデータベースがあるとして、
>そこにアクセスするユーザーにいちいちidとパスワード、権限を
>与えるのも大変だなとは思ったんですが。

一般ユーザーに直接データベースを操作させることは普通しないと思う。

そうではなく、データベースを利用するシステムが、利用ユーザーに提供する
業務用アカウントの話じゃないのかな?

68
NAME IS NULL[sage]   投稿日:2016/09/04 22:40:44  ID:???.net(475)
ユーザ用って書き方がおかしかった
ユーザを管理するテーブル

69
NAME IS NULL[sage]   投稿日:2016/09/05 16:09:42  ID:???.net(475)
最初にテーブルを作成したら、新しいテーブルは必要ないシステムを作っています
この場合、テーブル構造をどう保存するのが正しいやり方ですか?
とりあえずcreate文を保存しています
コメント1件

70
NAME IS NULL[sage]   投稿日:2016/09/05 16:42:31  ID:???.net(475)
>69
それでいいよ
コメント1件

71
NAME IS NULL[sage]   投稿日:2016/09/05 16:46:05  ID:???.net(475)
DBのツールでスキーマ保存すると結局CREATE文だけってのもあるしな

72
NAME IS NULL[sage]   投稿日:2016/09/05 16:53:22  ID:???.net(475)
>70
ありがとうございます

73
NAME IS NULL[sage]   投稿日:2016/09/16 14:02:36  ID:???.net(475)
例えば名簿のtableがあって、
id name address
という三つのカラムがあります。
idは重複しない番号です。
この時 id で order by して、
idが1000番台の人の最初の100人取り出す。
idが2000番台の人の最初の100人取り出す。
みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
何か良い方法はありますか?
MySQLです。
コメント2件

74
NAME IS NULL[sage]   投稿日:2016/09/16 15:12:58  ID:???.net(475)

75
NAME IS NULL[sage]   投稿日:2016/09/16 15:37:16  ID:???.net(475)
>73
> みたいな処理を連続で行う場合、毎回 order by するのは効率悪いと思うのですが、
indexが使われるなら効率は悪くない
コメント1件

76
NAME IS NULL[sage]   投稿日:2016/09/16 15:46:47  ID:???.net(475)
>74>75
すみません、初心者なのでもう少しヒント下さい。
よく理解できません。
コメント2件

77
NAME IS NULL[sage]   投稿日:2016/09/16 15:50:26  ID:???.net(475)
>76
select * from 名簿 where id >= 1000 order by id limit 100;
とかするんだろうけど、idにindexが付けられてるなら効率は悪くない
これでわからないのならお手上げ

78
NAME IS NULL[sage]   投稿日:2016/09/16 15:57:39  ID:???.net(475)
処理が必ず1000番台ごとにするなら
もう一つ項目daiを追加して、indexを張っておき
id 1000〜1999 には 1 をセット
id 2000〜2999 には 2 をセット
id 3000〜3999 には 3 をセット
というのは?
select * from 名簿 where dai=1 order by id limit 100;
コメント1件

79
NAME IS NULL[sage]   投稿日:2016/09/16 16:32:17  ID:???.net(475)
>78
それだとindexは使われない
コメント2件

80
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:12:26  ID:???.net(475)
>76
select *
from 名簿
where
id between 1 and 100 or
id between 1000 and 1100 or
id between 2000 and 2100

81
NAME IS NULL[sage]   投稿日:2016/09/16 17:17:10  ID:???.net(475)
>79
そんなのDBMSとオプティマイザの判断次第
カーディナリが十分高ければ、daiのインデックスは使われる可能性が高いだろ

元質問はMySQL指定か。MySQLのオプティマイザでは絶対使わんっていう話なら知らん
コメント2件

82
NAME IS NULL[sage]   投稿日:2016/09/16 17:19:10  ID:???.net(475)
>79
idに抜け番がないとはどこにも書いてないけどな

83
NAME IS NULL[sage]   投稿日:2016/09/16 17:39:29  ID:???.net(475)
>81
MySQLのこと知らんなら黙っとけよ
コメント1件

84
NAME IS NULL[sa ge]   投稿日:2016/09/16 17:42:18  ID:???.net(475)
>83
まいしーくぇる

85
NAME IS NULL[sage]   投稿日:2016/09/16 18:05:34  ID:???.net(475)
mysqlはクソだからしかたがない。
コメント1件

86
NAME IS NULL[sa ge]   投稿日:2016/09/16 18:10:25  ID:???.net(475)
>85
まいしーける

87
NAME IS NULL[sage]   投稿日:2016/09/16 18:25:35  ID:???.net(475)
そういや、mysqlではsub queryが劇遅だってのは直ったの?

88
NAME IS NULL[sage]   投稿日:2016/09/16 21:39:39  ID:???.net(475)
>81
daiのカーディナリティも十分に大きければそのインデックスも使われるだろうけど、
常にそれよりカーディナリティが大きいidのインデックスを使った方がいいに決まってる。
それにそもそもidでソートするわけだし。

89
NAME IS NULL[sage]   投稿日:2016/09/17 02:16:52  ID:???.net(475)
ありがとうございました
indexを試してみます

90
NAME IS NULL[sage]   投稿日:2016/09/22 11:38:01  ID:???.net(475)
SELECT * FROM table
WHERE ...
 AND ...
 AND ...
 AND ...
のようにAND条件をズラズラ並べる場合、
その条件を並べる順番で処理速度は変わりますか?
コメント1件

91
NAME IS NULL[sage]   投稿日:2016/09/22 12:44:02  ID:???.net(475)
長文失礼します。
mysqlで
article_infoテーブルに title(記事タイトル),url(記事のurl)を持っています。
blog_infoテーブルには blog_title(ブログのタイトル),blog_url(ブログのtopのurl)を持っています。

やりたいこと:
article_infoで取得した記事のブログのタイトルを一緒に取得したい。
article_info.url は、,blog_urlのレコードのどれかを含んでいます。
例:
blog_title:サンプルブログ
blog_url:http://sample.com/
article_info.url:http://sample.com/article/001


   
のようになっているので、もし取得したurlがblog_urlに含んでいた場合、対応するblog_titleを共に表示したいと考えています。

92
90[sage]   投稿日:2016/09/22 13:24:14  ID:???.net(475)
ちなみに
SUBSTRING(url,1,LOCATE('/',url,8))  でblog_urlのどれかとマッチするurlが作れることがわかりました。

93
NAME IS NULL[sage]   投稿日:2016/09/22 13:32:19  ID:???.net(475)
>90
普通は検索方法はオプティマイザが判断するから関係ない

定義順に条件書かれてないと複合インデックスが使用できないDBMSがあるとかいう噂は昔聞いたことある
その場合は複合インデックスの定義順に並べるほうが早い可能性が高い

オプティマイザが貧弱で検索順を入れ替えられないDBMSも聞いたことがある
その場合はカーディナルの高い順に検索条件並べろと教えられたことはある
単一テーブルの単純な検索なら、最悪でもそのテーブルのフルスキャン1回ですむから
まあどうでもいいと思うが
コメント1件

94
90[sage]   投稿日:2016/09/22 13:33:17  ID:???.net(475)
すみません。下記のかんたんなsqlで取得できました。お騒がせしました。
select
a.title,
a.url,
b.blog_title
from
article_info a,blog_info b
コメント2件


95
NAME IS NULL[sage]   投稿日:2016/09/22 20:16:59  ID:???.net(475)
>93
詳しい説明ありがとうございました。
MySQLです。
念のために順番を考慮してAND条件を書いてみます。

96
NAME IS NULL[sage]   投稿日:2016/09/22 23:39:21  ID:???.net(475)
>94
fromでカンマで繋げるのは
INNER JOINの省略形な

97
NAME IS NULL[sage]   投稿日:2016/09/22 23:45:57  ID:???.net(475)
cross joinだろ

98
NAME IS NULL[sage]   投稿日:2016/09/22 23:53:56  ID:???.net(475)
ふつう直積(CROSS JOIN)だと思うんだが、>94読んであれ?と思った。
MySQLってそうなのか?

99
NAME IS NULL[sage]   投稿日:2016/09/23 00:03:00  ID:???.net(475)
whereでなんかしてなければ直積だな

100
93[sage]   投稿日:2016/09/23 02:59:28  ID:???.net(475)
すいません、できたと思ってたけどできてませんでした。
しょうがないのでarticle_infoとblog_infoにblog_idカラムを追加して
Inner join で持ってきました。

101
NAME IS NULL[]   投稿日:2016/09/24 09:51:02  ID:UI+2ILvZ.net(2)
教えて下さい。
インサートしたカラムに不要な文字[:]がついてしまったのですが、
replaceで毎回取り除いてるとクエリが遅くなるので、すべて更新したいのですが、
update文で出来ますか?

102
100[]   投稿日:2016/09/24 09:57:30  ID:UI+2ILvZ.net(2)
できました。忘れてください。

103
NAME IS NULL[sage]   投稿日:2016/10/05 22:12:12  ID:???.net(475)
mysqlで質問です。
ng_wordテーブルがあります。
テーブルには、wordカラムにキーワードが登録されています。

main_textテーブルのtextカラムの中には
テキストの文章が入っています。

もしmain_textの中にng_wordのwordが含まれていたら、取得したくないのですが、
ロジックを挟まず、sqlだけで取得できますか?
コメント3件

104
NAME IS NULL[sage]   投稿日:2016/10/05 22:26:56  ID:???.net(475)
WHERE main_text NOT LIKE '%word%' じゃだめだったか?
コメント1件

105
102[sage]   投稿日:2016/10/05 22:40:45  ID:???.net(475)
>104
ワードが1つならそれでも良いかもしれませんが、
複数あるので…

106
NAME IS NULL[sage]   投稿日:2016/10/06 00:04:56  ID:???.net(475)
このスレ、SQL文書こうとするとエラーになる
どうしたもんかな・・・
コメント1件

107
NAME IS NULL[sage]   投稿日:2016/10/06 00:19:48  ID:???.net(475)
Sorry, you have been blocked
You are unable to access 2ch.net

There are several actions that could trigger this block including submitting
a certain word or phrase, a SQL command or malformed data.

SQL文を投稿しようとすると、ハッキング行為とみなされるみたい
コメント1件

108
NAME IS NULL[sage]   投稿日:2016/10/06 00:22:02  ID:???.net(475)

109
NAME IS NULL[sage]   投稿日:2016/10/06 18:36:58  ID:???.net(475)
不便になったもんだな

110
NAME IS NULL[]   投稿日:2016/10/16 17:07:47  ID:9/d7j9zT.net
>107
まあSQLインジェクション対策なんだろうけどな。

111
NAME IS NULL[]   投稿日:2016/10/16 17:11:39  ID:53yW0F3M.net
>108
前の書き込みをよく見ていないけど、テーブルの結合条件もなければ、カラムのテーブル名修飾もなくてわからない。

テーブル間の関係を説明してくれ。

そもそも初めに書いたようにSQLの書き方そのものが悪い。

112
NAME IS NULL[sage]   投稿日:2016/10/16 19:59:14  ID:???.net(475)
>103 に書いてあるだろうに、何が分からないのか分からない

113
NAME IS NULL[]   投稿日:2016/10/16 23:41:51  ID:yy6enVq7.net
兄弟関係の抽出 と LIMIT、OFFSETに代わるもの (マルチ)

OS: Windows 10 Pro
Access Version: 2016 (2010も使用)
VBA:Excel,Powerpointのみ
VBAでの回答:否
検索キーワード:access SQL 件数 指定


http://www.accessclub.jp/bbs2/0051/beginter16860.html
「No16860.SQLで件数を指定する方法」

SELECT [電話番号] FROM [T_児童マスタ] GROUP BY [電話番号] HAVING Count(*)>1

上記2つ等を元に、次のテーブルに適応させようとしていますが、
スマートな文、クエリ(または他の手法)が思いつきません。
どうかアドバイスをお願いいたします。


T_児童マスタ

学級 氏名 電話番号
11  A  1111-11-1111
21  B 2222-22-2222
31  C 1111-11-1111
41  D 2222-22-2222
51  E 1111-11-1111
61  F 3333-33-3333



望む出力結果

学級 氏名 電話番号    兄弟学級1 兄弟氏名1 兄弟学級2 兄弟氏名2 兄弟学級3 兄弟氏名3
11  A  1111-11-1111  31     C     51     E     
21  B 2222-22-2222  41     E
31  C 1111-11-1111  11     A     51     E
41  D 2222-22-2222  21     B
51  E 1111-11-1111  11     A     31     C
61  F 3333-33-3333
コメント3件

114
NAME IS NULL[]   投稿日:2016/10/17 01:58:23  ID:ee1NFGBS.net
>103
直積で結合して、textとwordを引数にとる文字列検索関数があれば、それをWHERE句の絞り込み条件にすればできるな。

115
NAME IS NULL[sage]   投稿日:2016/10/17 07:12:12  ID:???.net(475)
>113
兄弟の数は可変なの?
2固定なら普通にjoinすればいい
コメント1件


116
NAME IS NULL[sage]   投稿日:2016/10/17 07:13:39  ID:???.net(475)
>115
よくみたら2じゃなくて3か

117
NAME IS NULL[sage]   投稿日:2016/10/17 07:25:17  ID:???.net(475)
堂々とマルチと宣言すれば文句言われない!キリッ

118
NAME IS NULL[]   投稿日:2016/10/17 07:35:53  ID:w90R1vLK.net
>113
こんな感じでいいと思う
SELECT
MM.学級 
,MM.氏名 
,MM.電話番号
,S1.学級 AS 兄弟学級1
,S1.名前 AS 兄弟氏名1
,S2.学級 AS 兄弟学級2
,S2.名前 AS 兄弟氏名2
,S3.学級 AS 兄弟学級3,
S3.名前 AS 兄弟氏名3
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
on S1.電話番号 = MM.電話番号
and S1.学級 <> MM.学級
LEFT JOIN T_児童マスタ AS S2
on S2.電話番号 = MM.電話番号
and S2.学級 <> MM.学級
and S2.学級 <> S1.学級
LEFT JOIN T_児童マスタ AS S3
on S3.電話番号 = MM.電話番号
and S3.学級 <> MM.学級
and S3.学級 <> S1.学級
and S3.学級 <> S2.学級
WHERE nz(S1.学級,999) <= nz(S2.学級,999)
and nz(S2.学級,999) <= nz(S3.学級,999)
コメント3件

119
NAME IS NULL[sage]   投稿日:2016/10/17 13:02:38  ID:???.net(475)
>106
全角

120
NAME IS NULL[]   投稿日:2016/10/17 18:24:29  ID:3tZ2amHg.net(3)
>118
ありがとうございます。
これから試してみます。

121
NAME IS NULL[]   投稿日:2016/10/17 19:50:25  ID:3tZ2amHg.net(3)
>118
少し拡張してみたところ「演算子がありません」とのエラーが
出てしまいます。かなり初歩的な質問になってしまいますが、
問題点をお教えください。宜しくお願いします。


SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号  ←ここ
AND S1.学年 <> MM.学年     ←ここ
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
コメント1件

122
NAME IS NULL[]   投稿日:2016/10/17 20:30:12  ID:3tZ2amHg.net(3)
>113 >118 >121
こんな感じにしてみましたが、
今度は「JOIN式はサポートされていません。」
と出てしまいます。

SELECT MM.ID, MM.入学年度, MM.学年, MM.[クラス], MM.[クラス内番号],
MM.姓, MM.名, MM.[せい], MM.[めい],
MM.性別, MM.生年月日, MM.電話番号,
MM.市区町村, MM.町域,MM.番地, MM.号, MM.建物名, MM.郵便番号,
MM.地区・常会, MM.下校コース,
MM.父名, MM.父連絡先, MM.父連絡先電話番号,
MM.母名, MM.母連絡先, MM.母連絡先電話番号,
MM.緊急連絡先1, MM.緊急連絡先2, MM.緊急連絡先3,
S1.学年 AS 在学兄弟姉妹クラス1, S1.名 AS 在学兄弟姉妹名1,
S2.学年 AS 在学兄弟姉妹クラス2, S2.名 AS 在学兄弟姉妹名2,
S3.学年 AS 在学兄弟姉妹クラス3, S3.名 AS 在学兄弟姉妹名3,
MM.PTA役員, MM.備考, MM.除籍
FROM
(
(
T_児童マスタ AS MM
LEFT JOIN T_児童マスタ AS S1
ON S1.電話番号 = MM.電話番号
AND S1.学年 <> MM.学年
)
LEFT JOIN T_児童マスタ AS S2
ON S2.電話番号 = MM.電話番号
AND S2.学年 <> MM.学年
AND S2.学年 <> S1.学年
)
LEFT JOIN T_児童マスタ AS S3
ON S3.電話番号 = MM.電話番号
AND S3.学年 <> MM.学年
AND S3.学年 <> S1.学年
AND S3.学年 <> S2.学年
;
コメント2件

123
NAME IS NULL[sage]   投稿日:2016/10/18 00:34:12  ID:???.net(475)
>122
accessでは一つのクエリではできないみたい
サブクエリ作って3段重ねで繋げてみて
コメント1件

124
NAME IS NULL[sage]   投稿日:2016/10/18 03:32:30  ID:???.net(475)
重複行を見付けたら一行のみ残して他を削除したいのですが、
列名などを指定せずに、
DeleteDuplicateRow テーブル名
みたいなコマンドは無いのでしょうか?
キーは有りません。

125
NAME IS NULL[sage]   投稿日:2016/10/18 11:21:45  ID:???.net(475)
その残す1行の指定はどうやって決まる?
基本的にSELECTできるものは消せる
コメント1件

126
NAME IS NULL[sage]   投稿日:2016/10/18 11:44:05  ID:???.net(475)
>125
重複しているので、どれを消しても良いと思うのですが。

127
NAME IS NULL[sage]   投稿日:2016/10/18 11:49:15  ID:???.net(475)
重複って言うのは、特定のフィールドだけじゃなく
(プライマリーキー以外)全てのフィールドが同じ値になるレコード
って意味で良いのかな?
コメント1件

128
NAME IS NULL[sage]   投稿日:2016/10/18 11:52:11  ID:???.net(475)
>127
そうです。
プライマリキーも設定していません。
コメント1件

129
NAME IS NULL[sage]   投稿日:2016/10/18 12:29:42  ID:???.net(475)
>128
a
a
a
これを一行残して消すとか無理だろ
コメント2件

130
NAME IS NULL[sage]   投稿日:2016/10/18 12:34:08  ID:???.net(475)
distinctで作り直す
コメント1件

131
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:25  ID:???.net(475)
>129
a

132
NAME IS NULL[sage]   投稿日:2016/10/18 12:36:59  ID:???.net(475)
>129
sqlserver ならrownumber関数使えばできる

133
NAME IS NULL[sage]   投稿日:2016/10/18 12:39:09  ID:???.net(475)
>132
とりあえずMySQLです。SQL SERVERでもやりたいです。
コメント1件

134
NAME IS NULL[sage]   投稿日:2016/10/18 14:01:40  ID:???.net(475)
>133
やはり他の同じ値になるレコードと区別するために
一意のカラムをつけないと削除は無理だと思います
あるいは、>130さんのやり方でテーブル全体を作り直すのが簡単

135
NAME IS NULL[sage]   投稿日:2016/10/18 15:17:32  ID:???.net(475)
一意になるフィールドがあれば(例えばプライマリキーがあれば)、
プライマリキー以外のフィールドでグループ化し、
その上で、一番小さなプライマリキー値のリストを取得、
そのキーリスト以外の全レコードを削除、って感じでできます。

136
NAME IS NULL[sage]   投稿日:2016/10/18 17:24:15  ID:???.net(475)
RDBMSで全く同じレコードは扱うの大変だし意味ないので今後のためにキー追加するか
重複したものは登録できないようにしたほうが良さげ

137
NAME IS NULL[]   投稿日:2016/10/19 01:24:02  ID:wlxzgloU.net
皆さん、いろいろアドバイスありがとうございました。
134さんの方式を試してみます。
重複する行を除去するような操作は普通はやらないのですか?
コメント1件

138
NAME IS NULL[sage]   投稿日:2016/10/19 06:20:22  ID:???.net(475)
だからその重複させるような事態そのものを発生させないようにしてるんだってば

139
NAME IS NULL[sage]   投稿日:2016/10/19 07:09:29  ID:???.net(475)
>137
そのためのプライマリキーです

140
NAME IS NULL[sage]   投稿日:2016/10/19 07:23:29  ID:???.net(475)
重複データ消すのに、rownumber 関数が使えればorder byが使えるので、金額が大きいのとか最新のを残すとかできて便利なんだよな
http:/sotoattanito.hatenablog.com/entry/2015/10/20/230208

141
NAME IS NULL[sage]   投稿日:2016/10/19 18:19:03  ID:???.net(475)
>122 >123

かなり長文になりましたが、うまくいきました。
ありがとうございました。
コメント1件

142
NAME IS NULL[sage]   投稿日:2016/10/20 05:26:44  ID:???.net(475)
>141
質問だけなら長文にならないだろ
後付けの条件あるからだろ

143
NAME IS NULL[sage]   投稿日:2016/10/25 01:39:06  ID:???.net(475)
以前見たDBのER図でずっと気になってるのがあるんだが
複合主キーでテーブル繋げていくやり方って普通なんかな

例えば

「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー →
繋がる「生徒」テーブルで「生徒番号」が追加 →
「塾」テーブルでは「塾番号」が追加 →
「教室」テーブルでは「教室番号」が追加

DB連携の案件(基幹系のDBに、WebとDBが一緒になった鯖からでリンクドサーバで合体)で、その教室テーブルの先に
「塾生がどこの塾で試験申し込んだか」を突っ込むテーブルこさえてどうこうするって奴だったんだが

みたいなのとでもいうか、SQLで書くと

select *
from school inner join
(select *
  from person inner join student on
  person.name = student.name and person.tel = student.tel and
  person.gender = student.gender and person.age = student.age) as selected_student on
  selected_student.name = school.name and selected_student.tel = school.tel ... ;ごめんもう無理

みたいな奴
細部があってるかどうかは覚えてないが、だいたいそういうSQLでないと仕様がない
ER図だったから泣きながらやった

書籍を見るととりあえずID振って縛りたいのにユニーク制約らしいんだが
実際だと複合主キー使っていくんだろうか?
正直DBの設計よくわかってない下請けのアホなんで、NE〇の方が正しいのかなあ、などと疑問が
コメント1件

144
142[]   投稿日:2016/10/25 01:43:49  ID:gb+5Pezb.net
正確にはプログラマーですらない事務員 orz なんか釈然としないんだが、そういうものなのかなあ、と

145
NAME IS NULL[sage]   投稿日:2016/10/25 10:09:16  ID:???.net(475)
>143
>「個人」テーブルでは「氏名・電話番号・性別・年齢」を主キー
そもそもこれが普通じゃない

> 正直DBの設計よくわかってない
本買って読め

146
NAME IS NULL[sage]   投稿日:2016/10/25 17:32:39  ID:???.net(475)
個人で主キーに年齢含むのは普通ないとは思うが
複合キーそのものは別に珍しい物でもない

まあ、ミドル層の都合で全部にID振ろうとか言う流れも無いわけではないけどな

147
NAME IS NULL[sage]   投稿日:2016/10/25 19:09:21  ID:???.net(475)
年齢は毎年変わるだろう
キーにしたいなら、生年月日の方
コメント1件

148
NAME IS NULL[sage]   投稿日:2016/10/25 20:35:20  ID:???.net(475)
実は死没者名簿だったとか

149
NAME IS NULL[sage]   投稿日:2016/10/25 21:14:22  ID:???.net(475)
死没者の集まる塾の教室か

150
NAME IS NULL[sage]   投稿日:2016/10/26 03:35:36  ID:???.net(475)
>147
17からインクリメントしない声優なら知っている

151
NAME IS NULL[sage]   投稿日:2016/10/26 08:42:54  ID:???.net(475)
現在年齢とは言ってない気がする。

152
NAME IS NULL[sage]   投稿日:2016/10/26 10:55:39  ID:???.net(475)
人によって異なる解釈を受けるような定義名は避けた方がいい

153
NAME IS NULL[]   投稿日:2016/10/26 23:41:52  ID:iZaFjONH.net
qiitaって無能のくせにタイトルで煽って
一読すれば書き手が思い込みの激しい初心者だってわかるんだけど
多数からコメントで間違い指摘されるとクソリプがwwwwwwwと煽ったり
せやから違う場合もあるって最後に書いてるやろ日本語読めんのかバカチョンwww
みたいな臭い奴が結構混じってるけどアレなんのためにやってんの?
誤解を招くタイトルでgoogle上位になるとqiitaから金もらえるの?

154
NAME IS NULL[]   投稿日:2016/10/27 00:01:04  ID:zKThEwol.net
てすてす

155
NAME IS NULL[]   投稿日:2016/10/28 12:59:25  ID:F5E1O/a0.net(3)
お邪魔いたします。
ManegementStudioでストアドプロシージャをかけるようになりたいのですが、
家庭教師をしてくださる方いらっしゃいませんでしょうか?
お礼はご相談にて。
捨てアドをさらしますので、ボランティア精神にあふれる方お待ちしております。

rirarira_01@yahoo.co.jp
コメント2件

156
NAME IS NULL[]   投稿日:2016/10/28 13:40:24  ID:7+o0ZZYT.net(2)
>155
お礼をするというのにボランティアとはどういうことなのか?
コメント1件

157
NAME IS NULL[]   投稿日:2016/10/28 13:43:36  ID:7+o0ZZYT.net(2)
>155
Transact-SQLの本ならあるだろ。

昔からそんなに変わってない。

Management Studioがどうこうというはどういう意味?
コメント1件

158
154[]   投稿日:2016/10/28 14:13:08  ID:F5E1O/a0.net(3)
>156
すみません、言葉足らずでした。
お礼はするんですが、なかなかお忙しい皆様が多いかと思いますので、
不勉強な私に時間を割いてくださるボランティア精神にあふれる方を
募集しておりました。

>157
ありがとうございます。
早速購入してみます。

一次面接を合格した企業様がManegementStudioを使用しており
(SQLserber2014)ManegementStudioを使用して、
ストアドプロシージャをかけるようになりたいので、
ManegementStudioの操作性、ストアドプロシージャの知識、
両方が必要となる感じでございます。

現在ManegementStudio勉強環境にインストールして少しずつ勉強中ですが、
二次面接まで時間がないもので、どなたかに家庭教師していただけないかと思い、
失礼ながら書き込ませていただきました。

二次面接は来週早々なので、本が届くのが先か面接が先かという風になってし舞うかと思いまし手…。

どなたかお引き受けいただけませんでしょうか?
コメント1件

159
NAME IS NULL[sage]   投稿日:2016/10/28 14:29:29  ID:???.net(475)
綴りの間違いは恥ずかしいから直して
企業様wもそういうのチェックするよ
コメント1件

160
154[]   投稿日:2016/10/28 14:42:22  ID:F5E1O/a0.net(3)
>159
失礼いたしました。
注意いたします。

161
NAME IS NULL[sage]   投稿日:2016/10/28 20:18:08  ID:???.net(475)
>158
論理構成に難があるようだけど
二次は慎重にね。
コメント1件

162
NAME IS NULL[]   投稿日:2016/10/31 06:20:51  ID:tmLBVYkg.net
SQLserber?serberって何?
コメント1件

163
NAME IS NULL[sage]   投稿日:2016/10/31 07:34:39  ID:???.net(475)
>162
こんな簡単な間違いもくみ取れないバカは黙ってろw

164
NAME IS NULL[sage]   投稿日:2016/10/31 13:41:48  ID:???.net(475)
その環境での開発経験が必須スキルって面接なら不合格になるべき状況だし、
そうじゃないなら環境作ることができて、足し算するだけのストアドつくれりゃあとはどうとでもなると思うよ。
コメント1件

165
154[]   投稿日:2016/11/04 10:04:18  ID:hFXlISxO.net
>161
ありがとうございます。
ありのままのスキルをお話ししてきました。

>164
ありがとうございます。
ストアドはできれば尚可の条件なので必須ではないのですが、
出来てくれると嬉しいな、ということでしたので勉強しておりますが、
環境作るところまでしか進んでおりません。

本日結果が出るのでお世話になったお礼に結果はご報告させていただきます。

166
NAME IS NULL[sage]   投稿日:2016/11/07 18:39:43  ID:???.net(475)
サブクエリを使う場合、サブクエリも範囲を絞ることで結果扱うデータ量が減って計算時間が短くなりますが、コードの可読性が悪くなります。
なにか良いアイデアはありませんか?

167
NAME IS NULL[sage]   投稿日:2016/11/07 19:12:51  ID:???.net(475)
サブクエリを使わない
コメント1件

168
NAME IS NULL[sage]   投稿日:2016/11/07 22:54:57  ID:???.net(475)
>167
アホは書き込まないでくれる?

169
NAME IS NULL[]   投稿日:2016/11/07 22:59:55  ID:GjWHsT4m.net
サブクエリエオ使ったぐらいで「コードの可読性が悪くなります。」なんてウスラバカはそしたらここに書き込む低能

170
NAME IS NULL[sage]   投稿日:2016/11/07 23:29:01  ID:???.net(475)
いっそプロシージャーにして見えなくしてしまったら?

171
NAME IS NULL[sage]   投稿日:2016/11/08 06:31:47  ID:???.net(475)
関数みたいなことは出来ないの?

172
NAME IS NULL[sage]   投稿日:2016/11/08 12:30:50  ID:???.net(475)
サブクリエリオ

173
NAME IS NULL[]   投稿日:2016/12/14 04:41:53  ID:Z9OjftC8.net
よろしければ教えていただければと思います
変数名に使われるstrsplって何の略でしょうか?

どうにも気になってしまって

174
NAME IS NULL[sage]   投稿日:2016/12/14 08:17:11  ID:???.net(475)
string split かねぇ
ggrと strsql を案内されるな

175
NAME IS NULL[sage]   投稿日:2016/12/14 16:13:54  ID:???.net(475)
TBS

176
NAME IS NULL[sage]   投稿日:2016/12/15 17:35:03  ID:???.net(475)
ちょっと教えて欲しいんですけど。
select * で出てくるものについて、 レコードは並び順は不定ってのは知ってるんですが、カラムの順ってのはどうなってるんですか?
create tableで定義した順?
mysqlで自分で作ったテーブルで見るとなんか定義した順みたいだけど。。。

177
NAME IS NULL[sage]   投稿日:2016/12/15 17:44:44  ID:???.net(475)
まあこれは定義した順
でもまあそういうのが気になる状況では * あまり使わないかなあ
コメント1件

178
NAME IS NULL[sage]   投稿日:2016/12/15 19:01:53  ID:???.net(475)
>177
ありがとです。自分で書いているのは * の時でも全部カラム名を書くようにはしているんですが。

179
NAME IS NULL[sage]   投稿日:2016/12/16 04:41:17  ID:???.net(475)
select * で列リストが定義順でない実装は見たことがないけど
それってちゃんとSQL仕様として決まってるのか
コメント1件

180
NAME IS NULL[sage]   投稿日:2016/12/16 08:01:01  ID:???.net(475)
>179
知らんけど決まってないと * 表記自体使えなくね?
insert もカラム指定なくても使えるし。
information_schema 見れば分かるのかな。

181
NAME IS NULL[sage]   投稿日:2016/12/17 02:25:18  ID:???.net(475)
列リスト指定しないinsertは*とは書かないからなぁ
information_schemaで列の定義順がみれたしても、*の出力が定義順だという保証にはならないだろ

集合論として行の順番に意味がないなら、列の順番にも意味はないような気がするけど
列の順番はデータじゃなくて定義の一部だって言われたら意味があるような気もするが
コメント1件

182
NAME IS NULL[sage]   投稿日:2016/12/17 21:14:23  ID:???.net(475)
>181
select * の順番は何かしら定義されていると思うよ。そうでないと何で select * と書くことが認められているのか分からない。

insert で列リストを省略した時も values に最初に書いた値がどの列に入るか分からなかったら、何で省略できるのさって話になる。

あと列リストは組とかタプルとかいうやつで集合じゃないでしょ。こっちは順序あるし同じ値が勝手に1つにまとめられたらチョー困る。

183
NAME IS NULL[sage]   投稿日:2016/12/24 02:14:16  ID:???.net(475)
table1
code  comment
-----  -------------
A001  コメント1です
A002  コメント2です
A005  コメント5です


table2
name  code1  code2  code3
-----  ------  ------  ------
名前8  A003  A002  A007
名前3  A004  A003  A001
名前2  A008  A001  A005

があり、例えば特定のキーワード

keyword = '1です'

に comment が部分一致するような code を含む table2 の行を取り出したいのです。
この例では、
名前3
名前2
の行です。

事前にtable1でキーワードに一致するものを見付けてそれを含むtable2の列を探せば良いと思うのですが、
SQL初心者なのでとっかかりが分かりません。
どういう命令でやるべきなのかヒントを教えて下さい。
コメント1件

184
NAME IS NULL[sage]   投稿日:2016/12/24 04:29:21  ID:???.net(475)
ヒントをってことなんだけど、table2からA001のコードを持つ行を取得することはできるんだろうか

185
NAME IS NULL[sage]   投稿日:2016/12/24 07:36:26  ID:???.net(475)
Like と In でできるだろうけど、遅そう。
コメント1件

186
NAME IS NULL[sage]   投稿日:2016/12/24 09:08:19  ID:???.net(475)
>185
そのSQLを書いて頂けませんでしょうか?

187
NAME IS NULL[sage]   投稿日:2016/12/24 09:22:17  ID:???.net(475)
ヒントじゃねーじゃん

188
NAME IS NULL[sage]   投稿日:2016/12/24 10:30:13  ID:???.net(475)
わらた

189
NAME IS NULL[sage]   投稿日:2016/12/24 11:03:45  ID:???.net(475)
select t21.name
from table1 as t1
inner join table2 as t21 on t1.code = t21.code1
where t1.comment like '%1です%'
union
select t22.name
from table1 as t1
inner join table2 as t22 on t1.code = t22.code2
where t1.comment like '%1です%'
union
select
t23.name
from table1 as t1
inner join table2 as t23 on t1.code = t23.code3
where t1.comment like '%1です%'


多分↑で通るけど、もっといい模範解答求む
コメント1件

190
NAME IS NULL[sage]   投稿日:2016/12/24 12:12:04  ID:???.net(475)
ヒント like in exists

191
NAME IS NULL[sage]   投稿日:2016/12/24 13:00:19  ID:???.net(475)
>183
ヒント where

192
NAME IS NULL[sage]   投稿日:2016/12/24 13:13:57  ID:???.net(475)
select name from table2 t2,
(select code from table1 where comment like '%1です%') t1
where
t2.code1 = t1.code or t2.code2 = t1.code or t2.code3 = t1.code;
コメント1件

193
NAME IS NULL[sage]   投稿日:2016/12/24 13:43:58  ID:???.net(475)
>192
さんの方法で出来ました。
>189
さんの方法も試したのですが、うまく行きませんでした。
私のやり方が悪いのかもしれません。
皆さんありがとうございました。助かりました。

194
NAME IS NULL[sage]   投稿日:2016/12/24 14:45:42  ID:???.net(475)
もう一つ教えて下さい。
>192さんの方式ですと出力が
name, code になりますが name のみにして distinct したいのですが
やり方が分かりません。
宜しくお願い致します。
コメント1件

195
NAME IS NULL[sage]   投稿日:2016/12/24 15:01:12  ID:???.net(475)
>194
その通りやってますか?
select文に指定している name しか表示しないはずですけど

先頭行に distinct 加えれば重複している name は消えます。
select distinct name from table2 t2,
コメント1件

196
NAME IS NULL[]   投稿日:2016/12/25 01:34:13  ID:G9kEUO4A.net(2)
csvからphpmyadminでインポートしてるんだけど途中で止まってしまう
7000行くらいのデータが3000ちょいで切れて、その後継ぎ足しても10行程でまた切れる
あんまりsql関係ないけど原因わかる人いたら教えて
ちなみにxampp
コメント1件

197
NAME IS NULL[sage]   投稿日:2016/12/25 02:16:42  ID:???.net(475)
>195
勘違いでした。
select * ...
としていました。
うまく行きました。
ちなみに>192のような
selectの中に(select ... )があるのは何ていう方式なのでしょうか?
ググルためのキーワードを教えて下さい。

198
NAME IS NULL[sage]   投稿日:2016/12/25 02:22:28  ID:???.net(475)
えっ、データベースの板に来るくらいなら、いくらなんでもサブクエリという名前くらい知っとけよ
コメント1件

199
NAME IS NULL[sage]   投稿日:2016/12/25 12:45:10  ID:???.net(475)
>198
ありがとうございました。
サブクエリ、初めて耳にしました。難しいです。
一時テーブル(#テーブル)と言うやつとは違うんですか?

200
NAME IS NULL[sage]   投稿日:2016/12/25 13:04:03  ID:???.net(475)
一応ここは初心者スレって名前ついているし
ベテランから見たら知ってて当たり前と思う質問でも
優しく回答してやれよ

201
NAME IS NULL[]   投稿日:2016/12/25 13:37:54  ID:GwZs/74I.net
>196

php文字化けとかめんどくさいから
.Netとかでそういうのやってる

202
NAME IS NULL[]   投稿日:2016/12/25 23:40:17  ID:G9kEUO4A.net(2)
195だが
エラー行から改めて入れて、エラー行から改めて入れて
何回かやったら全部入ったわ
原因はわからん
なんやら文字コード的なエラーメッセージだった気がする

203
NAME IS NULL[]   投稿日:2016/12/26 11:14:14  ID:fjjmXLRb.net

204
NAME IS NULL[]   投稿日:2016/12/26 17:20:52  ID:5PC6tP3J.net
DBに突っ込んだデータに対してちょっと込み入った操作をしたいとき、
例えば、「ORDER BY id ASC した状態で、前の行と比較して DATA の値が2以上離れてる行が3行以上続く」ケースを抜き出したいとき、
一般的に (個人的にでもいいです) どんなやり方が最も望ましいんでしょうか?

全行ガサッと取ってきてプログラム側でせこせこ判定していく以外思いつけなくて、これでいいのか不安です
コメント4件

205
NAME IS NULL[sage]   投稿日:2016/12/26 18:47:08  ID:???.net(475)
>204
SQLや処理系ごとの拡張で頑張るとか
ストアドで処理するとか

それだけではどの方法が最善かはわからん

206
NAME IS NULL[sage]   投稿日:2016/12/26 18:52:31  ID:???.net(475)
>204
実現できる方法でやる。
結果が問題なければ
そもそも何を不安に思う?
それは何故よ?

207
NAME IS NULL[sage]   投稿日:2016/12/26 19:34:01  ID:???.net(475)
>204
window関数

208
NAME IS NULL[sage]   投稿日:2016/12/26 20:24:10  ID:???.net(475)
日本終了

ーーーーーーーーーーーーーーーーー
 22日からの大雪で航空機が相次いで欠航となった北海道の新千歳空港で、24日夜、100人あまりの中国人が抗議し激しく詰め寄る騒ぎがあった。

209
NAME IS NULL[sage]   投稿日:2016/12/26 22:19:59  ID:???.net(475)
>204
window関数のlagを使った例

select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

210
NAME IS NULL[sage]   投稿日:2016/12/26 22:22:29  ID:???.net(475)
select
id
,data
from
(
select
id
,data
,data - lag(data, 1) over(order by id) as delta1
,lag(data, 1) over(order by id) - lag(data, 2) over(order by id) as delta2
from
tab1
)
where
abs(delta1) >= 2
and abs(delta2) >= 2
;

211
NAME IS NULL[sage]   投稿日:2017/01/02 16:54:20  ID:???.net(475)
教えて下さい。
カラムが
code,:index
name:名前
date_from:始めの日付 2017/1/1
date_to:終わりの日付 2017/1/3
days:差分 2
というレコードが1つあった場合に

2017/1/1 index 名前
2017/1/2 index 名前
2017/1/3 index 名前

という風に出力するSQL文を教えて下さい。
ちなみに postgresql です。
コメント2件

212
NAME IS NULL[sage]   投稿日:2017/01/02 17:15:10  ID:???.net(475)
>days:差分 2

このカラムの意味が分からない
コメント2件

213
NAME IS NULL[sage]   投稿日:2017/01/02 20:22:33  ID:???.net(475)
質問させていただきます。

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日のレコードのみを取り出したいです。
コメント2件

214
NAME IS NULL[sage]   投稿日:2017/01/02 20:37:55  ID:???.net(475)
>211
365行のテンポラリテーブルを用意してうんぬん
コメント1件

215
NAME IS NULL[sage]   投稿日:2017/01/02 20:39:30  ID:???.net(475)
>213
標準SQLの範囲じゃないような気もするけど、
DateTime型からDateだけ取り出す関数があるだろうからそれを使う。
コメント1件

216
NAME IS NULL[sage]   投稿日:2017/01/02 21:38:43  ID:???.net(475)
>211
Select date_from + g.gs as 日付
, code1,name
From Test1 t
,(
  select generate_series(0,10) as gs
) g
Where g.gs <= t.days;


でも>212が言うようにdaysは演算で処理すべきだべ

217
NAME IS NULL[sage]   投稿日:2017/01/02 21:45:28  ID:???.net(475)
>213
mysql と仮定して
select dtime from t1 where
date(dtime) not in (select date from t2);
コメント1件

218
NAME IS NULL[sage]   投稿日:2017/01/03 09:50:33  ID:???.net(475)
>214,216
できました。ありがとうございました。

>212
テーブル設計自体はすでにあったものでして…

219
NAME IS NULL[sage]   投稿日:2017/01/03 10:39:07  ID:???.net(475)
>215
>217
できました、ありがとうございました。
datetimeをdateに置き換える簡単な方法があったんですね。

220
NAME IS NULL[sage]   投稿日:2017/01/14 10:16:41  ID:???.net(475)
phpmyadminでデータベースを作成しようと思ったのですがSQLタブのテキストエリアにコピペができません(右クリックしてもコピー、切り取り、貼り付けがでない)
コピペをするのに設定などがあるのでしょうか?

221
NAME IS NULL[]   投稿日:2017/01/14 10:36:37  ID:NxfK13Qk.net
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');
コメント1件

222
NAME IS NULL[sage]   投稿日:2017/01/14 12:04:14  ID:???.net(475)
外部結合クエリで
・A LEFT JOIN B
・B RIGHT JOIN A

これらは全く同じものではなく、結果が異なる場合があるので
外部結合は左のみ使うべしってどこかのサイトで見た記憶がある
どなたかそのカラクリを知っていたら教えて
コメント2件

223
NAME IS NULL[sage]   投稿日:2017/01/14 18:06:07  ID:???.net(475)
>222
俺の中ではそんな事ないから答えられない

224
名無しさん[]   投稿日:2017/01/14 18:09:24  ID:/fuRSrl8.net
無料誹謗中傷対策のブッダワークス
http://www.buddha-works.net

225
NAME IS NULL[sage]   投稿日:2017/01/14 20:16:43  ID:???.net(475)
>222
見たサイトの運営者に聞け

226
NAME IS NULL[sage]   投稿日:2017/01/14 21:05:14  ID:???.net(475)
>221

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

それぞれについて説明をちゃんと読んでから使ってね
コメント1件

227
NAME IS NULL[sage]   投稿日:2017/01/15 22:54:38  ID:???.net(475)
>226
ありがとうございます!
確認して使ってみます

228
NAME IS NULL[]   投稿日:2017/01/16 18:03:02  ID:tiD/G6HX.net

229
NAME IS NULL[sage]   投稿日:2017/01/19 06:50:34  ID:???.net(475)
DISTINCT がキーボードで打ちづらいです

230
NAME IS NULL[sage]   投稿日:2017/01/19 12:41:28  ID:???.net(475)
そんなあなたにオススメDvorak配列キーボード

231
NAME IS NULL[sage]   投稿日:2017/01/19 18:01:27  ID:???.net(475)
ユーザー登録ありのシステムを組むにあたってユーザーが2種類いる場合
テーブルは分けるべきでしょうか?

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

スレ違いでしたらすいません。
コメント1件

232
NAME IS NULL[sage]   投稿日:2017/01/19 18:18:15  ID:???.net(475)
>231
DB設計を語るスレ 9
コメント1件

233
NAME IS NULL[sage]   投稿日:2017/01/19 18:56:48  ID:???.net(475)
>232
スレ違いでしたねすいません
スレを教えていただきありがとうございます。

234
NAME IS NULL[]   投稿日:2017/01/24 21:51:15  ID:oe0NRhg4.net
何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信

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

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

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

仄めかしの隠語は
猫 穴 水 仲間 

235
NAME IS NULL[]   投稿日:2017/01/26 14:18:16  ID:73KKygNS.net

236
NAME IS NULL[]   投稿日:2017/01/28 12:44:07  ID:T1kC9Cn+.net

237
NAME IS NULL[sage]   投稿日:2017/01/31 13:26:45  ID:???.net(475)
selectで取得するカラムにAUTO_INCREMENTを指定する方法はありませんか
コメント2件

238
NAME IS NULL[sage]   投稿日:2017/01/31 17:11:46  ID:???.net(475)
>237
取得したレコードに連番を付けたいなら方法はある
もしそうなら、これ以降は自分が使っているデータベーススレに移動しろ
コメント1件

239
NAME IS NULL[sage]   投稿日:2017/02/01 19:11:49  ID:???.net(475)
>237
開始番号はどうやって決めるの?
コメント1件

240
NAME IS NULL[sage]   投稿日:2017/02/02 07:10:22  ID:???.net(475)
普通は1からだろ100からとか別でも足せばいい

241
NAME IS NULL[sage]   投稿日:2017/02/06 16:33:18  ID:???.net(475)
>238
どのDBでも大差ないだろ・・・
と思って実験したらmysqlとoracleとpostgresとsqliteで全部やり方違うのな
ちょっと面白かった

242
NAME IS NULL[]   投稿日:2017/02/08 00:06:58  ID:wCjGsKbG.net
>239
フェッチした順に普通は1から振られる。

243
NAME IS NULL[sage]   投稿日:2017/02/08 23:19:57  ID:???.net(475)
質問させて頂きます

社員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を用いて作業したいのですが、この道具をどのように活かしてクエリを書けばいいのか思い浮かばなかったので質問させて頂きました
アドバイスよろしくお願いします
コメント4件

244
NAME IS NULL[]   投稿日:2017/02/09 01:15:59  ID:I+KHRssK.net(2)
>243
絞り込み条件が社員IDと画面IDなんだろ?
何がやりたいのか書いてくれ。
コメント1件

245
NAME IS NULL[sage]   投稿日:2017/02/09 07:12:02  ID:???.net(475)
>243
手作業多めでいいなら
1 適当なエディタでカンマをタブに変換
2 excelを開いてシート全体を文字列に設定
3 1をシートに貼り付け
4 テーブルとおなじ列に加工
5 accessのテーブルに貼り付け
まあinsert文に加工して実行でもいいかもね
コメント2件

246
NAME IS NULL[]   投稿日:2017/02/09 09:16:23  ID:I+KHRssK.net(2)
>245
どう読んだらCSVファイルの取り込みと解釈できるのか?

247
NAME IS NULL[sage]   投稿日:2017/02/09 12:27:52  ID:???.net(475)
>244-246
レスありがとうございます

今回は>245さんのアドバイスを元に
社員IDと画面IDのテンプレを二重ループで合体させてテキストに出力した5000行を
テキストエディタとExcelで整形してAccessに貼り付けて追加しました


248
NAME IS NULL[sage]   投稿日:2017/02/09 12:36:20  ID:???.net(475)
馬鹿がよく分からん絡み方してるw

249
NAME IS NULL[sage]   投稿日:2017/02/09 18:13:26  ID:???.net(475)
言語の設定ってインストールするときに指定する仕様なんですか?
何も指定しないと勝手にユニコードになると思っていたのですが
コメント1件

250
NAME IS NULL[sage]   投稿日:2017/02/09 18:16:49  ID:???.net(475)
>249
自分が使っているデータベーススレに移動して、疑問に思っていることをもっと具体的に聞け
コメント1件

251
NAME IS NULL[sage]   投稿日:2017/02/09 18:30:19  ID:???.net(475)
>250
移動します
SQLServer2012なんだけど
俺もよくわかってない

252
NAME IS NULL[sage]   投稿日:2017/02/09 22:23:19  ID:???.net(475)
>243
insert ... select ... from 権限管理10行のテンプレ (innnerとかcrossとか)join 追加したい社員IDのリスト
で行けるんじゃないのか
もうエクセル整形でやったのならそれでいいけど
コメント1件

253
NAME IS NULL[sage]   投稿日:2017/02/09 22:32:25  ID:???.net(475)
何をやろうとしているかは大体想像できるんだが、
こういう仕組みを実装する時って、
個人単位で権限を操作するのかな?
新しい機能が追加される度に、全てのユーザーに
権限の可否を設定しないといけなくならないか?
コメント1件

254
NAME IS NULL[]   投稿日:2017/02/10 00:54:29  ID:UY3eO74e.net
>253
ロール

255
NAME IS NULL[sage]   投稿日:2017/02/10 03:00:09  ID:???.net(475)
>252
自分も「これは直積(cross join)でやるかな」と思ったんだけど
直積って実用上はあんまり出てこないんだよな
(SQLの考え方としてはとても重要だと思うのだけど)
それを初心者スレで勧めていいものかと躊躇ってしまった

256
NAME IS NULL[sage]   投稿日:2017/02/10 06:43:28  ID:???.net(475)
244書いたの俺だけどリストって書いてあったから
深く考えずにテキストファイルかなんかだと思ったわ
騒がせてすまんね

257
NAME IS NULL[sage]   投稿日:2017/02/10 08:29:16  ID:???.net(475)
>243
要件にもよるかも知らんが事前に全部追加せんでいい方向もある。
ユーザーテーブルとの乖離にどう対処するか面倒だし。
ユーザーテーブルがなかったら、うん、まぁ、うん。

258
NAME IS NULL[sage]   投稿日:2017/02/15 17:17:09  ID:???.net(475)
超初心者です。
ユーザーごとに掲示板を作る場合
例えば
boardsというテーブルを作って、すべての掲示板の書き込みをそこで管理するのがいいのか、
それともユーザーごとに001boardsみたいにテーブルを作って管理するのがいいのでしょうか?
一元管理の場合、書き込み数が多くなった場合に処理が遅くなるなどの、問題点はないでしょうか?

アドバイスをよろしくおねがいします<(_ _)>
コメント2件

259
NAME IS NULL[]   投稿日:2017/02/15 17:33:15  ID:IlwZKpGL.net
>258
ユーザーごとにテーブルを作るのは管理がたいへんだろ。性能の問題はかなりのデータ量でないかぎりは問題ないと思っていい。
コメント1件

260
NAME IS NULL[sage]   投稿日:2017/02/15 17:53:19  ID:???.net(475)
>259
一元管理で設計してみたいと思います。
アドバイスありがとうございました。

261
NAME IS NULL[sage]   投稿日:2017/02/15 23:57:28  ID:???.net(475)
>258
ユーザーごとだろ普通
コメント2件

262
NAME IS NULL[sage]   投稿日:2017/02/16 01:27:11  ID:???.net(475)
>261
ユーザーごとだとして、
例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

この場合レンタルサーバーなのでsqlite3を使うことになると思います
(Mysqlはテーブル数の制限がある)
コメント2件

263
NAME IS NULL[sage]   投稿日:2017/02/16 01:33:57  ID:???.net(475)
>261
アホか

264
NAME IS NULL[sage]   投稿日:2017/02/16 01:39:58  ID:???.net(475)
レンタルサーバー運営、やろうってこと?

265
NAME IS NULL[sage]   投稿日:2017/02/16 01:45:38  ID:???.net(475)
レンタルサーバーでサイトを作るだけです
そこでユーザー登録をして、ユーザーごとに専用の掲示板を建てるイメージです

266
NAME IS NULL[sage]   投稿日:2017/02/16 01:51:19  ID:???.net(475)
その程度なら一つのテーブルで良いと思うけど
不具合あると、隣のユーザーの掲示板が覗けるとかあるかもね
コメント1件

267
NAME IS NULL[sage]   投稿日:2017/02/16 02:04:14  ID:???.net(475)
>266
アドバイスありがとうございます。

268
NAME IS NULL[sage]   投稿日:2017/02/16 07:12:43  ID:???.net(475)
ユーザー退会したらデータどうすんの?
破棄するならテーブル別がらくじゃね
同一テーブルだと日次で深夜にでも削除実行するんか
コメント1件

269
NAME IS NULL[sage]   投稿日:2017/02/16 07:20:00  ID:???.net(475)
また削除フラグの話にw

270
NAME IS NULL[sage]   投稿日:2017/02/16 07:42:42  ID:???.net(475)
盛り上ってまいりましたw

271
NAME IS NULL[sage]   投稿日:2017/02/16 07:47:37  ID:???.net(475)
>262
なおさら別テーブルだね
コメント1件

272
NAME IS NULL[sage]   投稿日:2017/02/16 12:00:10  ID:???.net(475)
>268
>271
頭湧いてんな
コメント1件

273
NAME IS NULL[sage]   投稿日:2017/02/16 12:05:27  ID:???.net(475)
>272
sqliteで複数ユーザーが
同一テーブルにアクセス、

まだわからないかなw

274
NAME IS NULL[sage]   投稿日:2017/02/16 15:04:33  ID:???.net(475)
>262
> (Mysqlはテーブル数の制限がある)
どこ情報かしらないが、普通は制限はないよ

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

逆にMySQLを使う場合でもユーザ単位でテーブルを分割する場合もある(ユーザIDによる水平分割)
ソシャゲ界隈では良くあること
これも、要件と相談してからだな

275
273[sage]   投稿日:2017/02/16 15:10:47  ID:???.net(475)
あ、テーブル数の制限って、レンタルサーバだからなのか
なるほどねー

276
NAME IS NULL[sage]   投稿日:2017/02/16 16:32:37  ID:???.net(475)
まあこのまま続けてたら半年後にはなんでこんなバカな質問したんだろうと思うこと請け合い

277
NAME IS NULL[sage]   投稿日:2017/02/16 16:51:32  ID:???.net(475)
ユーザ数が1万人を超えるようなサービスを、MySQLのテーブル数が制限されるようなゴミレンサバで実行するなんて・・・

すごーい(別の意味で)
コメント1件

278
NAME IS NULL[sage]   投稿日:2017/02/16 17:08:18  ID:???.net(475)
金取るシステムとは思えん
無料サービスだろ
エラーが発生してもデータが壊れても、すいませんテヘで済むような奴

279
NAME IS NULL[sage]   投稿日:2017/02/16 21:27:52  ID:???.net(475)
>277
例えばな
たーとーえーばーww
コメント2件

280
NAME IS NULL[sage]   投稿日:2017/02/16 21:34:17  ID:???.net(475)
>279
君がいるだーけーでー

281
NAME IS NULL[sage]   投稿日:2017/02/16 22:26:13  ID:???.net(475)
盛り下がってまいりました、、、

282
NAME IS NULL[sage]   投稿日:2017/02/16 22:44:43  ID:???.net(475)
会員数1万人のWebベースのサービスやりたいんだったら、SQLがどうのではなく、
それなりの通信環境、ハードウエア、システム要員を用意しないと駄目だろう
コメント1件

283
NAME IS NULL[sage]   投稿日:2017/02/17 07:10:18  ID:???.net(475)
そもそもこんなところで質問するようなやつなんだから
訳分からず質問してるだけだろ
察して遊んでやれよ

284
NAME IS NULL[sage]   投稿日:2017/02/17 09:29:17  ID:???.net(475)

285
NAME IS NULL[sage]   投稿日:2017/02/17 09:51:42  ID:???.net(475)
>例えばテーブル(ユーザー)数が1万を超えても問題ないでしょうか?

要求仕様じゃないかな?

286
NAME IS NULL[sage]   投稿日:2017/02/17 17:25:57  ID:???.net(475)
テーブル名をフラグに使ったことならあるよ
テーブルがオープンできない=それは未使用

当時はみな気がくるっていた

287
NAME IS NULL[sage]   投稿日:2017/02/23 21:19:47  ID:???.net(475)
これからSQL勉強する者です
独学で本を参考にするつもりですが、まずSQLでデータベースから抽出できます、といえる程度になるにはどのくらいの期間見込めばいいでしょうか?
コメント1件

288
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:13  ID:???.net(475)
30分

289
NAME IS NULL[sage]   投稿日:2017/02/23 21:40:25  ID:???.net(475)
抽出だけなら、5分も掛からないんじゃないか?

290
NAME IS NULL[sage]   投稿日:2017/02/23 22:36:11  ID:???.net(475)
本を買いにいく時間がある

291
NAME IS NULL[sage]   投稿日:2017/02/23 22:43:24  ID:???.net(475)
いや真面目に・・3ヶ月くらいだろうか?ととりあえず予測を立てたのですが・・
実務でできないのが痛いところなのですが
コメント2件

292
NAME IS NULL[sage]   投稿日:2017/02/23 22:47:49  ID:???.net(475)
何をインストールするのか知らんけど、つまずく奴はRDBを自分のPCにインストールするとこからつまずくからなw
あれこれやる前から考えてもしょーがない。自分でコマンドをどんどん入れてみるこったよw
コメント1件

293
NAME IS NULL[sage]   投稿日:2017/02/23 22:50:45  ID:???.net(475)
>287
七分

294
NAME IS NULL[sage]   投稿日:2017/02/23 22:52:18  ID:???.net(475)
>291
そこ期間の内訳出してみ

295
NAME IS NULL[sage]   投稿日:2017/02/23 22:54:07  ID:???.net(475)
君がPCを所有していて、OSが入っていて、ネットに接続できているなら
適当なSQLをダウンロードしてインストールすれば
勉強は今すぐにでも開始できそうなんだが
コメント1件

296
NAME IS NULL[sage]   投稿日:2017/02/23 22:55:54  ID:???.net(475)
>291
あんたの才能とやる気次第としか言えない
SQLはかなり癖のある言語だから、ダメな人は1分で本を閉じて終わり

297
NAME IS NULL[sage]   投稿日:2017/02/23 22:58:52  ID:???.net(475)
>292
MySQL
能書きいうよりまずやることは経験済み納得だが、今後の方向づけを検討しての質問だった

298
NAME IS NULL[sage]   投稿日:2017/02/23 23:01:31  ID:???.net(475)
>295
そうなんですよ
いまうちmacしかも壊れた・・(へぼくてすまん)
つうことでうちは会社があまりダウンロードとかうるさくないのですが、
会社のwinマシンに落とすことを目論み中ですが、会社PCに個人で落としてる人いますか?

299
NAME IS NULL[sage]   投稿日:2017/02/23 23:27:33  ID:???.net(475)
それはここで聞かずに、上司に聞くべきことだろ
ちゃんと理由を説明して、何をインストールしたいか説明し
それが仕事で必要なことだとなればインストール可能じゃないのかな?

君の会社での役割が管理者で、PCの設定に関して権限があるなら、聞かなくてもいいだろうけど

300
NAME IS NULL[sage]   投稿日:2017/02/23 23:34:32  ID:???.net(475)
やはりこっそりはまずいか…
実務じゃ必要ないって言われるのが関の山だ
だってうちの上司ろくに関数もわからないお馬鹿…なんでもマッチョに力技が得意技なもんで
なくせに色々要求してくる
んでそんなとこを抜け出すためのSQL習得なのです
Winマシンを大人しく速攻買おう
つうことで安いの探すとこから始めます
Dellあたりかなー できたらVAIO

301
NAME IS NULL[sage]   投稿日:2017/02/24 05:16:28  ID:???.net(475)
けっこうまじめに質問したんだけどやっぱ2ちゃんだな
冷やかしだけで答えてはもらえないか
ま、いいやとっととやるから
コメント3件

302
NAME IS NULL[sage]   投稿日:2017/02/24 07:04:10  ID:???.net(475)
>301
ガンバレ

303
NAME IS NULL[sage]   投稿日:2017/02/24 08:44:57  ID:???.net(475)
真面目に回答しても冷やかしとしか受け取って貰えない w

304
NAME IS NULL[sage]   投稿日:2017/02/24 09:11:23  ID:???.net(475)
>301
だいぶ抽象的で、何に役立つのか
分かりにくい質問だったことは
覚えておいて。

305
NAME IS NULL[sage]   投稿日:2017/02/24 10:00:29  ID:???.net(475)
DB板は、おふざけな質問でない限りマトモに答えてくれるよ

306
NAME IS NULL[sage]   投稿日:2017/02/24 11:03:39  ID:???.net(475)
SQLでデータを抽出する基本だけなら、みんな言うように1日でできるぞ
select文流すだけだからな

問題は、SQLを発行する方法とそのための環境の構築が難しいだけで
コメント1件

307
NAME IS NULL[sage]   投稿日:2017/02/24 12:02:44  ID:???.net(475)
>301
また聞きにおいで

308
NAME IS NULL[]   投稿日:2017/02/24 18:58:00  ID:U+kKk5Yi.net
>306
基本ってなんだよ?
コメント1件

309
NAME IS NULL[sage]   投稿日:2017/02/24 20:33:06  ID:???.net(475)
>308
select hello from world

310
NAME IS NULL[]   投稿日:2017/02/24 20:52:10  ID:dYCyIIDS.net
まず初心者には結合が1日で理解できるかどうか。

311
NAME IS NULL[sage]   投稿日:2017/02/24 21:09:40  ID:???.net(475)
批判も応援する言葉もどちらもありがとう

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

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

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

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

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

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

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

Hello world

312
NAME IS NULL[sage]   投稿日:2017/02/24 23:02:19  ID:???.net(475)
本日、postgresqlをDB2に替えたらwebアプリが動かなくなったわ。
もう逃げたい。俺のせいじゃないけど。

313
NAME IS NULL[sage]   投稿日:2017/02/25 00:22:52  ID:???.net(475)
テストもせずにいきなり入れ替えたのかよ
そんなことができる現場、逆にすごい楽しそうだな

314
NAME IS NULL[sage]   投稿日:2017/02/25 20:49:52  ID:???.net(475)
SQL言語ってオラクルとかMysqlとか、MSで違うんですか?

315
NAME IS NULL[sage]   投稿日:2017/02/25 20:58:21  ID:???.net(475)
基本は同じ
それぞれ拡張している部分がある

316
NAME IS NULL[sage]   投稿日:2017/02/25 21:38:20  ID:???.net(475)
要するに、違う。

317
NAME IS NULL[sage]   投稿日:2017/02/25 22:09:37  ID:???.net(475)
SQLとMySQLって違うの?
でSQLがあってのOracle?
コメント1件

318
NAME IS NULL[sage]   投稿日:2017/02/25 22:27:30  ID:???.net(475)
ここでそんな質問する前に本の1冊でも読めよ

319
NAME IS NULL[sage]   投稿日:2017/02/25 23:02:52  ID:???.net(475)
>317
単語それぞれでググってみればわかる
MySQLとOracleはデータベースソフトウェア製品の名前
SQLはそれらで共通に使われている(ただし方言あり)言語の名前

320
NAME IS NULL[sage]   投稿日:2017/02/25 23:11:02  ID:???.net(475)
そんくらいわかってるわ

321
NAME IS NULL[sage]   投稿日:2017/02/25 23:40:52  ID:???.net(475)
誰が質問者か分からなくなってきた

質問者はsageをせずに書き込むと良いですよ
そうすれば、ID表示でますから

322
NAME IS NULL[]   投稿日:2017/02/26 14:45:56  ID:LVGuIyS4.net
SQL ServerとMySQLを単にSQLと略す馬鹿がいるので混乱する。
コメント1件

323
NAME IS NULL[sage]   投稿日:2017/02/26 14:52:17  ID:???.net(475)
>322
それだ

324
NAME IS NULL[sage]   投稿日:2017/02/26 16:08:09  ID:???.net(475)
初めてダウンロード
PostegerSQLとMySQLどちらがいいだろうか?

325
NAME IS NULL[sage]   投稿日:2017/02/26 16:09:23  ID:???.net(475)
両方入れとけ
管理方法が違うのでコンソールまたはツールで馴染んだほう残せばいい
コメント2件

326
NAME IS NULL[sage]   投稿日:2017/02/26 16:21:31  ID:???.net(475)
ツール使うなら、両者ともそれほど違いはなかったと思う
コンソールだと、違いがあるから慣れるまで時間掛かりそう
コメント1件

327
NAME IS NULL[sage]   投稿日:2017/02/26 16:30:27  ID:???.net(475)
>325
おけ
両方入れる

>326
んーよくわからず、まだ先のことだろうから後で考えるわ

328
NAME IS NULL[sage]   投稿日:2017/02/26 16:31:06  ID:???.net(475)
>325,326
ありがとです

329
NAME IS NULL[sage]   投稿日:2017/02/28 12:15:15  ID:???.net(475)
SQLを触ったことないんですが、クエリ文を覚えるためにはどうすればいいでしょうか?
C#という言語でLINQというものは触ったことあるのでまったくわからないとは思わないのですが・・・
コメント3件

330
NAME IS NULL[sage]   投稿日:2017/02/28 13:53:34  ID:???.net(475)
>329
普通の人は、本買って読むんだけど・・・

331
NAME IS NULL[sage]   投稿日:2017/02/28 14:01:20  ID:???.net(475)
とりあえず環境を用意する

332
NAME IS NULL[sage]   投稿日:2017/02/28 18:25:09  ID:???.net(475)
SQL試す環境つくればいいよ、上にあるMySQLやPostgreSQLをローカルに入れて
PgAdmin3とかMySQL Workbenchとか動かしてみては
SQLite3でも試せるけどね

333
NAME IS NULL[]   投稿日:2017/02/28 19:39:01  ID:jzPtOTcH.net
>329
SQLとクエリと言ってる時点でおかしい。たぶんSQL Serverが前提なんだろうな。

334
NAME IS NULL[]   投稿日:2017/02/28 20:04:26  ID:yUIIsXa+.net
sql serverが前提だとなんか困るのかな

335
NAME IS NULL[sage]   投稿日:2017/02/28 21:21:44  ID:???.net(475)
職場でAccessって使う人少ないですか?
コメント2件

336
NAME IS NULL[sage]   投稿日:2017/02/28 21:58:28  ID:???.net(475)
>335
質問の意図がわからない
それをここで俺らに聞いて何をしようというのだ?

337
NAME IS NULL[sage]   投稿日:2017/02/28 22:07:13  ID:???.net(475)
>335
えっ!?!?
いやいや普通もれなく全員清掃係りの人も警備の人も使うでしょ
おたく使ってないの???

338
NAME IS NULL[sage]   投稿日:2017/02/28 23:17:08  ID:???.net(475)
使ったt事あるよ。で、それがどうした。

339
NAME IS NULL[sage]   投稿日:2017/03/01 02:02:24  ID:???.net(475)
accessは帳票必要なシステムでは楽チンだけど
帳票なかったらphpのほうが楽チンだな

340
NAME IS NULL[sage]   投稿日:2017/03/01 07:11:22  ID:???.net(475)
>329
業務で使うsqlのパターン は限られてるから
初心者向けの本を買えばいいと思うよ

341
NAME IS NULL[sage]   投稿日:2017/03/01 12:20:17  ID:???.net(475)
業務で使わないsqlは多種多様なのか?違いが分からん
コメント1件

342
NAME IS NULL[sage]   投稿日:2017/03/01 12:40:46  ID:???.net(475)
>341
そうだよ
違うよ

343
NAME IS NULL[sage]   投稿日:2017/03/01 15:57:14  ID:???.net(475)
DB自体の操作やユーザー管理も含めて言っているのじゃないかな?

344
NAME IS NULL[sage]   投稿日:2017/03/01 18:47:02  ID:???.net(475)
業務で使う時は特殊な記述を避けるというだけの話かと

345
NAME IS NULL[sage]   投稿日:2017/03/01 20:05:39  ID:???.net(475)
sqlに特殊な記述なんてあったか?

346
NAME IS NULL[sage]   投稿日:2017/03/02 03:01:35  ID:???.net(475)
顧客id 顧客名
取引id 顧客id 取引額 取引日

こんな2つの顧客テーブルと取引テーブルがあるとします。
取引テーブルの取引日と顧客idはUNIQUEな関係です(同じ日の再度の取引はない)。
ある顧客との、ある期間中どれだけ取引があったか(回数と総額)の計算をしたいです。

顧客テーブル
  顧客id INT PK
  顧客名 VARCHAR NN

取引テーブル
  取引id INT PK
  顧客id INT FK
  取引額 INT NN
  取引日 DATE NN
  UNIQUE (顧客id, 取引日)

インデックスを貼るべきところとかよくわからないのですが、テーブルはこんな感じでいいのでしょうか?
検索(WHERE)に取引日を使うので、取引日にもインデックス貼ったほうがいいのでしょうか?
あと取引日のDATE型なんですが、UNIXTIMEのようにある日からの起算のほうが検索早そうなのでINTにしたほうがいいですか?
コメント1件

347
NAME IS NULL[sage]   投稿日:2017/03/02 06:14:34  ID:???.net(475)
>取引日にもインデックス貼ったほうがいいのでしょうか?

それで検索をよくするんだったら良いんじゃないの。自分は株価テーブル作っててPKが(コード、出来高年月日)なんだけど、
出来高年月日での検索もするんでその出来高年月日にindex貼ったら実行スピードめちゃ上がったし
コメント1件

348
NAME IS NULL[sage]   投稿日:2017/03/02 14:18:17  ID:???.net(475)
>346
DATE型使っても、内部表現はバイナリー値だから実行スピードは変わらないだろう
コメント1件

349
345[sage]   投稿日:2017/03/03 05:48:15  ID:???.net(475)
>347-348
レスありがとうございます。
実例での効果まであげていただいて感謝です。
DATA型でも検索速度は変わらないとのことなので、
このままでCREATEしたいと思います。
コメント1件

350
NAME IS NULL[sage]   投稿日:2017/03/03 09:25:17  ID:???.net(475)
>349
なぜそう結論できる?

351
NAME IS NULL[sage]   投稿日:2017/03/03 12:26:59  ID:???.net(475)
当たり屋かよw

352
NAME IS NULL[sage]   投稿日:2017/03/03 17:39:50  ID:???.net(475)
(DATA型は)このままでってことだろう

353
NAME IS NULL[]   投稿日:2017/03/04 06:08:32  ID:GZ+afmPr.net
RDBMSの内部構造を意識するのが初心者なのかと。

354
NAME IS NULL[sage]   投稿日:2017/03/04 07:48:26  ID:???.net(475)
まあプログラムやってればその辺はちょっとは検討つくでしょう
JavaScriptみたいのしかやったことないとかだとDBいじる機会もなかなかないだろうし
ところでDATE型とINT型の検索速度の比較って
ググって見るとINT型のほうが早いみたいだけど
コメント2件

355
NAME IS NULL[sage]   投稿日:2017/03/04 08:31:07  ID:???.net(475)
郵便番号と地名が書いてるデータベースを作るとして
0から始まる北海道はとりあえず無視するとして
7桁のユニークな数字になるわけですが
そういう番号があっても主キーにせずオートインクリメントなサロゲートキーを作るべきですか?
コメント1件

356
NAME IS NULL[sage]   投稿日:2017/03/04 08:46:24  ID:???.net(475)
郵便番号は郵便局が自分たちの業務をやりやすくするために振っただけのものであって
地名との一対一の紐付けを保証するものではないし
郵便局の都合で変更されることもある
そのへんを理解した上で使うなら別にいいんじゃない?

357
NAME IS NULL[sage]   投稿日:2017/03/04 09:03:59  ID:???.net(475)
「郵便番号の」サロゲートだとしたらそのへんは何も変わらんが。

358
NAME IS NULL[sage]   投稿日:2017/03/04 09:23:42  ID:???.net(475)
>354
> ところでDATE型とINT型の検索速度の比較って
> ググって見るとINT型のほうが早いみたいだけど

そらそうよ。プログラムやってれば見当つくはず。

>355
困ったことに、郵便番号と地名は1:nです

359
NAME IS NULL[sage]   投稿日:2017/03/04 09:32:54  ID:???.net(475)
データベースは当然、1:n関係を表現できるだろうに。何を困ることがある?

360
NAME IS NULL[sage]   投稿日:2017/03/04 09:34:36  ID:???.net(475)
>348は嘘やったんやな

361
NAME IS NULL[sage]   投稿日:2017/03/04 10:37:00  ID:???.net(475)
郵便番号はちょっと例えが悪かったかな・・・
例えばクレジットカードとか連番だと都合が悪いけど一意な番号
それでもサロゲートは必要?

362
NAME IS NULL[sage]   投稿日:2017/03/04 10:49:39  ID:???.net(475)
そういう質問している人には必要ない。

363
NAME IS NULL[sage]   投稿日:2017/03/04 11:01:27  ID:???.net(475)
だってとりあえずauto incrementを主キーにしとけって書籍に書いてるんだもの

364
NAME IS NULL[sage]   投稿日:2017/03/04 11:13:05  ID:???.net(475)
晒せ。

365
NAME IS NULL[sage]   投稿日:2017/03/04 11:36:56  ID:???.net(475)
初心者にはあれこれいうよりベストな書き方覚えろっていう
ベストでもないオレオレ書き方教える書籍は多い
全部のテーブルにcreated updated作れみたいな

366
NAME IS NULL[sage]   投稿日:2017/03/04 15:42:19  ID:???.net(475)
SQLはなんで大文字が好きなの?
コメント1件

367
NAME IS NULL[]   投稿日:2017/03/04 23:32:19  ID:b+Y4fejK.net(2)
>354
そもそもどのRDBMSのINT型なのか知らないが、標準SQLではコンピュータの数値表現としているので、速いのはあたりまえ。

ちなみにOracleでは標準SQLのINT型はNUMBER型なのでまったく違う。当然Oracleでは計算が遅くはなる。

368
NAME IS NULL[]   投稿日:2017/03/04 23:33:46  ID:b+Y4fejK.net(2)
>366
プログラミング言語の歴史では、小文字をメインに使うようになったのはC言語あたりから。

369
NAME IS NULL[sage]   投稿日:2017/03/04 23:57:32  ID:???.net(475)
Oracleの場合、内部で大文字に変えていると聞いたことがある
本当かどうかは確かめたことないし、今もそうなのかは分からないが
使っていた当時は全部大文字で書いてたな
コメント2件

370
NAME IS NULL[sage]   投稿日:2017/03/05 04:43:17  ID:???.net(475)
DB側で用意してる関数含めてユーザ入力による変数になってる
テーブル名とかカラム名以外は全部大文字にしてる
`table` `long_table_name` `column` `long_column_name`
ご丁寧に``で囲んでるけどこれもいらんのよなあ
なんかいい規則があればいいんだけど

371
NAME IS NULL[sage]   投稿日:2017/03/05 11:05:14  ID:???.net(475)
基本的に大文字しか使えない環境が当たり前の頃からSQLあるからな、、、
COBOLでの EXEC SQL 文とか懐かしいなあ

372
NAME IS NULL[]   投稿日:2017/03/05 15:50:25  ID:ZV3ds4gJ.net
>369
それを言うのがいるけど、プログラマでそんなことを言ったら恥ずかしいぞ。大文字、小文字を区別しないなら大文字、小文字の判定処理が入るわけで、そこから大文字に変換する処理が遅くて問題になるなど阿呆みたいなこだわりだ。
コメント1件

373
NAME IS NULL[sage]   投稿日:2017/03/06 00:07:50  ID:???.net(475)
大文字に変換する処理が遅くて問題になるなんて誰か言ってた?

374
NAME IS NULL[]   投稿日:2017/03/06 01:05:03  ID:VHVbqVdu.net(2)
>369 が書いてるが?

375
NAME IS NULL[]   投稿日:2017/03/06 01:09:49  ID:VHVbqVdu.net(2)
大文字が大文字かどうかより、文字がなんなのかの判定も入るわけで、そんな処理時間はいつの時代のコンピュータの性能で考えているんだよw

こんなことを言い出したらRDBはあらゆることが遅すぎて使えない。現実にRDBはコンピュータの性能が上がったから使い物になるようになった歴史も知らないのか?

376
NAME IS NULL[sage]   投稿日:2017/03/06 01:15:29  ID:???.net(475)
>372
asp

377
NAME IS NULL[sage]   投稿日:2017/03/06 02:48:06  ID:???.net(475)
368本人です。何かお騒がせしてしまい済みません。
相当昔の話です。
動かしていたサーバーはW2k、CPUはP3、メモリー4G程度でした。
できるだけ負荷を減らせと言う指示の中で作業してました。

378
NAME IS NULL[sage]   投稿日:2017/03/06 05:47:11  ID:???.net(475)
パーサーの仕様で大文字小文字区別しないにしても
大文字しかパースできなくて変換処理が必要だとしても
それに判定を挟む必要もなければ
ただの一文にすぎないSQLに処理時間なんてギャグかよって話
コメント2件

379
NAME IS NULL[sage]   投稿日:2017/03/06 07:05:39  ID:???.net(475)
>378
お前の小さい脳みそこそギャグかよww
コメント1件

380
NAME IS NULL[sage]   投稿日:2017/03/06 07:25:07  ID:???.net(475)
↑アホ丸出し

381
NAME IS NULL[sage]   投稿日:2017/03/06 07:28:15  ID:???.net(475)
>379
構文解析にかける時間に比べれば
文字列の処理なんて微々たるものがわからないような猿

382
NAME IS NULL[]   投稿日:2017/03/06 12:11:06  ID:0KbRjlYP.net
>378
判定処理はいるだろw
文字がAならAかどうか判定する。

何この低レベルw
コメント4件

383
NAME IS NULL[sage]   投稿日:2017/03/06 12:23:32  ID:???.net(475)
小文字混ざってる前提で全て大文字にしてからパースすればいいだけってのは
プログラマーならわかるだろ

384
NAME IS NULL[sage]   投稿日:2017/03/06 12:41:33  ID:???.net(475)
>382
全部大文字にすればよいでしよw

385
NAME IS NULL[]   投稿日:2017/03/06 15:24:30  ID:bDLzF0aS.net
結局予約語だけ大文字で書けばいいの?
開発効率落ちまくるけどどの参考書もそうしてるよな
コメント3件

386
NAME IS NULL[sage]   投稿日:2017/03/06 15:32:38  ID:???.net(475)
コーディング規約ってのがそれぞれのチームなり部署なりにあるだろ?
それに従えば良いだろ。
んで自分一人のものだけなら好き勝手に

387
NAME IS NULL[sage]   投稿日:2017/03/06 15:59:13  ID:???.net(475)
そうなんだけどさ、大文字と小文字使い分けるのってすごい面倒なんだよなぁ
玄人の皆さんは使い分けなきゃいけない状況のときどうやって書いてるの?
毎回shift+capslockしてるの?てか列名日本語にするのほんとやめてください
コメント1件

388
NAME IS NULL[sage]   投稿日:2017/03/06 16:09:32  ID:???.net(475)
使い捨ては全部小文字
あとで見返すことがあるものは予約後大文字、シフトに指置けばいいべ

389
NAME IS NULL[sage]   投稿日:2017/03/06 16:13:07  ID:???.net(475)
>385
効率落ちまくるって、どんだけクエリ書いてるんだよ
300char/minだとして、大文字小文字意識しても5秒ほどしかかわらんだろ
つまり、1分の差がでるのに3600文字必要
毎日1万字書く奴がいたとしても、せいぜい3分/dayくらいの差だ
コメント2件

390
NAME IS NULL[]   投稿日:2017/03/06 19:02:01  ID:aPuKjXeW.net
>389
お前はキーパンチャーかwどんだけキーボードマスターだよw

391
NAME IS NULL[sage]   投稿日:2017/03/06 19:18:44  ID:???.net(475)
全部小文字でもいいだろ好きにしろ
ぱっと見てここSQLだなってわかるようにしたいなら大文字にすりゃいいし
動きゃいいんだよ

392
NAME IS NULL[sage]   投稿日:2017/03/07 02:45:55  ID:???.net(475)
>382
大文字にするにあたって元の文字が大文字か小文字か判定する必要はないって話だと思うんだが、
あなたが言うように判定するのは無駄なので判定しないのが普通。
コメント1件

393
NAME IS NULL[sage]   投稿日:2017/03/07 10:30:00  ID:???.net(475)
>389
キーパンチャーなみのタイプ速度で、普通は考えられないような量のクエリを1日にタイプするとしても、
それでも1日あたりの作業低下量は3分程度なんだが、>385はどんだけタイプしてんだよって話だ

読解力ない奴って、底が知れんわ
コメント1件

394
NAME IS NULL[sage]   投稿日:2017/03/07 12:02:08  ID:???.net(475)
そもそもSQL誕生して何十年も経ってるのにいまだにこの議論してんだから
大文字小文字の問題は根深いよな

>393
タイピング速度の問題ではなくてストレス的な意味の開発効率を言ってると思うぞ>385
コメント2件

395
NAME IS NULL[sage]   投稿日:2017/03/07 13:44:27  ID:???.net(475)
>394
この程度のコーディングルールでストレスとか、向いてないんじゃねーの?

396
NAME IS NULL[sage]   投稿日:2017/03/07 13:54:22  ID:???.net(475)
安価ミスしちゃうそそっかしい人はフォーマッタ使えばいいんじゃないでしょうか。

397
NAME IS NULL[sage]   投稿日:2017/03/07 14:03:09  ID:???.net(475)
>394
> 大文字小文字の問題は根深いよな
根深いっつーか、どっち派もいるというだけでしょ
他言語だっていつまでたっても中括弧の書き方レベルの議論が終わらないし

398
NAME IS NULL[sage]   投稿日:2017/03/07 14:23:20  ID:???.net(475)
てか、別に大文字小文字で開発効率が落ちる奴がいても不思議じゃない。
不思議じゃないが、だから何ってはなしで。
俺らには関係ない。

399
NAME IS NULL[sage]   投稿日:2017/03/07 15:50:13  ID:???.net(475)
スレチかも知れんがMac使ってるやつはSequel入れとけフリーでこんないいの
なかなかないぞ

400
NAME IS NULL[sage]   投稿日:2017/03/07 16:33:49  ID:???.net(475)
大文字小文字もインデントの具合も全てどうでもいいと思ってるが・・・

カンマを行頭に置く奴だけは許せん!!!

401
NAME IS NULL[sage]   投稿日:2017/03/07 17:40:36  ID:???.net(475)
俺もこの程度で効率落ちまくるなら、プログラマに向いてないと思うよ

402
NAME IS NULL[sage]   投稿日:2017/03/07 17:52:14  ID:???.net(475)
プログラマなら、たとえMISRA-C完全準拠を要求されても、淡々と従うものだ。

403
NAME IS NULL[sage]   投稿日:2017/03/07 18:17:10  ID:???.net(475)
>382
お前がw
このスレでw
一番低レベルだがなwww

404
NAME IS NULL[sage]   投稿日:2017/03/07 21:19:09  ID:???.net(475)
>382
何度詠んでもわらてまう

405
NAME IS NULL[sage]   投稿日:2017/03/07 23:52:37  ID:???.net(475)
俺は逆に面倒だと思う人のほうがプログラマには向いてるとおもうけどな
if so を考えるのって大事だと思うぞコーダーって意味なら向いてないと思うけど
コメント1件

406
NAME IS NULL[sage]   投稿日:2017/03/08 12:54:37  ID:???.net(475)
>405
面倒だと思うのはかまわない

ただ、この程度で効率落ちまくるレベルの奴は、プログラマに向いてないってだけだ

407
NAME IS NULL[sage]   投稿日:2017/03/08 15:50:08  ID:???.net(475)
「落ちまくる」のは向き不向きよりも不慣れなだけだろう

向き不向きの話をするなら、大文字で書くことに何の疑問も持たない人の方がプログラマに向いていない
理由があって大文字を選択してるなら良いことだと思うが
コメント1件

408
NAME IS NULL[sage]   投稿日:2017/03/08 16:03:35  ID:???.net(475)
マジでうざいわ。
いつまでやってんだ。

409
NAME IS NULL[sage]   投稿日:2017/03/08 16:10:50  ID:???.net(475)
>407
キーワードを大文字で書けくらい、即慣れるだろ
ふつーのプログラマなら、効率が落ちまくったりしません

410
resumi[]   投稿日:2017/03/08 17:37:21  ID:hjh5f++s.net
https://goo.gl/l3fSYl
これ本当??
普通にショックだね。。

411
NAME IS NULL[sage]   投稿日:2017/03/08 17:54:51  ID:???.net(475)
この粘着質、どこかで

412
NAME IS NULL[sage]   投稿日:2017/03/08 18:00:24  ID:???.net(475)
>387
> 毎回shift+capslockしてるの?
誰も答えないのでコメントしとくか。

普通はCapsLockなんか使わないでしょ。
Shift推しながらタイプするだけ。
コメント1件

413
NAME IS NULL[sage]   投稿日:2017/03/08 18:11:39  ID:???.net(475)
予約語なんて一覧にして各RDBのドキュメントに乗ってんだから
ちょちょいとコピペして整形して正規表現で置き換えりゃいいだろ

414
NAME IS NULL[]   投稿日:2017/03/08 19:12:42  ID:o80qSDDR.net(2)
でたw正規表現厨w

415
NAME IS NULL[sage]   投稿日:2017/03/08 19:15:55  ID:???.net(475)
その正規表現がこちらになります

416
NAME IS NULL[sage]   投稿日:2017/03/08 19:58:12  ID:???.net(475)
age半角wはレベル低すぎんだよ

417
NAME IS NULL[]   投稿日:2017/03/08 20:37:34  ID:o80qSDDR.net(2)
それでは気をとりなおしてwレベル高い正規表現どうぞw

418
NAME IS NULL[sage]   投稿日:2017/03/08 21:24:42  ID:???.net(475)
エディタに丸投げするだけなのに
本気で言ってるのかどうなのか・・・

419
NAME IS NULL[]   投稿日:2017/03/09 18:52:44  ID:cT/4yIz6.net(2)
>392
何をわけのわからないことを言ってるのか?コンピュータからしたら大文字と小文字のアルファベットは別の文字だぞ。

420
NAME IS NULL[]   投稿日:2017/03/09 18:55:38  ID:cT/4yIz6.net(2)
初心者が数字列を数値だと言い張ってゆずらないのと同じなのかな?

こういうのは時間の無駄だから関わらない方がいいわ。

421
NAME IS NULL[sage]   投稿日:2017/03/09 19:06:21  ID:???.net(475)
全くだな
話がわかってないID:cT/4yIz6 のようなキチガイは構ってはいけない

422
NAME IS NULL[]   投稿日:2017/03/09 19:25:54  ID:l9oI+xHV.net
いやいくら馬鹿だからってキチガイさすがには言いすぎだろw


さて与太話はこれくらいにして
そろそろ正規表現の話題の戻そうか
コメント1件

423
NAME IS NULL[sage]   投稿日:2017/03/10 06:33:59  ID:???.net(475)
>422
お前も馬鹿でキチガイのようだがw

424
NAME IS NULL[sage]   投稿日:2017/03/10 13:43:59  ID:???.net(475)
ぶっちゃけどんなプログラミング言語習得するよりDB極めたほうが金になるよな
業界の中でもDBエンジニアを目指すのが一番おすすめだわ
コメント2件

425
NAME IS NULL[sage]   投稿日:2017/03/10 13:44:11  ID:???.net(475)
正規表現、NGにした方がいい?

426
NAME IS NULL[sage]   投稿日:2017/03/10 13:58:27  ID:???.net(475)
>424
クエリだけ書けてもプログラムないと高度な事できないだろ。分析止まりでランニングできない。
コメント1件

427
NAME IS NULL[sage]   投稿日:2017/03/10 14:55:14  ID:???.net(475)
>426
逆にクエリが書けなればダイナミックなプログラムはかけないけどな
コメント1件

428
NAME IS NULL[sage]   投稿日:2017/03/10 14:59:24  ID:???.net(475)
>427
だからどちらかじゃなくて両方必要って話だろ

429
NAME IS NULL[sage]   投稿日:2017/03/10 15:05:29  ID:???.net(475)
>424
夢見がちな文系エンジニア

430
NAME IS NULL[sage]   投稿日:2017/03/10 15:30:00  ID:???.net(475)
クエリしか書けないエンジニアなんているの?

431
NAME IS NULL[sage]   投稿日:2017/03/10 19:39:42  ID:???.net(475)
正規表現大好き&#128149;

432
NAME IS NULL[sage]   投稿日:2017/03/10 19:42:09  ID:???.net(475)
改行考慮や大文字小文字無視するだけでも正規表現使う理由にはなる
正規表現と聞いて脊椎反射するやつはエディタで置換したことないやつ

433
NAME IS NULL[]   投稿日:2017/03/10 19:54:04  ID:kvVonAc4.net(2)
凄く難しいこと言ってSO
だけど全体的には凄くアタマ悪SO
正規厨って大体SOUL

434
NAME IS NULL[sage]   投稿日:2017/03/10 20:14:25  ID:???.net(475)
難しいように聞こえるならお前の頭が悪いのだろう
正規表現は一般的なテキスト処理にも使われるもので
プログラムの中だけで使われるものじゃない

435
NAME IS NULL[]   投稿日:2017/03/10 20:46:07  ID:kvVonAc4.net(2)
突如何者かに向けて正規教室を始めた正規厨SO FOOL

436
NAME IS NULL[sage]   投稿日:2017/03/11 09:13:34  ID:???.net(475)
正規とか言ってる阿呆は派遣か契約なのか?

437
NAME IS NULL[sage]   投稿日:2017/03/11 11:14:03  ID:???.net(475)
いいえ、ニートです

438
NAME IS NULL[sage]   投稿日:2017/03/11 11:57:22  ID:???.net(475)
正規表現知ってから、もう、文字数数えて
左から何文字目から何文字目でアレを見つけて
文字数数えて次のアレを見つけて文字数数えて
切り取って、みたいなことやらなくなったから
頭が鈍った気がするけど
便利でもう過去には戻れない。

439
NAME IS NULL[sage]   投稿日:2017/03/11 12:24:01  ID:???.net(475)
だが正規表現にバグがあった時のことを考えると
怖くて本番業務には使えない
コメント1件

440
NAME IS NULL[]   投稿日:2017/03/11 12:38:16  ID:plFNS0RJ.net
正規厨ってニートだったのかYO
正規ばかり弄ってないで働けYO

441
NAME IS NULL[sage]   投稿日:2017/03/11 17:49:09  ID:???.net(475)
だからなんだよ正規って
頭悪いのか?

442
NAME IS NULL[sage]   投稿日:2017/03/11 21:20:37  ID:???.net(475)
え、てか正規表現できないプログラマとかいなくね?
忘れても調べればすぐでてくるし

443
NAME IS NULL[sage]   投稿日:2017/03/11 21:35:22  ID:???.net(475)
正規表現ときいたら脊椎反射的に噛みついちゃう非正規おじさんをあんまイジメないでくれる?

444
NAME IS NULL[sage]   投稿日:2017/03/11 21:48:24  ID:???.net(475)
>439
sqlにもバグがあるけど
どう扱うの?
コメント1件

445
NAME IS NULL[sage]   投稿日:2017/03/12 02:22:23  ID:???.net(475)
>444
SQLにバグがあったらメーカーのテストですぐにわかるだろう
正規表現はどれだけテストされているか怪しいものだ
コメント1件

446
NAME IS NULL[sage]   投稿日:2017/03/12 07:55:30  ID:???.net(475)
>445
なぜそう思うの?
コメント2件

447
NAME IS NULL[sage]   投稿日:2017/03/12 09:32:45  ID:???.net(475)
>446
じゃないと正規場かにできないのね

448
NAME IS NULL[sage]   投稿日:2017/03/12 09:40:32  ID:???.net(475)
>446
テストが大変そうだから

449
NAME IS NULL[sage]   投稿日:2017/03/12 10:29:45  ID:???.net(475)
SQLより正規表現のがテスト大変て本気で言ってるのか
コメント2件

450
NAME IS NULL[sage]   投稿日:2017/03/12 10:36:24  ID:???.net(475)
>412-413当たりが話の元
ファイルにSQL書く時大文字タイプするのはどうするかって話

451
NAME IS NULL[sage]   投稿日:2017/03/12 10:47:29  ID:???.net(475)
>449
俺はそうだぜ
一足お先に

452
NAME IS NULL[sage]   投稿日:2017/03/12 14:30:19  ID:???.net(475)
RDBMSのスレなのに正規化じゃなくて正規表現の話題になってるのが不思議w
コメント1件

453
NAME IS NULL[]   投稿日:2017/03/12 14:56:31  ID:bZc6gV75.net(2)
>449
正規表現はそれ自体がわかりにくく、バグの温床。安易な正規表現の使用はよくない。
コメント1件

454
NAME IS NULL[]   投稿日:2017/03/12 14:57:14  ID:bZc6gV75.net(2)
>452
RDBでも正規表現を使う関数があるから的外れでもない。

455
NAME IS NULL[sage]   投稿日:2017/03/12 15:11:39  ID:???.net(475)
そんな難し複雑な正規表現の話をしてるわけではないだろうに
正規表現ときいて脊椎反射しちゃう正規おじさんがいけないんだよ
コメント1件

456
NAME IS NULL[]   投稿日:2017/03/12 18:07:08  ID:WTgIsk55.net
>455
でもオマエ正規厨やROCK!
俺ってSOUL!
低能は馬鹿にするポリシーなんだYO!
コメント2件

457
NAME IS NULL[sage]   投稿日:2017/03/12 18:52:38  ID:???.net(475)
>453
安易さとは?

458
NAME IS NULL[sage]   投稿日:2017/03/12 19:01:08  ID:???.net(475)
>456
ごめんね正規じゃなかったね
非正規おじさんだったね
早く正規になれるといいね

459
NAME IS NULL[sage]   投稿日:2017/03/12 19:28:58  ID:???.net(475)
>456
正気になーれー

460
NAME IS NULL[]   投稿日:2017/03/12 20:13:02  ID:1Xqna3W1.net
レーダー追尾により自然値0.058μSv/hをはるかに上回るガンマー線が27万円程度の測定器で否が応でも計測され続ける
https://www.youtube.com/watch?v=CtiacppR5dk

9:27人工衛星(確実な部分)
https://www.youtube.com/watch?v=-Ls8O7jjK1A

461
NAME IS NULL[sage]   投稿日:2017/03/13 08:03:56  ID:???.net(475)
おじさんは正規表現得意なんじゃね?
秀丸にもあるんでしょ?
コメント1件

462
NAME IS NULL[]   投稿日:2017/03/14 12:41:38  ID:KmvSvp8f.net
>461
秀丸はどんどん使われなくなってるぞ。

463
NAME IS NULL[sage]   投稿日:2017/03/14 15:54:17  ID:???.net(475)
そろそろ、SQLに関する話題に戻そうよ

464
NAME IS NULL[sage]   投稿日:2017/03/14 19:32:27  ID:???.net(475)
正規表現のテストは自信が持てないのに、SQLのテストは完璧に出来るという自信は何処から湧いて出るのか。

怖や怖や。
コメント2件

465
NAME IS NULL[]   投稿日:2017/03/14 19:36:53  ID:VMT6GYOD.net(2)
>464
自身が持てないテストなんてテストじゃねえよw
何言っちゃってんの正規厨クンw

466
NAME IS NULL[]   投稿日:2017/03/14 19:44:39  ID:LfWSYHE8.net(3)
>464
どんな正規表現を言ってるんだよ?
よほど簡単なものしか想定してないのか。

正規表現はプロ中のプロでも間違うことがあるんだぞ?

だから複雑なものはあまり使われない。ぱっと見、これで合っているかどうかわからないのが原因。
コメント1件

467
NAME IS NULL[]   投稿日:2017/03/14 19:51:46  ID:LfWSYHE8.net(3)
正規表現は言語、環境によっても方言が強くて面倒

468
NAME IS NULL[sage]   投稿日:2017/03/14 20:07:23  ID:???.net(475)
んなことないだろ
だいたいposixかperlか2択

469
NAME IS NULL[sage]   投稿日:2017/03/14 20:28:52  ID:???.net(475)
>466
うえでワーワー言ってる人って、正規表現を書き間違えたことでのバグじゃなくて、仕様通りの動作をしないというバグのことを指しているとおもうよ

470
NAME IS NULL[sage]   投稿日:2017/03/14 20:37:06  ID:???.net(475)
ここはデータベース板だって事分かってる?

471
NAME IS NULL[sage]   投稿日:2017/03/14 20:43:01  ID:???.net(475)
そりゃ分かってるでしょう

472
NAME IS NULL[]   投稿日:2017/03/14 20:47:24  ID:VMT6GYOD.net(2)
時と場所をわきまえずに正規自慢したがるのが正規厨なんだYO
コメント1件

473
NAME IS NULL[]   投稿日:2017/03/14 21:15:09  ID:LfWSYHE8.net(3)
>472
Oracleも正規表現の関数を大量に追加したものの使ってるプログラムを見たことない。

正規表現の乱用はよくないという結論は十数年前に出てるよな。

Eメールアドレスの形式チェックですら正規表現だけでやろうとすると難しくて昔はどのWebサイトもミスしまくってたな。
コメント2件

474
NAME IS NULL[sage]   投稿日:2017/03/14 22:45:55  ID:???.net(475)
>473
裏付けは?
コメント1件

475
NAME IS NULL[sage]   投稿日:2017/03/15 00:01:42  ID:???.net(475)
>473
なんでも乱用は良くないものですよ

Eメールアドレスの形式チェック「ですら」

コメント1件

476
NAME IS NULL[]   投稿日:2017/03/15 23:12:31  ID:yFO1cwOX.net(3)
>474
正規表現だけでEメールアドレスの文字列があっているかどうかを一発で判定する正規表現を考えればいい。なかなか難しいぞ。

477
NAME IS NULL[]   投稿日:2017/03/15 23:13:19  ID:yFO1cwOX.net(3)
>475
日本語が苦手なんですね。

478
NAME IS NULL[sage]   投稿日:2017/03/15 23:28:15  ID:???.net(475)
(はは〜ん…コイツさては正規厨だな…)

479
NAME IS NULL[]   投稿日:2017/03/15 23:50:53  ID:yFO1cwOX.net(3)
語彙って親や育った環境で大差がつくんだよな。知らない、あまりその人が聞かない言葉や言い回し見たり、聞いたりすると言葉がおかしいなどと批判してくる。本人が無知なだけなのに。

480
NAME IS NULL[sage]   投稿日:2017/03/16 02:43:53  ID:???.net(475)
3日連投しましょう

481
NAME IS NULL[sage]   投稿日:2017/03/26 06:46:08  ID:???.net(475)
SQLの書き方で質問ですが、
AND句は行の先頭に書くか、行の末尾に書くか、どちらが一般的でしょうか?

(例1)
WHERE
 A = 1 AND
 B = 1

(例2)
WHERE
 A = 1
 AND B = 1

SQLの書き方ガイドラインのようなものがあれば教えてください。
よろしくお願いします。
コメント2件

482
NAME IS NULL[sage]   投稿日:2017/03/26 10:03:55  ID:???.net(475)
>481
両方一般的
コメント1件

483
NAME IS NULL[]   投稿日:2017/03/26 10:40:33  ID:uME5dCZb.net
>481
そういう決まりはない。プログラミング言語と同じで改行せずにANDがあれば条件の続きがあるとわかりやすいが、コメントアウトしにくい。

selectの選択列のカンマ位置と同じようなもの。

484
NAME IS NULL[sage]   投稿日:2017/03/26 12:01:47  ID:???.net(475)
うちは
where 1 = 1
and a = 1
and b = 1

485
NAME IS NULL[sage]   投稿日:2017/03/26 13:03:58  ID:???.net(475)
UNIONやサブクエリ入るとまたちょっと変わるけど基本的に
select tableの選択セクション whereの条件セクション orderとかのその他セクション
この3つで分ける程度だな

486
NAME IS NULL[]   投稿日:2017/03/26 16:07:36  ID:vHb56IYD.net

487
NAME IS NULL[]   投稿日:2017/03/29 18:16:55  ID:XE4RKzOb.net
技術士の全部門をコンプリート vs 東大理三首席現役合格 vs 旧司法試験首席一発合格

どれが一番凄い?
コメント1件

488
NAME IS NULL[sage]   投稿日:2017/03/30 05:17:15  ID:???.net(475)
>482, 482, 483, 484
返信が遅くなってしまいすみません。
レスありがとうございました。

>selectの選択列のカンマ位置と同じようなもの。

なるほどそうですか。
例1も例2も好きなほうでよい、ということですね。

(例1)
  SELECT
   A, B, C,
   D

(例2)
  SELECT
   A, B, C
   , D

勉強になりました。

489
NAME IS NULL[sage]   投稿日:2017/03/30 08:09:41  ID:???.net(475)
条件の内容を最初に見たいからandは後ろにつけてる。
前にあると地味にイラっとする。
where
a=1 and
b=2

490
NAME IS NULL[sage]   投稿日:2017/03/31 15:35:06  ID:???.net(475)
>487
東大理三首席現役合格
正真正銘期間限定延期不可一発勝負なのはこれだけ

491
ich1[]   投稿日:2017/04/01 14:41:02  ID:YerBiODJ.net
https://goo.gl/8by4rX
これは嫌だなー。。本当なの?

492
NAME IS NULL[]   投稿日:2017/04/01 21:59:51  ID:O38ZNBFt.net
カスタマーエンジニアってどうですか?収入面とか労働面で。
楽ですか?それとも超キツイですか?

493
NAME IS NULL[sage]   投稿日:2017/04/01 22:41:01  ID:???.net(475)
>492
マルチ。くそ

494
NAME IS NULL[sage]   投稿日:2017/04/09 19:51:01  ID:???.net(475)
このどうですか厨は、いろんな板で荒らしているだろ
相手せず、スルーしようよ

495
NAME IS NULL[]   投稿日:2017/04/13 18:25:57  ID:n8gSS6s1.net
C#からsqliteを使っているんですが、データベースの設計方法がわかりません、第2正規化以降って必要ですか?
必要なデータを洗い出してそこから正規化していけばいいんでしょうか?もしある程度レコードが増えた状態で新たに項目追加したいとなったらどうすればいいんでしょうか?
コメント1件

496
NAME IS NULL[sage]   投稿日:2017/04/13 18:43:18  ID:???.net(475)
そりゃ設計のスレだな
追加したカラムに既存のレコードも全部埋まるなら追加でいいし
埋まらないなら別に作るべきでしょ
コメント1件

497
NAME IS NULL[sage]   投稿日:2017/04/13 18:44:45  ID:???.net(475)
>495
本買って読んだ方が手っ取り早い

498
NAME IS NULL[sage]   投稿日:2017/04/13 21:45:28  ID:???.net(475)
>496
すいません
では設計スレのほうにいきます

499
NAME IS NULL[sage]   投稿日:2017/04/20 02:03:12  ID:???.net(475)
mybatis使っててDBに定義されたBLOB型のデータをバイト配列として取得する方法ってありますか?
コメント2件

500
NAME IS NULL[]   投稿日:2017/04/20 03:51:44  ID:3sXeWAt/.net(2)
>499
プログラム板で聞いた方がいい。

501
NAME IS NULL[]   投稿日:2017/04/20 03:56:00  ID:3sXeWAt/.net(2)
>499
調べたらそれ普通じゃねえか。すこしは調べろよ。

502
ich1[]   投稿日:2017/04/21 16:27:47  ID:R/eXxgbc.net
https://goo.gl/q9Ml0S
これは嘘でしょ?本当だったら落ち込むわ。。

503
NAME IS NULL[sage]   投稿日:2017/04/21 23:52:26  ID:???.net(475)
アホかと思われるかも知れませんが、
こうするとエロラーになります。
何か良い方法ないですか?

Select *
From テーブル2 ←──┐
Union All          │
Select *          │
From (サブクエリ) As テーブル2
コメント2件

504
NAME IS NULL[]   投稿日:2017/04/21 23:54:28  ID:fJADFuER.net
>503
ネタですか?

名前がぶつかっているのだから、あたりまえでしょうがw
コメント4件

505
NAME IS NULL[sage]   投稿日:2017/04/22 00:02:49  ID:???.net(475)
>504
すいません、駄目なのはわかってて、
こういうのがやりたい時はどう書くのかなと。
コメント1件

506
NAME IS NULL[]   投稿日:2017/04/22 00:10:42  ID:bI/4AwC2.net(2)
>505
なぜそうしなければいけないのか?
コメント1件

507
NAME IS NULL[sage]   投稿日:2017/04/22 00:13:53  ID:???.net(475)
どういうことをしたいのか質問内容を具体的に書かないと伝わらないぞ
コメント1件

508
NAME IS NULL[sage]   投稿日:2017/04/22 12:23:35  ID:???.net(475)
すごく具体的な質問だと思うけどどこが分からないのか?
クエリの結果を二重にしたいだけだろ
コメント1件

509
NAME IS NULL[sage]   投稿日:2017/04/22 12:33:28  ID:???.net(475)
>508
目的意図です

510
NAME IS NULL[sage]   投稿日:2017/04/22 12:33:49  ID:???.net(475)
サブクエリーを使いたいと言うことかもしれないし、
単一テーブルから二通りの選択をして結果を合算したいのかもしれないし

511
NAME IS NULL[sage]   投稿日:2017/04/22 12:55:02  ID:???.net(475)
なぜ聞かれてもいない事を深読みして答えようとするのか?
どうにかして自分が知ってる事に結びつけようとしてるだけだろお前ら
コメント1件

512
NAME IS NULL[sage]   投稿日:2017/04/22 13:04:00  ID:???.net(475)
それも、妄想だろうが

513
NAME IS NULL[sage]   投稿日:2017/04/22 13:13:27  ID:???.net(475)
>511
マジこれよ
反省する人多すぎ

514
NAME IS NULL[sage]   投稿日:2017/04/22 15:11:11  ID:???.net(475)
>503
unionはテーブル名見てるんじゃなくselectの中身見てるだけ
だから別名付けてどうぞ
コメント3件

515
NAME IS NULL[]   投稿日:2017/04/22 15:33:24  ID:bI/4AwC2.net(2)
>514
unionを同じテーブルとでしか使えないと思い込んでると仮定したわけか?

516
NAME IS NULL[sage]   投稿日:2017/04/23 02:28:35  ID:???.net(475)

517
NAME IS NULL[sage]   投稿日:2017/04/23 03:28:24  ID:???.net(475)
>506
>507
こういう嫌がらせみたいな表があるんですよ。

商品名  単価1 単価2 単価3
もょもと 100  200  300
すけさん 120
アイリン 500  990

これをUnionで縦に繋げれば綺麗な表になりますが、
普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

Select 商品 単価1 From 元テーブル
Select 商品 単価2 From 1回目の抽出結果
Select 商品 単価3 From 2回目の抽出結果

>514
別名でどう紐づけるんですか?
コメント1件

518
NAME IS NULL[sage]   投稿日:2017/04/23 03:46:27  ID:???.net(475)
あれ?
もしかして、Union Allじゃなくて、
単にUnionしたものに対して検索した方が速かったりします?
コメント1件

519
NAME IS NULL[]   投稿日:2017/04/23 05:19:54  ID:7gvObldM.net(2)
やりたいことがわかりそうでわからない。

520
NAME IS NULL[]   投稿日:2017/04/23 05:23:12  ID:7gvObldM.net(2)
>518
結局、何がしたいわけ?
コメント1件

521
NAME IS NULL[sage]   投稿日:2017/04/23 09:38:17  ID:???.net(475)
>517
綺麗な表ってなに?
またなんでそういう要求が
でる背景はなに?
コメント1件

522
NAME IS NULL[sage]   投稿日:2017/04/23 09:50:21  ID:???.net(475)
速度が目的なら普通に検索して単価1-3の分離はクライアント側でやるのが現実的だろうね。
あるいは単価1-3をUNION ALLしたサブクエリから抽出する。賢いDBMSなら最適化してくれるかもしれない。

523
NAME IS NULL[sage]   投稿日:2017/04/23 09:56:38  ID:???.net(475)
>520
検索と表の整形です。

>521
上の例では省略しましたが、
実際は、かなり横に長いんです。

商品名 単価1 単価2 単価3 ・・・ 単価50

おもいっきり横にスクロールしないと全体を見渡せない、
嫌がらせみたない表でしょう?
コメント1件

524
NAME IS NULL[sage]   投稿日:2017/04/23 10:52:31  ID:???.net(475)
>523
あなたのいう綺麗な表とは?
縦にしたいの?


『おもいっきり縦にスクロールしないと全体を見渡せない、
嫌がらせみたない表。』

を作りたいの?
何が便利になるの?
コメント2件

525
NAME IS NULL[sage]   投稿日:2017/04/23 11:01:55  ID:???.net(475)
union allで列分繋げればできるよ
コメント1件

526
NAME IS NULL[sage]   投稿日:2017/04/23 11:12:44  ID:???.net(475)
質問返ししてる奴いいかげんウザい
コメント1件

527
NAME IS NULL[sage]   投稿日:2017/04/23 11:17:44  ID:???.net(475)
>526
どうしたw
急にww

528
NAME IS NULL[sage]   投稿日:2017/04/23 11:46:31  ID:???.net(475)

529
NAME IS NULL[sage]   投稿日:2017/04/23 11:50:19  ID:???.net(475)
商品名を抽出したいのか
商品名に対するいずれかの単価を抽出したいのか
商品名に対する全ての単価を抽出したいのか

それにしても、単価1から単価50まで並べるというのは苦痛だ
そういうテーブル定義作った奴を縛り首にした方が後々良い結果がでる
コメント1件

530
NAME IS NULL[sage]   投稿日:2017/04/23 13:24:51  ID:???.net(475)
>524
データベースって普通縦なんじゃ・・・。
コメント1件

531
NAME IS NULL[sage]   投稿日:2017/04/23 14:37:15  ID:???.net(475)
>530
普通w

532
NAME IS NULL[sage]   投稿日:2017/04/23 14:42:39  ID:???.net(475)
>524
縦にしたいです。
うちの会社のマウスホイールは、
全部縦に回るので、縦の方が便利なんです。

この表作った人のは、横に回るのかも知れませんが。

>529
>商品名に対する全ての単価を抽出したいのか

それです。
コメント1件

533
NAME IS NULL[sage]   投稿日:2017/04/23 14:47:27  ID:???.net(475)
共通表式 でぐぐれば終わりな気がする

534
NAME IS NULL[sage]   投稿日:2017/04/23 14:49:12  ID:???.net(475)
>532
>525でやるのが無難だろ

535
NAME IS NULL[sage]   投稿日:2017/04/23 17:40:50  ID:???.net(475)
>単価50

この先、まだまだ増えたりしてな w

536
NAME IS NULL[sage]   投稿日:2017/04/23 17:47:02  ID:???.net(475)
エクセルのつもりで追加するからたまらんな

537
NAME IS NULL[sage]   投稿日:2017/04/23 22:26:54  ID:???.net(475)
一つの商品に50種類もの単価が付けられると言うのは、そういう理由があるわけでしょ?
例えば、一つの商品に50個のパーツが必要でそれぞれに単価があるとか
あるいは50の地域での販売単価とか
そういう小項目も合わせて表示しないと、
意味不明の50行の単価出力にならないかな?

538
NAME IS NULL[sage]   投稿日:2017/04/24 01:18:15  ID:???.net(475)
おれなら実テーブルを変更して、元テーブルと同じ形のビューつくるけどな

539
NAME IS NULL[sage]   投稿日:2017/04/24 10:46:17  ID:???.net(475)
>504
> 名前がぶつかっているのだから、あたりまえでしょうがw

>514
> だから別名付けてどうぞ

なんか、同名だと駄目で当然的な流れだが、PostgreSQLではエラーにはならない。
エラーになるのが普通なのか?
コメント1件

540
NAME IS NULL[sage]   投稿日:2017/04/24 11:32:36  ID:???.net(475)
>539
普通とは?
コメント1件

541
NAME IS NULL[sage]   投稿日:2017/04/24 11:50:05  ID:???.net(475)
>540
> 普通とは?
その疑問の意味がわからない。
コメント1件

542
NAME IS NULL[sage]   投稿日:2017/04/24 12:00:49  ID:???.net(475)
>541
その文脈で普通を
具体的に表現して。
コメント1件

543
NAME IS NULL[]   投稿日:2017/04/24 12:40:31  ID:Ng2xnlDE.net(2)
インラインビューの別名に実テーブル名を使う心理がわからない。混乱するだけだと思うが。
コメント1件

544
NAME IS NULL[sage]   投稿日:2017/04/24 12:40:38  ID:???.net(475)
もはや後に退けなくなった意地の質問返し
不毛である

545
NAME IS NULL[sage]   投稿日:2017/04/24 12:48:45  ID:???.net(475)
>542
え?いやだからPostgreSQL以外のRDBMSじゃエラーになるのが普通なのかって意味だけど?
コメント1件

546
NAME IS NULL[sage]   投稿日:2017/04/24 12:51:43  ID:???.net(475)
>545
普通でないよ
コメント1件

547
NAME IS NULL[sage]   投稿日:2017/04/24 13:01:37  ID:???.net(475)
>546
そうなんだ。
いや、>504に誰もコメントしないから、エラーになるのが普通なのかと、ちょっと心配したし。

548
NAME IS NULL[sage]   投稿日:2017/04/24 13:04:55  ID:???.net(475)
>543
ひょっとして、PostgreSQL以外では以下はエラーになるのが普通なの?
select * from (select a, b from hoge) as hoge
まぁ、俺も実在のテーブル名を別名につけようとは思わないんだが。
コメント1件

549
NAME IS NULL[sage]   投稿日:2017/04/24 13:07:17  ID:???.net(475)
>548
心配するな、俺の知ってる範囲ではそれはエラーにならない

550
NAME IS NULL[sage]   投稿日:2017/04/24 13:24:49  ID:???.net(475)
別名に関して誤解してる奴が多そうだな

551
NAME IS NULL[sage]   投稿日:2017/04/24 14:45:32  ID:???.net(475)
>これをUnionで縦に繋げれば綺麗な表になりますが、
>普通にやると検索が3倍になるので、2回目以降は前回の抽出結果を参照したいんです。

select一回で全項目を取得して、後はアプリにやらせるとか

552
NAME IS NULL[sage]   投稿日:2017/04/24 14:54:59  ID:???.net(475)
なんかよくわからんが、case whenでいけるかもよ?
データ例と期待する取得結果を書けば、ちゃんとした答えが返るかも
いまのとこ、何をやりたいのかいまいちわからん

553
NAME IS NULL[sage]   投稿日:2017/04/24 15:30:08  ID:???.net(475)
こういうこと?

RDBの縦持ちテーブルと横持ちテーブル、およびその変換について
https://gist.github.com/aamine/5565025

554
NAME IS NULL[sage]   投稿日:2017/04/24 15:35:32  ID:???.net(475)
実体が横持ちになっているのが気に入らないが、とりあえず縦持ちのように参照するためにUNION ALLを行った。
しかし縦を横にするクエリはまだ知らない。

というところなんじゃないかな。

そのクエリがわかれば、実体を縦持ちにするのもやぶさかではないみたいな。そんな感じがする。

555
NAME IS NULL[sage]   投稿日:2017/04/24 15:36:53  ID:???.net(475)
流れがおかしくなったのは >504 が照れ隠しのために話を流したかっただけだと思う。

556
NAME IS NULL[sage]   投稿日:2017/04/24 15:54:00  ID:???.net(475)
まぁ、価格カラムが50個あるので50個のクエリをunionで繋げました、よりは、クライアントで頑張る方がいいと思う
縦横変換もクライアントで頑張った方が簡単かつ検索コストも低そう

557
NAME IS NULL[sage]   投稿日:2017/04/24 17:59:56  ID:???.net(475)
まず価格カラムが50個もあるのが設計として妥当か考えるべきだがな

相関名の有効範囲がUNIONを超えるかどうかがエラーにするかどうかの境目か
そもそも実テーブルと同じ相関名ってエラーになるのが標準仕様だっけ?
コメント1件

558
NAME IS NULL[sage]   投稿日:2017/04/24 18:18:50  ID:???.net(475)
「だっけ?」の使い方よ


559
NAME IS NULL[sage]   投稿日:2017/04/24 18:25:33  ID:???.net(475)
>557
この後に及んで何いってんだか

560
NAME IS NULL[]   投稿日:2017/04/24 18:35:58  ID:Ng2xnlDE.net(2)
だいたい別の意味の価格だから別カラムで持っているのが普通だから、質問した人間がわかってないんじゃないのか?

561
NAME IS NULL[sage]   投稿日:2017/04/24 21:05:20  ID:???.net(475)
カラムに関して誤解してる奴が多そうだな

562
NAME IS NULL[sage]   投稿日:2017/04/26 11:19:16  ID:???.net(475)
妙に絡むな

563
NAME IS NULL[sage]   投稿日:2017/05/07 00:12:31
物凄く初歩的で申し訳ないのですが、SQL Server2008をSQL Server2014へ
アップグレードでインストールした後、不要な2008を消したいんですが
普通にアンインストールでいいものなんでしょうか。

564
NAME IS NULL[sage]   投稿日:2017/05/07 00:42:48
こちらで聞いた方が良いように思う

Microsoft SQL Server 総合スレ 11
コメント1件

565
NAME IS NULL[sage]   投稿日:2017/05/07 03:31:50
>564
どうりで出てこないわけですわ。板が違うとは。
ありがとうございます。

566
NAME IS NULL[sage]   投稿日:2017/05/07 15:01:22
いやまあここの板にもあるけど、DBの内容とインストール関係は別の話だな

Microsoft SQL Server 総合スレ 11
コメント1件

567
NAME IS NULL[]   投稿日:2017/05/07 15:50:54
>566
チャージマン研!第23話「恐怖!精神病院」
https://youtu.be/ckO9d_-qiPw

568
NAME IS NULL[sage]   投稿日:2017/05/10 20:02:08
社員
社員ID、名前

社員情報
社員ID、血液型、生年月日、性別、身長

身長170cm以上の社員の名前を取得するSQLってどう書けばいいのでしょうか?

SELECT 社員.名前
FROM 社員情報
WHERE 社員情報.身長 >= 170

これで出てきますか?
コメント5件

569
NAME IS NULL[sage]   投稿日:2017/05/10 20:07:47
>568
出てこないよー

570
NAME IS NULL[]   投稿日:2017/05/10 20:32:12
社員情報に名前入れろや
お前は名無しの社員ちゃうやろアホか
コメント1件

571
NAME IS NULL[sage]   投稿日:2017/05/10 22:05:06
システムがデータベースを使っているのでどうにもできないのです
ざっくり見た感じですが、こんな感じになっていたと思います

572
NAME IS NULL[sage]   投稿日:2017/05/10 22:23:54
ざっくり見ただけで俺に聞くなよ失礼な人だな

573
NAME IS NULL[sage]   投稿日:2017/05/10 22:41:53
失礼しました。やはり方法はないんでしょうか?
コメント1件

574
NAME IS NULL[sage]   投稿日:2017/05/10 23:00:43
INNER JOINすれば済む話では

575
NAME IS NULL[sage]   投稿日:2017/05/10 23:27:46
>573
怖くて教えられない
なぜSQLを知らない人が仕事用のデータベースをいじろうとしているのか

576
NAME IS NULL[sage]   投稿日:2017/05/10 23:41:35
sqlなんて基本以来10年近くいじってないワイが適当回答すると
SELECT 社員.名前 FROM 社員情報 WHERE 社員.ID IN (SELECT 社員情報.社員ID FROM 社員情報 WHERE 社員情報.身長 >= 170)

577
NAME IS NULL[sage]   投稿日:2017/05/11 00:41:42
>568
こうかな?

SELECT 社員.名前
FROM 社員, 社員情報
WHERE 社員情報.身長 >= 170 AND
社員.社員ID = 社員情報.社員ID

578
NAME IS NULL[sage]   投稿日:2017/05/11 19:53:55
>568
社員IDで紐付いてるとかを勝手に想定してくれる訳じゃないので指定してやらないとな

SELECT 社員.名前
FROM 社員情報
INNER JOIN 社員 ON 社員情報.社員ID = 社員.社員ID
WHERE 社員情報.身長 >= 170

>570
機微な情報は別テーブルとか普通にあるだろ
コメント1件

579
NAME IS NULL[]   投稿日:2017/05/11 22:09:00
>578
機微な情報は別テーブルとかないし
別テーブルにする意味もないし
そもそも社員の名前は機微な情報ではない

まあ、お前のような多重に勘違いした独り善がりの馬鹿によって作られた
>568のような出来損ないのスキーマはたまに見かける

あ、勘違いしやすいみたいだから一応断っておくけど
これ褒めてるんじゃないからねw
コメント3件

580
NAME IS NULL[sage]   投稿日:2017/05/11 22:57:42
 
一応書いておくけど、

ここは初心者スレ

581
NAME IS NULL[sage]   投稿日:2017/05/11 23:30:48
大雑把な性格の俺的には、こうかな?

SELECT *
FROM *
LEFT JOIN *
ON * = *

582
NAME IS NULL[sage]   投稿日:2017/05/12 04:58:07
>579
> そもそも社員の名前は機微な情報ではない
ここまでバカだとは...
機微な情報の意味わかってないだろ w
コメント3件

583
NAME IS NULL[sage]   投稿日:2017/05/12 08:00:05
>582
もう一つ勘違いしてるみたいだけど
2ちゃんだって素直にありがとうって言ってもいいんだからね

584
NAME IS NULL[sage]   投稿日:2017/05/12 08:29:18
ありがとう2ch
>579 みたいなバカがいるってことを教えてくれて

これでいいかな w

585
NAME IS NULL[sage]   投稿日:2017/05/12 10:27:51
>582
機微な個人情報 JISQ15001:2006

・思想,信条又は宗教に関する事項
・人種,民族,門地,本籍地(所在都道府県に関する情報を除く。),身体・精神障害,犯罪歴その他社会的差別の原因となる事項
・勤労者の団結権,団体交渉その他団体行動の行為に関する事項
・集団示威行為への参加,請願権の行使その他の政治的権利の行使に関する事項
・保健医療又は性生活に関する事項
コメント1件

586
NAME IS NULL[sage]   投稿日:2017/05/12 10:38:02
俺の中では「普通にある」
俺の中ではな

587
NAME IS NULL[sage]   投稿日:2017/05/12 11:55:26
誰のマウンティングが決まるんか
興味深いw
コメント1件

588
NAME IS NULL[sage]   投稿日:2017/05/12 12:27:50
>585
それもそうだけど
>582はそもそも社員テーブルに社員名がない事の理不尽さに気がついていない

馬鹿がその視野の狭さ故に犯す誤りの典型だねw

589
NAME IS NULL[sage]   投稿日:2017/05/12 12:54:11
マウンティングとかアホなワードがバズったおかげで、>587みたいな馬鹿が出てくるんだよ

590
NAME IS NULL[sage]   投稿日:2017/05/12 13:09:41
>568
匿名かが簡単にできる、良いスキーマ

591
NAME IS NULL[sage]   投稿日:2017/05/12 15:41:27
お前わかってないだろ <− 根拠のないマウント

592
NAME IS NULL[sage]   投稿日:2017/05/12 18:40:02
>579
> 機微な情報は別テーブルとかないし
いや、あると思うよ。

> 別テーブルにする意味もないし
異なる読み取り権限を設定できる。

593
NAME IS NULL[sage]   投稿日:2017/05/12 19:54:33
機微な情報で氏名とか言い出すアホがいて笑える
どう見ても
> 社員情報
> 社員ID、血液型、生年月日、性別、身長
の方だろ

594
NAME IS NULL[sage]   投稿日:2017/05/12 21:23:59
名前は普通に公開されている情報だと思う

595
NAME IS NULL[sage]   投稿日:2017/05/12 22:16:38
schema.ini作るの面倒なんだけど、何とかならん?
テキストファイルにはIMEX=1も効かないし。
コメント1件


596
NAME IS NULL[sage]   投稿日:2017/05/12 23:05:00
>595
ローカルにdb入れて使う

597
NAME IS NULL[]   投稿日:2017/05/14 16:37:12
すみません、質問よろしいでしょうか

SELECT name,max(no)
from test;

これがエラーになるんですが何がいけないんでしょう?
noの最大値を持つ行のnameが知りたいだけなんですが……
コメント1件

598
NAME IS NULL[sage]   投稿日:2017/05/14 17:21:20
SELECT name, no FROM test WHERE no = (SELECT max(no) FROM test)

こうかな
コメント1件

599
NAME IS NULL[]   投稿日:2017/05/14 21:10:45
>597
group by name

を付ける
コメント1件

600
NAME IS NULL[sage]   投稿日:2017/05/15 11:10:24
>598さんのがまさに求めていたものでした!
whereかhavingで迷ってたんですがwhereだったんですね!
>599さんも本当にありがとうございました!

601
悪質オンラインショップ[]   投稿日:2017/05/15 13:56:08
サイズ違いの商品を送り 返品交換できない 悪質商法 ****E  
   
サイズ違いの商品を送り 返品交換できない 悪質商法 B**

悪質オンラインショップ



担当者が悪質か

2回目のでんわたんとう窓口は すりかえようで いみふにごまkして 

----------------------------------
**** *** オンラインショップのアイテムは独自の方法により採寸しておりますので、
全て実際の商品を計測した実寸サイズとなっております。
ご注文いただいております商品サイズは、正しいものでございます。

誠に恐れ入りますが、サイズが合わない、イメージと異なるといったご理由での
ご購入商品の返品・交換はお断りさせていただいております。

お客様のご希望にそう事が出来ず誠に申し訳ございませんが、
何卒ご了承の程よろしくお願い申し上げます。

----------------------------------

24いんちって Mですか? WEBの説明と実際の商品が違う

602
NAME IS NULL[age]   投稿日:2017/05/15 14:06:06
https://ccj.kokusen.go.jp/counterfeit/

悪質な通販サイトにご注意!|消費者庁越境消費者センター

603
NAME IS NULL[]   投稿日:2017/05/15 14:13:01
ろせぶd

604
NAME IS NULL[]   投稿日:2017/05/15 14:18:27

605
NAME IS NULL[sage]   投稿日:2017/05/15 22:04:09
今の会社があまりにもくだらなくて転職のためSQL覚えたい
今はExcelで簡単なVBA書いてる
独学でもどこかにまず入れるだろうか…
それとPostgreSQLとMySQLとどちらがいいのか教えてください
コメント1件

606
NAME IS NULL[sage]   投稿日:2017/05/15 22:20:38
>605
安心して
いま四種類同時に使ってるから

607
NAME IS NULL[sage]   投稿日:2017/05/15 22:22:08
4種類、じゃ全部視野に入れます
4つ教えてください
コメント1件

608
NAME IS NULL[sage]   投稿日:2017/05/15 22:42:51
標準SQLを覚えるならOracle Express Editionを入れて
alter session set flagger=entry; とか
コメント1件

609
NAME IS NULL[sage]   投稿日:2017/05/15 22:52:26
>607
oracle
srl server
mysql
postgres
コメント1件

610
NAME IS NULL[sage]   投稿日:2017/05/15 22:55:33
DB2も入れてやれ
Express-Cっていう無償のエディションもあるぞ
コメント1件

611
NAME IS NULL[sage]   投稿日:2017/05/15 23:16:49
>608>609>610
ありがとうございます!
もうVlookupひとつしか使えない人たちに便利屋扱いされたうえに勝手な都合でくだらない作業詰め込まれるのはゴメンです
最初から綺麗に無駄なく作っておけばいいのに…
でもそれを更に汚くしたのは短期で来た素人自称プログラマ
VBAばかり走らせて荒っぽい処理してエラー残骸があちこちあったり重複ばかりのファイルを量産してった
プログラム覚えてもああいう仕事は絶対したくないと思う
取っ掛かりとしてSQL覚えてその次Pythonとかも覚えたいです
絶対今のところ抜け出してやる
コメント1件

612
NAME IS NULL[sage]   投稿日:2017/05/15 23:19:03
>611
がんばれー
コメント1件

613
NAME IS NULL[sage]   投稿日:2017/05/15 23:22:55
>612
はい!
ありがとうございます

614
NAME IS NULL[]   投稿日:2017/05/16 17:20:38
すいません、質問させてください。
mySQLとSequel Proを使ってテーブルまで作成しています。

レコード登録時に、2つのIDをくっつけて
3つめのIDをSQL内で自動生成したいのですが、
何か効率的な方法はありますでしょうか。

ID1: 100(手入力)
ID2: 101(手入力)

ID3: 100101(自動生成)

データ型はいずれもINTで設定しております。
よろしくお願いします。
コメント2件

615
NAME IS NULL[sage]   投稿日:2017/05/16 17:56:29
>614
それ、2行登録したら1行自動生成するってこと?
コメント1件

616
NAME IS NULL[]   投稿日:2017/05/16 18:36:37
>614
行列、列行なのかわからない聞き方だが、それが列、カラムだと想定すると、トリガーでも作らないとできないだろうな。

同じレコードのカラムから導出したデータを別カラムで持つのも馬鹿っぽい。

しかも数値型を連結するなら、いったん文字型に変換しないといけない。

なんでそんなことをしたいのか。ID3なんてビューを作ってみせればいいんじゃないの?
コメント1件

617
NAME IS NULL[]   投稿日:2017/05/16 18:56:41
>615
>616
すいません、DBわかってなくて失礼しました。

ID1 ID2 ID3 name
100 101 100101 hoge
101 201 101201 fuga

ID1とID2を繋げて、ID3を生成したかったです。
プライマリキーとは別に、識別用としてのユニークなIDが必要なので。
単純に繋げるには、文字列でやらないとダメみたいですね。
ありがとうございます。

618
NAME IS NULL[sage]   投稿日:2017/05/16 18:57:13
ID2が2桁の時どうするの?
ID1と2と3は同じレコードのカラムなの?
手入力ってINSERT文書くの?
コメント1件

619
NAME IS NULL[sage]   投稿日:2017/05/16 18:59:58
lpad()で0埋めしてcontat で連結して castで数値にする手もあるけど
実行時に必要ならビューでいいよね
コメント1件

620
NAME IS NULL[]   投稿日:2017/05/16 19:14:46
>618
ID1, 2は3桁のものしか用意しないので基本的には問題ないかと。
すべて同じレコードのカラムですね。
先に手入力と書きましたが、実際はほぼクライアントツールの
インポート経由で登録になります。

>619
ビューってのがあるんですね、調べてみます。

ありがとうございます。
コメント2件

621
NAME IS NULL[]   投稿日:2017/05/16 23:30:43
>620
3桁で計算もしないなら、データ型が数値型なのは変だよ。
コメント1件

622
NAME IS NULL[sage]   投稿日:2017/05/17 06:52:26
>621
お前の根拠もない意見なんて聞いてねえから
コメント1件

623
NAME IS NULL[]   投稿日:2017/05/17 11:53:42
>622
初心者は数字は数値と思い込むのはよくあることだろ。

624
NAME IS NULL[sage]   投稿日:2017/05/17 12:21:15
なんの禅問答やそれ

625
NAME IS NULL[sage]   投稿日:2017/05/17 12:26:07
何でこんなに質問外の話を夢中になって始めるか、理解出来ない
コメント1件

626
NAME IS NULL[sage]   投稿日:2017/05/17 12:33:06
>625
初心者は質問内は質問外と思い込むのはよくあることだろ。

627
NAME IS NULL[sage]   投稿日:2017/05/17 21:02:17
>620
どちらも数値で桁数が3桁固定なら、ID1 * 1000 + ID2でどうだろうか

628
NAME IS NULL[sage]   投稿日:2017/05/18 10:55:50
number(string(id1) || string(id2))

629
NAME IS NULL[]   投稿日:2017/05/20 07:59:43
insert時かselect時に導出すればいいようなものをなんで別カラムで持ちたがるのか、理由をまったく言わないからなw

630
NAME IS NULL[sage]   投稿日:2017/05/21 00:12:32
新ギャグ考えたので聞いてください。

ななこSQL
コメント1件

631
NAME IS NULL[]   投稿日:2017/05/21 12:07:06
>630
おっさん乙

632
NAME IS NULL[]   投稿日:2017/05/21 19:24:12
何がギャグなのか、誰か解説頼む
コメント1件

633
NAME IS NULL[]   投稿日:2017/05/21 19:31:42
>632
ななこSOS

634
NAME IS NULL[sage]   投稿日:2017/05/21 23:20:12
マジレスしてくれた人、ありがとう

うううむ

635
ID:???.net[ まだやりたいこと読み切ってるわけじゃないが
ANDの部分をサブクエリにすれば同じ検索を2回書かなくて済みそうだね ]
  投稿日:0000/00/00 00:00:00

636
NAME IS NULL[sage]   投稿日:2017/05/23 13:50:09  ID:???.net(475)
>637
それだとhogeしかない場合でもマッチしてしまうんじゃないか?

637
NAME IS NULL[sage]   投稿日:2017/05/23 18:50:28  ID:???.net(475)
 where column1 || column2 || column3 like '%hoge%'
 and column1 || column2 || column3 like '%drz%'
でいいと思う(|| はDBごとに適切な文字列連結演算子に読み替えて)

部分一致じゃあどのみち普通のインデックスは使えないし
速度を出したいならちゃんとした全文検索機能のあるDBを使うべき
コメント3件

638
NAME IS NULL[sage]   投稿日:2017/05/23 20:05:04  ID:???.net(475)
>635
WHERE column1 + ',' + column2 + ',' + column3 like '%hoge%' and column1 + ',' + column2 + ',' + column3 like '%drz%'

639
NAME IS NULL[sage]   投稿日:2017/05/23 20:07:29  ID:???.net(475)
>641
それ column1 = 'ho', columu2 = 'ged', column3 = 'rz' でヒットしちゃうぞ

640
NAME IS NULL[sage]   投稿日:2017/05/23 20:11:47  ID:???.net(475)
>643
連結する時に適当なセパレータ文字を挟めばいいやん。

641
NAME IS NULL[sage]   投稿日:2017/05/23 22:05:46  ID:???.net(475)
>637
そういうもの。
対象のカラムやキーワードの数が変わっても困らないような動的クエリの仕組みに頭を使った方がいい。
コメント2件

642
NAME IS NULL[]   投稿日:2017/05/23 22:19:24  ID:zLCGMc7G.net
>645
そもそもデータモデルがおかしいだろw
コメント2件

643
NAME IS NULL[sage]   投稿日:2017/05/23 23:28:42  ID:???.net(475)
もしcolumn1/2/3が相互に交換可能なのだとしたら第一正規形ではないことになるが、
>637だけからはデータモデルがおかしいと断言はできんだろう。
コメント1件

644
NAME IS NULL[]   投稿日:2017/05/24 05:27:57  ID:LjZe7sN5.net
no existか積集合演算子でできるが、このSELECT文がメインだったらデータモデルがおかしい。

645
NAME IS NULL[sage]   投稿日:2017/05/24 06:45:47  ID:???.net(475)
データモデル厨は要らんよ
まあケチ付けたいだけなんだろうけど
コメント1件

646
NAME IS NULL[sage]   投稿日:2017/05/24 19:01:22  ID:???.net(475)
フィールドを>641みたいに|| で文字列連結するのって、内部で何が起こってるんですか?
ORより速いんですかね?
ORより積極的に使った方がいいですか?

647
NAME IS NULL[sage]   投稿日:2017/05/24 20:52:05  ID:???.net(475)
>650
使ってみてください

648
NAME IS NULL[sage]   投稿日:2017/05/24 22:34:09  ID:???.net(475)
内部で何が起こってるのかを気にする必要がないのがSQLの良いところやで
実行速度が気になるんだったら自分で目的に最適化したDBを作ったほうが速い

649
NAME IS NULL[sage]   投稿日:2017/05/24 23:07:44  ID:???.net(475)
まあそれは建前であって実際のところは内部動作もある程度知っていないと
使い物にならないことも多いからねえ
自動チューニング的な機能があったとしても
その機能自体がどのように動くのか知らないとやっぱり上手く使えなかったり

650
NAME IS NULL[sage]   投稿日:2017/05/24 23:09:38  ID:???.net(475)
>642
返信遅くなってしまいすいません
文字列を連結させてればいいんですね、やってみます
コメント3件

651
NAME IS NULL[]   投稿日:2017/05/25 15:59:00
>650
内部ではいったんそういう表が作られて、それを検索している。

652
NAME IS NULL[sage]   投稿日:2017/05/25 16:53:17
>650
それぞれのカラムにインデックスがある場合。

まず、文字列を連結するとインデックスは使われません。
ORを使うと、全件検索(テーブルスキャン)よりもインデックスを使う方が速いと判断されれば
インデックスが使われます。

なので、ORが使えるならORを使うのがよいです。

さらに言うと、完全一致検索(hoge = 'aaa')と前方一致検索(hoge like 'aaa%')はインデックスが
使われますが、それ以外の場合(hoge = 'aaa%', hoge = '%aaa%')では、普通はインデックスは
使われません。(データベースの種類によっては、特殊なインデックスを作れるものもある)

653
NAME IS NULL[]   投稿日:2017/05/25 17:01:24
変なのがわいた

654
NAME IS NULL[sage]   投稿日:2017/05/25 17:05:31
>655の方が変だがなw

655
NAME IS NULL[]   投稿日:2017/05/25 17:06:50
>658
ではどのように処理しているのかご教示を。
コメント1件

656
NAME IS NULL[sage]   投稿日:2017/05/25 17:24:42
プランナーが全てそうやってるわけじゃねーだろ

657
NAME IS NULL[sage]   投稿日:2017/05/25 17:28:46
>659
ループしつつ文字列比較でフィルタリングでしょ
一時テーブルなんか作るメリットゼロ

658
NAME IS NULL[sage]   投稿日:2017/05/25 17:30:15
誰が言ってる事が正しいのですか?
コメント1件

659
NAME IS NULL[sage]   投稿日:2017/05/25 17:37:48
>662
一部を除いてみんな正しい

まとめると、
・レコード数が少ないなら文字列結合してLIKE検索しろ >642
・ORと文字列結合を比較するなら、ORの方がインデックスが使われるという面で優れている
・ただしLIKE検索の場合は、前方一致のみインデックスが使われる(普通は)
・普通じゃない方法は、データベース毎に異なる(フルテキスト検索用インデックスを作ったりとか)
コメント1件

660
NAME IS NULL[sage]   投稿日:2017/05/25 19:53:09
DBはMariaDBです
issueテーブルとissueConnectionテーブルがあります
こんな風にして、階層化された複数のイシューが連なる設計です(・・・あまり設計よくないかもです)

■issue
ID
(以下略)

■issueChildren
ID
issueID
childIssueID


あるイシューの子イシューを取得したい場合、たとえば100番の子イシューであれば

SELECT * FROM issue INNER JOIN issueChildren ON issue.ID = issueChildren.ID
WHERE issueChildren.issueID = 100;

でいいと思うのですが、孫まで含めてクエリーで取得したい場合はどうすればいいのでしょうか?
要件では子と孫まででOKで、ひ孫からは不要らしいです。

661
れないからチェックいるね []   投稿日:0000/00/00 00:00:00

662
NAME IS NULL[sage]   投稿日:2017/05/25 23:03:02  ID:???.net(475)
>665
具体的にどう書けばいいですか?

>666
それはデータ的にはないようです
コメント1件

663
NAME IS NULL[sage]   投稿日:2017/05/25 23:49:12  ID:???.net(475)
>667
実際にないなら良いんですけど
テーブル定義はそれを排除している訳ではないので

664
NAME IS NULL[sage]   投稿日:2017/05/27 18:40:58  ID:???.net(475)
SQL ServerにはなんでTRIMが無いの?

665
NAME IS NULL[]   投稿日:2017/05/27 19:48:28  ID:EQg2arXb.net
>669
さあね、RTRIM、LTRIMがあるからとりあえずいいだろうということなんだろ。
コメント1件
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

データベース板 タイトル検索

このスレッドが人気です(実況系)
タイガーマスクW 第33話「過去からの刺客」★2 (969)テレ朝実況
ワールドプロレスリング (832)テレ朝実況
COUNT DOWN TV 2017/5/28(日) その3 (853)TBS実況
【マターリ】タイガーマスクW 第33話「過去からの刺客」 (337)テレ朝実況
ランク王国 Part.2 (305)TBS実況
NHK総合を常に実況し続けるスレ 134251 いきものたち (360)NHK実況
7つの海を楽しもう!世界さまぁ〜リゾート part1 (800)TBS実況
さんまのお笑い向上委員会★1 (940)フジ実況
このスレッドが人気です(ニュース系)
【国連】国連事務総長 国連特別報告者のテロ等準備罪法案批判について「国連の総意ではない」 安倍首相との会談で ★4 (1002)ニュー速+
【国連】国連事務総長 国連特別報告者のテロ等準備罪法案批判について「国連の総意ではない」 安倍首相との会談で ★5 (149)ニュー速+
【出会い系バー出入り】前川・前文科次官「行ったことは事実」「女性の貧困について実地の視察調査の意味合いがあった」★67 (394)ニュー速+
【国連】国連事務総長 国連特別報告者のテロ等準備罪法案批判について「国連の総意ではない」 安倍首相との会談で ★3 (1001)ニュー速+
【出会い系バー出入り】前川・前文科次官「行ったことは事実」「女性の貧困について実地の視察調査の意味合いがあった」★66 (1001)ニュー速+
【話題】「イカさんが可哀想でしょ」 イカ「活け締め」動画に「虐待」指摘 「食ったことないのか?」と諭す声 ★7 (1001)ニュー速+
【国連】国連事務総長 国連特別報告者のテロ等準備罪法案批判について「国連の総意ではない」 安倍首相との会談で ★2 (1001)ニュー速+
【出会い系バー出入り】前川・前文科次官「行ったことは事実」「女性の貧困について実地の視察調査の意味合いがあった」★65 (1002)ニュー速+
データベース板の人気スレ
Oracle 質問総合スレ12 (763)
SQL初心者質問スレ (670)
PostgreSQL Part.11 (218)
Oracle 質問総合スレ9 (986)
MySQL 総合 Part24 (1010)
Oracle 質問総合スレ10 (1014)
SQL質疑応答スレ 15問目 (1013)
SQL質疑応答スレ 17問目 (331)
[test] 書き込みテスト 専用スレッド [テスト] (385)
MySQL 総合 Part25 (893)
Microsoft SQL Server 総合スレ 11 (402)
♪つっかもうぜ!DB! (68)
SQLite Part.10 (607)
はじまりです。 (584)
XML統合スレッド (397)
RDBMS比較総合スレ 【サーバ】 (115)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 4件 - 取得完了