5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

物凄い勢いで誰かが質問に答えるスッドレ

1 :赤松:03/06/30 21:56 ID:HD3wGG5f
物凄い勢いで誰かがDBの質問に答えてくれるスッドレです
詳細は>>2-10あたり

2 :名無しさん@お腹いっぱい。:03/06/30 21:57 ID:???
データベース板じゃないの?

3 :名無しさん@お腹いっぱい。:03/06/30 21:57 ID:fFG3JCLs
海王が「北銀河」という表現を使っていますが
上下が無い3Dの空間で東西南北は存在するのですか?

4 :名無しさん@お腹いっぱい。:03/06/30 21:57 ID:???
糸冬了

5 :名無しさん@お腹いっぱい。:03/06/30 21:57 ID:???
ドラゴンボール板でしょ?

6 :1:03/06/30 21:58 ID:HD3wGG5f
>>3
存在しますよ
わーはっはっはっは

7 :名無しさん@お腹いっぱい。:03/06/30 21:58 ID:lkUe0ZB5
どれがネタスレなんですか?

8 :名無しさん@お腹いっぱい。:03/06/30 21:58 ID:???
最強は誰ですか?

9 :1:03/06/30 21:59 ID:HD3wGG5f
>>7
知るかボケ

>>8
僕です

10 :名無しさん@お腹いっぱい。:03/06/30 21:59 ID:???
>>8


11 :名無しさん@お腹いっぱい。:03/06/30 22:00 ID:???
>>8
ナッパ

12 :名無しさん@お腹いっぱい。:03/07/01 00:56 ID:???
チビブウと悟飯吸収ブウどっちがつおいんでつか?

13 :名無しさん@お腹いっぱい。:03/07/01 01:33 ID:???
ベジット>>悟飯吸収ブ>>ゴテンクス吸収ブウ>>覚醒悟飯>>ゴツブウ>>戦闘ブウ>>チビブウ==ガリブウ≧≧超3悟空>>デブブウ

14 :名無しさん@お腹いっぱい。:03/07/01 01:34 ID:???
ベジット>>悟飯吸収ブウ>>ゴテンクス吸収ブウ>>覚醒悟飯>>ゴツブウ>>戦闘ブウ>>チビブウ==ガリブウ≧≧超3悟空>>デブブウ>>超2ベジータ>>超2悟飯

15 :名無しさん@お腹いっぱい。:03/07/01 01:40 ID:???
ベジット>>悟飯吸収ブウ>>ゴテンクス吸収ブウ>>覚醒悟飯>>ゴツブウ>>戦闘ブウ>>チビブウ==ガリブウ≧≧超3悟空>>デブブウ超2悟空==Mベジータ>>超2ベジータ>>セル編超2悟飯>>セル>>ダーブラ>>ブウ編超2悟飯

16 :名無しさん@お腹いっぱい。:03/07/01 01:40 ID:???
ベジット>>悟飯吸収ブウ>>ゴテンクス吸収ブウ>>覚醒悟飯>>ゴツブウ>>戦闘ブウ>>チビブウ==ガリブウ≧≧超3悟空>>デブブウ>>超2悟空==Mベジータ>>超2ベジータ>>セル編超2悟飯>>セル>>ダーブラ>>ブウ編超2悟飯

17 :名無しさん@お腹いっぱい。:03/07/01 01:47 ID:???
DB板自治・質問・雑談スレ
http://pc2.2ch.net/test/read.cgi/db/1056957157/l50

18 :名無しさん@お腹いっぱい。:03/07/01 07:24 ID:???
ブウが大杉てワケワカラン。どれがどのブウだ。

19 :名無しさん@お腹いっぱい。:03/07/01 08:56 ID:???
http://hccweb5.bai.ne.jp/~hfa79301/gazou/doragon/bu/album00001.htm
魔人ブウAB=デブブウ
超魔人ブウ=悟飯吸収ブウ
魔人ブウ(変身後)=戦闘ブウ
魔人ブウD=ゴテンクス吸収ブウ
魔人ブウF=チビブウ
魔人ブウ(最終形態に変身中)=ゴツブウ

20 :名無しさん@お腹いっぱい。:03/07/04 18:21 ID:???
gggggggggggggggggggggggggggg












ggggggggggggggggggggggggggggggggggggggggggggggggggggg

21 :名無しさん@お腹いっぱい。:03/07/10 23:26 ID:h4EUGvLT
初心者の質問ですみません。
下の<<1>>と<<2>>どちらが性能は良いのでしょうか?


<<1>>
SELECT
A.hoge1
A.hoge2
FROM
TABLE_A A
,TABLE_BB
WHERE
A.key=B.key

<<2>>
SELECT
A.hoge1
A.hoge2
FROM
TABLE_A A
WHERE
EXISTS (
SELECT 'X' FROM TABLE_B B
WHERE
A.key=B.key
)


22 :名無しさん@お腹いっぱい。:03/07/11 00:05 ID:???
2のほうが戦闘力高そうなので2

23 :名無しさん@お腹いっぱい。:03/07/11 00:09 ID:???
戦闘力5か…ゴミめ


24 :あぼーん:あぼーん
あぼーん

25 :あぼーん:あぼーん
あぼーん

26 :あぼーん:あぼーん
あぼーん

27 :あぼーん:あぼーん
あぼーん

28 :あぼーん:あぼーん
あぼーん

29 :あぼーん:あぼーん
あぼーん

30 :あぼーん:あぼーん
あぼーん

31 :あぼーん:あぼーん
あぼーん

32 :あぼーん:あぼーん
あぼーん

33 :あぼーん:あぼーん
あぼーん

34 :あぼーん:あぼーん
あぼーん

35 :あぼーん:あぼーん
あぼーん

36 :あぼーん:あぼーん
あぼーん

37 :あぼーん:あぼーん
あぼーん

38 :あぼーん:あぼーん
あぼーん

39 :あぼーん:あぼーん
あぼーん

40 :あぼーん:あぼーん
あぼーん

41 :あぼーん:あぼーん
あぼーん

42 :あぼーん:あぼーん
あぼーん

43 :あぼーん:あぼーん
あぼーん

44 :あぼーん:あぼーん
あぼーん

45 :あぼーん:あぼーん
あぼーん

46 :あぼーん:あぼーん
あぼーん

47 :あぼーん:あぼーん
あぼーん

48 :あぼーん:あぼーん
あぼーん

49 :山崎 渉:03/07/15 11:22 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

50 :あぼーん:あぼーん
あぼーん

51 :名無しさん@お腹いっぱい。:03/07/17 21:00 ID:???
勢いねーな(笑
物質厨は初心者板にカエレ

52 :あぼーん:あぼーん
あぼーん

53 :山崎 渉:03/08/15 23:10 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

54 :名無しさん@お腹いっぱい。:03/08/16 00:14 ID:6MNNNMJ7
Oracle8.1.7をWindowsXPにインストールする方法、どなたか知りませんか?

55 :あぼーん:あぼーん
あぼーん

56 :名無しさん@お腹いっぱい。:03/08/16 01:34 ID:???
>>54
クライアントはインストールできる。Knowledgeベースに情報があったと思う。
インストーラもバグってるけど、9iのインストーラ使って8.1.7をインストールするという手もある。

サーバは9iでないと動かないよ。

57 :真面目に質問:03/08/16 17:03 ID:???
DB2で、
    list tablespaces show detail
と入力するとテーブルスペース毎の詳細を見ることができますが、
テーブルごとに見る方法を知っている人はいますか?

オラクルのようにExtents情報などを見たいのですが、方法がわかりません。

58 :あぼーん:あぼーん
あぼーん

59 :chage-rin:03/08/24 00:06 ID:UqIILxIl
はじめまして。
質問させて貰います。
SQLSever2000を使用してるのですが、ROLLBACKとか
COMMITが出来ません。
使用しているものは、主にENTER PRISE MANAGERと
クエリアナライザです。
例えば、ENTER PRISE MANAGERで書き換えたとき(SQLでUPDATEも含む)は
元に戻す方法はないのでしょうか?
クエリアナライザも同じです。
つまり、直前のトランザクションのロールバック方法を知りたいのですが
ご教授お願いします。

ORACLEとかだったら、クライアントマシンよりSQLPlusで繋げて
COMMITを発行するまで、有効だったはずなんですが・・・。


60 :あぼーん:あぼーん
あぼーん

61 :名無しさん@お腹いっぱい。:03/08/24 01:08 ID:d2gGE9UJ
おもいっきりの初心者が勉強するには、どんなものから行えばよいですか ?

62 :名無しさん@お腹いっぱい。:03/08/24 09:05 ID:???
>>61
>おもいっきりの初心者が勉強するには、どんなものから行えばよいですか ?
『どんなものから』の『もの』って何?
技術的な事だったらとりあえず
ttp://www.wakhok.ac.jp/DB/DB.html
でも読んどけばいいし(読むだけだとダメだけど)
Access、FileMakerPro等アプリケーションの選択だったら
どの程度の時間をかけて、どの程度のレベルを目指すかにも寄るので答えにくい。
DBエンジニアを目指すならOracle、DB2でもDownLoadしておけばいい。
もう少し具体的に書かないと何も答え様が無い。OS等も書かないとダメよ〜

63 :ぼるじょあ:03/08/24 17:21 ID:P3Wn4t+K
SIEBELっていうデータベースのソフトについて
日本語で分かりやすく操作方法とか書いてあるHPって
無いでしょうか。

64 :やさしく:03/08/24 17:34 ID:Si7/CDDf
使用OS,CPU,メインメモリ,ビデオボード,サウンドボード, DirectXのバージョン
などを調べたいんですが、どうすれば見れますか?

65 :名無しさん@お腹いっぱい。:03/08/24 17:38 ID:???
>>64
http://machineof.net/beginner/spec/spec.htm


66 :名無しさん@お腹いっぱい。:03/08/24 17:41 ID:???
>>64
少しは自分で調べてから聞いてくれ。
しかも板違いだ

67 :あぼーん:あぼーん
あぼーん

68 :名無しさん@お腹いっぱい。:03/08/24 18:47 ID:2Jj6RXDx
後学のためにおながいします.

列をCHARやVARCHARではなく
NCHARやNVARCHARに設計しておいてよかった、と
思えるようなことって
たとえばどんなときでしょうか?
単純にCHARやVARCHARの桁数をNCHARやらで想定する2倍にして
おけば全く支障なし(=NCHAR,NVARCHAR役立たず)なんでしょうか?


69 :名無しさん@お腹いっぱい。:03/08/25 19:21 ID:Y58rQMOG
>>68
全部の文字が2バイトで記録されるため、
(1バイト、2バイトだの判定させなくてもいい
→文字数=バイト数/2でいいからね。)
内部的にも、外部的(自作関数等)にも、
文字列操作が高速になる。

70 :名無しさん@お腹いっぱい。:03/08/27 11:24 ID:BucCbpyi
まじめな質問があったけど、ここに書くのやめた 
荒れすぎ
プロ技にいきます


71 :名無しさん@お腹いっぱい。:03/08/27 13:35 ID:???
プ

72 :名無しさん@お腹いっぱい。:03/08/28 22:49 ID:LDOu9BEY
NT4.0+Oracle8.0.5なんですけど、今使用中の表領域サイズが5ギガを突破しますた。
ちょこちょこチューニングはしてるものの、エクスポートの時とかでかくて面倒
なんですけど、適正サイズみたいなのって存在するんですか?
なんか、過去分データとかはどっかで退避すべきなんでしょうか。

73 :名無しさん@お腹いっぱい。:03/08/28 23:06 ID:HhunSEl0
オラクルで、インデックスまたはそのパーテーションが使用不可ですってエラーが出たとき、
元に戻すことってできますか?
インデックスを張りなおさずに。

74 :名無しさん@お腹いっぱい。:03/08/29 01:17 ID:bYdaHFke
>>73
エラー番号は?

75 :名無しさん@お腹いっぱい。:03/08/29 08:52 ID:oh0dORj4
ORA-01502です。
サーバの設定をいじってたら、クライアントでSELECT文を流すとこのエラーが出るようになってしまいました。
インデックスを使用不可に設定したのが原因みたいですが、使用不可にした設定を元に戻す方法がわからなくて。
インデックスを張り直せば元には戻せるようですが、それだと時間がかかりすぎるので。

76 :名無しさん@お腹いっぱい。:03/08/29 17:00 ID:TJhdDtq/
MySQLで、大文字化はupper 小文字化はlowerですが、先頭の文字だけ
大文字/小文字にするにはどうしたらいいですか?

77 :名無しさん@お腹いっぱい。:03/08/29 22:10 ID:C4UnD8Pr
>>72
日付でレンジパーティショニング

78 :名無しさん@お腹いっぱい。:03/08/29 22:27 ID:???
正義心を煽るような内容のメールを一般人に送ります
ストーカーだ
ひき逃げされた
万引き常習者だ
麻薬常習者だ
等色々な理由付けをします
顔写真つきで見かけたら連絡してくれといってきます
まるで指名手配犯を追うようにいってきます
暴力団や闇金業者などが都合の悪い人間消すために退屈な一般人を犯罪に巻き込んでいるのです
彼らは唯待っているだけでなく自分たちのさくらを追う側に潜りこませています
返信メールをしてくれた連中にもその内集合が掛かります
発表会のような形をとらせ自分達は正義の見方なのだと思い込ませていくのです
その中でターゲットのような悪人を懲らしめるのに何をしても良いという雰囲気にさせていきます
その上で盗聴や盗撮といった犯罪行為を堂々と仕出す「正義の味方の犯罪者」ができていくのです
犯罪だと気づいた時点でもう遅すぎます
彼らが盗撮をして送った画像は主催者側が持っているので自分の犯罪の証拠を握られているのです
だから警察に行く事もできなくなりどんどんと深みにはまっていく事になるのです


79 :名無しさん@お腹いっぱい。:03/08/30 01:47 ID:QWxjdL8H
Oracleってぼったくり会社ですね。自分の会社の製品を高く売りつけ、
資格の値段もバカ高い。図にのってますね。

80 :名無しさん@お腹いっぱい。:03/08/31 16:15 ID:???
会員サービスでパスワード忘れ対策にリマインダを作ろうと思います。
質問と答えの入ったテーブル権限は誰でも見られないとダメですよね?
そうするとプログラムのバグとかで全部見られてしまうかもしれません。
どう対策していますか?


81 :名無しさん@お腹いっぱい。:03/08/31 20:55 ID:261RQxMo
select count(seq) from member where add_dt like '2003-08-29%';

select count(case when add_dt like '2003-08-29%' then seq else 0 end) from member;
の出力結果が異なるのですが、よくわかりません。

教えていただければ幸いです。

82 :名無しさん@お腹いっぱい。:03/08/31 21:57 ID:???
>>81
その構文は知らないけど、
select count(seq) from member ; の結果と
select count(0) from member ; の結果を合計した値が
出力されてるんでは?

case when add_dt like '2003-08-29%' then seq else null end
だと期待通りの値が返るかな?


83 :名無しさん@お腹いっぱい。:03/09/01 00:30 ID:???
>>82
すみません、解決しました。
select count(case when add_dt like '2003-08-29%' then 1 else 0 end) from member;
これが正解でした。

お答えいただき、有難うございました。

84 :名無しさん@お腹いっぱい。:03/09/02 04:27 ID:e0w4/zHX
データベース初心者です。
PostgreSQLと連動したシステムを利用しようとしているのですが、
その中のPHPに「DBserver,DBname,DBpass,DBuser」を指定するようになっていました。
serverというのは何を指定したらいいのでしょうか?
passは設定できるものなのですか?
userというのはownerと同じ意味で捕らえていいのでしょうか?

85 :名無しさん@お腹いっぱい。:03/09/02 05:08 ID:???
>>84
serverはPostgreSQLのデーモン(postmaster)が動いてるサーバ
同じサーバで動作してるならlocalhost を指定する事もある。
pg_hba.conf でアクセス権を設定する事

userはuser、ownerもuserの一部
コマンド createuser で作成し、SQL文のGRANT で権限を設定したもの

passはpg_hba.conf で認証方式を指定する(trustは無条件で許可)
パスワードそのものは認証方式に依存するが、passwordやcryptは
pg_shadowにあるパスワードが使われる(ALTER USER で設定)

86 :名無しさん@お腹いっぱい。:03/09/02 05:10 ID:rp5vU+34
>>72
9.2にアップグレードしたらいかがです?
OSも、お金があればUNIXに、ないならWINDOWS2000
にしたほうがいいと思うんですけど。。。

87 :85:03/09/02 06:03 ID:???
>>84
よく考えたら、設定したいというわけじゃなくて、
別に設定する人がいて、利用するだけなのかな?
そうだとすればおそらく、
userはownerと同じ、serverは省略もしくはlocalhost
passwordは無し、でいいんじゃないかな

88 :名無しさん@お腹いっぱい。:03/09/02 17:05 ID:???
>>80
少なくともパスワードはそのまま保管しないで暗号化する

89 :80:03/09/02 19:43 ID:???
>>88
ありがとうございます。それしかないですよね。
# 今はリマインダのことを考えていなかったので md5 しています

90 :名無しさん@お腹いっぱい。:03/09/03 12:00 ID:Ti9IUqY1
WEB製作者です、よろしくお願いします。
今度依頼を受けたWEBサイトで街の店舗検索をつけたいのですが、
取り扱ってるブランドや地域名ごとに検索できて検索結果のリスト
からリンクで各店舗のページに飛べるようなシンプルなものを
作りたいのですが、どのアプリケーションや方法で作るのが一番
やりやすいでしょうか? いろいろ方法がありそうで絞りきれないのです。
よろしくお願いします。

91 :名無しさん@お腹いっぱい。:03/09/03 15:30 ID:???
>>90
そのくらいならどれでもできる
環境と予算と自分のスキルで決めたらよい

92 :名無しさん@お腹いっぱい。:03/09/17 12:18 ID:i75bUSxn
現在SQLplusの文字化けが改善されず困っています。
sqlplusで「ORA-数字」エラーのときメッセージが???????になってしまっています。
環境は solaris8,oracle8i 8.1.7です。いろいろwebで調べ試しましたがどうしてもわかりません。
どなたか詳しい方アドバイスお願いします。

93 :名無しさん@お腹いっぱい。:03/09/17 14:23 ID:???
出た!>いろいろ

94 :名無しさん@お腹いっぱい。:03/09/17 16:24 ID:l6s6T9Gn
ただでさえ廃れてるのに
いちいち突っ込む時しか顔出さないのな

95 :名無しさん@お腹いっぱい。:03/09/17 16:35 ID:l6s6T9Gn
>>92
OTNとか見た?

96 :なりたてプログラマ:03/09/17 17:27 ID:fW7lNBka
oracleのデータベースの差分バックアップをとりたいのですが、
やり方がわかりません。どなたか教えてください。

97 :名無しさん@お腹いっぱい。:03/09/17 19:53 ID:???
>>92
面倒くさかったら、NLS_LANG を unset しとけ。


98 :斉藤:03/10/24 21:20 ID:???
柿九個むくね


99 :アクセスのしと:03/10/25 09:48 ID:hFEwTYv2
あのー、アクセスとかでもいいですか?

100 :アクセスのしと:03/10/25 10:25 ID:hFEwTYv2
>>99です。
解決しました。
質問取り消し。

101 :NAME IS NULL:03/10/26 13:14 ID:???
>>96
Googleで「oracle 差分バックアップ archivelog」


102 :じん:03/11/11 15:47 ID:31gZhLPe
初めて投稿します。
SQL超初心者でして・・・。

今、Oracle8iで作成されたデータ(テーブル)を
Postgresに移行していく作業をしております。
その際Oracle内のテーブルの情報をSQL+を使い、データ型や主キー
等を調べてPostgresにて作成していこうと思っております。
しかし DESC というコマンドで調べたものの、主キー等の
情報は表示されません。

どなたかデータの細かい属性などがわかる方法ご存知の方
教えていただけませんでしょうか?

また、あつかましいのですが、今私が行っている作業を
もっと効率よくでき方法をご存知の方がいらっしゃいましたら
ご指導お願いいたします。


103 :NAME IS NULL:03/11/11 16:24 ID:vIgI+zdL
データベース板の中でSYBASEorサイベース
を検索して周りましたがどこもかしこもおらくるおらくる

みなさんからみたサイベースってどうなんでしょうか??
触る事になったりすると危険なんでしょうか???


104 :NAME IS NULL:03/11/11 19:09 ID:???
>>103
SQLServerの中の人:)

105 :NAME IS NULL:03/11/12 03:17 ID:???
頭悪いかもしれんが、おまいらは、プライベートにおいてデータベースって何に使ってんの?
そこんとこがかなり気になる。

106 :NAME IS NULL:03/11/12 13:47 ID:???
CDDB

107 :NAME IS NULL:03/11/13 07:33 ID:???
SQLServer2000(SP3)で毎日積算解を表で出す方法ありませんか?
Num|Data|Total
----------------
1| 10| 10
2| 10| 20
3| 5| 25

こんな感じになるといいのですが
どなたか教えてください

108 :NAME IS NULL:03/11/14 19:20 ID:w8w7qJca
Sybaseについて語ってるスレ紹介きぼん
なければ勃てる

109 :NAME IS NULL:03/11/15 18:48 ID:fweAESpw
初心者なので教えて欲しいのですが、
VARCHAR(30)でフィールドを定義した場合、
全角では15文字、半角では30文字入るってことですか?

基本の基本なのでしょうが、どうもわからないもので・・・。
よろしくお願いします。。


110 :NAME IS NULL:03/11/15 21:32 ID:???
SQL> connect scott/tiger
Connected.
SQL> create table test (col1 varchar(30), col2 varchar2(30));

Table created.

SQL> desc test
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 VARCHAR2(30)
COL2 VARCHAR2(30)

SQL> insert into test values ('123456789012345678901234567890', '123456789012345
678901234567890');

1 row created.

SQL> insert into test values ('123456789012345678901234
567890', '123456789012345678901234567890');
insert into test values ('123456789012345678901234567
890', '123456789012345678901234567890')
*
ERROR at line 1:
ORA-12899: value too large for column "SCOTT"."TEST"."COL1" (actual: 60,
maximum: 30)


111 :110:03/11/15 21:40 ID:???
SQL> create table test (col nvarchar2(10));

Table created.

SQL> desc test
Name Null? Type
----------------------------------------- -------- ----------------------------
COL NVARCHAR2(10)

SQL> insert into test values ('1234567890');

1 row created.

SQL> insert into test values ('1234567890');

1 row created.

SQL> select * from test;

COL
------------------------------
1234567890
1234567890

SQL> select * from nls_database_parameters
2 where parameter in ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

PARAMETER VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET JA16EUC
NLS_NCHAR_CHARACTERSET AL16UTF16


112 :110:03/11/15 21:55 ID:???
>>109
> 全角では15文字、半角では30文字入るってことですか?

ということで、CHARACTER SETによって変わります。
UTF8だと、あなたの言う全角では10文字。多分。


113 :NAME IS NULL:03/11/16 02:39 ID:vQ2gjH0c
本当はExcel + VBAで対応できるんでしょ?

114 : :03/11/16 12:30 ID:6KPVJwmd
今何時?

115 :NAME IS NULL:03/11/29 17:33 ID:FTAwuTKM
超基本的な質問
oracleだと truncate table schema.file でファイルを消せますが、
db2に同じようなコマンドはありますか?

116 :助さん:03/11/30 19:35 ID:GyAJawIm
日本でSybaseの知識者がどの程度いるのか知りませんが、
お聞きしたいことがあります。
Adaptive Server をインストールしてカスタマイズした後に、
Backup Server を入れ忘れたことに気がつき、インストールしようと
思うのですが、可能でしょうか?
それともAdaptive Server からインストールしなおして再度カスタマイズしなければならないのでしょうか?
どうぞよろしくお願い致します。


117 :NAME IS NULL:03/11/30 20:06 ID:xCyJHJMA
http://shopping.yahoo.co.jp/shop?d=HUSC&id=4512223530050

これはウインドウズで使うことはできるのでしょうか?

118 :NAME IS NULL:03/11/30 20:26 ID:/mFBWBO+
◎7254最新情報◎
http://homepage3.nifty.com/hot-hot/7254.html

119 :NAME IS NULL:03/11/30 21:59 ID:HWcPoVyu
オラクルでDBのデータをバックアップしたい場合何のツールを使用したらよいですか?

120 :??:03/11/30 22:30 ID:K8SBeRwe
以下のソースをコンパイルすることが出来ません。
どうしてなんでしょうか?

package jspbean;

import java.sql.*;
import java.util.Hashtable;

public class ExaminationBean {
private Hashtable result;
private int searchNumber;

public ExaminationBean() {
result=null;
searchNumber = -1;
}

public void logic() {
DBSimpleInterface db = new DBSimpleInterface();
db.connect(
"org.gjt.mm.mysql.Driver",
"jdbc:postgresql://localhost:8080/examdb?useUnicode=true&characterEncoding=SJIS",
"root",
""
);
String query = "select name, age, dep_name " +
" from employee inner join department using (dep_id) where number=" + searchNumber;
result = db.getOneRow(query);
db.close();
}

public Hashtable getResult() { return result; }
public void setResult(Hashtable v) { this.result = v; }
public int getSearchNumber() { return searchNumber; }
public void setSearchNumber(int v) { this.searchNumber = v; }
}

121 :NAME IS NULL:03/11/30 22:42 ID:3vFUqVD/
>>119
普通にエクスポートじゃダメなのかい?

122 :NAME IS NULL:03/12/01 03:35 ID:???
>>116
プラットフォームは何だよ?
運用系じゃなきゃ、いったん落として上書きしてみ。

123 :NAME IS NULL:03/12/01 21:01 ID:???
>>120
エラーメッセージくらい書けよ

124 :NAME IS NULL:03/12/02 01:33 ID:vUAKDRbI
あるSELECTしてソートしたデータ一覧から、10レコード目〜20レコード目までを取り出す
カーソルの記述を教えてください。

SQL鯖2000使ってます。



125 :NAME IS NULL:03/12/02 03:03 ID:???
>>124
FETCH ABSOLUTE @開始 FROM 〜
から始めて欲しいだけループし、テーブル型変数に入れて返す。

126 :??:03/12/02 03:54 ID:CRVWpN4g
>123 NAME IS NULL さん

すいません。エラーメッセージは以下のようにでています。
よろしくお願いします。

ExaminationBean.java:16: シンボルを解決できません。
シンボル: クラス DBSimpleInterface
場所 : jspbean.ExaminationBean の クラス
DBSimpleInterface db = new DBSimpleInterface();
^
ExaminationBean.java:16: シンボルを解決できません。
シンボル: クラス DBSimpleInterface
場所 : jspbean.ExaminationBean の クラス
DBSimpleInterface db = new DBSimpleInterface();
^
エラー 2 個

127 :NAME IS NULL:03/12/02 13:11 ID:???
classpathは?

128 :NAME IS NULL:03/12/02 16:33 ID:???
>>124
カーソルでやるなら欲しいrecordだけ一時テーブルに入れておいて
カーソルのループを抜けた後で一時テーブルをselectする。

129 :NAME IS NULL:03/12/02 22:32 ID:???
はじめまして、ご質問をさせて下さい。
会社で、配属先のPCの管理を携帯電話の2次元バーコードで行う事になり
Access+携帯電話で製作して下さいと言われたました。
まったくの初心者なのですが、何からおこなえばいいのでしょうか?
よいWebや参考書がありましたらお教えください。

130 :NAME IS NULL:03/12/26 14:40 ID:7M55UFtw
設計の話なんですが、
ひとつのテーブルの2つのカラムから、同一の別テーブルを参照するような設計になってしまった場合、
どうすればいいのでしょう。
明細形式とかにするしかないんでしょうか。

131 :NAME IS NULL:03/12/29 21:38 ID:k4AdKuDO
お聞きしたいのですが、「研究カード」を作るのに最も適したアプリケーションはどれでしょうか?
「研究カード」とは勉強しながら重要なポイントを書いていくためのカードです。分類したり関係のあるカード
どうしをリンクさせたりしたいのですが。
プログラミングなどはできないパソコン初級者です。

132 :NAME IS NULL:03/12/29 21:53 ID:???
>>131
ソフトウェア板かビジネスソフト板の話題だと思う。

アイデアツリーはどう?
http://www.dicre.com/soft/itree.htm


133 :NAME IS NULL:03/12/29 22:43 ID:9f7qLDPl
現在職業訓練を受けています。
accessの授業の最後の日に
サーティファイかコンピュータサービス技能評価試験
のどちらかの受験が義務付けられており、
自分は後者を受験するつもりです。
解説付過去問題集を探しているのですが、
主催者の中央能力開発協会ではaccessについては
問題集を発行していないようです。
九州共立出版から出ている問題集には
解説が付いていないみたいで。
色々調べたのですが、この2冊以外は
出版されていないよう。

解説付のテキストをご存知の方は情報をぜひ。

冬休みまでにテキストを入手して
勉強しようと思っていたけど無理でした。
学校の授業のレベルでは実務に対応できぬと思い
自分でSQLの勉強をしております。




134 :SQL 初心者:04/01/01 21:59 ID:rCRRhUyq
初めてメールいたします。

MS SQLサーバー 初心者です。
MS SQLサーバーに、テーブルを作成して、リンクテーブルでACCESS 2000 SP2
を動かそうとしています。
クライアントのACCESSでの行コピーを行った後、編集→追加貼り付けが、できないのですが。
( 追加貼り付けの文字が白くなって、追加貼り付けが選択できない)


よろしくお願いいたします

                                  斉藤

135 :NAME IS NULL:04/01/01 22:26 ID:0hzc88H+
DML文の中で一番時間がかかるものはどれですか?


136 :NAME IS NULL:04/01/01 23:13 ID:0hzc88H+
やっぱり口だけのカスどもには分からないか...

137 :NAME IS NULL:04/01/02 00:10 ID:???
>>136
複数のスレッドで同じ質問をしないでください。

Oracleの場合ですと
INSERT、UPDATE、DELETEの中でどれが時間がかかるかということであれば、
ロールバックセグメントへの負担が高いのはUPDATE=DELETE>INSERT、
REDOログの生成量についてはINSERT=UPDATE>DELETEかなと思います。

ワーストケースで考えた場合、一番時間がかかる可能性があるのはINSERTです。
Oracleは、行をINSERTしようとした場合まずセグメントヘッダブロック上の
フリーリストからPCTFREEを下回っているブロックを検索して挿入対象
ブロックを決めようとします。
ここである程度探して見つからなければハイウォーターマークの引き上げを行います。
このとき、引き上げるためのエクステントがすでに無い場合はMAX EXTENTSを上限とした
新たなエクステントの確保を行い、
さらにデータファイルの容量が足りなければMAXSIZEを上限とした
ファイルサイズの拡張を試みます。
ファイルサイズの拡張まで走ってしまうとOS側の作業がかなり発生することとなり
相当の時間を要することとなります。

UPDATEやDELETEでもロールバックセグメントの拡張が
起こる可能性はありますが、それはINSERTでも同じです。
UPDATE、DELETEではユーザ表領域に対してここまでの重い処理は行われません。

参考になりましたでしょうか。


138 :NAME IS NULL:04/01/02 00:30 ID:mdzOBQVK
Kさん 好循環  Aさん 悪循環  
 (健康体)  (喘息)

1.(神が喘息であるかないかを決める)

2.K 喘息でない人 A 喘息の人は
は体力がある    体力がなくなる

3.K        A 行動力、
          五感(嗅覚)が鈍り感性が変化する

4.K&A 神は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。

5.K 変化なし   A アトピーになる

6.K 正常な感性  A 外に出なくなりさらに異常な感性になる

7.K 正常な人間   A 異常な人間(レッテル)

139 :NAME IS NULL:04/01/02 00:30 ID:mdzOBQVK
8.K&A 死

9.K&A      来世

10.K&A 神は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。

11.K&A 神が喘息であるかないかを決める

12.K 喘息でない  A 喘息である

13.K&A    1.に戻る

これは事実。広めようぜ

解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
    アトピーも快癒に向かう。
    目安としてグランドを10週くらい。
あとはウォーキング
    2.3時間を目安にウインドーショッピングや本屋めぐり


140 :NAME IS NULL:04/01/02 02:15 ID:???
データベース関連でためになるサイト教えてください

141 :136:04/01/02 06:08 ID:+vY2f5k5
>>137 サンクス

142 :しろうと:04/01/03 06:39 ID:rrJF+aTo
以下の機能を実現するDBを構築したいのですが、一般的にどのようなソフトウエアを導入するのでしょうか?

目的:デジカメで撮影した大量の画像(2万ファイルくらい)をサーバにおいて、複数クライアントから編集する。
業種:出版

機能:
高速プレビューでJPEG、PSD、他 主要画像フォーマットに対応 できればRAWデータも
タレント名、撮影日、未使用/使用済み、必要/不要 など複数条件検索
データ削除
外部ソフトウエアとの連携


143 :NAME IS NULL:04/01/03 14:46 ID:???
一般的にはそのソフトウエアに詳しい人がいる
データベースソフトを買いましょう。
あなたの職場にOracleに詳しい人がいるならOracleを
SQLserverに詳しい人がいるならSQLServerを。

144 :136:04/01/03 23:34 ID:ktNt/pdl
SQLserverなんていらねー

145 :あぼーん:あぼーん
あぼーん

146 :NAME IS NULL:04/01/08 00:13 ID:ckFKX4bD
ソートしてからグループ化したいんですけど SELECT 文が書けません...。
1000 | 1000
1002 | 1000
1001 | 1000
2004 | 2000
2005 | 2000
2003 | 2000

1002 | 1000
2005 | 2000
このように取りだしたいのです。

147 :NAME IS NULL:04/01/08 00:17 ID:QhsBCuB0
フリーウェアで代表的なデータベースって何ですか?

148 :NAME IS NULL:04/01/08 02:08 ID:???
>>146
SORT?

SQL> select * from test;
COL1 COL2
---------- ----------
1000 1000
1002 1000
1001 1000
2004 2000
2005 2000
2003 2000

SQL> select max(col1), col2 from test group by col2 order by col2;
MAX(COL1) COL2
---------- ----------
1002 1000
2005 2000


149 :48*8:04/01/08 04:33 ID:3FQ9TQU5
Kさん 好循環  Aさん 悪循環   <日本> 完成版
 (健康体)  (喘息)

1.(天国・霊界が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある    体力がなくなる

3.K 変化なし    A 行動力、五感(嗅覚)が鈍り感性が変化する。

4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし   A アトピーになる
6.K 正常な感性  A 外に出なくなりさらに異常な感性になる。
7.K 正常な人間   A 異常な人間(レッテル)
8.K&A 死  9.K&A      来世
10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない  A 喘息である
13.K&A    1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。 目安としてグランドを10週くらい。
あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり
絶対に直す方法:
よく海外に行ってアトピーが治る話を聞くが、基本的に日本の中のことだけなので、
海外に行くとほとんどの場合体力をつけると治る。 日本の中であっても、体力をつ
けると治るはずだが、 様々な理由により、霊界の存在がばれてしまい、 この失態が明
るみになるので、治さないようにしている。よって、絶対にアトピーを治すには、 海外
に行き体力をつける。
http://life.2ch.net/test/read.cgi/atopi/1035703616/l50を参照

150 :146:04/01/08 12:35 ID:ckFKX4bD
>>148
すいません。実は COL1 が日付なんで max() を使ってなかったんですけど
今使ってみたら思った結果が出力されてそうです。
時間ないので後で検証してみます。
日付に max() はまずい?


151 :NAME IS NULL:04/01/18 01:23 ID:bPI/YQ/Z
SQLserver7をやってます。
今回はじめてストアドプロシージャを使っています。
現在ストアドプロシージャ暦3時間ほどなんですが、
引数をもったストアドプロシージャが作れるとこまで分かりました。
それはまた別のストアドプロシージャから呼び出す形でしか実行出来ないのでしょうか?
例えば、VBからストアドプロシージャをSQLみたいに実行って出来ないものなのでしょうか?
引数付きでそれが出来ないのかなぁ?と考えております。

152 :NAME IS NULL:04/01/18 13:10 ID:EiS3gzr6
>>150
全然まずくないと思います。

>>151
余裕でできる。普通のSQLなら文字列変数に"select a, b, c from ..."
や、" delete from xxx where ..."などを代入して実行するところを、
"exec sp_name xxx, yyy"などと代入して実行するだけ。
VBからストアドプロシージャを使ったことがないので予想だが。


153 :NAME IS NULL:04/01/18 13:12 ID:???
「sp_name xxx,yyy」の、xxx,yyyが、引数。

154 :151:04/01/18 15:01 ID:bPI/YQ/Z
>>152-153
回答ありがとうございます。
普通に出来たんですね、私の見ている本にはそれが全く書いてないので出来ないのかと思い、
避けて通っていました。
次から、可能性として引数を持ったSPをSQLから実行する事も考えていきたいと思います。

155 :NAME IS NULL:04/01/25 11:10 ID:FFy97x5l
フィールド3つを合体して、1つのタイトルフィールド作りたいのですが
SQL文が思いつきません。よろしくお願いします。

title1 | title2 | title3 → all_title


156 :155:04/01/25 11:24 ID:FFy97x5l
title1,2,3及びall_titleは文字列です。
文字の結合でなくて、title1,2,3それぞれの要素を挿入したいのですが…
よろしくお願いします。

157 :NAME IS NULL:04/01/25 11:40 ID:???
挿入の意味が分からないのであれですが、
substrとか、replaceとかの置換関数とか使えばできるのかな?

#せめて、DBMSの名前とバージョンくらい教えてください。。。

158 :155:04/01/25 11:50 ID:FFy97x5l
>157
すいません…MS ACCESS2000を使用しています。
例えば、
title1   | title2 | title3
タイタニック|アルマゲドン|もののけ姫
とあったら、

all_title
タイタニック
アルマゲドン
もののけ姫

みたく1列にタイトル全てまとめて表示したいのです。

159 :NAME IS NULL:04/01/25 12:24 ID:???
>>155 そもそもDBの使い方が間違い。

titleというフィールドを一個だけ使って、
「タイタニック 」
「アルマゲドン 」
「もののけ姫 」
をそれぞれ一個ずつ入れろ。
表示するときにwhereで必要な行をselectするのがDBの使い方。

一行に、title1,title2,title3 があるテーブルは
そもそもテーブルの作り方が間違ってる。


160 :155:04/01/25 12:45 ID:FFy97x5l
>159
それだと他との兼ね合いでうまくいかないんで質問たのですが…
すいません。もう1回考え直します…


161 :NAME IS NULL:04/01/25 12:54 ID:???
PostgreSQLからMySQLのDB移行って難しい?

162 :157:04/01/25 13:21 ID:???
>158
(´-`).。oO(単なる文字列の結合じゃないのかな。。。)

改行を足したいって事?

まぁ、>159さんの言うとおりだとは思う。


163 :155:04/01/25 14:05 ID:lQbWv2DD
アカデミー賞のDB作ろうしてたのです。
カテゴリごとに作品を列挙をしようと思ったのです。

159さんに言われて直してみたのですが…タイトルリストを別に作って
ID | title

↑これを
category | winnerID | nom1ID | nom2ID | nom3ID | nom4ID
のテーブルにIDでそのタイトルを取得するようにしました。

164 :NAME IS NULL:04/01/25 15:14 ID:L52hibMW
それじゃあ改善されてないよ

165 :155:04/01/25 15:37 ID:XF+uBVIk
>164
そ、そうなんですか?一応タイトル出たからいいかなと思ったのですが…


166 :NAME IS NULL:04/01/25 16:54 ID:???
小出しにしないで、全部吐けや

167 :NAME IS NULL:04/01/25 17:11 ID:???
>>163

それだと第一正規形にもなってないよね。
http://www.wakhok.ac.jp/DB/section2.7.2.html

アカデミー賞のそれぞれのカテゴリについて、
5以上の作品がノミネートされたらどうするの?

とりあえずは受賞テーブルとノミネートテーブルを分けて
 タイトルテーブル(作品ID, 作品タイトル)
 受賞テーブル(カテゴリ, 作品ID)
 ノミネートテーブル(カテゴリ, 作品ID)
こう。


168 :155:04/01/25 20:20 ID:???
>167
お手数かけましてすいません。もう少し勉強します。
ありがとうございました。


169 :NAME IS NULL:04/02/04 11:40 ID:???
>>162
Perlのある意味スゴいところは
オブジェクト指向言語と関数型言語の調和と言うよりは
オブジェクト指向言語とPerl
関数型言語が普通持っている機能とPerl
の調和では無いだろうか…

170 :NAME IS NULL:04/02/16 22:47 ID:bNoBEBwH
VB5で作成のアプリケーションで下の様な実行時エラーが発生しました。
「レジストリのEnginesセクションのExcelキーに設定されている値が無効です。」(Error 3433)
これが発生する環境では、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excelの
"DisabledExtensions"="!xls"が無いことがわかりました。


171 :NAME IS NULL:04/02/16 22:48 ID:bNoBEBwH
(170の続き)
従って、この値をレジストリに追加してやれば解決するのでは?
考えていますが(明日確認予定)、
この値は、元から設定されているものではないのでしょうか?
設定されていない原因はなに?
スレ違いならどっかに誘導して下さい。


172 :NAME IS NULL:04/02/16 22:50 ID:CR1eR4bu
DBと全然関係ないのでは?

173 :NAME IS NULL:04/02/17 03:16 ID:???
よくわからんけど、Jetのセキュリティパッチ当てたら拡張子が制限される
(アプリ側がパッチ適用後の制限に対応していない)からでないの?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;239105

174 :170:04/02/17 22:03 ID:???
どうやら板違いなので、プログラム技術板に移動します。
173さん、ありがと。

175 :NAME IS NULL:04/02/18 02:11 ID:lXZEoopc
プライマリキーがCULUM1、CULUM2、CULUM3の3つが有る
テーブルでカウントしようとするとき、
SELECT COUNT(CULUM1 || CULUM2 || CULUM3) FROM HOGETB;
でいいの?一応、早さを求めるのでプライマリキーでカウント
しろと言われたのですが〔そういう指示なのでROWSとか解析とかは抜きで〕

プライマリキーを元にしたカウントの仕方としては合ってますか?

176 :NAME IS NULL:04/02/18 15:18 ID:3cojbVJ3
VC++ + MSDEでの開発で、参考になる書籍、HPを教えてください。
よろしくお願いします。

177 :NAME IS NULL:04/02/18 18:06 ID:JQdKbH1J
a_flgとb_flgがあって、それぞれ’1’であるほうだけ表示したいんです
$szSql = "SELECT * FROM tm_player";
$szSql .= " WHERE ps_id = " . $in_psid;
$szSql .= "a_flg = 1";
$szSql .= " ORDER BY ply_id desc";
$result = pg_Exec($db, $szSql);
$Rows = pg_numrows($result)

$szSql = "SELECT * FROM tm_player";
$szSql .= " WHERE ps_id = " . $in_psid;
$szSql .= ".b_flg = 1";
$szSql .= " ORDER BY ply_id desc";
$result = pg_Exec($db, $szSql);
$Rows = pg_numrows($result);;
のように2回SQL発行しないと無理ですか?

178 :NAME IS NULL:04/02/18 18:07 ID:JQdKbH1J
ちなみに表示ロジックは以下の通り
if( $Rows > 0 ){
if($userid != 0){
$tmpl->assign_def( "ON_KAIIN" ) ;
$tmpl->loopset( "B_LINK_LIST" ) ;
for ($i = 0; $i < $Rows ; $i++){
$arrData = pg_fetch_array($result, $i);
$tmpl->assign( "ID" , $arrData["id"]);
$tmpl->assign( "PLYNO" , $arrData["ply_no"]);
$tmpl->assign( "B_SUBJECT", $arrData["name"]);
$tmpl->loopnext( "B_LINK_LIST" );
}
$tmpl->loopend( "B_LINK_LIST " ) ;
}else{
$tmpl->loopset( "B_LINK_LIST" ) ;
for ($i = 0; $i < $Rows ; $i++){
$arrData = pg_fetch_array($result, $i);
$tmpl->assign( "ID" , $arrData["id"]);
$tmpl->assign( "PLYNO" , $arrData["ply_no"]);
$tmpl->assign( "B_SUBJECT", $arrData["name"]);
$tmpl->loopnext( "B_LINK_LIST" );
}
}
}

179 :180:04/02/18 18:08 ID:XBlOHR+L
かなり初心者ですが、Cのデータベースってなに?


180 :NAME IS NULL:04/02/18 18:17 ID:JQdKbH1J
 

181 :NAME IS NULL:04/02/18 20:14 ID:???
>>177
>>a_flgとb_flgがあって、それぞれ’1’であるほうだけ表示したいんです
a_flgが1でb_flgが0、または、a_flgが0でb_flgが1のレコードって事?
だったら、WHERE句で、(a_flg = 1 AND b_flg = 0) or (a_flg = 0 AND b_flg = 1)
とすれば良いんじゃない?

a_flgとb_flgのどちらかが1のレコードって事だったら、
WHERE句でa_flg = 1 or b_flg = 1 で良いかと。

表示ロジックは見てないけど、的外れな事言ったかな?

182 :NAME IS NULL:04/02/18 22:22 ID:qcEkABe8
Msql-Mysql-modulesの # make test で下のようなメッセージが出るんですが、
このままインストールするとまずいですか?

Failed 2/17 test scripts, 88.24% okay. 2/746 subtests failed, 99.73% okay.
make[1]: *** [test_dynamic] エラー 29
make[1]: 出ます ディレクトリ `/usr/local/bin/Msql-Mysql-modules-1.2219/mysql'
make: *** [test] エラー 2

183 :NAME IS NULL:04/02/23 17:06 ID:???
すみませんが質問です。
10年くらい前にNECのPC98(それもたぶんDOS)で動いていた
Let'sアイリスというデータベースがあるのです。
そのデータベースでつくったデータがFDに入っているのですが
これを読む方法を探しています。
作った会社に問い合わせたところユーザー番号がわかれば
コンバートするサービスがあるとのことなのですが、何分昔の
ものなのでもうわかりません。有料でもユーザーでなければ
コンバートできないと言われてしまいました。
コンバートする方法、もしくは有料でいいのでコンバートしてくれる
サービスをご存じのかたはいらっしゃいませんでしょうか?

184 :NAME IS NULL:04/02/24 21:24 ID:???
テーブルのNULLを許可されたフィールドに空文字を入力したいのですが、
Insert X Values ("")、もしくは Values (' ')などとするとエラーがおきます。
どうやって直せばいいんでしょうか?

185 :NAME IS NULL:04/02/24 22:23 ID:gb67vciR
>>184
どんなエラーが出るんだ?
構文が違うだけじゃない?
INSERT INTO テーブル名 (列名) VALUES (" ") でいけると思うけど。


186 :185:04/02/24 22:25 ID:???
>>185
あ、一応。
ダブルコーテーションじゃなくて、シングルコーテーションのが良いかな。

187 :NAME IS NULL:04/03/24 16:00 ID:xvy/jEwE
sql-server初心者なのですが、ORACLEでDESC文ってあるじゃないですか。
DESC テーブル名
ってやるとテーブルのフィールド情報が出てくるやつ。
あれのsql-server版ってどなたかご存知ではないでしょうか?
お願いします。

188 :NAME IS NULL:04/03/24 19:21 ID:???
>>187
sp_help tablename
sp_helpindex tablename
sp_spaceused tablename





というのは Sybase の話( ・∀・ )

189 :NAME IS NULL:04/04/06 20:45 ID:lWnFG52H
レプリケーションの信頼度ってどんなもんなんでしょうか?

あまり信用できないものなのか
正しく設定すれば問題なく動くものなのか
そこらへんを特に知りたいです。

とりあえず
データベースはどれか限定しないです。


190 :NAME IS NULL:04/04/06 22:20 ID:GXxkLk8T
DB設計について話し合うスレはどこ?

191 :NAME IS NULL:04/04/07 15:27 ID:???
sql serverで2003-05-03から2003-06-05まで
といったような範囲を抽出したいのですが
どのようなコードを書けばいいでしょうか。

192 :NAME IS NULL:04/04/07 19:35 ID:Ip6Jhah0
パソコンを買い換えて、最新版のOoulookを導入したら、前のハードディスクのメール履歴が消えてしまいました。
どうしたら見れるでしょうか・・・。教えてください。お願いします・・・。

193 :NAME IS NULL:04/04/07 19:35 ID:Ip6Jhah0
すいません、Outlook です。
それに場違いでした・・・。

194 :NAME IS NULL:04/04/08 02:01 ID:+VTjr9hl
1
12
31
41
といった最大で二桁のデータがあった場合
あらかじめ桁数を指定して
00001
00012
00031
00041
のようにしたいのですがどうすればいいのでしょうか?

195 :NAME IS NULL:04/04/08 10:45 ID:???
>>194
printf("05d\n",a);

196 :NAME IS NULL:04/04/08 10:46 ID:???
>>195
つ[ % ]

197 :NAME IS NULL:04/04/08 17:50 ID:4JumAgE/
SQLに興味があります。ちょうどACCESSを持っているので
ACCESSでSQLを勉強できたらいいかな〜と思い、
本屋でACCESSでSQLを勉強する本を探したらほとんどないみたいです。
SQLを初歩から書いてある本だと、オラクル・シルバーの対策本が
いろいろでていて良いようですが、何か良い方法はありますでしょうか?

198 :NAME IS NULL:04/04/08 21:40 ID:???
単純にSQLを学びたいの?
であれば、ACCESSのヘルプで『クエリ』で検索してみて!
いろいろ調べられると思うけど。
本で勉強するより自分でいじってみることをお勧めします。




199 :NAME IS NULL:04/04/08 21:44 ID:LylrRya5
Q1
SQLServerにはOracleでゆーところのロールバックセグメントに
該当するモノは無いのでしょうか?

Q2
SQLServerにはOracleでゆーところのデータベースリンクに
該当する機能は無いのでしょうか?



200 :NAME IS NULL:04/04/11 01:36 ID:ZD6Yi4L1
非公開部分
http://www.spiegel.de/video/0,4916,2549,00.html

201 :NAME IS NULL:04/04/11 09:42 ID:8f67wv6r
自作自演が確定しますた。ソース↓
========
高遠さんは事件前、本紙記者らに、自ら「ムハンマド軍」の名を挙げて、同軍のメンバーに極めて近い人物と接触したと語っていた。
http://www.chunichi.co.jp/00/kok/20040411/mng_____kok_____002.shtml

202 :NAME IS NULL:04/04/13 20:52 ID:uWW+pR+n



203 :NAME IS NULL:04/04/13 20:53 ID:uWW+pR+n
>>199
Q1:多分トランザクションログのことだろう。
Q2:多分レプリケーションのことだろう。

どちらにせよ、これらをキーワードにSQLServerのBooksOnlineで
調べてみてください。

204 :NAME IS NULL:04/04/15 03:32 ID:jowvUD2+
SQLの質問です。お願いします。
DATA_A, DATA_B, DATA_C の列があり、それぞれ値が入っています。

SELECT DATA_C FROM XXX ORDER BY DATA_A/DATA_B
のとき、ORDER BY DATA_A/DATA_B に、0の除算が発生してエラーがでます。
0になるものを、並びの最後にもっていくには、どうすれば良いのでしょうか?

205 :NAME IS NULL:04/04/15 07:42 ID:???
1つのデータベースに
テーブルは何個まで作っても大丈夫でしょうか?

借りてるレンタルサーバーがDB1つにつき300円取られるので
1つのDBで1000個とかテーブル作っても大丈夫だったら
DB1つでやっていこうと思うのですが。

よろしくお願いします。

206 :NAME IS NULL:04/04/15 10:58 ID:222h/ESB
postgeresqlについての質問です。
現在TurboLinux上においてJSP + Postgresqlを使用したプログラムを作成しました。
そのホストマシンからだと接続を含め問題ないのですが、移行用のマシン(win2000)に
プログラムを移行し、それをまた自分のマシン(win2000)から参照しようとすると
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from
fulfilling this request.

exception

org.apache.jasper.JasperException
   ・
   ・
   ・
root cause

java.lang.NullPointerException
   ・
   ・
   ・

というエラーが返ってきます。
pg_hba.conf には自マシンと移行マシンの両方のIPを追加して、postgresql.confの方は
tcpip_socketの項目のコメントをはずしています。
プログラムは接続先をLinuxマシン:5432に変更しています。
説明が下手で申し訳ないのですが、昨日から原因が解らず困っています。
ピンときた方は是非教えて下さい。

207 :NAME IS NULL:04/04/15 11:44 ID:???
>>204
・CASE を使う
・一時テーブルで中間処理する
・ソートはフロントエンドで行う
・セッションオプションで、ゼロ除算を無視させる設定をする
方向で考えてみよう。

ちなみに数学上は、0で割った値は無限大に振れる(極大)
ORDER BY でそのような式を指定した場合
何が起こるか神の味噌汁

>>205
テーブルの個数はRDBMSの実装およびレンタル鯖業者によって違うだろうが
たいていの鯖屋が設けてるのはMySQLかな?
ためしに作ってみれば? としか言えないが、個人的には
1000個超のテーブルが必要な設計がどうにかしてる、とだけ指摘しておく。

>>206
説明がヘタでわからんのだが、移行用のマシンに移行したのは
JSP(Catalinaか?)だけ? postgresも?

・Linux側の設定(5432/tcp は、外から接続できるか?)
・移行側(w2k?)のJDBC周りの設定どーよ?

というわけで、どちら側の問題か切り分けてみないと…

208 :NAME IS NULL:04/04/15 11:56 ID:Cwu6yyaA
あのー…
全然、もの凄い勢いじゃないんですけど

209 :207:04/04/15 12:03 ID:???
>>208
過疎板に何を期待してる?
本当にもの凄い勢いでレス付けると単なる煽りに成り下がってしまうからなぁ。

ちうわけで藻前ももの凄い勢いで回答汁

210 :204:04/04/15 18:13 ID:r2Q4gUZz
>>207さん、どうもありがとうございました。
私の持ってるSQLの初心者本には、CASE文が載ってないので、もっといい本を
買ってきます。(お勧めとかありますか?)
204で書いたのは、簡略化したものなので、実際には、内容は複雑化しております。
とりあえず、今、一時テーブルの方法で試してみます。
ありがとうございました。

211 :NAME IS NULL:04/04/15 23:09 ID:PvNdPHFr
ここ(http://www.sdi-net.co.jp/diagnosis.htm)に書いてある、

> ORDER-BY を使っている。

ってどういうこと?ORDER-BYを使わずにソートってどうやるの?



212 :NAME IS NULL:04/04/16 01:07 ID:???
>>211
ソートはフロントエンドでやれという主張じゃないか?

これはSybaseの話だが、うまくインデクス張っとけば
ORDER BY に対しても効率的に働く。

件のURLでの主張は、俺には賛同しかねる部分が多い。

213 :NAME IS NULL:04/04/17 00:28 ID:bpgspsn8
PostgreSQL で質問です。
テーブル名が違い、中にあるフィールド名などは共通のテーブルから
同じフィールド名のデータを取り出すSQLはどうすれば実現できますか?



214 :NAME IS NULL:04/04/17 12:47 ID:???
>>213
A1. UNION
A2. たてつづけに一時テーブルに挿入

215 :NAME IS NULL:04/04/18 08:55 ID:???
テキストファイルでデータをもらうときに、
ヘッダー情報とかフッター情報とか必要なんでしょうか?
(ホストにデータを渡すことが前提)

216 :NAME IS NULL:04/04/18 10:07 ID:???
>>215
ホストの要求嫁このヴァカヤロウ

217 :NAME IS NULL:04/04/18 14:50 ID:???
ほんとに困っているので、
この人>>216以外の方、教えてください。


218 :NAME IS NULL:04/04/19 01:00 ID:???
( ´,_ゝ`)プッ

219 :NAME IS NULL:04/04/21 15:13 ID:???
どうしても必要かどうかは分かりませんが、
「システムの仕様がどうなっているか」じゃ無いですかね。

220 :NAME IS NULL:04/04/26 20:22 ID:???
>>207
>1000個超のテーブルが必要な設計がどうにかしてる、とだけ指摘しておく。
10個のテーブルが必要なアプリを100個動かしたいとかそーゆう話じゃねえ?

221 :NAME IS NULL:04/04/26 21:36 ID:hVx47epU
SQL Server 2000の質問なんですが、このスレでよいでしょうか?

222 :NAME IS NULL:04/04/27 05:01 ID:???
>>221
SQLServerのスレもあるがどっちに投げても構わんだろう

223 :NAME IS NULL:04/04/27 13:02 ID:o91YP1Fd
データベース用いるケースは

* 皆が頻繁に更新を行い
* 頻繁に抽出が行われ、
* それが高速である必要がある

この3つが揃うときだよね。
これらの条件のうち一つでも外れていたらデータベースは使ってもムダ。
ファイルを用いたデータ管理をすべきだと思う。

何か反論ありますか?

224 :そ、そんな餌じゃ、、、クマーーーー:04/04/27 13:28 ID:???
>>223
分離する条件が揃ったとき
・フロントエンドが複数プラットフォームにまたがるとき
・フロントエンドとバックエンド(RDBMS)のスケーラビリティ・アベイラビリティを
 別個にチューニングしたい場合
・でんでん(←なぜか変換できない)

以下反論
* 皆が頻繁に更新を行い
皆が、上述のような、複数箇所からの更新が行われる可能性があれば、
これだけでRDBMSを切り離す意義が出てくる。

* 頻繁に抽出が行われ、
データソース中のレコードが膨大であれば、ローカルDBにとって不得手と
なる部分が出てくる可能性がある。(これに関しては、適材適所と俺は思う)
また、抽出が頻繁でなくても、使う意義が出てくる(後述)

* それが高速である必要がある
超高速でなくても、そこそこ高速に、確実な更新を行うためという目的もありえる。
トランザクション、トリガ、差分バックアップなどがあった方が設計が楽だろう?
単純なキー検索でオーバーヘッドを避けつつひたすら高速性を狙うなら、
潤沢にメモリを積んでのローカルDBも大蟻だと思う。

ちうわけで
>この3つが揃うときだよね。
>これらの条件のうち一つでも外れていたらデータベースは使ってもムダ。
>ファイルを用いたデータ管理をすべきだと思う。
これ、どの教科書に書いてあるのか教えて呉

ところでApacheのアクセスログですらセミリアルタイムでRDBMSにたたき込んでいますが何か?

225 :NAME IS NULL:04/04/28 19:52 ID:wHnIUUPe
>>224

ナルホド

まぁ、適材適所としかいいようがない。

しかし、漏れが思うに、データベース必要でもないのにデータベース入れてる
ケースが多すぎると思う。

めったに更新しない商品データをデータベースに入れたり。
しかもそれをウェブサーバと繋げて外に公開していたりする。

226 :NAME IS NULL:04/04/28 19:53 ID:???
チミのゆーデータベースが何をさしとんかしらんが
・複数のプロセスが読み書きするデータを
・同期とか考える(あるいはバグなしに作りこむ、あるいはホシュする)のがマンドクサいとき
RDBとはいわんがDBM系使うのはありだろ

あるいはデータを様々な方法で集計したいとき、
一度テンポラリなDB(テーブル)にぶっこんでSQLで集計、てのもアリじゃね?

227 :NAME IS NULL:04/04/28 21:22 ID:???
>>225
おカネが欲しい連中に提案されたんじゃネーノ?

228 :NAME IS NULL:04/04/28 21:22 ID:???
>>224
>ところでApacheのアクセスログですらセミリアルタイムでRDBMSにたたき込んでいますが何か?

貴方、かっこよすぎ

229 :NAME IS NULL:04/04/28 21:27 ID:???
>>226

まぁここでいうのはいわゆるSQL叩くRDBのこと
DBMを内部的に使うのが正しい場合もあると思うよ
少なくともRDB使うよりはポータビリティ高い

いや、集計のためにSQLなんて、どうかしてると思うんだけど、、、よっぽど時間のかかる計算でないかぎりは

230 :NAME IS NULL:04/04/28 21:40 ID:???
>>228
INSERT間に合うんかいな

「セミ」リアルタイムちうのがミソなのかな?

231 :NAME IS NULL:04/05/08 00:39 ID:RTjPp/JA
おまいらはどうやってそんなに詳しくなったんだ?
書籍なり上達法なり教えてくれませんか。

232 :NAME IS NULL:04/05/08 03:12 ID:???
>>231
何度もコカした

知識を裏付けする経験を積めるだけの素養があれば問題ナシ

233 :NAME IS NULL:04/06/02 22:04 ID:???
質問です。
varchar(30)なのに
(60分)って追加すると(60 という具合に追加されてしまうのはなぜでしょうか?

234 :NAME IS NULL:04/06/02 22:34 ID:???
処理系を書け。
それから、複数の処理系を使ってるなら、
どの組み合わせでは「問題なくいけた」かを書け。

もうひとつ。抽出した結果が化けてるんじゃないだろうな?

235 :NAME IS NULL:04/06/02 22:52 ID:???
抽出した結果が化けてるのではありません。
が、化けるやつと化けないやつがあります。
化けるやつというのはupdateしても直りません。

236 :NAME IS NULL:04/06/13 15:26 ID:???
第5話、第11話という具合に「第」「話」を挟んだデータを作りたいのだが
型をintにすると数値のみしか記入出来ないし
varcharにするとソートかける時に番号順に並ばない。
どうすればいいんだ

237 :NAME IS NULL:04/06/14 12:58 ID:???
SELECT '第'+table.data+'話' From table order by table.data;

238 :NAME IS NULL:04/07/31 23:51 ID:gm78S/1D
どうもはじめまして2ちゃんに初めて書き込みます
ゴミバコの設定を変えて「ゴミバコを空にする」って項目をなくしたいんですけどどうすればいいのでしょうか?
どなたか親切な方いらしたら教えて下さいお願いします
正直ここに書き込んでいいのかすら疑問ですがよろしくお願いします

239 :NAME IS NULL:04/08/01 00:05 ID:XROISCMq
238ですOSはXPで打ち込むタグもわかるんですがどこにいれればいいかわかりません
お願いします

240 :アルル:04/08/01 00:26 ID:jX+EEun8
任意ラジオCDを知っていますか。知っている人にお願いです。
秋葉原で現在このCDを売っている店を教えてください。☆

241 :NAME IS NULL:04/08/01 12:11 ID:???
linux板から来ました。
くだらない質問ですまそ。Linuxでデータベースを構築しようと
思いますが、対象は画像ファイルが中心です。

今、リアルタイムで秒10枚程度、25KB前後の画像ファイルを
格納していくとしたら、どのデータベースが堅いでしょうか?
定期的にバックアップと削除が必要なので、DBへの登録と削除の
処理が軽いことが前提ですが、お勧めはありますか?

242 :NAME IS NULL:04/08/01 23:49 ID:???
>>241
Oracle。

というのはおいといて
deleteが多いならPostgresよりMySQLかなあ?

243 :めぐ:04/08/02 22:56 ID:SzP7p15/
ACEESSに140万のデータが入っています。
フィールドは2つしかありません。
簡単な更新クエリは出来たのですが
ちょっと複雑な更新クエリにすると更新ができません。
(更新しますか?と聞かれて"はい"を押しても変更されない)
そこで、データを分割して作業しようと思い、
とりあえずオートフィルタでNOを振ってから分割しようと
試みたのですが、データが多い為か、オートフィルタNOが振れません。
こういった膨大な量のデータをACCESSにおいて分割したいとき、
なにかいい方法がありますでしょうか?
そのほかなにかアドバイスがありましたらお願い致します。
ちなみにSQLの知識はありません!

244 :NAME IS NULL:04/08/02 23:30 ID:WXdgh854
おしえてください。

oracle8で、
-----------------------------------------------
処理A                      処理B

Tableトランケート
   ↓
INSERT 〜 SELECT発行
   ↓            ←←    このへんでselect発行
(件数が多いためindex         該当データがないのでinsert(あればupdate)
 張ってるけどSELECTが遅い)       ↓
   ↓                    サクッとcommit;  
   ↓
INSERT完了、commit; (←・・・のはずが途中の処理Bのせいでkey重複エラー発生)
----------------------------------------------

こんな感じで多重keyエラーが出てしまいます。
処理Aで、だいたい3〜5万件くらい作っているのと
selectに時間がかかってしまい、処理Aは10〜15分ほどかかっています。

こういうケース、結構あるんじゃないかと思うんですが、
皆さんはどのように対応してるんでしょうか?

というかどうやって回避したら良いでしょうか・・・?
うわさによると、For uodateの如く、
selectすら拒否するロックができるかもとか言っている人がいたのですが、
果たしてそのようなことはできるのでしょうか?

245 :NAME IS NULL:04/08/03 00:07 ID:???
このばやいBのselectは禁止する必要がなくて、insertのみを防げばよい。

246 :NAME IS NULL:04/08/03 01:27 ID:???
所持する文献の数が増えてきたので、個人用DBの構築を目論んでます。
ちょっと大袈裟でしょうが、折角なのでMySQLに触れてみることにしました。
(C,Ruby等のプログラミング経験有り、DB経験無し)

この板見てますと同様の境遇(ローカルに個人用DBを所持)の方がいらっしゃいますが、
そういう方はどういうフロントエンドを使ってるのでしょうか?
ローカルにApache立ててPHPを使う?あるいはコマンドラインから直接タイプ(コピペ)?

なるべくサーバは立てたくないし、それなりにGUIが欲しいという状況で、自分が
何をする(作る)べきか、皆様の御知恵を拝借したく書き込みました。
低水準な質問で申し訳無いですが、よろしければ御教授下さいませ。



247 :NAME IS NULL:04/08/03 07:37 ID:???
ちょっと(だいぶ?)違うけど、デジカメ画像の数が万を超えたのでデータ整理用にDB使ったアプリを
作ろうと思ってるんだけど、おいらはFirebird を使おうかと思ってます。
RAW主体だからリムバーブルメディアやTB級の(1年弱で今のところ200G程度)データ扱いたいし、
FirebirdならDBをインストールしなくてもいいアプリ組込み用のDLLのみで動作するタイプもあるから。
あとで必要なら普通のDBサーバにも移行できるしね。

248 :NAME IS NULL:04/08/03 08:44 ID:???
>>245
普通に考えてみたんだけど、どやって?
(漏れは244じゃないけど)

排他制御もinsertに対しては無効だよね?

249 :NAME IS NULL:04/08/04 01:12 ID:???
lock table ~ in exclusive mode でいけるっしょ?
insertだけ無効って、なんで?

250 :NAME IS NULL:04/08/04 21:41 ID:???
PHP+MySQLで掲示板作ったのですがコメントの部分がたまに文字化けするのはなぜでしょうか?
文字コードもEUC-JPにコンバートしてるのですが、たまーに文字化けしてしまいます。
ご教授よろしくお願いします。

251 :NAME IS NULL:04/08/04 22:44 ID:HQekxBXz
データーベースについては全くの初心者です。
データーベースの基本的な解説書を教えてください。
個人的にやってみようと考えているのですが、お金はかけられないので、
Linux に付属のDBでやりたいです。その場合はどのようなものがあるのでしょう
か?

宜しくお願いします。

252 :NAME IS NULL:04/08/05 07:29 ID:???
個人的にはこの本がお勧め。
最初からオープンソースRDBターゲットで基本的なことが簡単に書いてある。
Windows主体だけど。
http://w3.shinkigensha.co.jp/books/4-88317-092-6.html

253 :NAME IS NULL:04/08/05 17:54 ID:DNMUMrxA
odbcの設定をexportして、それを他の端末にimportする、
なんてことはできないよね?

254 :NAME IS NULL:04/08/05 18:08 ID:???
ファイルデータソースならできるんじゃ?

255 :NAME IS NULL:04/08/05 18:17 ID:DNMUMrxA
システムの方なんです。
すべての端末に手でポチポチ入力してくの大変だと思うんだけど、
みんなどうしてんだろ。

256 :NAME IS NULL:04/08/05 18:55 ID:???
ODBC.INI とかに設定書いてなかったっけ。
しかし、ドライバ側の設定になると、ドライバ依存だからもはやなんともならんと思う。

どうしても数こなさにゃならんとなったら、
インストール前と後との差を取るアプリあるから、
それで設定前と設定後を見比べて、変更ツール作るかなぁ。
10台なら泣く泣く手作業する。100台ならツール作る。そんな感じ。

257 :SQL初心者:04/08/05 22:08 ID:gV7q+xDA
SQL文を解析してSQLが意図するDBへのアクセスを視覚化してくれるツール
ございませんか?宜しくお願いします

258 :NAME IS NULL:04/08/06 10:02 ID:???
オラクルの最も簡単な設定法を教えてください。

環境:Win2000Pro
オラクルVer:10gトライアル版
その他:オラクル本体、クライアントともに同一端末にインストール

よろしくお願いします。

259 :NAME IS NULL:04/08/07 00:12 ID:???
>>258
DB技術者を雇う。


260 :nulpo:04/08/07 01:19 ID:???
>>257
ms-access

261 :NAME IS NULL:04/08/08 00:42 ID:???
>>269
解決しました

262 :258:04/08/09 10:48 ID:???
>>259
スマソ、漏れがDB技術者として雇われてるんだ。

会社の人(以下、会):君、DB経験は?
漏れ(以下、漏):SQL SeverとAccessが少し。
会:Oracleは?
漏:ありません
会:OracleのDB管理の案件があるのだが、教えるのでやってくれんかね。
漏:教えてもらえるなら。
会:では、この端末(P3、メモリ128)に、Oracle入れて。
漏:はい

クライアントインストール

漏:入れましたけど、DBサーバの設定教えてください。
会:何かねそれは?
漏:DBがあるんじゃないんですか?
会;ないよ。
漏:?
会:その端末に、DBを適当に作って勉強してくれたまえ。
漏:じゃ、クライアントだけじゃ駄目ですね。
会:何かねそれは。

クライアント・サーバの説明

会:なんかややこしいな。よその会社でセットアップしてたの見たときはもっと簡単だったぞ。
漏:いやそれは、すでにDBサーバがあって、クライアントのインストのみだったのでしょう。
会:なんかよくわからんがはやいことうまくやってくれ。


以上だ。漏れはどうしたらいい?
そもそもSQL Severにしたってサーバ担当がいてたし、DBサーバの設定なんてしたことねぇよ。

263 :NAME IS NULL:04/08/09 21:23 ID:???
初心者ですがよろしくお願いします。
なんかちょうど会社がIT革命ってる時期に入社してしまい、
しかも元々あんまり詳しい人がいないということで
大して経験もないのにデータベースを扱うチームのリーダーぽくなってしまいました。
一から運営を任されてる状態で、もうてんやわんやヽ(`Д´)/ウワアァァン

会社としては、どこにいても誰でも更新できるDBを作ってほしいみたいなんですけど、
データアクセスページっていうのは、実用性はありでしょうか?
なかなか積極的に説明してくれてるとこがなくって、あんまりなのかなあって
印象を受けているのですが…
やっぱり大人しくSQLを勉強した方が良いでしょうか?

264 :NAME IS NULL:04/08/11 06:27 ID:???
>どこにいても誰でも更新できるDB
wikiでも使えば?

265 :NAME IS NULL:04/08/11 13:01 ID:???
いいね

266 :NAME IS NULL:04/08/11 20:28 ID:???
アドバイスありがとうございます。wikiって初めて知りました。
いくつか見てみたのですが、数万件のデータを扱うのでも大丈夫なものですか?


267 :po:04/08/11 21:32 ID:???
ちゃんとしたwikiソースを持ってきたなら
大丈夫。

268 :NAME IS NULL:04/08/12 02:39 ID:???
>>262
このへんの本を買ってみては。

これならわかるOracle超入門教室
http://www.amazon.co.jp/exec/obidos/ASIN/4798104116/250-8340448-4058618

Oracle データベース管理を極める13章
http://www.amazon.co.jp/exec/obidos/ASIN/4881359681/250-8340448-4058618

Oracle達人技ベスト
http://www.amazon.co.jp/exec/obidos/ASIN/4798105449/250-8340448-4058618

あとメモリ128じゃつらい、というかハードウェア要件を満たしてないので
増設してもらうべき。


269 :NAME IS NULL:04/08/15 00:12 ID:xOjIZ/7h
会社で、ACCESSを使ったDBの設計をしたいのですが
どこか良い業者しってませんか?
大阪にある会社何で、業者も大阪近郊が望ましいです。
社内SEにやらせるという、やり方よりも業者を使って構築する方法
で考えてます。宜しくお願いします。

270 :Po:04/08/15 21:47 ID:???
>>269
上場企業で、大阪支店のある業者。
ここで具体的な名前だしていいのかわからんから
あえてふせておくが、Accessで開発してるところあります。
システムトラブル時の対応も早いです。

271 :NAME IS NULL:04/08/16 01:07 ID:yz1bWMbI
>270
お願いします。せめてもう少しヒントください。
無茶苦茶困ってるんです。
たのんます。

272 :NAME IS NULL:04/08/17 22:58 ID:???
>>271
捨てメアドでも晒してみたら?

273 :NAME IS NULL:04/08/18 10:53 ID:Bat91ee4
{本の名前 varchar, 売り場ID int, 価格 int}というフィールドがあったとして,
『売り場毎に一番高い本の名前を得る』クエリを実現したいのですが,

 SELECT 売り場ID, MAX(価格)
 GROUP BY 売り場ID

とすると,本の名前が出せません・・・。一つのクエリで実現する方法が
あったら教えてください.

274 :NAME IS NULL:04/08/18 11:53 ID:itoabxy9
DB2でテンポラリ・テーブルスペースの作成コマンドを入力したら
SQLSTATE=428CBが発生しました。これはページ・サイズが
表スペースと関連付けられたバッファー・プールの
ページ・サイズと同じではない場合のエラーとのことでした。

次に同じコマンドにバッファー・プール名(ページ・サイズ同じ)を
指定して実行したところ、sqlstate=57003
「指定されたバッファー・プールは活動状態ではありません。」
発生してしまったのですが、こちらはどう対処したら宜しいのでしょうか?

宜しくお願い致します。

275 :すいません:04/08/18 23:42 ID:9YX8lYZ0
MySQL4.0についての質問なのですが、
もしかしたら、ふざけるなと怒られるかもしれませんが当方まじめに悩んでいます。
お力をお貸しください。

設定で、my.cnfをいじろうとマニュアルを読んだのですが、
my.cnfに書くことができる設定が多すぎるのと、

パラメータと、設定できる範囲、推奨値等を検索しながらmy.cnfをいじっていたのですが、
マニュアルだと、MyISAM, DBD, InnoDB, sqld, セキュリティとパラメータがべつべつの場所に
記載されているのと、グループもどんなグループが利用できるのかもわからず
どつぼにはまってしまいました。

my.cnfの
システム全体に利用するパラメータ, パラメータの説明, 設定範囲, 推奨値、
グループごとに利用できるパラメータ, パラメータの説明, 設定範囲, 推奨値の
一覧てどこかに無いでしょうか?

環境は
MySQL: 4.0.20
OS: RedHatLinux9.0
言語:PHP4.0
です。

駄文長文申し訳ありませんがよろしくご指導ください。

276 :NAME IS NULL:04/08/19 10:37 ID:RvHBTDEp
恥ずかしい質問なのですが、教えてください。(*- -)(*_ _)ペコリ
1つのテーブル内の、
2つのフィールドの計算結果を別の1つのフィールドに自動計算したのですが、
どうすればいいのでしょうか?計算式がわかりません。
MySql+phpAdmin つかってます。
例)hogeテーブル
 フィールド hoge1 int(5)
 フィールド hoge2 int(5)
フィールド hoge3 int(5) <-ここに、 例えばhoge2-hoge1 の結果を出したい

277 :NAME IS NULL:04/08/20 00:16 ID:???
>>276
テーブルでは無理じゃない?
ビュー作ってビューで計算するのがよさそうだけど

278 :NAME IS NULL:04/08/20 09:47 ID:XS0zbX2d
>>277
やはり、無理でしょうか・・・・

hoge1とhoge2をselect文で取りだして、
計算結果を hoge3にINSERTする方法でやってみます。

279 :NAME IS NULL:04/08/20 13:00 ID:39fYexR2
>>276
Firebirdなら計算型の列を作れば可能なんだが。

280 :NAME IS NULL:04/08/20 16:34 ID:???
トランザクションって何故必要なんでしょうか…?
データベースの試験で出た問題(「トランザクションとは何か。また、何故必要か」)なんですが、何故って言われてもって感じです。

281 :NAME IS NULL:04/08/20 19:32 ID:???
ロックが必要だから

282 :NAME IS NULL:04/08/20 19:37 ID:vDurVTZ+
イースト社のskylinkというソフト(http://www.est.co.jp/skylink/
に関して、ネット上での解説ページや2chでの関連スレッドをご存じの方が
いらっしゃったら、ご教授ください。

今度働き始めた仕事場では、今まで紙に打ち出されていたデータを手でエクセルに入力していたのですが、
skylinkを操作してもっと簡単にデータをエクセルに移せるようにしろという
仕事が回ってきたのです。グーグルで検索してもほとんど情報がないので
困っています。どうかよろしくお願いします。

283 :NAME IS NULL:04/08/21 02:39 ID:???
>>281
ロックが必要…?競合アクセス(データ変更)が起こらないようにって事ですか?

284 :NAME IS NULL:04/08/21 16:20 ID:1QxAMdUd
すれ違いかもしれませんが、
黒船っていう電話帳のデーターベースソフトについて、教えてください。
発売元がもうないので、サポートセンターに電話しても、つながりません(当たり前ですが)

当方所有しているのは、2004年の全国版です

それで、質問なのですが

ある地域の、法人をすべて検索させるようにしたいのですが
半角の( を入れると鰍竍汲ヘ、検索できるのですが
みなし法人は、検索しかねます。

なにか、よい方法はありますか?
ご存知の方お教えください。

285 :NAME IS NULL:04/08/22 04:16 ID:vnDIxQ82
当方超初心者でAccess使ってテーブル作成してます。
顧客テーブルからID項目を明細テーブルにコンボボックス形式で引っ張って
こようと考えております。
ドロップダウンリストのボタンを押して表示するのはIDと顧客名にします。
表示された中から選択して決定する訳ですが、明細テーブルにあるのは
ID項目ですので顧客名までは表示されません。
この場合に顧客名まで明細テーブルに表示したいのですが、何か簡単な方法
があるのでしょうか?

ほんとに初歩的な質問で恥ずかしい限りですが、どなたかご教授頂けません
でしょうか。
よろしくお願いいたします。

286 :NAME IS NULL:04/08/22 10:59 ID:HXdAQdIP
すいません、激しく困っております。どなたか知恵を貸してください。

表[FOO]
PARAM01 NUMBER
SUBPARAM01A NUMBER
SUBPARAM01B NUMBER
PARAM02 NUMBER
SUBPARAM02A NUMBER
SUBPARAM02B NUMBER
...(中略)...
PARAM99 NUMBER
SUBPARAM99A NUMBER
SUBPARAM99B NUMBER

表[BAR]
SUBPARAMS NUMBER

こんな表FOOとBARがあったとして、
FOOのPARAMxxの値が特定値だった場合にSUBPARAMxxA,SUBPARAMxxBの値を表BARのSUBPARAMSに入れたいのです。
カラム方向に進むカーソルなんて無いですよね……
いい方法は無いでしょうか。
カラム名だけ違う処理を99個並べるのは避けたいところ……

287 :286:04/08/22 11:01 ID:HXdAQdIP
すいません、環境はORACLEのPL/SQLです。
PL/SQL歴は3日くらいです。

288 :NAME IS NULL:04/08/22 14:15 ID:???
元のテーブルの設計が悪いということは分かってると思うけど、
それはそれとして、VIEWを作ったらうまくできないかな?

create view foo_view as
select param01, subparam01a, subparam01b from foo
union
select param02, subparam02a, subparam02b from foo
union

;


289 :gege:04/08/22 15:49 ID:8OlrCLzp
http://player.bugs.co.kr/mv30/mvplayer.asp?idx=mpop0M21001

こういうのってどうやったら保存できるのでしょうか。
ソフトが必要なのでしょうか。

290 :NAME IS NULL:04/08/22 17:13 ID:???
MySQLのphpmyadminでOverload ってのがありますが、
これって負荷と同義で考えて問題ナッシングでしょうか?


291 :286:04/08/23 02:04 ID:XUUpXaQv
>>288
VIEWですか……でも結局一度はSELECT文を99個並べないといけないんですよね。
DBの構造が決定的に悪いのが原因なので、明日作成者に文句を言ってきたいと思います。
ご回答ありがとうございました。

292 :NAME IS NULL:04/08/23 05:40 ID:???
CASEが使えるDBだからCASE使って力技で出来ないかな?

293 :NAME IS NULL:04/08/23 15:45 ID:???
動的にSQL文くみたてればええやん
oracleの8以降ならできるっしょ
>>287

294 :NAME IS NULL:04/08/25 06:43 ID:???
Access の(ものらしい).mdb ファイルを mysql で扱えるようにする事って出来ますか?
もちろん Access は持ってないです。

295 :po:04/08/25 15:46 ID:???
>>294
一発変換はむずいだろうな。
何段階か踏んでいいのなら、Access持って無くても出来る。

296 :NAME IS NULL:04/08/25 23:02 ID:???
select ローション from 2ch
where ペペ=(

相関副問い合わせって、この後にどんな感じになるんでしょうか???
相関副問い合わせはよく解らんです。

297 :NAME IS NULL:04/08/26 10:21 ID:GBTb/k10
ある製品を購入したら、SQLServer2000DeveloperEditionの開発用およびテスト用限定版という
CDがついてきて、これでテストしてみたいと思うのですが、これの製品版と違うところって何がちがうのですか?

298 :NAME IS NULL:04/08/26 20:05 ID:???
シスアドスレで一日反応がなかったのでこちらで質問します。
シスアド参考書の問題に
「SELECTやINSERT文はデータ定義言語の一つである。」
って書いてるんですけどデータ操作言語じゃないんでしょうか?
なぜデータ定義言語なんでしょうか?


299 :NAME IS NULL:04/08/26 22:18 ID:???
問題に書いてあったんだったら「答は×」でいいんじゃなかろうか。

300 :NAME IS NULL:04/08/27 20:59 ID:???
>>297
本番環境で使っちゃダメってこと。
DeveloperEdition = 開発用およびテスト用限定版 という意味。

301 :300:04/08/27 21:03 ID:???
機能的にはDeveloperEditionとEnterpriseEditionは同等。
http://www.microsoft.com/japan/SQL/evaluation/overview/Feautures.asp

302 :NAME IS NULL:04/08/28 00:29 ID:???
組み込み系で使えるフリーのDBって無いですか?
電断対策用にトランザクションがあればあとはショボショボでいいです。

303 :NAME IS NULL:04/08/28 07:20 ID:???
Firebirdなら、WindowsとLinux用のDLLや.soのみで動作するアプリ組み込み用エンジンがある。
とりあえず商用でもフリーで使えるな。

304 :NAME IS NULL:04/09/02 15:33 ID:vOQvIN82
済みません、教えてください。
AとBという2つのテーブルがあります。
両テーブルともIDと日付、その他のフィールドがあり、IDと日付がキーになります。
各テーブル毎に抽出条件を指定し、ヒットしたレコード件数(A+B)の合計を求める。
ろいう式を1つのSQL文で実現させるにはどうすればよいのでしょうか?

お願いします

305 :NAME IS NULL:04/09/02 23:17 ID:ql3TmYBD
AとBが1対1か1対多かわからんな、そもそも関連づけされてるのかはっきりしないな

select count(*) as Acnt from A
where (Aの抽出条件)

select count(*) as Bcnt from B
where (Bの抽出了見

Acnt + Bcnt 。。。外してる気がするぞ

306 :NAME IS NULL:04/09/03 07:46 ID:???
というよりも、前提 DB もわからんし。学校の宿題かなんかかね。
とりあえず疑問のおいらの解釈があってて、Firebird ならこれで行ける。
一応1行SQLになってるが。まぁ2回 SELECT してるとも言えるが。

SELECT
(SELECT COUNT(*) FROM tbl1 WHERE id = 1)
+(SELECT COUNT(*) FROM tbl2 WHERE id = 2)
FROM RDB$DATABASE;


307 :NAME IS NULL:04/09/03 15:14 ID:KILaEJEu
Oracle も PostgreSQL も、トランザクションレベルを serializable に設定
しても厳密に serializable にはならないようですが、それぞれ何が保証され
て何が保証されないのでしょうか。適当なレファレンスはありますか?
(Oracle はかなり頑張っていますが、複数のトランザクションが複数のテーブ
ルにアクセスする場合、アクセス順によっては serializable でなくなります。)

strict two-phase locking による serializability 保証をしないのはパフォー
マンスが落ちるからでしょうか。いずれにせよ自分で LOCK すれば問題ないの
ですが、serializable の看板に偽りがあるのは何となく腑に落ちません。


308 :NAME IS NULL:04/09/04 00:31 ID:7Z38XOom
>307
ORACLEマニュアル(データベース概要)によるとserializableにした場合、
・内容を保証しない読込み(ダーティーリード)
・仮読込み (ファントムリード)
・未コミット読込み(繰返し読込み不可)
が起きないって書いてある。
実装上は、serialに処理できないときは、ユーザーへエラーを返すからそれを
ハンドリング(リトライとか)しろということみたいだけど。
厳密にserializableにならないってどういう意味?

309 :NAME IS NULL:04/09/04 10:03 ID:fpCYAHNF
ちょっと欝になるな・・・

【美人は】イエローキャブタレント候補生の痴漢アンケート【狙われる?】
 http://news17.2ch.net/test/read.cgi/news7/1092227664/l50


310 :307:04/09/04 12:44 ID:DURbHXe3
>>308

レスありがとうございます。。厳密に serializable でないケースというの
は、たとえば A, B, C, D という 4 つのフィールドがあり、初期状態では
A=B=1, C=D=2 であったとします。これらのフィールドにトランザクション
T1, T2 が以下のアクセスをする場合、

T1 ... BEGIN; B:=A; C:=B; COMMIT;
T2 ... BEGIN; D:=C; A:=D; COMMIT;

たとえば T1 が終わった後に T2 が実行されるならば、最終的には A=B=C=D=1
となり、逆に T2 が終わった後に T1 が実行されるなら、A=B=C=D=2 となりま
す。T1 と T2 が serializable のレベルで分離されているのであれば、この
2 つ以外の結果が生じることは無い筈です。

ですが、アクセス順が以下の場合

時刻: t0 < t1 < t2 < t3 < t4 < t5
T1: BEGIN; B:=A;     C:=B;     COMMIT;
T2: BEGIN;    D:=C;     A:=D; COMMIT;

PostgreSQL では A=2, B=C=1, D=2 となります。Oracle の場合、A,B,C,D が
同一テーブル内に存在する場合は、t4 の時点で「シリアル化できません」と
いう正しいエラーを返すのですが、それぞれが別のテーブルにある場合は
PostgreSQL と同様の動作をします。

Oracle の「データベース概要」によれば、Oracle の「シリアル化可能」モー
ドでは読込みが書込みをブロックしないとあるのでそれが原因なのかも知れま
せんが、同一テーブルだとブロックしたりするんですよね…。訳がわかりません。


311 :NAME IS NULL:04/09/06 10:17 ID:EJvheeEO
フリーのデータベース無い?
写真が貼り付けられる香具師キボン。

312 :NAME IS NULL:04/09/06 16:32 ID:???
関連リンク。ム板より転載。
http://program2ch.jugem.cc/

313 :NAME IS NULL:04/09/08 10:25 ID:???
CPU換装したら、ここで試せや↓
http://www5e.biglobe.ne.jp/~liquor/raytrace/

314 :NAME IS NULL:04/09/11 00:06:55 ID:???
クエリアナライザやCSE的な、ODBC接続してSQLを入力やその結果を表示させる
事をGUIでできる物を探しています。
確かにCSEは重宝しているのですが、他にあれば試してみようかなぁと。
クエリアナライザの様に、MDI的に複数のクエリと結果を表示できるものなら
試してみたいと思っています。

315 :300:04/09/12 15:30:39 ID:???
>>314
ベクターでSQLを検索するとそれっぽいのがいくつか出てくるけど
CSE以上のものはあまりなさそう
DBMSを限定すればよさげなのもあるけど、汎用だとあまり無いと思う

316 :NAME IS NULL:04/09/12 15:31:29 ID:???
う、名前が残ってた...orz

317 :NAME IS NULL:04/09/12 22:48:37 ID:fIWv22ST
IMEの辞書(〜.dic)をACCESSに取り込むことは可能でしょうか?
可能だとすればどのように取り込むのでしょうか?

お願いします。

318 :Po:04/09/12 23:12:42 ID:tByQwywY
>>317
取り込んで何をやりたいの?

319 :NAME IS NULL:04/09/13 00:13:28 ID:6euF9AeP
エクセルでひとつのセルに
東北支社
江口
といれたいのですが

東北支
社江口

となってしまいます

どうしたらいいですか・

320 :名前:04/09/13 01:29:43 ID:tgZuAvPf
>>319
ALT + ENTER でセル内での改行ができる

そうゆう問題ではない?


321 :NAME IS NULL:04/09/13 03:26:41 ID:???
>>319
ビジネスsoft板 / Excel総合相談所 26
http://pc5.2ch.net/test/read.cgi/bsoft/1091619391/

322 :317:04/09/14 01:27:22 ID:GCh/BwST
>>318
氏名変換を行いたいのです。

323 :NAME IS NULL:04/09/14 08:58:36 ID:???
>>322
ユーザー辞書なら辞書ツールでテキストに出来るはずだけど
システム辞書は無理

324 :NAME IS NULL:04/09/14 14:02:10 ID:gg6bxN74
殺人予告キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
               祭り開催中!

 http://sports7.2ch.net/test/read.cgi/npb/1095129291/


325 :NAME IS NULL:04/09/14 17:10:19 ID:???
LinuxでMySQL4.0.17を設置しています。
phpMyAdminで私と友人がサーバにアクセスして
それぞれのデータベースを観覧出来るようにしたいのですが
なぜかphpMyAdminを設置したらすべてのデータベースが
観覧出来てしまいます。

webminでデータベースの許可をそれぞれのユーザー名に
しているのですが、なぜでしょうか?何か良い方法はありませんでしょうか?


326 :NAME IS NULL:04/09/14 18:10:49 ID:/ddH8o1C
OleDBAdapterを使用しているのですが、
Fillを実行すると「DB_E_OBJECTOPENがありません」といわれます。
どーしたらいいでしょうか?エラい人!
以下ソース
cn = New OleDb.OleDbConnection(cns)
adpt = New OleDb.OleDbDataAdapter("SELECT * from hogehoge", cn)
dset = New DataSet
adpt.Fill(dset, "SELECT")


327 :名無しさん:04/09/15 18:02:00 ID:k8kWif2E
SQLサーバです。
クエリでSQL文を実行してリレーションを削除したいのですが、
リレーションの名称が不明な場合でも削除できるような
SQL文があるのでしょうか?


テーブル1(A列,B列,C列)
テーブル2(a列,b列,c列)
外部キー:テーブル2.a→テーブル1.A

このときSQL文によってリレーションをはずしたいです。

328 :へたれ人:04/09/15 22:55:49 ID:pO9Is1vb
MS-Access2003について質問があります。

とあるテキストフィールドに格納されているパス(例:C:\....\テスト.txt)を
フォームにあるボタンで 開くように作りたいのですが Docmdなどを
探してみても 該当のメソッドが見つかりません。

目的としては 大量にある文書(Txt/Doc/pptなど)をDBでパス管理し、
必要な時は 「開く」ボタンを押下する...というDBを作っています。

パス情報は格納されているので あとはそのファイルをAccess上から「実行」
させるだけなのですが・・・・。

冴子先生と色々やり取りしたのですが 進展ナシです。

非常に初歩的な質問ですが どなたかお分かりの方いれば 教えてください。


環境:Windows2000
App:MS-Acess2003


329 :NAME IS NULL:04/09/15 23:03:50 ID:???
>>327

drop table テーブル2
go

330 :Po:04/09/15 23:14:18 ID:???
おれも328と同じ問題でぶつかって結局解決できんかったなぁ。。。
みんないったいどうやってるんだろ。。

331 :328:04/09/15 23:20:54 ID:???
>>330
ああ、やっぱり そうでしたか。
ウィルスとかを自動実行されると困るということで こういう機能は簡単に
は実行でいないようになっているのでしょうか...。

332 :NAME IS NULL:04/09/16 03:40:21 ID:XsgY9Ucc
新しく会社にパソコン導入するときのシステム管理って
どんなところに依頼したらいいんでしょうか?
「カスタマーエンジニア」とかで検索しても、採用情報ばっかり
出てきてよく分からないのです。。
誰か詳しい人がいたら教えて下さい。

333 :NAME IS NULL:04/09/16 04:37:52 ID:???
>>328,330
VBAでshellステートメントを使うんじゃないの?
DB板で扱う内容じゃないだろうから、
わからなければプログラム板かビジネスソフト板へGo

334 :在日朝鮮人特別優遇制度断固反対:04/09/16 10:32:52 ID:???
ほんと反対だよなー

335 :Po:04/09/17 06:35:23 ID:???
>>332
どんなシステムいれたいの?


336 :NAME IS NULL:04/09/17 13:25:30 ID:H8218lP1
>>335
私の知り合いが悩んでたのでここで聞いてみたのですが、
どんなシステムかは分からないです。。
たぶん、使うのは既存のソフトで文書作成とかがメインだと思います。
Windowsで、一太郎とかも使いたいらしい。。
小さな事務所で、故障とかのメンテナンスをしてくれるところを探してるみたいなのです。
良いところを探せる検索サイトみたいなのってありますか?

337 :Po:04/09/18 15:48:37 ID:???
それがデータベースとどう関係しているのかが良く分からん。。。
ファイルサーバを置くシステムにして欲しいとかそういうの
なのかなぁ。

338 :NAME IS NULL:04/09/19 14:00:33 ID:???
>>336
SOHO系で安くやってくれるようなとこ探してみては?
あと場所とかはっきりさせたら、フリーでやってる人とかで請け負ってくれる人がいるかもしれません。

339 :NAME IS NULL:04/09/19 20:43:40 ID:???
>>336 既存のソフトしか使わないんだったら、業者に頼まないで DELL とか HP とかの
直販PC を買っとけばいいよ。HPなんかだと有料オンサイトサポート契約とかあるし。

そこらの業者に頼んでもメーカーの間に入って仲介してくれるだけで、自発的に
問題分析・解決してくれるところなんてほとんどないよ。メーカーの電話サポートと同じで
「あれを試して。これを試して。」ってひたすら言われるだけ。

うちは小さなソフト屋なんだけど、PC一般の詳細なサポートはできないので、
ユーザーには、ハードウェアメーカーのサポートに入ってもらうようにしています。
昔は間に入ってマージンとっていたけど、レスポンス悪くなるし評判悪かったので。

340 :NAME IS NULL:04/09/21 11:54:18 ID:???
物凄くツマラソ質問だと思うが、

連番 ID  グループ
1   100 A
2   100 B
3   101 C

みたいな表がある時に、SQLで
100,AB
101,C
のように出す方法ってありますか?

341 :NAME IS NULL:04/09/21 18:00:33 ID:R8iG8GKj
Apache/1.3.31 + mod_php + php4.3.8 + PostgreSQL 7.3.2
で小規模なデータベースとウェブのゲートウェイを運用しています。
以下のような問題が発生して困っているのですがどなたか
解決策をご存じないでしょうか。

2〜3日運用していると「too many clients」で
データベースに接続できなくなってしまいます。
数時間ほったらかしておいても直りません。
postgresql.confのmax_connections、httpd.confのMaxClients、
php.iniのpgsql.max_links値などを調整しているのですが
いまいち直る気配がありません。現在は以下のようになっています。

MaxClients 30
max_connections = 128
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = 0
pgsql.max_links = 1

342 :NAME IS NULL:04/09/22 11:17:30 ID:y+gZ3JeN
質問です
SQL Server2000からSQL Server6.5が見れない(接続できない)のですが何か特別な
設定しないといけないのでしょうか?もしくは根本的に不可能なんでしょうか?
よろしくお願いしますm(_ _)m


343 :NAME IS NULL:04/09/22 21:42:25 ID:???
>>342
普通に繋がるはずだけどな。
具体的に何をしたくて、何をどう設定したのか、
どういうエラーになったのか書かないと答えようがない

344 :NAME IS NULL:04/09/22 23:01:32 ID:uHOk+Qns
候補キー(candidate key)についてdateの本で詳しく
調べています。その定義は一意性(uniqueness property)と
規約特性(irreducibility property)らしいのですが、
関係Rに対する候補キー
「Kの真部分集合が一意性をもたない」
の意味がわかりません(理解できませんでした)。
ご教示ください。

345 :NAME IS NULL:04/09/22 23:19:27 ID:???
すまん。かなり困っているので教えてくれ。

MySql(Ver4.0.20)とPHPを使って40万件のテキストデータを検索するDB作っているんだけど、
キーワードから検索する時のレスポンスがヤバイぐらいに遅いっす。

誰か、MySqlレスポンス上げる方法知らないっすか?
今んとこ考えているのはデータを適当な大きさで分割するぐらいっす。

クグってみたけどイイ!!って方法なかったっす・・・。
イイ知恵ないかな?

346 :NAME IS NULL:04/09/22 23:46:50 ID:???
>>344

Kが(A,B,C)列からなる場合、その真部分集合である(A,B)や(B,C)で
ユニークになるならばKは候補キーではないということ。
逆に候補キーKに任意の列を追加した(A,B,C,D)も(キーとしては
有効に働くけれども)候補キーではない。
要するに行を一意に識別できる最小の組み合わせが候補キー。

347 :NAME IS NULL:04/09/22 23:52:23 ID:???
>>346
わかりました!なんかモヤモヤしていたものがスッキリ晴れた感じです。
多謝!

348 :NAME IS NULL:04/09/23 00:54:33 ID:???
mysqlで何か構築したい。
バイト先の在庫/発注管理みたいなの作ろうか、
情報処理技術者試験のSWやDBの問題をお手本に作ろうか
迷っているYO!
どっちがいいとおもふ?

349 :NAME IS NULL:04/09/23 02:54:49 ID:???
postgresqlにしれ。
サンプルも解説もネット上にイパーイあるYo!

350 :NAME IS NULL:04/09/23 05:18:47 ID:???
どっちでも大差ないだろ

351 :NAME IS NULL:04/09/23 11:44:03 ID:???
>>349
windowsでできないからやだ

352 :Daccess:04/09/23 13:09:34 ID:???
>>351
Cygwin使えばwindowsでもできるし、
accessからも接続できる。

353 :NAME IS NULL:04/09/24 11:03:38 ID:kDkdQSOn
すみません、質問です。

クライアントから、「OracleDBからMySQLへの移行を行い、御社へのサーバへの
設置を一週間で出来ないか?」との質問がありました。
これはどのくらいの難易度なのでしょうか?
DBの規模としてはかなり小さいものらしいのですが・・・

当方、DBの知識などほとんどなく、詳しい人に電話入れたら会社消えてたorz ので、
どう返答すれば良いか困惑しています。
どうかお知恵をお貸しください。よろしくお願いします。

354 :NAME IS NULL:04/09/24 11:40:36 ID:wvIcpsVv
すいませんORACLE初心者です
サーバを立てて試しにDB作成しテーブルを試作してみました
クライアントからサーバに接続成功したのですが
作成したテーブルを見るコマンドがわかりません
教えてください。

355 :NAME IS NULL:04/09/24 14:31:25 ID:???
>>354 無理。やめとけ。
データベースを単なるストレージとしてしか使用していないのであれば不可能ではないが…。
たいていは、データベース自体にビジネスロジックを実装している(トリガーやストアドなど)
そうなると、データベース製品の変更というのは、ほとんど不可能だと思ったほうがいい。

データベースの変更が可能なケースとしては、Java などのアプリケーションフレームワークを
用いている場合くらいか。アプリケーションフレームワークを使用している場合は、
バックエンドのデータベースは単なるデータストレージとして使われていることがあるので、
その場合は、データベースの変更も不可能ではない。



356 :355:04/09/24 14:31:49 ID:???
すまん >>353 宛て。

357 :NAME IS NULL:04/09/24 14:51:25 ID:???
978:2ちゃんねるも閉鎖 09/24 14:05 [sage] [sage]
高須クリニック顧問の 宮道佳男弁護士という人物には呆れます。
小遣い欲しさに盗撮盗聴八ッキングを長期にわたり仲間と共に行い(2ちゃんねる管理運営人含む)
被害女性(友人・知人ですらない)http://nikkan.gaiax.com/home/tubaki_hime/diary
の生活・情報を多くの人間に晒し、商用利用し なおかつ被害女性を
「あの人は、仕事で金を受け取って、自分を晒しているから問題ない。
彼女は私を好きで貢いでくれてるくらいだし。」と 周囲に言いふらし捏造工作したのである。
破廉恥悪質極まりない犯行である、といわなければならない。

358 :353:04/09/24 18:26:48 ID:???
>>355
御回答ありがとうございます。
内容的にはFlash(のようなもの)から、対戦ゲームを可能にするシステム
の構築なので、不可能ではないと他の方面から言われました。
ただ、その場合でもその納期では受けられないと言われましてorz

これを期に本気でMySQLを勉強してみようかと思うこの頃です。

359 :NAME IS NULL:04/09/24 21:46:40 ID:???
>>358 これからデータベースを学ぶのであれば、MySQL はやめたほうがいい。
MySQL の安定版では、サブクエリもトランザクションも実装されていないので
解説書などでも、その辺のことは触れられていないと思う。

いまのところ、MySQL は高速な参照を必要とする場合に使うべきものであって、
OLTP が可能なデータベースとは言い難い。

同時に、PostgreSQL とか MSDE を学ぶといいんじゃないかな。

360 :NAME IS NULL:04/09/25 17:03:44 ID:???
>>354

select
table_name
from
user_tables

で、存在しているテーブルの名称一覧が出てくるよ。

そっから先? は独学してね。

361 :NAME IS NULL:04/09/25 23:40:30 ID:???
トランザクション管理について、厨房質問です。
トランザクションの持続時間は、どのぐらいまでなら可能なのでしょうか?

具体的には、Webアプリケーションで、あるテーブル内容の一覧を取得して、
それをユーザが部分的に修正して書き込むという作業を排他制御したい
(そのユーザがコミットするまで、他のユーザは閲覧のみ)ということなのですが、
これを実現するのにトランザクション制御は使えるのでしょうか?

開発言語はJava, DBはLinux版のMySQLを考えています。
当然、複数回のアクセスになりますが、コネクションオブジェクトをセッションに
登録すれば、接続自体は切れないと思うのです。

それとも、やはりトランザクションはこういう用途を想定してはいないのでしょうか?

362 :361:04/09/25 23:45:06 ID:???
あと、トランザクション制御について、きちんと学ぶのに良い資料をご紹介
願えないでしょうか?

今は、TechScore のトランザクションに関する項目を一通り読んだ程度の
知識しかありません。
様々なアクセスモードや隔離レベルを、どのような局面で使うのが有効なのか、
実例で学べるような資料を望んでいます。

どうかよろしくお願いします。


363 :NAME IS NULL:04/09/25 23:59:55 ID:6qHV0nPR
関係代数のσ制限 π射影 ×直積 −差 ∪和 等の記号は、
誰の何が初出ですか?

364 :NAME IS NULL:04/09/30 10:38:21 ID:t95dMYw7
LinuxやMacOSXでAccessみたいにランタイム環境再配布無制限なDBって
ありますか?もしくは組み込み型サーバで機能限定すれば無制限または
安価に再配布できるものとか?

MySQLが好きで使ってるんですが、1本あたり3万なんて払えましぇん

365 :NAME IS NULL:04/09/30 10:46:41 ID:???
>>364
PostgreSQL

366 :364:04/09/30 11:21:25 ID:t95dMYw7
>>365
ありがとうございます。BSDライセンスだったんですね。勘違いしてました。

367 :NAME IS NULL:04/09/30 11:39:55 ID:???
Firebirdも商用で配布無料だ。

368 :NAME IS NULL:04/09/30 13:58:24 ID:T4vHrJcd
Oracleですが

テーブルA
---------
カラムA1
カラムA2

テーブルB
---------
カラムB1
カラムB2

というテーブルにそれぞれデータあるとすると、

テーブルAのカラムA1とテーブルBのカラムB1が同じ
テーブルAのカラムA2にテーブルBのカラムB2を挿入したい

ってときはどんなSQL文になりますか?

369 :368:04/09/30 13:59:41 ID:T4vHrJcd
テーブルAに
---------
カラムA1:0001
カラムA2:null

カラムA1:0002
カラムA2:null

カラムA1:0003
カラムA2:null

テーブルBに
---------
カラムB1:0001
カラムB2:cmnt1

カラムB1:0002
カラムB2:cmnt2

カラムB1:0003
カラムB2:cmnt3

ってある時に、楽にテーブルAのデータに

カラムA1:0001
カラムA2:cmnt1

カラムA1:0002
カラムA2:cmnt2

カラムA1:0003
カラムA2:cmnt3

と挿入したい。

370 :NAME IS NULL:04/10/01 10:58:51 ID:???
not existsだっけ?こんなんでいけるんちゃう

371 :NAME IS NULL:04/10/01 11:14:46 ID:Nzecy8hf
質問なのですがリーダライタを使って携帯電話のMINI SDのデータをPCへ移しました。
ですがデータが全て見れないです。
例えば、画像だと夕日?のマークは出てるのですがクリックすると「表示できません」
こんな感じです。見れるようにする対処法教えてくれませんか?

372 :NAME IS NULL:04/10/01 22:13:15 ID:???
>>371
板違い
携帯板に行って来い

373 :NAME IS NULL:04/10/01 23:29:41 ID:???
>>371 心眼かもしくは脳内視を使うかのいずれかだな。

374 :NAME IS NULL:04/10/02 00:00:47 ID:UceS/lAX
Oracleで質問です。
アーカイブログファイルが吐き出されている途中なのか
それとも完了したものかを調べるのはV$ARCHIVED_LOGの
ARCHIVEDが「YES」かどうかを調べればOKなのでしょうか?


375 :NAME IS NULL:04/10/02 04:57:54 ID:lW1ESirt
おお、ここにも物質が!
記念カキコ

376 :NAME IS NULL:04/10/02 21:10:00 ID:???
○×で答えてください。
1、DBMSはデータベース(以下DB)に関するユーザ情報、アクセス方法、データ構造などDBを管理する情報も管理している
2、SQLはDB定義、DB操作、トランザクション管理といった機能を有しており、SQLさえあればアプリケーションが開発できる。これがSQLを標準化した理由である。
3、SQLによって既存の表を削除するにはDELETE文を用いる。
4、正規化はリレーショナル型DBへのアクセス効率を向上させるために行うものである。
5、あるリレーショナルのある属性値が、常にある特定のリレーショナルの主キーの値のいずれかに一致しているときに、この属性を外部キーという。
6、企業内のデータは事務内容などが変化しない限りさほど大きく変化しないという考えに基づいて、データ郡の基盤としてアプリケーションの設計を進めるのアプローチがDOAである。
7、トランザクション管理においては、DBへの更新をすべて完了したか、または、まったく更新されないことにする、という考えを取ることでDB内の一貫性を保っている。
8、表(リレーション)に複数損愛する列の中で、キーとなりうる列のことを候補キーとよび、その中で一番左側に位置するキーを主キーと呼ぶ
9、頻繁にアクセスが必要なデータは1台のHDD内に配置したほうがパフォーマンスの面からもデータ保全の意味合いからも望ましい。
10、リレーショナルモデルでは、1つのリレーション内で、各属性は第1列、第2列といった順番で区別がつけられるので、属性名としては重複した名称をつけることが出来る。

以上が課題として出ているのですがよくわからないのでお願いします。

377 :NAME IS NULL:04/10/02 22:12:16 ID:???
>>376 →不可

378 :NAME IS NULL:04/10/03 18:46:16 ID:???
勉強は自分でやれよ。
ノートの丸写しじゃ仕事はできんぞ。

379 :NAME IS NULL:04/10/03 22:14:19 ID:f+3NbXHa
非第五正規形について調べています。
関係SPJがあったとして

S#|P#|J#
========
S1|P1|J2
S1|P2|J1



S2|P1|J1 を追加する場合、必ず
S1|P1|J1 も追加しなければならないと
DATEの本に書いてあるのですが、
理由が理解できませんでした。
何故ですか?ご教示願います。

380 :379:04/10/03 22:25:48 ID:???
もしかして、結合従属性という一種の制約のようなものが掛かるからですか?

381 :379:04/10/03 22:43:20 ID:???
それか、或いは、結合射影の例外を誤魔化す為ですか?

382 :NAME IS NULL:04/10/04 00:29:38 ID:yt8/2vKl
誰か年金データベースをデータモデリング汁!

383 :NAME IS NULL:04/10/04 00:52:27 ID:???
>>379
んな質問じゃ誰も答えられるわけないがな。
まずは初心者向けの本を読んで基本を押さえて、意味の通る
質問ができるようになるのが先。

384 :NAME IS NULL:04/10/04 01:01:05 ID:???
>>381
結合射影の例外って何?
ぐぐっても出てこない用語を勝手に作るな。

385 :NAME IS NULL:04/10/04 12:31:15 ID:???
質問です。

TABLE1 に二つのキーフィールド FIELD_A, FIELD_B があり、
同様に、
TABLE2 に FIELD_B, FIELD_C
TABLE3 に FIELD_C, FIELD_A が存在しているとします。

SELECT
  TABLE1.*, TABLE2.*, TABLE3,*
FROM
  TABLE1, TABLE2, TABLE3
WHERE
  TABLE1.FIELD_A = TABLE2.FIELD_A
AND
  TABLE2.FIELD_B = TABLE3.FIELD_B
AND
  TABLE3.FIELD_C = TABLE1.FIELD_C

上のような キーの参照関係が循環している SQL があるとします。
これを JOIN 〜 USING 句を使って書き直すことができるでしょうか?

386 :NAME IS NULL:04/10/04 14:35:39 ID:???
SELECT ALL * FROM TABLE1 INNER JOIN TABLE2 USING (FIELD_B)
INNER JOIN TABLE3 USING (FIELD_C, FIELD_A);

387 :NAME IS NULL:04/10/04 14:56:39 ID:???
SELECT * FROM TABLE1 NATURAL JOIN TABLE2 NATURAL JOIN TABLE3;

388 :385:04/10/04 16:10:38 ID:???
すみません、こちらの DBは MySQL 4.0なのですが、
JOIN区にはその前後二つのテーブルのフィールドしか指定できないようなのです。

つまり、
TABLE1 と TABLE2 の関係、TABLE2 と TABLE3 の関係は指定できますが、
TABLE1 と TABLE3 の関係は指定できないようなのです。

SELECT *
FROM
  TABLE1
INNER JOIN
  TABLE2 USING(FIELD_A)
INNER JOIN
  TABLE3 USING(FIELD_B)
-- TABLE3 USING(FIELD_B, FIELD_C) <-- この行はエラーになる。

他のDBだと問題ないのでしょうか?

389 :NAME IS NULL:04/10/04 17:21:28 ID:???
(A)(B,C)じゃなくて(B)(C,A)って書いてるのに。

390 :385:04/10/04 17:35:14 ID:???
すみません、質問にバグがありました。訂正します。

-- 元のSQL

SELECT
  TABLE1.*, TABLE2.*, TABLE3,*
FROM
  TABLE1, TABLE2, TABLE3
WHERE
  TABLE1.FIELD_B = TABLE2.FIELD_B
AND
  TABLE2.FIELD_C = TABLE3.FIELD_C
AND
  TABLE3.FIELD_A = TABLE1.FIELD_A


-- INNER JOIN USING 句で書き直して、うまく行かないSQL

SELECT *
FROM
  TABLE1
INNER JOIN
  TABLE2 USING(FIELD_B)
INNER JOIN
  TABLE3 USING(FIELD_C)
-- TABLE3 USING(FIELD_C, FIELD_A) <-- この行はエラーになる。

環境は Linux 版 MySQL 4.0です。どなたかお教えください。

391 :NAME IS NULL:04/10/04 18:26:18 ID:???
PostgreSQLだと動くね。

392 :385:04/10/04 21:14:30 ID:???
どうやら、MySQL の特殊事情のようですね。
続きは、MySQL総合スレでお伺いしたいと思います。
ありがとうございました。

393 :NAME IS NULL:04/10/07 17:44:02 ID:???
MySQL・PostgreSQL・Oracle等に共通して役立つ基礎知識を学べる
初学者にお勧めの書籍を教えて頂けますか?
レコードと設計の関連について具体的な事例が豊富な物が嬉しいです。

394 :NAME IS NULL:04/10/07 17:48:08 ID:???
>>393
http://pc5.2ch.net/test/read.cgi/db/1066219504/76

395 :NAME IS NULL:04/10/07 18:29:23 ID:???
>>394
ごめんなさいスレ違いでしたね。
にも関わらずわざわざありがとうございます。

396 :NAME IS NULL:04/10/08 12:29:16 ID:P3EYlZIx
顧客番号|  売上日  | 商品番号 | 単価 | 数量 |
 0001  | 2004/09/01 |    01  | 10  |  01 |
 0001  | 2004/10/01 |    02  | 15  |  02 |
 0002  | 2004/09/18 |    02  | 15  |  05 |
 0002  | 2004/10/03 |    01  | 10  |  01 |
 0003  | 2004/08/05 |    02  | 15  |  01 |
 0003  | 2004/09/07 |    01  | 10  |  02 |

というテーブルから

顧客番号| 最新売上日 |最新売上日の(単価*数量)|
 0001  | 2004/10/01 |       30         |
 0002  | 2004/10/03 |       10         |
 0003  | 2004/09/07 |       20         |

といった一覧を得たいのですが、どうSQLを書けばいいのかわかりません
unionを使わずにできないものでしょうか
どなたか教えてください

397 :NAME IS NULL:04/10/08 13:29:23 ID:???
>>396
SELECT 顧客番号, 売上日, 単価*数量 AS 最新売上日小計
FROM 売上 AS S
WHERE EXISTS (SELECT *
FROM 売上 WHERE 売上日 < S.売上日
AND 顧客番号 = S.顧客番号);

398 :NAME IS NULL:04/10/08 13:36:51 ID:???
>>397 は間違い

399 :NAME IS NULL:04/10/09 00:18:56 ID:???
not existsで>だろう。

400 :NAME IS NULL:04/10/09 00:34:12 ID:???
>>399
流石ですね。

SELECT 顧客番号, 売上日, 単価*数量 AS 最新売上日小計
FROM 売上 AS S
WHERE NOT EXISTS (SELECT *
FROM 売上 WHERE 売上日 > S.売上日
AND 顧客番号 = S.顧客番号);

で動くみたい。

401 :NAME IS NULL:04/10/09 01:41:25 ID:x4p9Bebp
>>379
それは、DATEが用意した第四正規形で、
なおかつ非第五正規形という特殊な例。
通常ではあり得ない。むしろあったら教えて欲しい。

仮に常に非第五正規形で、3分割可能だとすると
S1|P1|J1 を追加すること無しに S2|P1|J1
を追加すると、join-projection anomaly(結合射影の例外)
が発生するから、3分割不可能になるよって話。

402 :396:04/10/09 20:56:34 ID:???
>>400の通りでできました!
皆さんありがとうございました

403 :NAME IS NULL:04/10/11 17:50:32 ID:???
Oracle 9i環境です。
以下のようなテーブルレイアウトの明細テーブルがあります。

・テーブル名:明細テスト

・明細番号:number型(PK)
・部門コード:varchar2(3)型
・日付:varchar2(8)型
・金額:number型

データ例)
1 ABB 20040401 2000
2 CCC 20041001 5000
9 DDD 20050201 3500

上のようなデータから部門コード別の
2004年上半期の金額合計、2004年の下半期の金額を求めたいのですが
どのようなSQLを書いたら良いのでしょうか?
どうか、宜しくお願いいたします。


404 :NAME IS NULL:04/10/11 17:53:39 ID:???
一応、以下のようなSQLを考えましたが。

select 部門コード,sum(decode(substr(日付,1,6),to_char(sysdate,'yyyy') || '04',金額,
                       to_char(sysdate,'yyyy') || '05',金額,
                       to_char(sysdate,'yyyy') || '06',金額,
                       to_char(sysdate,'yyyy') || '07',金額,
                       to_char(sysdate,'yyyy') || '08',金額,
                       to_char(sysdate,'yyyy') || '09',金額,
                       0)) as "2004年上半期",
         sum(decode(substr(日付,1,6),to_char(sysdate,'yyyy') || '10',金額,
                       to_char(sysdate,'yyyy') || '11',金額,
                       to_char(sysdate,'yyyy') || '12',金額,
                       to_char(add_months(sysdate,12),'yyyy') || '01',金額,
                       to_char(add_months(sysdate,12),'yyyy') || '02',金額,
                       to_char(add_months(sysdate,12),'yyyy') || '03',金額,
                       0)) as "2004年下半期"
from 明細テスト
group by 部門コード

405 :NAME IS NULL:04/10/12 22:40:55 ID:???
grantでcreate tableはできてcreate databaseはできないユーザーを作りたいのですけど
構文はどうなるのでしょうか?
よろしくおねがいします

406 :NAME IS NULL:04/10/12 23:47:37 ID:???
>>405
DBMSは何?

407 :NAME IS NULL:04/10/13 03:14:55 ID:???
SQLServer2000を使っています。
例えば以下の様なnamesという表があり、
id    name
--------------
0001  田中
0002  鈴木
0003  鈴木
0004  渡辺
0005  NULL
0006  中島
0007  NULL
0008  田中
この状態で select names, count(*) from name とすると
name 
--------------
田中  2
鈴木  2
渡辺  1
中島  1
という様な出力となりますが、このときにnameがNULLの行についても一緒に表示させたい場合、
どうすればよいでしょうか。select count(*) from names where name is nullとすれば、NULLの
行数だけは得られることまでは行き着いたのですが、一度に出力したいのです…

408 :407:04/10/13 03:16:43 ID:???
自己レスで訂正です。
> select names, count(*) from name
ではなく、
select name, count(*) from names
です。

…なんかもうだめぽ…寝るかな…

409 :405:04/10/13 04:23:00 ID:???
>>406
あっ!はい。MySQLです

410 :NAME IS NULL:04/10/13 12:43:55 ID:???
名無しさんの集団ですか?
nameにNOT NULL制約を付ける。

411 :NAME IS NULL:04/10/13 23:45:18 ID:???
>>407
意味ワカンネ。おまえの言ってるクエリ流してもそんな結果にならねーし。
本当は group by name とか付けてんじゃねーの? で、group by では NULL も
ひとつのグループとして集約されるはずだし。本当におまえが流しているクエリを
コピペしないと話にならんよ?

412 :403:04/10/14 21:54:19 ID:???
神様方、403について叡智をお貸しください。
404は私自身が考えたものです。

413 :NAME IS NULL:04/10/14 22:33:02 ID:???
>>412
Oracleは知らんので悪いがSQL2000で。

select
   部門コード,
   sum(case when cast(left(日付,4) + '/' + substring(日付,5,2) + '/1' as datetime) between '2004/4/1' and '2004/9/30'
      then 金額   else null
   end) as 上半期,
   sum(case when cast(left(日付,4) + '/' + substring(日付,5,2) + '/1' as datetime) between '2004/10/1' and '2005/3/31'
      then 金額    else null
   end) as 下半期i
from
   明細テスト
group by
   部門コード


414 :NAME IS NULL:04/10/15 05:06:30 ID:JE/nND7p
データベースに関して議論できるMLとかはないのですか?

415 :NAME IS NULL:04/10/15 09:08:20 ID:???
>>414
fj.comp.databases

416 :NAME IS NULL:04/10/16 01:13:03 ID:BAyT8NZS
意外とむずい・・。
>>http://pc5.2ch.net/test/read.cgi/db/1061746086/150
>http://pc5.2ch.net/test/read.cgi/db/1061746086/151
>http://pc5.2ch.net/test/read.cgi/db/1061746086/152
>http://pc5.2ch.net/test/read.cgi/db/1061746086/153
>http://pc5.2ch.net/test/read.cgi/db/1061746086/154
>http://pc5.2ch.net/test/read.cgi/db/1061746086/155
>http://pc5.2ch.net/test/read.cgi/db/1061746086/156
>http://pc5.2ch.net/test/read.cgi/db/1061746086/157
>http://pc5.2ch.net/test/read.cgi/db/1061746086/158
>http://pc5.2ch.net/test/read.cgi/db/1061746086/159
>http://pc5.2ch.net/test/read.cgi/db/1061746086/160
>http://pc5.2ch.net/test/read.cgi/db/1061746086/161
>http://pc5.2ch.net/test/read.cgi/db/1061746086/162




417 :119:04/10/16 05:17:59 ID:???
質問させてください。
linuxでデータベースのデータ(テーブルのデータとか)は
どこに保存されるのでしょうか?(/etcとか/homeとか)
よろしくおねがいします。

418 :NAME IS NULL:04/10/16 15:56:44 ID:???
>>417
http://pc5.2ch.net/test/read.cgi/db/1056936657/593

419 :NAME IS NULL:04/10/16 21:54:09 ID:???
質問をさしていただきます。
以下のようなレイアウトのテーブルがあるとします。

社員マスタ

社員番号 給料  部門コード
   1 1000   AAAA
   2 2000   AAAA
   3 3000   AAAA
   4 4000   BBBB
   5 5000   CCCC
   6 6000   CCCC

このようなテーブルに対して

select 部門コード,sum(給料) from 社員マスタ
group by 部門コード having 部門コード='AAAA'

っていうのと

select 部門コード,sum(給料) from 社員マスタ
where 部門コード='AAAA' group by 部門コード

って書くのとでは結果は一緒だと思うのですが
意味も変わってくるのでしょうか?
くだらない質問で申し訳ありません。

420 :NAME IS NULL:04/10/17 05:08:03 ID:???
>419

前者の様な having の使い方は普通しない。

前者は group by した結果に対して行を選択しているのに対し、
後者は予め選択した行に対して group by をしていると言う
違いがある。

効率の面からも、後者が有利なのは明らか。
前者は fullscan になるので、仮に部門コードへ indexが付け
られていても、indexが使用されない可能性が高い。


421 :NAME IS NULL:04/10/17 16:53:34 ID:???
>>420さん、丁寧な解説をして頂き有難うございました。
悩んでいたのがすっきりしました。

422 :Response Buffer Limit Exceeded:04/10/17 22:29:59 ID:???
http://www.dis.h.u-tokyo.ac.jp/scripts/search/ICD10_searchw.asp

Response オブジェクト エラー 'ASP 0251 : 80004005'

Response Buffer Limit Exceeded

/scripts/search/ICD10_searchw.asp, 行 0

Execution of the ASP page caused the Response Buffer to exceed its configured limit.

423 :NAME IS NULL:04/10/18 12:13:47 ID:P+UnzwON
テーブル名のスマートな命名規則ってないですか?

とりあえず、プリフィックスとして
・マスタテーブルは m
・トランザクションテーブルは t
を先頭につけるとか考えてるわけですが。
mItem とか tProduct みたいな感じで。

424 :NAME IS NULL:04/10/18 16:50:59 ID:xgm/UL43
>>423
まず、m_Itemとかt_Productと_を付けるのがよろしいかと。
で、あんまりテーブル名が長くなるのが嫌ならば、
「テーブル名が15文字以上になる場合は短縮するべし」とかいう掟を作る。

以前、T_001とかT_002と機械的にコードが振られた
環境を見たことがあったけど分かりにくく、
テーブル名間違いという初歩的ミスが連発してた。
(項目名もコードだった。勿論、項目間違い多発)

コード制を採用するのなら機械的に順にコードを振るのはやめて
T_1000番台は顧客データ系
T_2000番台は契約データ系
等と意味を持たせた方が良いかと。

あと、同じDB環境に複数のシステムのテーブルが
共存してる環境も見たことある。
そこでは「AAA_m_Item」「BBB_m_Product」と
テーブル名の頭3文字にシステム名のコードが振られてた。

425 :NAME IS NULL:04/10/18 17:24:29 ID:???
>>424
ありがとうございます。                タブー
一部のDBMS(accessなど)ではテーブル名に _ は禁忌らしいので、敢えて外してました。

プリフィックスをつけるのはアリ、適宜短縮もOKってことでよろしいでしょうか。

426 :NAME IS NULL:04/10/18 19:10:30 ID:yHFc1SeN
満期落としを日付をもとに行いたいのですが、どこかによいサンプルあり
ませんでしょうか。10カラムDATE型の行があり、日付が切れてたら
カラムごとにNULLにupdateしたいのですが、一度に

それぞれのカラムの日付をチェック
期間がすぎてたらNULLにupdate

と行う方法がわかりません。アドバイスでもなんでも結構ですのでヒント
を頂けたら助かります。

427 :NAME IS NULL:04/10/18 20:52:26 ID:???
>>426
満期落としって何だ? ぐぐっても何も出てこないぞ。
他人がわかるように説明してくれ。

428 :426:04/10/19 00:45:22 ID:UfTsZowm
>>427

わかりにくい説明で申し訳ありません。当方も、満期落としでぐぐった
んですが、何も出てこないのでこちらで聞いた次第です。

満期日(購入後3年)が来たら、中の購入日(date型)をNULLにしてリセット
するという意味で使っていました。テーブルは

購入者ID (Primari Key)
商品コードカラム (date)
商品コードカラム (date)
商品コードカラム (date)
商品コードカラム (date)

となっており、商品を購入すると、商品コードカラムにcurrent_dateが
入ります。購入者IDごとに、row(行)データがあり、一人で4つの購入日
を持っています。ただし、3年経過した購入日は全てリセットしてNULLに
します。

これを、ループでやろうとしると、row×購入者ID×商品コード数(4)と
なり、毎度の処理が大きくなる為、何か良い方法がないかと思いお聞き
致しました。至らない説明で申し訳ありませんが、宜しくお願い致します。

429 :NAME IS NULL:04/10/19 01:13:27 ID:???
>428

漠然としすぎ

随時処理なら設計を見直す必要あるし、
夜間バッチなら件数によっては、書いてある通りの事を
書いてやれば良いし、処理系によっては全カラム、全行
に対して更新してやる必要があるかも知れないが、
一括でできる場合もあるだろうし。



430 :NAME IS NULL:04/10/19 01:49:05 ID:???
>>428
どこの会社か知らんが、いきなり社内用語を持ち出すな。恥かくぞ。
まだテーブル設計を直せるなら今のうちに正規化したほうがいい。

>これを、ループでやろうとしると、row×購入者ID×商品コード数(4)と
>なり、毎度の処理が大きくなる為

何でそこでループが出てくる?
もしかして1レコード毎に値をチェックして最大(購入者ID)回のupdateを発行するような
コーディングをしてるんじゃあるまいな?

DBMSが明示されてないから断言はできないが、今時のRDBならupdate1回で済ませられるし
indexを張ってテーブルスキャンを回避すれば処理時間も大したことないだろ

431 :426:04/10/19 02:47:42 ID:???
>>430
アドバイスありがとうございます。

>もしかして1レコード毎に値をチェックして最大(購入者ID)回のupdateを発行するような
>コーディングをしてるんじゃあるまいな?

まさにおっしゃる通りです。自分でも、これはまずなと思った為、こちらで
質問させて頂きました。

>DBMSが明示されてないから断言はできないが、今時のRDBならupdate1回で済ませられるし

MySQL3.23.58です。まだ、とりかかったばかりでDBの再設計も可能なので、テーブル
の正規化についてアドバイス頂ければ幸いです。何もわからない質問に答えて頂き
ありがとうございました。満期落としですが、もう使わないように気をつけます。

432 :NAME IS NULL:04/10/19 04:13:56 ID:???
商品購入後3年で満期って・・・

433 :424:04/10/19 10:50:40 ID:gIOThPgF
>>425
>プリフィックスをつけるのはアリ、
>適宜短縮もOKってことでよろしいでしょうか。
そうです。私の個人的なやり方ですけどね。


434 :NAME IS NULL:04/10/19 12:26:54 ID:n+HdS+aT
filemaker developer 7 の英語版を日本語版にするパッチなどはありませんか?
どなたか、知っていたら教えてください。

435 :NAME IS NULL:04/10/20 00:26:28 ID:???
われ?

436 :NAME IS NULL:04/10/20 05:35:24 ID:???
>>434
ない(マジ)

437 :NAME IS NULL:04/10/20 08:57:29 ID:CQS7kLeU
 オラクルって 8i、9i、10gってあるけど、どう違うんですか?
 例えば、現在の主流は8iだけと最新が10gとか?
 ただのバージョンで 10g が一番いいってだけでしょうか?

パッケージは、色々あるみたいですけど・・・
http://www.oracle.co.jp/database/packaging.html


438 :NAME IS NULL:04/10/20 16:31:29 ID:JRxIsqk0
名前 ポイント
b1 5
b2 5
b3 3
b4 3
b5 2
b6 1

このようなテーブルに順位づけをしたいのですが

順位 名前 ポイント
1 b1 5
1 b2 5
3 b3 3
3 b4 3
5 b5 2
6 b6 1

こんなふうにするにはどんなSQLを書けばいいのでしょうか?

439 :NAME IS NULL:04/10/20 17:56:26 ID:???
>438

oracle(8i以降かな?)だったら
select rank() over(order by ポイント desc) as 順位,名前,ポイント
from テーブル
order by ポイント desc,名前
とか


440 :438:04/10/20 18:19:48 ID:???
すみません。PostgreSQLなのですが方法ないでしょうか...

441 :NAME IS NULL:04/10/20 18:58:12 ID:???
>440

できるはず。
ありがちなネタなんで検索すりゃ、ごろごろ引っかかるだろう。


442 :いなむらきよし:04/10/23 01:10:04 ID:vtT94cT0
確かに俺は奇形だキケー!
だからっておまいらに迷惑かけてるわけじゃないキケー!
もう俺のことは放っておいてほしいキケー!

443 :NAME IS NULL:04/10/23 16:08:46 ID:???
お忙しいところ申し訳ありませんが
質問をさして頂きます。
DB:Oracle9i

(テーブルA)
部門コード varchar2(10)
年     number
月     number
日     number
金額    number

このようなレイアウトのテーブルがあります。
データ例)
1 XXX 2004 10 1 1500
2 XXX 2004 10 2 1800
3 XXX 2004 10 24 1950
4 WWW 2004 10 1 200
5 WWW 2004 10 3 300

取得したいのは
以上ようなデータから部門コードがXXXで
年、月、日が最新のデータの金額です
上のデータでは3レコード目の1950という値が欲しいのですが。

444 :NAME IS NULL:04/10/23 16:09:07 ID:???
以下のようなSQLを考えましたが、
もう少し賢い書き方はないでしょうか?
select mm.金額
 from テーブルA mm,
(select 部門コード,max(年) 年,max(月) 月,max(日) 日 from テーブルA group by 部門コード) tt
 where mm.部門コード = 'XXX'
  and mm.部門コード = tt.部門コード
  and mm.年 = tt.年
  and mm.月 = tt.月
  and mm.日 = tt.日

445 :NAME IS NULL:04/10/23 17:00:18 ID:???
>>444
部門コードが同一で、年月日がそれより大きいレコードが
存在しないレコードを選択する。

それから、フィールドごとにmax()とっても正しい最新日付には
ならないので、>>444のSQLは正しい結果が得られない。

446 :NAME IS NULL:04/10/23 18:39:11 ID:???
>444


select distinct first_value(金額) over( order by 年 desc,月 desc,日 desc)
from テーブルA
where 部門コード = 'XXX'


447 :NAME IS NULL:04/10/23 19:20:46 ID:???
>>446
オラクルらしいんで
そんな書き方は無理だろう。

448 :NAME IS NULL:04/10/23 19:21:51 ID:???
>447

は?
Oracleだから、わざわざこういう書き方したのだが。

449 :NAME IS NULL:04/10/23 20:08:53 ID:???
>>445さん、ご指摘ありがとうございました。
444のSQLはぜんぜん駄目ですね。。。

>部門コードが同一で、年月日がそれより大きいレコードが
>存在しないレコードを選択する。

これについては言葉では理解できるのですがSQLで書けと
言われたらちょっと。。。
すいません。

>>446さん、どうもありがとうございました。
情けないことにこういう風な書き方をはじめて見ました。
ちょっと調べて勉強してみます。

あと、以下のようなSQLを考えてみたのですが。
どうでしょうか。

select 金額
 from テーブルA mm,
    (select 部門コード,
        max(年 || to_char(月,'FM00') || to_char(日,'FM00')) yyyymmdd
     from test24 group by 部門コード
    ) tt
where mm.年 || to_char(mm.月,'FM00') || to_char(mm.日,'FM00') = tt.yyyymmdd

書き忘れていたのですが
部門コード、年、月、日で主キーなんです。
上のSQLだとINDEXを全く使わないのでどうかと思うのですが。

450 :NAME IS NULL:04/10/23 20:55:16 ID:???
あ、where mm.年 || to_char(mm.月,'FM00') || to_char(mm.日,'FM00') = tt.yyyymmdd
の後に and mm.部門コード = tt.部門コード
     and mm.部門コード = 'XXX'
が必要でした。


451 :NAME IS NULL:04/10/23 23:00:01 ID:???
>>449

where
not exists --次のようなレコードが存在しない
( select * from テーブルA
where
部門コード=mm.部門コード --部門コードが同一で
and ( 年>mm.年 or
(年=mm.年 and (月>mm.月
or (月=mm.月 and 日>mm.日)))) --年月日がそれより大きい
)

452 :NAME IS NULL:04/10/24 00:04:35 ID:???
>>451さん
存在しないってことでnot existsを使わなければいけないとは
分かっていたのですが、
”年月日がそれより大きい”っていう部分の書き方が分かりませんでした。
この辺りの考え方は別の局面でも使えると思いますので
自分のものにできるようにいたします。
どうもありがとうございました。

453 :NAME IS NULL:04/10/25 18:38:38 ID:???
質問です。
linuxでMySQL使ってるのですが
デフォルトの文字コードを調べる方法教えてください
あと、文字コードを変える方法も教えてください。
よろしくおねがいします。

454 :NAME IS NULL:04/10/27 09:48:48 ID:LFbNK9Cr
AB01C0234が登録されている品番だとします。
これをAB1C234と書いても抽出してくれるような
SQL文はどう書けばよいでしょうか。


455 :NAME IS NULL:04/10/27 11:10:10 ID:Wn0vpavx
映画のデータベースを構築したいのですが、
監督が2人だったり、主要キャストの人数が作品によって違い、
こういうのをどう表現したらよいか分かりません。

・俳優
 俳優インデックス | 俳優名 | 出演作品

とやると
 0 |ブラッド・ピット | セブン
 1 |ブラッド・ピット | ファイトクラブ

となってかぶってしまいますからダメなんですよね?
よろしくお願いします。

456 :NAME IS NULL:04/10/27 16:33:42 ID:???
正規化とか勉強したこと無いので、あまりアテに
しないで欲しいけど


・人物履歴
人物NO|作品NO|監督参加フラグ|主演参加フラグ|その他大勢フラグ

・作品
作品NO|作品タイトル

・人物
人物NO|人物名

とかじゃダメなのかな?

457 :NAME IS NULL:04/10/28 00:20:54 ID:ruwahTUw
>>456
できる感じがします。レスありがとうございました!

458 :NAME IS NULL:04/10/28 15:51:00 ID:whRuY516
超初心者の質問です。

最近MySQL+PHPを始めたのですが、
こまっています。
insertやselectは普通に使えるようになったのですが、
個人情報保護のためにユーザの登録情報を暗号化して、
insertし、必要な時に復号化して使うようにしたいのですが、
暗号化してinsertはできるのですが、
複合化の方法がわかりません。
MySQLのAES_ENCRYPTとAES_DECRYPTです。
暗号化キーは6文字の英数字を使用しています
テーブルはすべてvarcharです。
select * from hoge where = '$userid'
で暗号化されたものをselectはできるのですが。
複合化の際、select aes_decrypt($hoge['hoge'],$key)
だと複合化されないです。

459 :NAME IS NULL:04/10/28 16:15:13 ID:81Wfp696
MySQLのORDER BY句は省略不可なのか?省略したらはじかれた。
昇順または降順つけたらうまくいった。即レスきぼんぬ

460 :NAME IS NULL:04/10/28 21:18:27 ID:nyqWuHEf
btrieveデータをコンバートかけなければならないのですが読み込めず困っています。
バージョンはおそらくBtrieve 6.15 以前のバージョンでDOSベースで動いていたPC
からファイルを抜きました。拡張子 btr です。
よろしくお願いします。



461 :NAME IS NULL:04/10/29 09:18:27 ID:Xo+C4H0K
Accessでもデータベース作れる(と思う)のに
なんでSQLが必要なんですか?
社内システム担当で内定取りましたが、
今から何を勉強すればいいのかわかりません。

462 :NAME IS NULL:04/10/29 10:41:42 ID:???
SQL Server2000のCreateTable文でClusteredの意味を教えてください

Create Table aaa(
a int default 0 not null,
b int default 0 not null,
constraint AAA_PK primary key clustered (a)
)
プライマリーキーの制約記述ではclusteredは必要ないと思いますが
どのような意味があるのでしょうか?

463 :NAME IS NULL:04/10/30 10:13:27 ID:???
クラスタ化されているとインデックスノードにレコード実体も保持されるので、
Bookmark lookup が発生しなくなる。

464 :NAME IS NULL:04/10/31 00:43:01 ID:???
MySQLの質問です。
http://aaa.com/~hoge/hoge.cgi これだとDBにアクセスできるのですが
http://aaa.com/hoge/hoge.cgi これだとDBにアクセスできないのです。。。

なぜ?


465 :NAME IS NULL:04/10/31 02:45:09 ID:???
>>464
MySQLじゃなくてcgiの問題でわ?

466 :NAME IS NULL:04/10/31 04:31:24 ID:???
>>465
そ、、そのとおりでした
バーチャルホストでもcgi使えるようにしたら動いたのはいいのですが
mkdirができない。。。

なぜ?

467 :NAME IS NULL:04/10/31 06:25:31 ID:???
>>466
そこまで分かっていてなお聞くのかね?
ここはデータベース板じゃよ、フォフォフォ

468 :NAME IS NULL:04/10/31 22:46:19 ID:C+SsJLvn
質問させて下さい。
カラムAに値100があったとして、それから200引くと値-100になります。
これを、0以降全てNULLにしたいのですが(値-を持ちたくない)可能でしょうか?

100 - 99 値 -1
100 - 100 NULL(値0でなく)
100 - 200 NULL(値-100でなく)

みなさまお忙しいと思いますが、アドバイス頂ければ幸いです。
どうか、宜しくお願い致します。

469 :NAME IS NULL:04/10/31 22:56:55 ID:???
>468

自分で書いている通り、
値がマイナスになったら、NULLにすれば良い。
その仕様が許す範囲の、好きな方法で。

トリガーを使うにしろ、選択時にそう表現するにしろ、
更新時に操作するにしろ。

470 :468:04/10/31 23:24:17 ID:???
>>469
出来れば、updateで一度に処理したかったのですが、トリガーなり
使うしか方法がないようですね。ありがとうございました。

471 :NAME IS NULL:04/11/01 00:29:42 ID:???
>>470
トリガー使えば、UPDATEで一度に処理できるじゃん・・・

472 :NAME IS NULL:04/11/01 06:34:27 ID:???
>>468
NULLなんて使うなよ。

473 :NAME IS NULL:04/11/01 21:50:08 ID:???
>>470
DBMSによるかもしれんけど、SET句の中でCaseを使えれば
トリガなしでもUPDATE1回で処理できる。

しかし、NULLを入れてしまうと値を足す時が面倒になるけどそれでいいのか?
普通の計算式だとNULLに何を足しても掛けても結果はNULLだぞ。

474 :NAME IS NULL:04/11/01 23:58:33 ID:y0xPwxbI
Win2000サーバ DB専用
なんですが、今日いきなりウィーーンってファンがものすごい
勢いで回りだしたかと思ったら、画面にダイアログで
「あと60秒でシャットダウンします」とでて
カウントダウンがはじまってクレズ?ニムダ?みたいな動作したんだけど
あれはなに??
クレズ以外で

475 :NAME IS NULL:04/11/02 00:00:06 ID:ZStcC7sr
ちなみに1回なっただけで
あとは症状でず

476 :NAME IS NULL:04/11/02 00:32:40 ID:???
>>474
データベースとは無関係だな

477 :NAME IS NULL:04/11/02 07:25:38 ID:HTd73Aav
アクセスを使っていて、現在は一つのテーブルで

会員テーブル
会員ID,名前,住所,..他..,試験A,試験B,試験C...試験G

となっていて試験項目7(全体で20ほど)があるのですが、
来年から 試験A1,試験A2,試験B3,試験B1,試験B2,試験C1...
のように細分化されて試験項目だけで50を超えることになりました
試験項目はTrue/Falseで合否をあらわしています

処理も重たく感じるようになってきていますし、これを機会にテーブルを
分けてみようかと思って正規化とか検索してみたのですが

会員テーブル
会員ID,名前,住所,..他..

試験合否テーブル
会員ID,試験A1,試験A2..,試験B1,試験G1..試験G8

こんな感じでいいのでしょうか?
なんか検索しても商品売上とかが多くてなんか今回のとは違うような気がして
よく分かりません

ご教授いただけるとうれしいです


478 :NAME IS NULL:04/11/02 23:08:50 ID:???
>>477
会員テーブル
会員ID,名前,住所,..他..

試験テーブル
試験ID,試験名

試験合否テーブル
会員ID,試験ID,結果

479 :477:04/11/03 06:27:36 ID:???
>>478
レスありがとうございます
なんというか、目から鱗です。。

書き込みしてからも自分なりにやってみて、繰り返し項目を排除しなければいけないと思って

試験テーブルA1(会員ID,結果)
      ・
      ・
試験テーブルG8(会員ID,結果)

というようにテーブルをどんどん作っていくのかなとも思っていました、、、

以前に検索したサイトなどにも同じようなやり方が書いてあったんだと思います
こうやって教えていただいて、あーこうやるんだ、と考え方を変えると、
やっと同じに見えてきたという感じでしょうか

ほんとうにありがとうございました!

480 :NAME IS NULL:04/11/04 10:39:46 ID:???
質問です。

ASAからASEへDBのコンバートを行いたいんですがイイ方法が見つかりません。

ご存知の方いらっしゃいましたらよろしくお願いしますm(_ _)m


481 :NAME IS NULL:04/11/04 21:42:10 ID:???
>>480
イイ方法が見つからないってことは、なにか悪い方法は思いついた??
だったらそれを書いてみたらどうよ

482 :NAME IS NULL:04/11/11 23:26:46 ID:???
( ´,_ゝ`)プッ

483 :NAME IS NULL:04/11/21 03:10:42 ID:???
すみません。すごいお馬鹿な質問なのですが
真剣に困っています。教えてください。
telnetを使おうとしているのですが、半角英数字入力の状態で、\が
何処にあるのか分らないのです_| ̄|○
キーボードのどれを押したら\が出るのでしょうか。

484 :483:04/11/21 03:11:40 ID:6JCa8euH
すみません。sageてしまいました。上げます。
どなたかよろしくお願いいたします。

485 :NAME IS NULL:04/11/21 09:32:20 ID:mHOHnzCm
オッケェー、この板も刻んだ!

486 :NAME IS NULL:04/11/21 17:24:05 ID:pnpy18KG


487 :340:04/11/21 19:30:45 ID:???
MySQL板で2回質問をしたところ、2回ともスルーされたのですが、
死ぬべきでしょうか

488 :NAME IS NULL:04/11/21 21:39:07 ID:???
>>487
死ななくてもいいけど、回線切ってつr(ry

489 :483:04/11/22 00:02:00 ID:RC2l+T/+
お願いします〜〜
真剣に悩んでるんです。
どなたか/の半角の出し方を教えてください〜〜

490 :NAME IS NULL:04/11/22 00:35:32 ID:???
>>489
/の半角は\だ。日本語フォントだとみんなそうなる。
板違いの質問だから続きはPC関係の板で聞いてくれ。

491 :NAME IS NULL:04/11/22 00:40:02 ID:???
cygwinにdaemonは動くのにpostgresがインストできない
postgresはコンパイルはできたのに。
環境はwin2k,cygwin1.5,cygipc1.15,postgres7.45です

492 :483:04/11/22 01:15:33 ID:???
>>490
ありがとうございましたm(__)m

493 :K:04/11/22 13:32:17 ID:???
すいません。教えてほしいんですけど
sql = "SELECT COUNT(*) As fldRecordCount, fldDate, fldTime, fldSubject, fldContents, fldAlarmSet, fldAlarmTime FROM tblSchedule " & _
"WHERE fldDate=(SELECT MIN(fldDate) FROM tblSchedule " & _
"WHERE fldDate>=" & Format(Now(), "yyyy/mm/dd") & ") " & _
"ORDER BY fldTime;"
これのどこが間違っているのかおしえてください。
実行すると
'System.Runtime.InteropServices.COMException' のハンドルされていない例外が PC.exe で発生しました。

追加情報 : 集計関数の一部として指定された式 'fldDate' を含んでいないクエリを実行しようとしました。

494 :NAME IS NULL:04/11/22 18:38:22 ID:j6017wAa
count(*) の時って、まさに集計だから
データを取る事できないんでない?

多分やりたい事はある日付以降のスケジュール全部取る、だろうけど
1つのSQLでやりたいなら・・・どうするんだろ(ノ´∀`;)

495 :NAME IS NULL:04/11/23 01:58:52 ID:???
Windows認証利用のみでMSDEをインストールしてしまったんですが、
SQL認証利用の指定は後から追加できないんでしょうか?

496 :NAME IS NULL:04/11/23 02:26:58 ID:???
>>493
エラーメッセージを噛み砕いて説明すれば
集計関数を使うときは集計関数以外にSELECTしたいカラムを
GROUP BYで指定しろということ。

この場合、GROUP BYをつけても望む結果は得られないだろうから
COUNT(*)を取り除いて、件数をクライアント側で取ればいい。
.NETはよく知らんのだが、RecordSet内にRecordがいくつあるかという
プロパティーがあるんじゃないの?

497 :NAME IS NULL:04/11/24 04:08:27 ID:???
えーっとほら、ほとんどの処理をオンメモリでやってオラクルのXX倍速いです!とか言ってるDBあったじゃない
あれの名前忘れちゃったのよ。
えーっと、えーっと・・・・教えてください。

498 :493:04/11/24 13:45:51 ID:???
>>>496
ありがとうございました

499 :NAME IS NULL:04/12/01 03:01:17 ID:???
どなたか物凄い勢いで答えてくださると幸いです。

例えば、
アクセスログを取るテーブルをイメージして頂きまして、
順次、日時やリファラー、ユニークチェックの結果を 'ユニーク' または 'ユニークじゃない' として
アクセスのある度にinsertしているとします。

このテーブルに対し、
select リファラー, count(*) from アクセスログ group by リファラー;
とするとリファラー毎の総アクセス数が取得できます。
select リファラー, count(*) from アクセスログ where(ユニークチェック = 'ユニーク') group by リファラー;
とするとリファラー毎のユニーク数が取得できます。

そこで、
上記の結果を合わせた結果を取得するにはどうしたら良いのでしょうか?
つまり、
リファラー1 | 総アクセス数| ユニーク数
リファラー2 | 総アクセス数| ユニーク数
           ・
           ・
として取得したいと考えてます。

count関数のドキュメントを漁ったり、
列選択に リファラー, count(*), count(ユニークチェック = 'ユニーク') など
を勝手にいろいろ放り込んだりしましたが無理でした、、。
三日三晩悩みつづけ、心身ともに限界を感じております。
どなたかご教授くださいませ。後生です。


500 :NAME IS NULL:04/12/01 09:08:07 ID:???
総アクセス数のSQLをViewにして、ユニーク数のSQLと結合。

501 :NAME IS NULL:04/12/01 19:55:55 ID:XikxpBIJ
ものすんごい勢いで答えてくれるとありがたいです
表AのAと表BのAを結合してその結果を足したいのですが。

表A      表B
a a
---------- ------------
1 1
2 2
3 3

select sum(A.a)+sum(B.a)
from A,B;

っとやると導きだしたい答えと違うものが返ってきてしまいます。
この場合だと12が返ってきてほしいのになぜか36と返ってきてしまいます
どうすればいいのでしょうか?

502 :NAME IS NULL:04/12/01 21:12:42 ID:???
UNIONしてからsum

503 :NAME IS NULL:04/12/01 21:16:25 ID:???
SQLサーバからMDBにレコードを流す場合のことで教えてください
SQL側には1つのメインテーブル+複数の参照テーブルがあります
それをMDBテーブルAに流していますが、どうしてもカーソルを
まわして放り込む形になってしまします。
データセット取得はなんとかjoinやunionやiif関数などで一括取得で
きましたが、MDBにほうりこむ時だけカーソルになってしまいます
僕としては、できるだけ回さないにこだわっているのですが

ほかの方のこだわりが聞きたいです。


504 :あみ:04/12/02 01:20:54 ID:+hxOlY8h
誰か教えてください
SQLでNOT INを使うと結果おかしいみたいなんです。
なにか注意点ってありますか?

505 :あみ:04/12/02 01:23:02 ID:+hxOlY8h
データベースはOracle9iなんですけど、
項目 not in('A')とかってして
Bの項目がとれないんです!



506 :NAME IS NULL:04/12/02 01:24:42 ID:???
これからデータベースを作ってみようと思っています。
文書ファイルの文章やインターネット上の文章をドラッグして選択し、
右クリックメニューから選択文字列をデータベースで検索ということができるものにしたいのですが
Access VBAで右クリックメニューに「データベースから検索」というようなものを追加する事はできますか?
是非教えてください。

507 :NAME IS NULL:04/12/02 09:58:19 ID:???
>>502
UNIONしてからSUMはどうやればいいのですか?
UNIONは
select a from A.a
union
select a from B.a
ここまでわかったのですがこの後がさっぱりで・・

508 :NAME IS NULL:04/12/02 12:54:45 ID:???
そもそもAとBのテーブルをFROMに書いただけで、結合条件なしじゃまともな検索結果は出ないぞ。

509 :NAME IS NULL:04/12/02 14:21:15 ID:???
できたっぽい
select sum(a)
from (select a from test1 union all select a from test2)
こういうことでいいのかな?

510 :NAME IS NULL:04/12/02 18:08:43 ID:???
PostgreSQL 7.2.2 です。

どでかいテーブルのうちごくわずかを頻出データとして登録し、

select * from hugetable where code in (select code from freqcodes)

てなことをやりたいのですが、これって hugetable の各行をいちいち評価するんで遅いのです。

hugetable.code は主キーなんで、
select
 (select id from hugetable where code = freqcodes.code) as id,
 (select name from hugetable where code = freqcodes.code) as name
 ...
from freqcodes
みたいに逆にすれば高速だと思ったんですがこれはこれで query がバカ長い。
いよいよとなれば仕方ないですが。

あるいは一回 freqcodes の内容を持ってきて、各行からクエリをいちいち作るしかないんでしょうか?
select * from hugetable where code = 'XXX';
select * from hugetable where code = 'YYY';
...

まぁ速さは2番目の例に近くなりましょうが・・・
できれば一つの select (最終的には view) にしたいのです。

それとも新しい psql は頭が良くなっているのでしょうか。

511 :NAME IS NULL:04/12/02 21:21:04 ID:???
>>510
select * from hugetable inner join freqcodes on freqcodes.code = hugetable.code
はダメ?


512 :NAME IS NULL:04/12/02 23:12:28 ID:???
発注票みたいなものをデータベースで扱いたいんですが、
こういうような、可変長なデータ(人によって買う商品の種類が違う)ってどう扱えばよいのでしょうか?

513 :512:04/12/02 23:13:14 ID:???
↑mysqlです。

514 :NAME IS NULL:04/12/03 01:39:37 ID:???
>>512 とりあえず本を読んで、「正規化」について学べば書いてある。

515 :NAME IS NULL:04/12/03 03:04:16 ID:???
いろんなurlの入った列があるとして、
?より以前を対象にgroup byしたいのですが良い方法はありますか?

516 :NAME IS NULL:04/12/03 10:21:34 ID:/7tW9Oyq
すみませんが質問させてください。

ある組織のデータを格納したテーブルと、
組織の合併を記録しているテーブルがあります。
ある年月である組織のデータを検索したときに、データがなかった場合には、
合併履歴を参照して、その組織が合併した経緯があったとき、過去の組織名で
データを検索していくようなSQLを作りたいのです。
しかし何度も合併した末に出来上がった組織の場合にもどんどん遡って、合併の元となった
組織のデータを取得したいのですが、いい方法はないでしょうか?

例をあげると、
組織ごとのデータを格納しているテーブル⇒DATA
組織の合併履歴テーブル⇒GAPPEI


DATA
組織 年月 金額
---- ------ ----
A 200403 15
B 200403 15
D 200403 50
C 200404 30
D 200404 100
E 200405 130

GAPPEI
組織 合併年月 旧組織
---- -------- ------
C 200404 A
C 200404 B
E 200405 C
E 200405 D

として、組織Eについて年月200403のデータを検索すると
DATAテーブルには200403時点のEのデータはないので合併履歴テーブルを
参照して、

組織 年月 金額
---- ------ ----
A 200403 15
B 200403 15
D 200403 50

という結果が返ってくるようにしたいのです。
文章が長くなってすみません。
どなたか教えていただけないでしょうか。


517 :NAME IS NULL:04/12/04 04:49:17 ID:???
>>516
SQL99に再帰QUERYが定義されてるけど実装は見たことないなぁ。
無制限に階層も遡る必要があるならストアドかプログラム側のロジックで処理すること
になる。有限階層なら外部結合をつかったSQLでやれなくはない。
問題はその遡り処理が特別で一時的な処理、いわゆるアドホックな処理かどうかだろうか。
いろんなところで遡りの処理が頻繁に発生するなら現在組織をあらわすフィールドを
DATAテーブルに追加し、合併時に最新の値に保つようにしたほうが効率がいい。
ただしこの方法だと過去時点を起点にした場合も常に現在の組織をもとにした結果が
表示される。どちらが良いかは業務内容によるから検討は必要だ。

518 :NAME IS NULL:04/12/04 07:20:26 ID:???
再帰QUERYの実装されたDBなら知ってるが、使い道がわからん orz


519 :516:04/12/04 16:47:00 ID:???
>517
516です。
遡る階層は無制限になりそうなんです。
そうするとやはり、プログラムでSQLを作成するしかなさそうですね。
というかそれが一番楽な気がしてきました。
ありがとうございました。


520 :まったくの素人・・:04/12/08 02:50:34 ID:VL/acGL4
WINXPにてSQLServer利用して
業務データーの管理をしています。ソフトは外部でつくってもらったものです。
メインのPCにインストールしてありほか数台のPCからアクセスできるような構成なのですが
先日ブレーカが落ちてしまいそれ以降
メインのPC以外からのアクセスでは
[ODBC SQL Server Driver][DBNETLIB]SQL Server が存在しないか、アクセスが拒否されました
SQL Serverエラー '80004005'
のような内容のエラーがでてソフトを起動できません。

対処法ご教授ねがいます!


521 :NAME IS NULL:04/12/08 04:13:59 ID:???
>>520 DHCPでIPがかわったんじゃないの?

522 :NAME IS NULL:04/12/08 04:20:48 ID:???
興味アル方メールください

業務内容
サーバ・アプリケーションの設計・開発・運用・保守管理などの業務に取り組んでいただきます。
資 格
学歴不問25〜40歳位迄、下記項目中2項目以上の経験者が望ましい。


Java開発経験者(Tomcat等のJakarta Projectを利用した開発)
DB開発運用経験者(Oracle,PL/SQL,Pro*C,MySQL,PostgreSQLを利用した大規模DBの運用・開発経験者)
Linuxサーバの構築・運用経験者(bind,sendmail,qmail,ネットワーク一般、セキュリティ設定等)
システム開発プロジェクトマネージャー経験者


勤務地
東京都渋谷区


523 :NAME IS NULL:04/12/08 05:16:10 ID:???
>>520
メイン以外のPCからメインPCにpingは通るか?
メインPCの共有ディスクなどは見れるか?
最近設定の変更はあったのか?
これまで通常の手順で電源を落とした場合は大丈夫だったのか?

動的に設定を変えてそのままにしてたとかありがちだけど、
HUBの電源が落ちたままとかいうオチもありえるな。

524 :まったくの素人・・:04/12/08 05:34:53 ID:u5/WgEfy
>523
今日、Ping試してみます。
設定変更はありません。
今まで電源落としたことがないそうです。
電源を落とさないように言われておったようで・・・
通常の手順というものを知りたいです。
参考になりますアドレスでもありましたらお願いします!

ブレーカー落ちた後にネットへの接続もメインのPC以外からはできなくなっておりました。
ADSLルーター→HUB→PCと順に立ち上げて後どのPCからも接続できるように
なりました。

おそらく>521さんのおっしゃるDHCPでIPが変わってしまった・・
ということのような気がします・・ぇぇ気がするだけです・・w

SQLサーバーでのクライアントのIP設定などがあるのでしょうか?
方法が知りたいです。
参考になりますサイトなどありましたら。是非にお願いします!

525 :NAME IS NULL:04/12/08 06:30:55 ID:???
>電源を落とさないように言われておったようで・・・
ひどい業者だな、呼びつけていいレベルだ(笑)
>通常の手順というものを知りたいです。
普通にWindowsのシャットダウンで、それ以外の手順が必要なら
普通なら業者が手順書を準備するだろう。起動手順も同じ。
しかしDHCPの環境でIPアドレスをじかに使うかなぁ?
>SQLサーバーでのクライアントのIP設定などがあるのでしょうか?
>方法が知りたいです。
SQLサーバーにはないですな。IPが勝手に変わらないように Windowsの
設定をDHCPからマニュアル設定にかえるって話だと思いますよ。

526 :まったくの素人・・:04/12/08 06:55:30 ID:u5/WgEfy
>525さんありがとうございます。
詳しくは知らないのですが、ちゃんとした業者さんとはちょっと違うのかもしれません。
つまらない事で連絡して迷惑掛けないように・・との話で私が呼ばれました。。
私が迷惑なんですがwまぁ勉強になるかなぁと・・
昔。WIN2000の話ですがメインから立ち上げて後クライアント、落とす時は逆。
みたいな話を聞いたことがあります。う〜ん仕様によりますよね・・

DHCP環境下ではクライアントのIPを固定させておくということですね
ADSLルーターからハブのみの経由で格PCにつながっておるようです。
この場合、各クライアントPCのWindowsでIPを設定すればよい?ということですか?
これならSQLサーバーが接続を許可(?)しているIPを調べてそのIPに設定する
という理解でよろしいでしょうか?
何が誤解してるようなことがあるような気もするのですが・・^^;

後ちょっと気になったのが。「電源を落とさないように」という話です。
理由がひょとしてDHCPによってIPが変わってしまうから??
などとおもいましたがいかがでしょうか?



527 :まったくの素人・・:04/12/08 06:58:04 ID:u5/WgEfy
うだうだとすいません。
抜けてました。。
>これならSQLサーバーが接続を許可(?)しているIPを調べて
調べ方ありますよね?ちょっと探してきます!

528 :NAME IS NULL:04/12/08 07:26:15 ID:???
IPが変わったかどうか、そのことが影響しているかどうかは予想の域を
出ないので、下手にネットワークの設定を触るとさらに事態を悪化させる
可能性があります。
業者が「電源を落とさないように」といっている以上、電源が落ちてしまった
場合の責任分担は業者にあると判断していいと思います。
電源やLANケーブルの断線がないことが確認できれば、もはや「つまらない事」
という事態ではないということで良いでしょう。

529 :まったくの素人・・:04/12/08 07:57:40 ID:???
>528
その通りですね^^;;
ちょっと素人が手を出せる域じゃないですね・・
今回はそのように話して済ませようと思います。

ちゃんとネットワークやらDBやらプログラミングについて
勉強してみようと思えた貴重な機会でした。
もういい年なんで趣味としてですがw
皆さんどうもありがとうございました

530 :U ◆CZtFsGiu0c :04/12/08 12:35:33 ID:???
>>526
>DHCP環境下ではクライアントのIPを固定させておくということですね

逆です。通常サーバは固定IPで運用するものです。ただDHCPで起動ごとに
IPが変わっていたとしても、ホスト名でアクセスする場合には通常は大丈
夫だと思います。

これも推測になってしまうのですが、メインPCでSQLServerは起動されて
いるのでしょうか。まさかと思うのですが、手動起動になっていたりしま
せんか?

531 :NAME IS NULL:04/12/08 21:45:34 ID:???
実はDHCPではなく、XP SP2のせいだったり・・・

532 :NAME IS NULL:04/12/09 10:16:27 ID:???
オラクルで、SELECT TABLE_NAME FROM USER_TABLES;
とやるとログオンユーザの所有するテーブル名が取得できますが、
MSのSQLServer(2000)で同様のことをやるにはどうしたら
よいでしょうか。


533 :NAME IS NULL:04/12/09 13:43:26 ID:???
>>532
sp_tables
sp_tables @table_owner = 'xxxx' (ユーザー指定)
結果セットを返すストアドだからOracleから来ると戸惑うかもね。

534 :NAME IS NULL:04/12/10 16:22:51 ID:GTVCQoEL
テーブルを開くとき、fieldの中にあるNULLの行だけ読み込ませないような
SQL文を作りたいのですがどのようなSQL文になるのでしょうか?
ちなみにVB6、Accessを使ってます。宜しくお願いいたしますm(__)m


535 :U ◆CZtFsGiu0c :04/12/10 21:43:06 ID:???
>>534
WHERE field IS NOT NULL

536 :NAME IS NULL:04/12/10 22:00:43 ID:???
18文字の文字列を格納するのに10バイト必要ってどういうことですか?
1文字1バイトじゃないんですか?

537 :NAME IS NULL:04/12/10 22:04:53 ID:8mF6v/tL
被害者
http://human0.com/bbs3/mkres5.cgi?84798

538 :NAME IS NULL:04/12/11 10:45:19 ID:???
>536
誤爆?
パック形式の数字なら18桁で10バイトかな。+−のサインで4Bit使うからね。

539 :NAME IS NULL:04/12/14 13:14:20 ID:88blfdAK
CHARに0x00-0x1F の制御コードは入れちゃマズイですか?
SQL埋め込み型プログラムなら出来ますよね?

540 :U ◆CZtFsGiu0c :04/12/14 13:17:35 ID:???
>>539
改行コードとか普通に入れると思うけど、0x00なんてなんのために入れるの?

541 :NAME IS NULL:04/12/14 13:38:23 ID:88blfdAK
4バイトのバイナリデータを格納するつもりです。
ただ、探索条件で使いたいのでイメージデータ扱いしたくない。
やっぱり、CHAR(8)で16進文字列表現にした方が
いいんでしょうか?
プログラムはバイナリデータとして意識するので、文字列として扱うつもりは無いです。

542 :NAME IS NULL:04/12/14 14:14:47 ID:???
データベースとクライアントで文字コードの変換が発生することが
あるから処理系依存かな。
4バイトなら32ビットintegerじゃだめなの?

543 :NAME IS NULL:04/12/16 02:53:32 ID:???
char binary じゃいけないのかな?

544 :NAME IS NULL:04/12/16 09:04:43 ID:???
>>543
MySQLの機能ですね。char binaryは大文字小文字を区別して比較する
ってヤツじゃないですか?

545 :NAME IS NULL:04/12/18 19:41:01 ID:04BmE0Ty
質問させて下さい

自鯖にApache+PHP+MySQLを入れて動かしてます。
外部ユーザがユーザー登録などにPHPのURLにアクセスしてSQLに更新をかけてます。
比較的まともに動作しているのですが、PHPに不慣れなもので
SQLのアクセスをPHPからC言語に移植することを希望しております
VisualCでコンパイルしたexeファイルをApacheのサーバー上で
動作する所までは出来たのですが、MySQLをCから制御する方法がよくわかりません
MySQLをWebサーバーを経由しないで直接外部から制御するCプログラムは書けます
( mysql.h と libmySQL.libを使用)
Winsockの知識は若干あるのですが、どうもCGIの動作原理をよく理解してないらしく
つまずいております。

質問するべき板がDBなのかプログラムなのかネット関係かさえ悩んでしまいました

誘導でも参考サイトでも構いません
どうかアドバイスお願いします


546 :545:04/12/18 20:26:02 ID:???
すみません自己解決しました
お騒がせしてすみません

547 :NAME IS NULL:04/12/18 22:05:26 ID:???
>>546
内容かけや

548 :545:04/12/19 01:08:19 ID:???
鯖の実行モジュールでなく
クライアントのローカルURL叩いて動くはずもありませんでした
回線切って首tskdjlうぁなにをsるやめrsdぁz;k;ぅslj・・・


549 :NAME IS NULL:04/12/22 15:00:59 ID:fLvrOwza
いくつか質問があります。

A,WindowsNT+Oracle
B,TurboLinux8Server+PostgreSQL
C,クライアントPC WindowsXP
D,クライアントPC TurboLinux10D

定期的に完全に自動でAのOracleのデータをBのpostgresqlに
バックアップしたいのですが、可能でしょうか?
可能ならば具体的にどういった方法で可能でしょうか?

モジュールのunixODBCを利用して、BにAのデータベースを参照するPerlスクリプトを組みました。
クライアントC,Dは正常にAのデータベースを参照することは可能でしょうか?
これはクライアントPCのWindwos+CYGWIN上では正常に接続できたのですが、スクリプトをLinuxにアップロードし
接続してみたところ、エラーが出てしまいました。

Linuxに正常にunixODBCの設定が出来ていない事が原因でしょうか?
いずれもLAN内でファイヤーウォールなどはありません。
hosts.allowもALL:ALLとしています。

詳しいかたおられましたら教えてください。m(_ _)m

550 :NAME IS NULL:04/12/22 15:11:48 ID:VdyoeUI5
質問させて下さい。
緯度と経度をPostgreSQLで管理したいのですが、
この場合、どのようなデータ型ないし構造を用いたらよいでしょうか?

551 :NAME IS NULL:04/12/22 15:41:03 ID:OqGxSayv
>550
ぐぐったら色々出てくるよ。
http://www.google.com/search?hl=ja&q=Postgresql+%E8%A7%92%E5%BA%A6+%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja


552 :NAME IS NULL:04/12/22 16:14:57 ID:???
http://www.google.com/search?hl=ja&c2coff=1&q=Postgresql+%E7%B7%AF%E5%BA%A6+%E7%B5%8C%E5%BA%A6&lr=lang_ja
の方がいいんじゃない。

553 :NAME IS NULL:04/12/22 16:49:21 ID:???
>>551-552
レスthanks。

ぐぐってはいるのですが、どれも小数点や角度を扱うものばかりで、
何度、何分、何秒
といった形式でデータを格納できません。
たとえば、intの配列を格納する事で代用できるのでしょうか?

554 :NAME IS NULL:04/12/22 17:49:11 ID:???
>553

時刻型でやったら?
intervalあたりなら、時分秒で好きなように指定できると思う。

555 :550:04/12/22 17:53:01 ID:???
>>554
結局、ドメインでdegrees、minutes、secondsを定義することにしますた。
Thanks anyway.

556 :NAME IS NULL:04/12/24 14:02:47 ID:4+pQOxez
MS-AccessXPフォームで入力したいんよ。
そこまではできるんだけど、プログラミングの引数風に書くと、IDの部分で自動的に"WA"+year+month+data+iっていうふうにしたいんだけど、どうしたらいい?
参考サイトでもいいのでおせーてください・・・。

ちなみに、フォームで入力するとき、今日が2004年12月24日で2個目の入力だとすると
WA20041224002
みたいに、したいんよ。

557 :NAME IS NULL:04/12/25 23:50:44 ID:???
MS-Accessつかってます。
主キーのフィールドを数値型にした場合、主キーを自動で生成する
関数を自作する必要があると思いますが、その場合、
以下のようなSQLを使用すれば良いと思います。
SELECT MAX(番号) FROM 売上
テーブル名:売上
主キーのフィールド名:番号

しかし、この方法はデータベースを使用していくにつれ、
「番号」の値がどんどん膨大になっていくという欠点をもっています。
これ以外に良い方法はないのでしゅうか。よろしくお願いします。


558 :NAME IS NULL:04/12/25 23:53:47 ID:???
>>556
mid$()とかformat()とかを使ってもだめだったって意味?


559 :556:04/12/25 23:59:23 ID:???
そういうコマンドの使用方法がわからないんです・・・。
参考サイトでもいいのでご教授いただけるとありがたいです・・・。

560 :NAME IS NULL:04/12/26 00:04:12 ID:???
>>559
これらはコマンドではなく、関数。
関数の使い方はヘルプに載ってるじょ。


561 :556:04/12/26 10:00:46 ID:???
>>560
ヘルプに載ってますか・・・。調べてみますわ。
ありがとう!

562 :NAME IS NULL:04/12/29 00:16:39 ID:???
素人丸出しの初歩的な質問ですいません。

特にどこのDBとは限定しませんが、一般的にレコード中に、時々人数が増減
するような可変長の名簿を置くことは可能でしょうか。
基本的にレコードは定義したら、どのレコードも常にバイト数は同じであると
思っていますが、例えばプロジェクト毎の人間の稼動をDBに記録するような
場合、最初のレコードの定義時に人名を100人分確保したとすれば、1人しか
登録していないときは99人分のスペースが無駄になり、101人登録しようと
しても、1人ははみ出てしまいますね。

このような場合は、どのようにレコードを定義するのが定石なのでしょうか?

563 :NAME IS NULL:04/12/29 00:28:46 ID:???
根本的なRDBMSの概念が分かっていないようですね。
それともまさか、テーブルの列を人数分の100個用意するとか?


564 :562:04/12/29 00:57:38 ID:???
できれば、「共通の名簿IDと名前のIDを含めたレコードを
名簿として別個に定義するのが定石だ」とか答えてくれるとベスト。

565 :NAME IS NULL:04/12/29 01:43:57 ID:???
TABLE Project {
 ProjectID (PM)
 ProjectName
 ...
}

TABLE Employee {
 EmpID (PM)
 Name
 Department
 ...
}

TABLE EmployeeInProject {
 ProjectID (PM)
 EmpID (PM)
}

じゃあこんな感じにしたら。


566 :562:04/12/29 02:29:47 ID:???
>>565 なんとなくソレがよさげですね。サンクスコ。
よくわかりませんけど。

567 :NAME IS NULL:04/12/29 13:00:39 ID:btSOVyaW
1つのトランザクション内でCommitしないままで
あるレコードをDeleteした直後に、
そのレコードをSelectした場合、取得は可能ですか?
その後、同じ値でInsertしても大丈夫なのですか?


568 :NAME IS NULL:04/12/29 13:28:35 ID:???
BEGIN TRANS
DELETE record A
SELECT record A

ってことか?
もちろん不可能。
それが可能だったらメチャクチャになる。


569 :name is null:04/12/30 23:59:13 ID:v92yogjU
初心者の質問ですが、お願いします。

テーブルやフィールドの名前のつけ方は、他のテーブルや
フィールドと同じにならないようにすべきなのでしょうか。
例えば、以下のような名前の付け方は問題あるのでしょうか。

テーブル「社員」
・ID
・氏名
・性別

テーブル「性別」
・ID
・性別

複雑なSQL文を使い始めてからエラーが出て、このあたりのこと
が原因のようなきがしましたので質問してみました。
どうぞよろしくお願いいたします。

570 :NAME IS NULL:04/12/31 00:03:17 ID:???
フィールド名は他のテーブルと同一でもいい。
SQLの中でフィールド名を書くときにテーブル名も指定できる。

571 :NAME IS NULL:04/12/31 14:11:47 ID:RSvtQs0O
Windows2000でMySQLを試してみているのですが、
データベースの作成からデータの挿入までを書いた
createdb.sqlというスクリプトを作って↓のように実行してみたところ、
c:\mysql>\mysql\bin\mysql -u root < createdb.sql
ファイルが見つかりませんとエラーが出ました。
これはどこのフォルダにおいて置けば良いのでしょうか。
SQLの入ってるいろいろなフォルダに試しに置いてみたのですがダメでした。
今さっきsqlを始めたばかりで、コマンドプロンプトの書き方とかも良く知りません。
SQLの方で置く場所などが決まっているのか、もしくは
コマンドでディレクトリの指定などをすればどこに置いても良いのでしょうか?
とすればどのように書けばよいのでしょうか。
教えてください。よろしくお願いします。

572 :NAME IS NULL:04/12/31 18:25:05 ID:fVMJh0Ta
>>571
mysql> source c:\createdb.sql
は、試してみたの?


573 :571:04/12/31 21:48:18 ID:RSvtQs0O
>>572
まず、>>571の4行目は以下の間違いでした。すいません。
mysql>\mysql\bin\mysql -u root < createdb.sql

で、教えて頂いたようにドライブ直下に置き、
mysql> source c:\createdb.sql
と打ってみましたが、
ERROR 2005: Unknown MySQL Server
というようなエラーが大量に出ました…

これはどうすればよいのでしょうか。度々すいませんがよろしくお願いします。
ちなみに関係あるのか分かりませんが、MySQL自体は現在読んでいる
「javaMySQLTomcatで始めるサーバーアプリケーション開発入門」っていう
本のCDに入っていた物で、setup.exeでインストールしたものです。
特に何も設定とかしておりません。

574 :NAME IS NULL:05/01/01 00:09:30 ID:UnBz74uX
>>573
そのCDは持ってないが、そのエラー番号は、
「サーバ名が正しくない」という意味だ。
サーバ名などの設定を確認してみてはどう?

あ、2005年おめでとう。w

575 :detabaseしろうと:05/01/04 03:11:42 ID:31maQ+ra
ものすごい勢いで教えて欲しいのですが、

テキストファイルをデータベースにしてVBでDOAのデータベースプログラムを
造ってるんですが、

同じテーブルを異なるテーブルであるかのごとくSELECT文を作る場合、
参考書では、
Select◎◎◎.■■■,Dummy.■■■ From ◎◎◎,◎◎◎ (as) Dummy
でクエリーが取れるというふうに書いてあります(as部分はあってもなくてもいいのかどうか分からないけど)

ところが、これがうまくいきません。
「◎◎◎は、FROM句の複数のテーブルを参照しました」
とかなんとかのメッセージが出てしまいます。

たとえばアクセス(MS)のSQL文だとOKでも、
VBの中でSQLを記述してみると、FROM句のテーブル名が、
「◎◎◎.txt」となってしまうので、ピリオドがうまく認識されていない
と考えられます。
仮にこれを「◎◎◎#txt」としても、通常のクエリーは作動しますが、
上記同一テーブルとみなす処理の上では、「#」が「日付リテラル」と
認識されるようで、「日付」に関する記述エラー警告メッセージが出現して
これまたうまくいきません。

テキストファイルのデータベースでは、こういうことは制限があるのでしょうか?

分かりにくいかもしれませんが、どなたかエロイ人教えてください!

576 :NAME IS NULL:05/01/05 23:40:32 ID:3/u8KLdq
postgresで下のIDをいくつかupdateしたら
テーブル「果物」
・「ID」主キー
・「野菜」
上書きしたデータがselect文ですんなりと出てこないんですが
どうしてでしょうか、ものすごい勢いでお願いします

577 :NAME IS NULL:05/01/06 12:03:45 ID:???
>575、576
もう少しわかりやすく状況を説明してくらはい。
物凄い質問に勢いで答えるスレってふいんきになってきました。

578 :575:05/01/06 13:09:03 ID:xNYa/ivL
VBでカンマ切りのテキストファイル「data.txt」をテーブルにしています。
これは「\base」というフォルダに入っているので、
その旨で
「dtb」という名前で
でデータベースを設定。

これのレコードセットを取りたいわけです。
テーブル「data.txt」には、
ID,hi,nam,money
1,04/05/08,A,1000
2,04/05/09,C,1500
3,04/05/10,B,4000
4,04/05/11,X,2400

という具合にデータが入っています。
これのレコードセットとして、
ID,nam,(ID+1のnam又はmoney)
を取得したいわけです。
すなわち、
1,A,C,1500
2,C,B,4000
3,B,X,2400
というふうに。

これを、
Set recset = dtb.OpenRecordset("select data.txt.ID , data.txt.nam , dummy.nam , dummy.money from data.txt,data.txt as dummy where data.txt.ID=dummy.ID+1")
と書きました。
ところが、
「フィールドhiは、FROM句の複数のテーブルを参照しました」
というメッセージが出てしまいます。

なお上記「data.txt」の部分を「data#txt」とすると今度は「日付関数が間違っている」という意味のメッセージが現れてしまいます。

きりがないので別の方法で目的の作業を終えてしまいましたが、
どういうことなのか、(何処が間違っているか)教えていただけたらありがたいです。

579 :NAME IS NULL:05/01/06 15:23:44 ID:???
>>578
ODBC TEXT Driverは制限が多かったりパフォーマンスに問題があったりで
あまり使ったことはありませんが 拡張子のドットが問題になるようでしたら
両方にエリアスを使ってみるのはどうでしょうか?(動作確認はしてませんけど)

from data.txt a, data.txt b where a.ID = b.ID + 1

あとDAOを使ってるというお話ですがODBCDirectですかJET(mdb)経由ですか?

580 :575:05/01/06 17:16:06 ID:xNYa/ivL
>>579
レス、ありがとうございます。

両方にエリアスということですが、そのような書き方をして
ためしたこともあるんですが、駄目でした。

DAOのODBC、JET径由という意味が実はよく飲み込めていない素人で
恐縮なんですが、使用しているデータコントロールでは設定をJETに
しています。

どうしてtxtファイルを用いているかというと、
定型文が羅列してあるテキストファイルを読み込ませ、
そこからデータを拾ってカンマ切りのテキストファイルにし
そのままテーブルに使用しようとしているためです。

他に適切な方法があるのかどうかは分かりませんが。

581 :576:05/01/06 19:55:29 ID:PHo2e4CR
postgresで1〜10並んだID(主キー)の1〜3を11〜13にupdateしたら
上書きしたデータ11〜13がselect文ですんなりと出てこないんですが
どうしてでしょうか、ものすごい勢いでお願いします

582 :NAME IS NULL:05/01/06 21:11:05 ID:???
>>581
すんなりってことはそのうち出てくるって事ですか?
トランザクションの途中だとか。
Webから参照してるならページがキャッシュされてるとか。

583 :NAME IS NULL:05/01/06 21:52:56 ID:???
哲子?

584 :581:05/01/08 12:05:51 ID:kG2LW6z8
>>582
updateしたあとに11〜13の3つを表示させようとすると
なぜか8〜10が表示されます。それぞれ単独で表示させるのは上手くいくんですけど。

585 :NAME IS NULL:05/01/08 13:23:32 ID:???
>>581
UPDATEの仕方やSELECTの仕方がわからないとなんとも。
SQL晒して

586 :NAME IS NULL:05/01/08 20:19:28 ID:???
どうして581は少しずつしか情報公開してくれないんだろうか。。。

587 :581:05/01/08 21:04:17 ID:8eBZ95Kw
update table1 set id+10 where id < 4 //id1〜3をid11〜13にする
select id from table //id表示
とやっても実際に表示されるのは3〜10のみ
次に
select id from table1 limit 3 offset 7 //8件目から3つ表示
つまり4,5,6,7,8,9,10,ここが表示→[11,12,13]されるわけです本来ならば。
しかし出てくるのは[8,9,10]です。しかたないので
select id from table1 where 11 //id11を表示
これだとちゃんと11が表示されるんですがどうしてでしょうか?

情報を出し惜しみしてるわけじゃないんです、
自分ののコミュニケーション能力が足りなくてどう質問していいかわからないんです…

588 :NAME IS NULL:05/01/09 01:47:53 ID:???
>>587
ざっと見たところ考え方は間違ってないと思うので状況を誤認してる可能性が大きいと思います。
状況を誤認した状況で変に内容を編集すると問題のポイントが抜け落ちることが多いですから
psqlで実行しているなら実行時のログをそのまま出したほうが早いと思います。
明らかに転記ミスと思われるSQLが見受けられますのでこのままでは答えようがありません。
さて、今回のケースに当てはまるかどうかわかりませんが数字の大小比較がおかしい場合は、
ID列が文字列で定義されていることがよくあります。IDが主キーかどうかの情報も重要です。
テーブルの定義もアップしたほうがいいと思います。

589 :581:05/01/09 12:31:15 ID:ywvYRAMu
createdb aaa
psql aaa
create table table1(
id integer primary key, //idを主キーに設定
sinamono text
);
insert into table1 values (1,'aaa');
//ここでid1〜10を入力しますがここでは中略します
insert into table1 values (10,'jjj');
update table1 set id = id+10 where id < 4 //id1〜3をid11〜13にする
select id from table1 //id表示
とやっても実際に表示されるのは4〜10のみ
次に
select id from table1 limit 3 offset 7 //8件目から3つ表示
つまり4,5,6,7,8,9,10,ここが表示→[11,12,13]されるわけです本来ならば。
しかし出てくるのは[8,9,10]です。しかたないので
select id from table1 where 11 //id11のみを単独表示
これだとちゃんと11が表示されるんですがどうしてでしょうか?
idは主キーに設定してあります

仕事でネット経由で間接的に使ってる方のpostgresは上記のようになるんですが
いまためしたら自宅でcygwin使っての直接入力するpostgresは上手くいきました
そんなわけないと思いますが上手く表示されないのはネット経由だからでしょうか?

590 :NAME IS NULL:05/01/09 13:34:37 ID:???
>>589
別の環境で動くのであればSQLの使い方というレベルではなさそうですね。
ネット経由だからかどうかは、何を使ってどういう風にネット接続してるか
によるのでその情報も出してくれないと。
cygwinうんぬんのくだりだってsshやtelnetを使って仕事で使ってるその
マシンにログオンして同じpostgresを使ったのか、cygwin上で別のpostgres
を動かした(できるかどうかわからんけど)のかはっきり書かないと
コメントできないですよ。

591 :581:05/01/09 13:52:40 ID:ywvYRAMu
仕事(会社)ではLAN接続でTeraTerm(ssh)を使い
Linuxサーバーに接続して会社のPostgresを動かしています

自宅のは勉強用に自分個人のPCに自分専用のpostgresを入れて使っています

説明下手ですいません、自宅から会社のPostgresを使っているわけじゃないです

592 :NAME IS NULL:05/01/10 22:16:45 ID:???
環境はOracle9iです。
PL/SQLで簡単なプログラムを組んでいて
疑問に思う事が生まれましたので質問をさせて頂きます。

DECLARE
TEST_CHAR CHAR(5);
BEGIN
TEST_CHAR := 'ABC';

IF TEST_CHAR = 'ABC' THEN
DBMS_OUTPUT.PUT_LINE('正');
ELSE
DBMS_OUTPUT.PUT_LINE('否');
END IF;
END;

上記のようなプログラムを実行しますと
結果は'正'のルートを通ります。

TEST_CHARはCHAR(5)と宣言しているので
実質は'ABC△△'(△は半角スペースと考えて下さい)が
入っているはず。
それにも関わらず単純な'ABC'でイコールになってしまうというのは
Oracleでは当たり前な考え方なのでしょうか?
変数に入っている半角スペース等は無視されるとか。

593 :NAME IS NULL:05/01/10 22:17:54 ID:???

別な例ですとDBのKEY項目がCHARで宣言されている場合、
抽出条件等でその項目が指定されている場合は
半角スペースを補う、又は半角スペースを除去して問い合わせをかける様に
していたのですがこれも無用の事なのでしょうか?

テーブル:TEST_A
項目:KEY_COLUMN CHAR(5)
  :COLUMN1 VARCHAR2(30)

データ例)
KEY_COLUMN COLUMN1
001△△  名称1
002△△  名称2
009△△  名称9

以上のようなデータからKEY_COLUMNが'001△△'のデータを取得したい場合は

SELECT KEY_COLUMN,COLUMN1
FROM TEST_A
WHREE KEY_COLUMN = RPAD('001',5,' ');

としなくてはいけないと考えていたのですが。
CHAR型、半角スペースの考え方がよく分かりません。
説明が下手ですみませんが宜しくお願いいたします。

594 :NAME IS NULL:05/01/11 00:01:15 ID:???
CHAR型の比較は長いほうにあわせて短いほうにブランクがパディングされる
だったと思う。COBOLの文字型と同じ考え方でいいはず。

595 :NAME IS NULL:05/01/12 00:16:16 ID:rI4jwRN3
データベースって講義一応受けてるんだけど
このスレで出てるようなことは全くやってない・・・

ERモデルとかエンティティとか基数制約とか
PCではなく、ひたすらノートと鉛筆ばっかり使っている・・・
きっとこんなのは基礎の基礎だと思うんだけど

お前らも↑みたいなのマスターしたの?

596 :NAME IS NULL:05/01/12 00:27:22 ID:???
>>595
そういうのはやれるうちやってたほうがいいと思うよ。
いきなり実務ってやつらで向上心のない連中はこの板でときどき
話題にのぼるヘボSEまっしぐらだべさ。

597 :NAME IS NULL:05/01/12 08:56:31 ID:???
>>581
postgresは使ったことがないんではずしてるかもだけど。

>update table1 set id = id+10 where id < 4 //id1〜3をid11〜13にする
>select id from table1 //id表示
>とやっても実際に表示されるのは4〜10のみ
トランザクションは関係ない?

>select id from table1 limit 3 offset 7 //8件目から3つ表示
>つまり4,5,6,7,8,9,10,ここが表示→[11,12,13]されるわけです本来ならば。
orderかけてないからじゃないの?



598 :aaaa:05/01/12 16:37:40 ID:vSkHTNjw
aaaaaaa

599 :NAME IS NULL:05/01/12 20:13:38 ID:rxfwdxkA
>>595
実務なんて後から付いてくるんだから基礎の勉強はやれるだけやっとけ。
基礎的素養の無い雑魚みたいな使い捨てプログラマと仕事するのは勘弁ですよもう。


600 :NAME IS NULL:05/01/13 08:37:28 ID:N1TKOkoo
こんにちは。質問させてください。
子供が小さくて外に仕事へいけない主婦が集まって
ビーズアクセサリーのネットショップを立ち上げた者です。
インターネットで、ショッピングカートとは別で、
データーベースを使った顧客・商品管理・売上率の計算等をしたいのです。 
Accessでデーターベースを作って、それにパスワード等をつけて
私たち販売する人のみが、ネット上で、表示・管理をしたいとしたら、
もしかしてAccess以外に、何か勉強しなくてはいけないのでしょう
か・・・?

601 :NAME IS NULL:05/01/13 14:20:36 ID:???
どこかの販売管理サービスのASP(アプリケーションサービスプロバイダ)を
使うほうが安全だと思うのだが。
ひとつのオフィスのLANでAccessのファイルを共有して使ってるように、
離れた場所にいる関係者でネットを使って販売管理用のAccessのファイルを
共有したいってことならば、VPNやでつないでファイルを共有するか、
XPのリモートディスクトップで一台のPCを交代で共有するのも手かもしれないですね。
ネット上で何かしたいのなら勉強すべきはまずセキュリティです。

602 :yo-ko:05/01/13 19:57:40 ID:KcEKcyWW
MYSQLを使用しています。
初歩的な質問で恐縮ですが物凄い勢いで教えて下さい。以下のような3つのテーブルを結合したいのですがうまく行きません。どうか助けて下さい。

テーブル:甲
+-----+-----+-----+
| A | B | C |
+-----+-----+-----+
| 1| 1| 600 |
| 2| 1| 200 |
| 3| 2| 500 |
| 4| 3| 800 |
| 5| 1| 300 |
+-----+-----+-----+
テーブル:乙
+-----+-----+
| A | D |
+-----+-----+
| 1| 100|
| 2| 500|
| 2| 800|
| 4| 300|
| 5| 200|
+-----+-----+
テーブル:丙
+-----+-----+
| A | E |
+-----+-----+
| 1| 500|
| 1| 600|
| 3| 300|
| 5| 700|
| 3| 900|
| 5| 100|
+-----+-----+
B = "1" の時の結果が以下になるようなselect文が書けません。
+-----+-----+--------+--------+
| A | C | sum(D) | sum(E) |
+-----+-----+--------+--------+
| 1 | 600 | 100 | 1100 |
| 2 | 200 | 1300 | null |
| 5 | 300 | 200 | 800 |
+-----+-----+--------+--------+

SELECT 甲.A, 甲.C, sum(乙.D), sum(丙.E) FROM 甲 LEFT JOIN 乙 ON 甲.A = 乙.A LEFT JOIN 丙 ON 甲.A = 丙.A WHERE 甲.B = 1 GROUP BY 甲.A ;
上記のように私なりに書いてみたのですが、以下のように合計値がダブってしまいます。
+-----+-----+--------+--------+
| A | C | sum(D) | sum(E) |
+-----+-----+--------+--------+
| 1 | 600 | 200 | 1100 |
| 2 | 200 | 1300 | null |
| 5 | 300 | 400 | 800 |
+-----+-----+--------+--------+

603 :NAME IS NULL:05/01/13 21:15:25 ID:???
本来あまり関係のない二つの事象をひとつにまとめようとするとめんどくさくなりますね。
甲乙で表(viewでもいい)を作くり、甲丙で表(viewでもいい)を作る。
それから最終的な形にするにはどうしたらいいか考えればできます。
2つのViewをマージするSQLを作ってもいいし、1つのSQLにまとめる方法をゆっくり考えてもいい。
2表できたところでプログラム側に処理を移しマージしてもいい。
無理にひとつのSQLで処理しようとするとバグの元、処理スピードとの兼ね合いもありますが、
後々理解できる範囲のSQLにまとめましょう。

604 :NAME IS NULL:05/01/13 23:02:08 ID:???
600です。
>>601さん
レスありがとうございました。
アプリケーションをレンタルする事も考えたのですが
料金が高いのがネックでして・・・_| ̄|○
もう一度みんなで相談してみます。

605 :yo-ko:05/01/14 09:20:18 ID:UC20sTBi
603さん。
回答ありがとうございます。
なんとか一文でできないかと考えていたのですが
なかなか難しそうですね。
2表作って処理をプログラム側に移してやって見ます。
ありがとうございました。


606 :NAME IS NULL:05/01/15 16:21:14 ID:ffG2I4Ip
CDをMP3ファイルにする時、
変換ソフトでCDDBを登録できるようになっているのですが、
CDDBのアドレスはどのようなものがあるおんでしょうか?

http://www.gracenote.com/
ここが凄いと聞くのですが、URLのどのように登録すればよろしいのでしょうか?

どなたか回答よろしくお願いします。

607 :NAME IS NULL:05/01/15 18:32:08 ID:ludeJFlu
postgresqlで、現在データを文字コードSJISで扱ってるデータを
EUCまたはUNICODEでデータベースを作り直したいんだけど、
良い方法はないでしょうか?
pg_dumpで落としたダンプデータの文字コードを変換して
データを入れ直しただけではうまくいかなくて悩んでおります。
御指南をよろしくお願いいたします。

608 :NAME IS NULL:05/01/15 21:38:27 ID:???
方法としてはそれ以外何かあんのか?
どうせデータのチェックではじかれてるんだろうから俺だったら
そこを修正するようにバッチくむけど

609 :NAME IS NULL:05/01/16 01:03:20 ID:i1aKOcPl
A社では、社員が取得している資格について、次のような“資格取得表”に記録している。

  資格取得表(社員番号,社員名,{資格コード,資格名,資格取得年月})

 社員番号と資格コードは、社員あるいは資格ごとに与えられた固有の番号である。
 また、1人の社員が複数の資格をもつ場合は、その社員について、{ }内の項目が繰り返し登録されている。
 この表を第3正規形となるように正規化すると、表はいくつできるか。
 また、それぞれの表の主キーは何か。
 次の例にならって、解答せよ。
 なお、表および主キーの順番は問わないものとする。

 【解答例】 表が2つで、それぞれの主キーが「社員番号」 「社員番号,社員名」の場合
 表の数=2
 表1の主キー=社員番号
 表2の主キー=社員番号,社員名

610 :NAME IS NULL:05/01/16 02:26:54 ID:dx68E55u
最近はロリが多くてヤバイ世の中だな・・・

こいつやばすぎるよ。。
人間じゃねえ
行方不明の7歳と9歳3か月ぶりに帰宅するも皆妊娠してた
http://news18.2ch.net/test/read.cgi/dqnplus/1105713035/


611 :名無しさん:05/01/17 19:29:52 ID:???,
助けてください。
MOを修復する方法を知っている方助けてください。
MO forum JapanのMO修復ツールを使っても修復できませんでした。
ほかの(パソコン以外の)媒体で書き込んだMOをパソコンで開き、
MOの中のデータをパソコンでデータ変換し作られたTXTファイルを
MOに書き込みました。一度目は成功したのですが、次のデータをしようとしたら
動かなくなりました。

情報が少ないかもしれませんが、誰か知っている人いませんか。

612 :NAME IS NULL:05/01/18 00:13:22 ID:JpG0y9Dd
みなさん、こんにちは。

早速、質問いたします。

現在、私は、仕事でOffice97(SR2)+DAO3.51+Oracle8i(ODBC)の環境でAccess97のモジュールにコードを記述して
Oracleデータにアクセスしようとしているのですが、Oracleのテーブル項目が255バイトを超えるものをDAOのレコードセット
からアクセスしようとすると、以下のようなエラーメッセージが表示されてしまいます。

実行時エラー ’14’:

s1109:[Oracle][ODBC][Ora]????J?[?\????u???B


以前は、問題なく動いていたMDBなのですが、急にこのようなエラーが表示されるようになりました。

心あたりは、Visual Basic 5.0 Professional Editionを標準でインストールしたことくらいです。
もしかしたら、これが原因なのでしょうか。

他のPCでは、問題なく動いています。
VB5.0をインストールした私のPCだけ上記のような現象になってしまいます。

私のPCで動かないと、ちょっと業務に支障がでますので、よろしくお願いいたします。

それでは、失礼します。


613 :NAME IS NULL:05/01/18 09:17:17 ID:???
データベースの問題です。
友達に聞いてもわかりませんでした。

[1]
関係スキーマR上の関係rにおいて
関数従属X→Yが成り立つなら
多値従属X→→Yもr上で成り立つことを証明

[2]
第4正規形なら第3正規形でもあることを証明

614 :NAME IS NULL:05/01/21 00:11:07 ID:tOTfBFmP
PHPでデータベースにアクセスして検索キー入力して
検索結果したヒット数をだすにはどうしたらよいですか?

615 :NAME IS NULL:05/01/21 14:20:28 ID:???
>>614
www.amazon.co.jp で「PHP DB」で検索

616 :NAME IS NULL:05/01/21 20:03:33 ID:???
Win版Filemaker ver.6を使っていますが、平成の大合併を反映して、顧客住所を変更しろと言われています。どなたか、やりやすい方法をご存じでしょうか?
お願いします。

617 :NAME IS NULL:05/01/25 22:19:21 ID:5Qm04rSa
PostgreSQLで、DB「A」とDB「B」があったとき、
「A」に接続中に「B」のDBを参照することは可能ですか?
または「A」のDB内に「B」の任意のテーブルのviewを作るとかってできないでしょうか?

618 :NAME IS NULL:05/01/25 23:41:04 ID:tgIy3OR9
データベースにおける更新権限ってどういう意味でしょうか?

619 :NAME IS NULL:05/01/26 20:03:39 ID:tYmIJPUK
VBでゲームを個人作成している板はどちらでしょうか?

620 :NAME IS NULL:05/01/26 20:47:01 ID:???
>>619
ゲ製作技術
http://pc5.2ch.net/gamedev/

621 :NAME IS NULL:05/01/30 16:12:25 ID:rb/8Ozy/
Q1:トランザクション管理におけるロールバックの必要性を
  具体例を示しながら説明する
Q2:データベースのバックアップ方法には想定される障害の重要度に応じて
  種々の方法がある。そのバックアップ方法について少なくと2種類の方法について、
  おのおのどのような障害を想定しているか。

こんなこと教えて下さるネ申を探していますorz・・・

622 :NAME IS NULL:05/01/30 19:55:09 ID:???
宿題は自分でどうぞ。


623 :NAME IS NULL:05/01/31 14:57:53 ID:???
>>621
musako sage

624 :NAME IS NULL:05/02/01 11:38:12 ID:???
マルチすみません。

ORACLE8にてトリガーステートメント中に、トリガー発動の契機となったSQLを発行した
プログラムの名前と、そのSQL文を取得したいのですが、 どのように記述すればよいのでしょうか?
宜しくお願いします。


625 :NAME IS NULL:05/02/01 16:19:15 ID:RpjMX2EP
すいません、教えてください。Oracleです。
ObjectBrowserからPL/SQLをデバッグ実行して
長くなりそうだったので、ObjectBrowser毎落としました。
セッションが残ってたんで強制的に切断してもKILLEDのままで
パッケージを掴みっぱなしです。おかげでこのパッケージを
呼べなくなってしまいました。どうしたら、このkilledされた
alter package debugのセッションを削除できるのでしょうか?


626 :625:05/02/01 18:23:01 ID:???
該当セッションのSPIDを求めて、
orakillした後、さらに
ObjectBrowserからkilledになっているセッションを切断したところ、
セッション一覧から消えた。OTN掲示板から。

627 :NAME IS NULL:05/02/02 00:42:07 ID:+mVum3XE
くだらない質問ですがどなたかお願いします。
ACCESS2003のフォームでデータをクリックすると
別のフォームを表示する方法教えていただけませんでしょうか?
マクロとかVBAなど方法は問いませんのでお願いします。

628 :NAME IS NULL:05/02/03 23:42:50 ID:8NKkPXsD
ストアドとJava等にSQLを書いて、要求の都度発行するのと、
全然速度って違いますか?

629 :NAME IS NULL:05/02/04 02:31:02 ID:???
>>628
複数の命令からなる複雑な処理ならストアドが速くなるが、
単一の命令の場合はほとんど差がでないことが多い。
jdbcならPreparedStatementをキチンと使うほうが大事だろう。

630 :NAME IS NULL:05/02/04 14:53:42 ID:WeD6/Po8
ABCってデータベースに、1、2、3、4…ってテーブルがあって、全部同じ構造をしてるんです。
そこで検索するスクリプトを作っているんですが、テーブルを指定しないでそのデータベースにあるテーブル全体から文字列を検索するにはどうしたらよいのかわかりません。
調べる所は(仮に)各テーブルの000ってフィールドなんです。

その場合のSQLクエリーはどぅすればよろしいのですか?

631 :NAME IS NULL:05/02/04 20:48:30 ID:???
>>630
同じ構造をしてるテーブルを正規化すれば一発で取れる

632 :野獣牛兵衛:05/02/07 17:37:07 ID:hLuALhzi
postgreSQL 8を使用しています
SELECT COUNT文を使用して

SELECT COUNT(CLASS = 1),COUNT(CLASS = 2),COUNT(CLASS = 3) FROM TABLE_NAME;
みたいな命令を実行させているのですが、期待した値が返ってきません
where句を使用して 必要な回数だけ繰り返せば同じ処理ができるのですが
それでは悔しいです

count文で条件を付与する事は不可能なのでしょうか

633 :NAME IS NULL:05/02/08 01:02:41 ID:???
>>632
count()は式の値がNULL以外の行の数を数えるからこんなので。

select
count(case class when 1 then 1 else null end),
count(case class when 2 then 1 else null end),
count(case class when 3 then 1 else null end)
from table



634 :NAME IS NULL:05/02/09 17:07:40 ID:RK4SfHLE
商品DBを任されました。データは1500件程度。
当方知識はまったくなく(Web製作の知識のみ)現在勉強中で、
とりあえずやってみようと今ローカルに環境を作ってPHPMyadminを開いたところで
さっそくつまづきました。
環境はWinXPで、PHP4・Mysql4.023、実際に借りているサーバーと同じにしました。

DBについて本とかも読んでみたんですがいまいちピンとこないです。
ものすごい素人な質問ですがどなたかご教授ください。

◎例えば、商品1500、商品ひとつにつきデータの項目が30ぐらいあるとします。
最終的には、検索でデータから5項目ぐらいを抽出して簡易表示、
そこから全データが見られる詳細ページに移動できるようにしたいと思っています。

1.この場合、PHPMyadminで「商品」というテーブルを作り、フィールド名を30個作り、
ここにすべてのデータを入力するという解釈でいいのですか?
それとも、検索される項目ごとにテーブルを作るのですか?
もしかして、基本的な解釈が間違ってますか?

2.その際のフィールド名なんですが、本によって日本語だったり英語だったりします。
日本語でも構わないのですか?

635 :NAME IS NULL:05/02/10 06:55:44 ID:???
>>634
1は正規化の問題。
その項目がメーカー名、価格、仕入先・・のように商品の直接の属性ならそのままでよい。
その項目に仕入先1、仕入先2、仕入先3・・のように繰り返しがあるなら商品仕入先テーブルを作る。
その項目に仕入先、仕入先住所、電話番号・・のように仕入先の属性を含んでいたら仕入先テーブルを作る。
それにもかかわらず効率やその他の要因で正規化を取りやめるケースもある。
2はその組み合わせでは使ったことはないのだが、使えたとしても他のツールと組み合わせたときに
うまく動く保証が無いのでよくわからない場合は使わないほうが無難。
この辺はプロジェクト全体で決めるべきことだと思うので独りで決めないほうがいいと思いますよ。


636 :NAME IS NULL:05/02/10 14:55:49 ID:???
InterBaseに対しESQL(組み込みSQL)でアクセスするWindows
アプリケーションをC++Builder 6で作成していますが、
ibase.h内に不正な文字コード"0x0c”が含まれているため
コンパイルエラーとなります。
ibese.hを編集すればよい話なんですが、なぜこのような
文字コードが入っているのかお分かりの方いらっしゃいますか?

Windows2000 Pro
gpreオプション:-cxx -n -m
InterBase 6.1 (オープンソース)


637 :NAME IS NULL:05/02/12 22:39:42 ID:???
IBのオープンソース版をまだ使ってる人もいるんだ。
とりあえず、FB1.0.xではそういうのでエラーが出たことはないな。

638 :T.O:05/02/14 17:35:42 ID:RwPSRDsG
はじめまして。駆け出しプログラマです。
ご教授頂けたら、幸いです。

特定の時間から時間まで検索するSQLってどう書けば良いのでしょうか?
(例:2005/02/14 12:00〜2005/02/15 12:00まで)

日付の範囲指定だけなら分かるのですが、時間の指定が分かりません。
(日付指定:select * from emp where hiredate >= '2005/02/14' and hiredate <= '2005/02/15')

仕事で日付関連のSQLを使う機会が多いので、投稿しました。(ご返信は少し遅れるかもしれません)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
SQL> desc emp
  名前 NULL? 型
----------------------------------------------------------------
  EMPNO NOT NULL NUMBER(4)
  ENAME   VARCHAR2(10)
  JOB   VARCHAR2(9)
  MGR   NUMBER(4)
  HIREDATE   DATE
  SAL   NUMBER(7,2)
  COMM   NUMBER(7,2)
  DEPTNO   NUMBER(2)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−

639 :T.O:05/02/14 18:24:16 ID:RwPSRDsG
638>
スレが多少、適切ではない事に気付いたので、「SQL質疑応答スレ Part 2」へ
移動しました。

640 :NAME IS NULL:05/02/16 00:35:23 ID:???
データベースを個人活用してる人はどういう使い方してますか?

641 :NAME IS NULL:05/02/20 23:17:14 ID:PA+HGUYZ

ふー、困ってます。
Access2003で、テーブルでハイパーリンク型にしているファイル(画像)を、
レポートではハイパーリンクではなくてそのまま画像を表示させる方法教えてください。

642 :NAME IS NULL:05/02/22 23:26:08 ID:???
スキーマって何ですか?
いろいろ読んだんですが、なかなか理解できません。
いい例え話でも使って説明してくれませんか?

643 :NAME IS NULL:05/03/01 03:04:32 ID:03PsqoF/
db2にて

csvファイルに表をエクスポートする際、
表に存在しない列を
エクスポートすることってできるんでしょうか?
もちろん表に存在しない列ですから、
そこにエクスポートされる値は
半角スペース、あるいはnull等でかまわないのですが…。

たとえば、表にA、B、Cの列がある場合、
selectを記述する所に左のようにかけば、右のようなカンマ区切りで
エクスポートされますよね。

SELECT * ⇒A,B,C
SELECT A ⇒A

では、下のような結果を得たいときはどうしたらよいのでしょうか?
   ⇒A,(空白),B,C



644 :NAME IS NULL:05/03/01 23:38:59 ID:6E4qrgjn
下記のようなことを行いたいのですが、もう数十時間悩んでおり、このままだとクビになります。

以下のようなテーブルが2つあります

■テーブルA
顧客ID なまえ 内線
――――――――
001、 佐藤、 001 ※同じ(これだけ残す)
002、 鈴木、 002
003、 田中、 003 
004、 佐藤、 001 ※同じ(削除)
005、 佐藤、 004
006、 鈴木、 005
007、 佐藤、 001 ※同じ(削除)

■テーブルB
伝票ID 顧客ID 購入物
001、 001、 ガム ※対応する顧客は残る
002、 003、 チョコレート
003、 004、 塩  ※対応する顧客が残らない
004、 006、 ガム
005、 002、 塩
006、 007、 塩  ※対応する顧客が残らない

テーブルAの佐藤4人中3人は、名前も内線も同じなので
顧客IDは一番小さいものだけ残し、あとは同一とみなし重複行を削除します。

そうするとテーブルBの伝票IDの001、003、006の顧客IDは全部が佐藤だったのですが
重複を削除してしまったため、003と006に対応する顧客がテーブルAから消えてしまいます。

なので、テーブルAの重複を削除するときに、同時にテーブルBの顧客IDも
一緒に一番小さい顧客IDに更新したいのです。

どうか宜しくお願いいたします。



645 :NAME IS NULL:05/03/02 00:18:00 ID:???
>>644

ワークテーブルとか作れますか?
顧客IDが一番小さいものだけ、ワークテーブルに突っ込むと、方法に広がりがでると思う。

646 :644:05/03/02 00:33:55 ID:SXcU4gI8
ワークテーブル?
その話もう少し詳しく聞かせてください

647 :NAME IS NULL:05/03/02 01:02:07 ID:???

DBにもよるけど。

1.別なテーブルに、残す分のレコードを待避しちゃう(テーブルC)。
  Oracleなら、create table as select *・・・がつかえる。

2.テーブルBの顧客IDに該当するテーブルAのレコードの内線番号に該当するテーブルCの顧客IDで、
  テーブルBの顧客IDを更新。

3.テーブルAを全部削除して、テーブルCの内容を insert

4.テーブルCを drop

で、どうだ?



648 :NAME IS NULL:05/03/02 01:49:13 ID:???
一時表をおすすめします。データがほかのセッションと混じらないし、たしかログ対象で
ないので余分なログを書き出さないというメリットがあったと思います。
Oracle (おそらく9以降)なら事前にアロケーションしておきます。
CREATE GLOBAL TEMPORARY TABLE table_name ...
INSERTしたデータはそのセッションからしか見えず、セッションが終わればそのデータが消えます。
MSSQL だと表名に@をつけるだったかな。こっちは実行時にアロケーションします。
CREATE TABLE @table_name ...
表自体がセッション内でのみ有効でセッションが終われば表ごと消えます。

649 :644:05/03/02 07:12:31 ID:SXcU4gI8
>647、648
色々とご助言ありがとうございます。
しかし私はOracleビギナー中のビギナーなもんで
まったく理解できません。
できれば例文でSQLをご教授いただければと思います。
わがまま言ってすいません

650 :NAME IS NULL:05/03/02 08:47:19 ID:6sCbSKMl
ライムワイヤー関係のスレ教えてください



651 :NAME IS NULL:05/03/02 09:11:04 ID:???
>>649
Oracleならサブクエリーがいろいろ使えるから、こんな感じのViewかワークテーブルを作るといいですよ。
select t1.顧客ID, t2.統一顧客ID from テーブルA t1 join
(select なまえ, 内線, min(顧客ID) as 統一顧客ID from テーブルA group by なまえ, 内線) t2
on (t1.なまえ = t2.なまえ and t1.内線 = t2.内線);
もしjoinが使えないバージョンだったら普通にwhereで結合してくださいね。

652 :NAME IS NULL:05/03/02 11:29:46 ID:???
>>648
訂正、MSSQLの一時テーブルは #テーブル名でした。Oracle9i 10g ではこんな感じにかけます。
create global temporary table TableC (CsID number(3) primary key,
CsName nvarchar2(4), CsITel number(3), TrueCsID number(3));
ここまでは事前の作業、フィールド名が変わってるけど推測してください。
insert into TableC (CsID, CsName, CsITel, TrueCsID)
select t1.CsID, t1.CsName, t1.CsITel, t2.TrueCsID from TableA t1 join
(select CsName, CsITel, min(CsID) as TrueCsID from TableA group by CsName, CsITel) t2
on (t1.CsName = t2.CsName and t1.CsITel = t2.CsITel);
update TableB t1 set CsID = (select TrueCsID from TableC t2 where t1.CsID = t2.CsID);
delete from TableA where CsID in (select CsID from TableC where CsID <> TrueCsID);
commit; -- ここでTableCのデータは消去される。

653 :NAME IS NULL:05/03/02 11:34:52 ID:???
誰かビューについて教えて下さいー。
複雑なSQLがあったとして、そのSQLを元にビューを作成したとします。
この場合、ビューを参照した時というのは、裏で作成元となったSQLが参照する度に実行されていて、
実行結果を得る時間は、ビューの作成元となったSQLを実行する場合と同じなのでしょうか?
それとも、一度ビューを作成すれば、Oracleが裏で何かしてくれていて、毎回ビューの作成元となった
SQLを実行するよりも、実行結果を早く得る事が出来るのでしょうか?

私は、ビューというのは見せたくないカラム等を隠すための、セキュリティ的な意義しかないと思っていたのですが、
先日会社の先輩が、ビューを作れば、ビューの作成元となったSQLを実行するより早く実行結果を得られると言っていたので・・・.
一応、Oracleのオンラインドキュメントには目を通したのですが、ビューについてはセキュリティ的な意義しか
書いてありませんでした。
どなたか知ってたら教えて下さい。お願いします。


654 :NAME IS NULL:05/03/02 11:53:02 ID:???
>>644 - >>652
移動してるようなので誘導しときます。 SQL質疑応答スレ Part 2
http://pc5.2ch.net/test/read.cgi/db/1103113155/256-

655 :NAME IS NULL:05/03/02 12:09:09 ID:???
>>653
あなたが正しい。ストアドプロシージャとちがって速度的なメリットはありません。
ただそういう特別な機能をもったViewを実装したDBMSがないとは言い切れませんけどね。

656 :NAME IS NULL:05/03/02 14:46:24 ID:???
実行する分にはViewを使うかどうかは関係ないだろうけど、
View作成時にその「複雑なSQL」はパース済みと考えると
その分だけ速くなったりしないかな?
検証したことないけどさー。

それと、俺はテーブルを結合させるようなSQLは、けっこうViewに
しちゃうけどな。

657 :NAME IS NULL:05/03/02 18:02:42 ID:???
>>656
例えばこんなViewがあっとして
VIEW_1 : select A.*, B.* from A join B on (A.fkey = B.key)
これを次のように実行するとする。
SQL_1 : select A.key, b.fkey, b.data from VIEW_1 where A.key = '0001'
VIEW_1が先にパースされているとすると内部的には次のような複数のSQLが実行される。
  create table 中間テーブル (....)
  insert into 中間テーブル select A.*, B.* from A join B on (A.fkey = B.key)
  select A.key, b.fkey, b.data from 中間テーブル where A.key = '0001'
VIEW_1がSQL_1と同時にパースされることによって次のSQLが実行される。
  select A.key, b.fkey, b.data from A join B on (A.fkey = B.key) where A.key = '0001'
どちらが効率がよいか明白です。これがViewが事前にパースされない理由です。

658 :NAME IS NULL:05/03/02 23:14:42 ID:???
>>657
その理由は、プランナが実行計画を出せない理由であって
パースできない理由ではないかと。
とはいうもののPREPAREでもプランナまでもって行くようだから
パースとプランナって1セットで分離できない、もしくは
分離して中間コードのようなもので置いてもさほど速度的には
意味をなさないのかな。

659 :sage:05/03/02 23:49:33 ID:fYfnGZO2
PostgreSQLでデータ型に1byte符号なし整数を使うには
どうしたらいいのでしょうか?

660 :NAME IS NULL:05/03/02 23:50:39 ID:???
すみません…

661 :NAME IS NULL:05/03/03 00:10:50 ID:???
>>659
1バイト整数ってなかったと思うよ。
どうしてもというのなら
char(1)で定義して、chr()で挿入、ascii()で抽出すれば。

662 :NAME IS NULL:05/03/03 00:18:31 ID:???
大は小をかねるでsmallintが無難。

663 :659:05/03/03 00:21:32 ID:???
>>661
ありがとうございます。
やっぱりそれしかないですかね。でも、ちょっと面倒ですね。
PostgreSQLを使う場合、こういうのはケチケチせずに
SMALLINTを使うものなんでしょうか?
あと、0〜65535の数値を取りたい場合も、素直にINTEGER
使った方が楽ですかね?


664 :659:05/03/03 00:53:46 ID:???
>>662
どうもです。
PostgreSQLを使ってる人って、その辺大らかなんですかね
(そうならざるを得ない)?
PostgreSQLを今日初めて触ってみて(といっても他のも殆ど
使ったことのない初心者なんですが)、データ型が少ないのに
愕然としたんですが。

665 :NAME IS NULL:05/03/03 01:03:00 ID:???
Postgresは多いほうだと思いますけどね。
Oracleはかなり少ないです。aliasでごまかされるけど実態はほとんど
numberだしなぁ。

666 :659:05/03/03 01:10:55 ID:???
>>665
なるほど。
自分、実務経験ないんですが、そんなに必死にデータ容量を
小さく抑えようとする必要は無いものなんですかね?実際問題として。

667 :NAME IS NULL:05/03/03 01:14:02 ID:???
別スレでSQL鯖にはinterval型が無いとあったし、
point型やbox型(中身は配列型か)なんかもあるし多いほうじゃないの?
あとは3次元座標とその関数が揃ってればよかったんだけね。
まぁ、作って登録すればいいのだろうけど。

実装上、SMALLINTを使うよりINTEGERを使ったほうが高速じゃなかったかな。

668 :659:05/03/03 01:40:42 ID:???
>>667 色々勉強になります。
これから、いろいろ試してみて、また質問させて
いただきたいと思いますので、みなさんよろしくです。

669 :NAME IS NULL:05/03/03 12:16:51 ID:???
>>658
正確ですね。パースをパース+プランニングの意味で使ってます。
パースの部分をパースフェーズとでも読み替えてくださいませ。
おっしゃるとおりプランニングと比べて純粋なパース処理はきわめて軽微です。

670 :INTER:05/03/03 14:25:55 ID:HVLlIiUk
InterBase技術者いますか?
InterBase6.0 ON NT5.0SP2+JBuilderでアプリを作っているんですが
アプリもDBも正常に動作しています。
が、gdbファイルの更新日付が変わらないのです。
もちろんデータは日々COMMITされています。
このような事象を見たことはありますか?
よろしくお願いします。

671 :INTER:05/03/03 14:30:33 ID:HVLlIiUk
>>670の記事間違えました。
Win2000SP2でした。

誰か助けて...

672 :NAME IS NULL:05/03/03 15:49:14 ID:???
>>670
InterBase というよりも、Winodws の特徴じゃね?
Windows は、メモリへのファイルマッピングを使ってメモリアクセスで内容を変更しても、意図的に
変えるとかファイルサイズ自体か変わらない限り日付が変わらなかったような気がする。
メモリマッピング中は仮想記憶のページングアクセスとまったく同じ原理で動いてるからね。
条件もあるんだろうけど、それでアクセスしてるんじゃないの?
書き込みがあっても空きページを再使用してればサイズは変わらないし。

673 :INTER:05/03/03 16:09:44 ID:HVLlIiUk
>>672さん
ありがとうございます。参考になります。
明示的にCOMMITを発行すればメモリマッピング(?)
からファイルに反映されるのでしょうか?
メモリマッピングとはファイルに反映されずメモリ内で
データを保有すると解釈しましたがあってますでしょうか。

674 :NAME IS NULL:05/03/03 17:50:19 ID:???
通常のファイルIOとはまったく違う方法で読み書きするので、
アクセス日時といった情報が更新されないってことじゃないかな。
MSDNがあったらCreateFileMappingやMapViewOfFileExを参照しよう。

675 :NAME IS NULL:05/03/03 23:13:39 ID:A6askjLe
初心者で申し訳ないです。
ACCESS2003で以下のテーブルを作りました。簡略に
(基本テーブル)
コード
商品名
(○月テーブル)
コード
商品名
使用量
(△月テーブル)
コード
商品名
使用量

など月々の使用量のテーブルがあります。リレーションでコードを結びつけ、
クエリでその月々ごとに使用頻度が高い順に並べ替えたいのですが、
どうすればよいでしょうか?
初心者すぎて申し訳ないです。
どなたかご教授よろしくお願いします。

676 :NAME IS NULL:05/03/03 23:22:13 ID:PuIAYj8U
ttp://sexy.hame-hame.net/?DEBF

このサイトに偶然たどり着いて
クリックしたら
契約が完了したというメッセージとともに
自分のリモートホストやらが出てきて
46000円払えとぬかしやがった


677 :NAME IS NULL:05/03/03 23:23:17 ID:PuIAYj8U
なんで俺のリモートホスト
が分かったんだ

ほっといて大丈夫かな

678 :NAME IS NULL:05/03/04 00:23:20 ID:5FwP+Ow1
こちらは、××警察サイバー犯罪対策本部です。

警察が個々の契約の有効性について判断を下すことはできませんが、
契約の意思が無かったものについて安易に応じないよう注意して下さい。

最近、クリックしただけで登録し課金するサイト(いわゆるワンクリック料金請求)の
ご相談が増えていますが、電子契約法(電子消費者契約及び
電子承諾通知に関する民法の特例に関する法律)という法律では、
サイト側は、消費者に対して申し込み内容を再度確認させるための
画面を用意する必要があるので、このような確認措置が無いような場合は、
その申し込みは無効を主張することができるとしています。

また、このようなサイトではアクセス元のIPアドレスやリモートホストから
プロバイダに契約者情報を問い合わせ、利用料金を請求すると
書いてありますが、普通のホームページ閲覧で、サイト側は
IPアドレスとリモートホストを知ることができる仕組みになっており、
特別なものではありません。

契約の有効性について不安でしたら、
消費生活センターなどにご相談することをお勧めします。

最近増加している架空請求については、
以下の3点に留意するようお願いしています。
(1) 基本的には無視する。電話などで直接催促があれば、
  「 利用していないので払う気はない」と毅然と伝える。
(2) こちらから相手に連絡を取らない。
(3) こちらの個人情報(住所・氏名・勤務先・電話番号等)を教えない。

今後とも警察へのご理解とご協力をお願いします。

679 :NAME IS NULL:05/03/04 11:14:04 ID:???
リモートホストがわかってできることはアク禁くらいだね〜
せいぜいプロバイダを特定できる程度。個人を特定できるなら
2chだってもっとましな掲示板になってるよ〜

680 :NAME IS NULL:05/03/04 11:35:37 ID:???
>>675
その構造なら基本テーブルもリレーションもいらない気がする。
select コード,商品名,使用量 from ○月テーブル order by 使用量
月ごとに別のテーブルを作ってるから月が増えるたびにテーブルと
クエリーを増やす必要がある。
月またがりでなにか処理したいならこんなテーブルにしたらよい。
使用量テーブル コード、年月、使用量 KEY=(コード、年月)

681 :NAME IS NULL:05/03/07 20:21:40 ID:nZExOy0G
680さん
ありがとうございます。
助かりました。

たびたび質問で申し訳ないのですが、
基本テーブルに種類も分類してて、
それぞれの月テーブルの使用量を合計し、
種類別に使用頻度高い順をだしたい場合は
どうすればよいでしょう?
初心者には難しすぎて…。


682 :tokyufubai:05/03/07 20:45:32 ID:3fJ8oh6R
データベースで使われるメタデータ(metadata) とは、データの属性、意味、
 内容、格納場所など、データを管理するための情報のことをいいます。
http://www.geocities.com/tokyufubai/

683 :NAME IS NULL:05/03/09 12:27:21 ID:yTLZbjHw
MSSQLServerにて

where (a,b) in ((c,d),(e,f))

の様な抽出条件が通らんのですが、
タイプミスかサポート外か解んねであります。

684 :NAME IS NULL:05/03/09 12:34:23 ID:???
MSSQLは使ったこと無いけど、普通は
where
a in (c,d) and
b in (e,f)
じゃね?
やりたいのがandかorかわからないけど。

685 :NAME IS NULL:05/03/09 13:10:33 ID:???
(a=c and b=d) or (a=e and b=f)

686 :NAME IS NULL:05/03/09 17:41:05 ID:yL4n2lnv
以下のようなことを「SQL文のみ」で行いたいのですが、
どなたかご教授のほどお願い致します。

下記のような変換前の文字列があるとします。
それを変換後のような形式にしたいのですが可能でしょうか?
■変換前
→2721111千葉県浦安市3-3-3浦安マンション222

■変換後
→2721111333222

要するに数字だけを抜き出したいのですが
できますでしょうか。

REGEXPのような正規表現は使用できないようです、
oracle9iです。

恐れ入りますが、よろしくお願いします。

687 :NAME IS NULL:05/03/09 21:59:13 ID:???
今日は機嫌がいいから特別だぞ。

decode(項目名 , 2721111千葉県浦安市3-3-3浦安マンション222 , 2721111333222 , …

688 :NAME IS NULL:05/03/09 23:03:58 ID:???
>686
マルーチイクナイ
>687
ネ申

689 :NAME IS NULL:05/03/10 12:26:29 ID:???
PoatgreSQLで数値(16バイト)と文字列(固定長・16文字)のフィールドが存在するテーブルがあるとして
100万件程度のなかからSELECTで文字列を検索するのと数値を検索するのではどちらが早いのでしょうか?
(ただし、数値や文字列は重複しています)


690 :NAME IS NULL:05/03/10 17:04:40 ID:???
数値(16桁 64bit整数のことと解釈するけど)の方が効率はよいのだが、
気にするほど差は出ない。キーとして使いやすいほうを選ぶべき。

691 :689:05/03/10 20:52:00 ID:???
ありがとうございます。
あるひとつのレコードを特定する際にPostgresが絞り込みやすいようなキーを埋め込むというのは有効でしょうか?

例えば文字列だけのテーブルがあるとして、その文字列から求まるCRCやチェックサムのような数バイトの整数値を持たせておき、
それをインデックス化する事で、いきなり全件検索をさせるよりも効率よくデータの位置を絞り込めるんじゃないかと考えているのですが・・・


692 :NAME IS NULL:05/03/10 21:56:23 ID:???
>>691
そうすると等号による検索しか出来なくなる。
等号による検索を速くしたければHashインデックスを指定すればいいんじゃない。

で、普通のBtreeインデックスでも文字列カラムの検索が出来るんだし、
何故、「いきなり全件検索」させるのかワカランな。

693 :NAME IS NULL:05/03/10 22:24:24 ID:???
クエリー付のurlのように極端に長い文字列をキーにする場合はありかもしれないですね。
B-Treeしかサポートしてない処理系やキーの最大長の制限に引っかかる処理系もありますから。
それほど長くない文字列なら普通にB-Tree索引で十分。

694 :NAME IS NULL:05/03/11 06:54:58 ID:Sz5lvXPs
たすけてくださいorz

IMEのじしょがばぐかなにかでじしょがつかえなくなり、へんかんひりつからへんかんがしやすくなるしすてむが、
つかえなくなったので、きのうなにもかんがえずにIMEのふぁぃるをふぉるだごとけしてしまいました。

おかげでへんかんがまったくできなくなりましたorz

IMEでいまできるのは、

はんかくへいすう1234567890、ぜんかくえいすう1234567890、ひらがなのみです。。。あときーぼーどにかいてあるきごう。

もとのじょうたいというか、ぱそこんせっとあっぷじのじょうたいにしたいのですがなにかいいあんはありませんでしょうか?; ;
ちなみに、せーふもーどはこのぱそこんはふるくてがたがきてるおかげでなぜかできません。
ぱそこんのふぉーまっとはおかねが------(`A')。

695 :NAME IS NULL:05/03/11 15:03:57 ID:vBRqYSQS
受験者名とテストの点数が入力されているテーブルから、
テストの点数上位10人の名前を出力させたいときは、
どのようなSQL文を書けばよいのでしょうか?

696 :NAME IS NULL:05/03/11 16:17:13 ID:???
select 受験者名 from テーブル名
where rownum <= 10
order by テストの点数

697 :NAME IS NULL:05/03/11 16:23:25 ID:???
order by テストの点数 descだった


698 :689:05/03/11 17:10:19 ID:???
>>692-693 レスありがとうございます。
検索対象の文字列は日本語で最大64文字程度なのですが、
漠然と数値の方が効率よくインデックス化出来るような気がして、
文字列のCRCコードを使おうかと考えていました・・・単なる誤解のようでした。

まずは、素直にBTree又はhashインデックスを作成してみてパフォーマンスをチェックしてみようと思います。
ありがとうございました

699 :NAME IS NULL:05/03/11 21:08:04 ID:???
>>696
10件取得した後に点数順に並べ替えているように見えるのは気のせいか

700 :NAME IS NULL:05/03/11 22:52:53 ID:???
>>695
SELECT * FROM Table AS T1 WHERE 10>=(SELECT COUNT(*) FROM Table WHERE 点数 >= T1.点数);
上位10人を抜き出すならこれだけだが、点数上位から並べ替えるのなら
ORDER BY 点数 DESC
を追加。

701 :NAME IS NULL:05/03/11 23:26:36 ID:???
>>700
すげーな。
rownum使わずにやるなんて。

rownum使えばこう。
select 名前 from
(
select * from テーブル
order by 点数 desc
)
where rownum<=10

同点10位が多数いる場合、10位全員を取得したいなら
select 名前 from emp
where 点数>=
(
select min(点数) from
(
select * from テーブル
order by 点数 desc
)
where rownum<=10
)

702 :700:05/03/12 00:02:52 ID:???
>>701
rownumって知らなかったんだけど、どこのベンダーにもあるものなんかな?
ベンダー依存ならLIMITを使ったほうが速いかも。

>>700に書いたのはよく順位付けするときに使うやつで、>>701のいうrownumの感覚に似てるな。

SELECT * FROM (SELECT (SELECT COUNT(*) FROM Table AS T2 WHERE T2.点数>=T1.点数)AS 順位 ,* FROM Table AS T1)AS T3 WHERE 順位<=10 ORDER BY 順位;
こう書くと、順位付きTop10を順番に並べれる。


703 :701:05/03/12 00:41:12 ID:???
あースマン、rownumはOracle8i以降限定みたい。
ACCESSだとTOPが同じ役割…らしい。

あと、順位はWHERE T2.点数>=T1.点数じゃなくて
WHERE T2.点数>T1.点数にしてあとで1を足すべきでは。
(でないと2位が3人いたら全員4位になってしまう)

704 :700:05/03/12 01:05:04 ID:???
>>703
あぅ、そでした。orz

705 :NAME IS NULL:05/03/13 04:29:37 ID:???
試験でデーターベースを扱った問題が出題されるので、学習しときたいんですけど、

ソフトを使って勉強するのが良いのでしょうか??

706 :NAME IS NULL:05/03/13 04:37:59 ID:???
ベクターへ物色に行ってきます。。

707 :ё:05/03/15 10:27:14 ID:Dg+3N2rz
仮想メモリ 推奨値は189MBなんですが 不足やら最小値が低いと言われ動作不良です いくつまで上げてもOKでしょうか? 今400MBにしてもイマイチです(アセ

708 :NAME IS NULL:05/03/15 11:28:02 ID:???
>>707
OSとDBMSの種類くらい書けよ〜
Oracleだったら実メモリ最低512M必要だ。仮想メモリなぞ屁のツッパリにしかならん。

709 :ё:05/03/15 14:21:39 ID:Dg+3N2rz
708失礼しました OS FMV DESKPOWER K8/120WLT ドライブC:のページングファイルサイズ空き容量42864MB ページングファイル無しにすると全く動作せず カスタムサイズが初期サイズ2MB 最大サイズ400MBになっている状態です。

710 :ё:05/03/15 14:30:08 ID:Dg+3N2rz
システムXPホーム2002Ver インテルCeleron CPU 1200MHz 1.2GHz 128MB RAM となっております。

711 :NAME IS NULL:05/03/15 14:48:53 ID:???
メモリ買いに行け。


712 :NAME IS NULL:05/03/15 16:21:10 ID:???
ものすごく板違いかもしれんが…
スキャナー等で読み込んだ画像データの文字部を
テキストデータに変換してくれるようなツールないすか?
つまり、
 ・紙の文書を画像で取り込む
 ・ツールでテキストデータ化
 ・文字をワードで編集し、再利用ウマー
みたいなの

713 :ё:05/03/15 16:33:59 ID:Dg+3N2rz
メモリ増設ですね 有難うございました。

714 :NAME IS NULL:05/03/15 17:51:26 ID:???
>>712
ものすごく板違いだがOCRで検索してみれ。
ていうかスキャナー買ったらトライアル版だかが付いてないのか?

715 :NAME IS NULL:05/03/16 00:28:10 ID:???
>>714
読み取り革命てのがありますた。
おおきに

716 :NAME IS NULL:05/03/16 00:44:52 ID:ez0OXhUB
質問です。タグとか誰かご存じありませんか?板違ってたら謝謝

717 :NAME IS NULL:05/03/16 17:38:09 ID:???
>板違ってたら謝謝
何のタグかによる。赤札特化5割引のタグなら板違い。
jstlのdatabaseタグなら範囲内。


718 :NAME IS NULL:05/03/16 19:30:14 ID:ez0OXhUB
タグ知識全然ありません(>A<)アフ <form><textarea></form> こんな感じ?何か情報あればお願いします・‥土下座

719 :NAME IS NULL:05/03/16 21:24:59 ID:???
>>718
HTMLか? あわせ技で使われることはよくあるが、とにかく板違いだ。
web制作板でも行くがよろし。

720 :NAME IS NULL:05/03/16 22:36:23 ID:ez0OXhUB
ありがとうございますm(゚゚)m 逝って来ます

721 :NAME IS NULL:05/03/17 01:39:05 ID:???
ネタのつもりだろうが全く面白くない

722 :NAME IS NULL:05/03/17 12:28:57 ID:HZq3jAhn
ウイルス作成依頼

723 :NAME IS NULL:05/03/17 23:13:10 ID:lU8YPFMX
win2000でレジストリからipaddressって何処探すの?
9x系とは違うんですよね?
DLLとかから取得した方がいいんですか??
おせーて

724 :NAME IS NULL:05/03/18 01:17:38 ID:gjacGokd
もしかしたらくだらないかもしれない質問で恐縮なんですけど

Windowsのおまけで、Charmap(文字コード表)ってのがありますよね。
あれの「データ部分だけ」って、どこかで手に入りますか?
txtでもcsvでもxlsでもmdbでもaprでも、とにかくデータとして
使える形をしていれば何でもいいんですけど

725 :NAME IS NULL:05/03/18 08:17:26 ID:???
作れよ

726 :NAME IS NULL:05/03/18 11:43:34 ID:???
>>723-724
板違い


727 :NAME IS NULL:05/03/18 16:26:03 ID:U7Jp/A1S
http://www.lisox.com

728 :NAME IS NULL:05/03/19 22:25:57 ID:8EZN6kdj
http://game10.2ch.net/test/read.cgi/poke/1111068032/l50
2ch使用料とありますが、これは本当なのでしょうか?


729 :NAME IS NULL:05/03/19 22:44:16 ID:???
>>728
fusianasanは試したのか?

730 :NAME IS NULL:2005/03/23(水) 15:13:16 ID:bpgAlkh7
データベースエンジン側で一意の値を自動的に入れてくれるような機能ってありますか?
rowidを使おうと思ったら、今使おうとしているエンジンではrowidが出てこないので...

731 :U ◆CZtFsGiu0c :2005/03/23(水) 18:49:11 ID:???
>>730
そこまで書いておいて何を使ってるのか書かないのはなぜ?

732 :NAME IS NULL:2005/03/23(水) 23:41:39 ID:K1+AZ7nn
AUTOINCREMENTで一意に判別しよう

733 :730:2005/03/24(木) 09:48:34 ID:/NMlCCoL
>>731
マイナーな組込み機器向けデータベースエンジンなもので
書いても無意味だと思って...
一応オラクル準拠となってはいるんですが。

>>732
AUTOINCREMENTってどう使えばよいのでしょうか?
データベースに初めて触る超初心者なもので、教えていただければ幸いです。

何がしたいのかというと、例えば

ID NAME
1 aaa
2 bbb
3 ccc
4 ddd

となっていて、ID=2を削除した後に、新しいname=eeeを
ID=2として格納したいのです。且つ、使用者はIDの管理を
しなくてよいというふうにしたいのです。

何か良い方法はないでしょうかm(_ _)m


734 :NAME IS NULL:2005/03/24(木) 11:43:47 ID:???
>>733
単純にシーケンスを使ったらダメなのか?


735 :超初心者:2005/03/24(木) 12:36:36 ID:nqjgAjzD
合計値をそれぞれの年月ごとに求めるんですけど、年月がnumberで20001010
のように入ってて、group byを使うと日毎に表示されてしまうんです。
なんとか、なりませんかね。

736 :名無しさん ◆Me6i2cacaw :2005/03/24(木) 13:05:34 ID:osF8Wc1p
 USBに何か差し込んでも反応しなくて『システムプロパティ』→『デバイスマネージャ』→『ユニバーサル シリアル バス コントローラ』→『SiS 7001 CPI to USB Open Host Controller』に『!』がついています。
 どうすりゃ、USB読み込みますか?

737 :730:2005/03/24(木) 13:31:49 ID:/NMlCCoL
>>733
すみません。「単純にシーケンスを使う」ということが
どういうことなのかわかりません。汗
教えていただけませんでしょうか。m(_ _)m

738 :NAME IS NULL:2005/03/24(木) 15:14:26 ID:???
>>735
1000で割れ

739 :NAME IS NULL:2005/03/24(木) 15:17:13 ID:???
ちがった、100で割れ

740 :超初心者:2005/03/24(木) 15:20:14 ID:nqjgAjzD
>>739
有難うございました。
助かりました。

741 :NAME IS NULL:2005/03/24(木) 17:31:36 ID:nqjgAjzD
2つのテーブルを単に結合させることってできないんですか。
宜しくお願い致します。

742 :NAME IS NULL:2005/03/24(木) 18:16:37 ID:???
>741
UNION ALL のことか?


743 :U ◆CZtFsGiu0c :2005/03/25(金) 12:30:41 ID:???
>>737
Oracle準拠ならSEQUENCEがサポートされているのではないですか?
CREATE SEQUENCEでシーケンス作って、INSERT時に該当するカラムの値として
シーケンス名.nextvalとしてやればよいのだが。とりあえず、Oracle シーケンス
で検索してみて、使ってるDBMSでシーケンスをサポートしているかどうか確認して
みてはどうですか。

744 :NAME IS NULL:2005/03/25(金) 17:51:51 ID:???
create table mytable(
idnumber,
namevarchar2(20)
);

create or replace function mynextval return number is
maxval number;
numval number;
begin
select count(*), max(id) into numval, maxval from mytable;

if numval = maxval then
return maxval + 1;
end if;

select min(mynum) into maxval from (select id, rownum as mynum from (select id from mytable order by id) ) where id <> mynum;

return maxval;
end;

insert into mytable values( mynextval, '鈴木');

作ってみた。シーケンスだと番号の再利用が難しいね。

745 :NAME IS NULL:2005/03/25(金) 18:15:31 ID:R2Cqf2jj
サーバー、クライアント
windowsXP SP2
PostgreSQL8.0(Winネイティブ版)
perl5.008
DBD::PgPP

先日postgresqlを導入しました。
ためしに掲示板を作ってみたのですが、
insertなどのSQLのログを取得しようと、
あれこれ調べてみるとトリガー&ユーザ定義関数を使えば可能という事までわかったのですが、
PL/PgSQLもPl/Perlもインストールされていない事が判明しました。

実際に行いたいのは、
dataというテーブルに対するinsert、update、deleteなどの操作を
logというテーブルに格納したいのです。
ログテーブルのカラムはno(シリアル)、user(varchar)、time(timestamp)、logsql(txt)となっています。
掲示板はユーザ管理を行っているためperl側でcookieから受け取ったユーザーネームを
userに格納し、timeは現在時刻をデフォルトで格納し、logsqlはトリガーで格納です。

質問は、
1・WindowsのPostgreSQLに後からPL/Perlなどをインストールする事は可能でしょうか?
2・ユーザ定義関数をSQLだけで書いても上記のような事を実装する事は可能でしょうか?
できれば例も書いていただけると助かります。

どうぞよろしくお願いします。


746 :NAME IS NULL:2005/03/25(金) 19:49:59 ID:gVDgIkMl
Oracle JDBC Driver 10.1.0 ドライバで、preparedStatement 使うとエラーが発生します。
どうも日本語文字を入れようとしているのが問題みたいなのですが。
同じような経験した人います?

747 :NAME IS NULL:2005/03/25(金) 20:49:39 ID:???
>>744
空き番号を探すコストやマルチで処理することを考えると再利用は避けたいのだけど、
顧客からそういう要望はよくあるんだよね。素直にシーケンス使えば簡単なのに。

748 :NAME IS NULL:2005/03/26(土) 10:25:18 ID:???
これからデータベースの勉強をしたいのですが、
データベースを構築するにはOSはwindows2000server
などじゃないとだめなんでしょうか?

749 :NAME IS NULL:2005/03/26(土) 11:11:45 ID:???
いや、Windows2000 Server じゃなくても別にかまわない。
Windows2003 Serverでも良い。
NetBSDでも良いし、Solarisでも良い。
MacOS X Server だってかまわない。


750 :NAME IS NULL:2005/03/26(土) 12:33:20 ID:???
Windows95にAccessでもいい?

751 :NAME IS NULL:2005/03/26(土) 12:59:38 ID:???
AccessのSQLは方言がきついからあまりお勧めできない。

752 :NAME IS NULL:2005/03/27(日) 18:35:09 ID:???
ServerOSとXPなどのOSはなにが違うのでしょうか?
SQLServerの勉強をしたいのですがXPProでは無理なんでしょうか?

753 :NAME IS NULL:2005/03/27(日) 23:01:52 ID:???
>752
ttp://www.microsoft.com/japan/sql/evaluation/sysreqs/2000/default.mspx
MSDE、EvaluationEdition、PersonalEdition、DeveloperEdtion
ならばXPHome、ProのようなクライアントOSでも動作可能です。

754 :NAME IS NULL:2005/03/28(月) 09:36:10 ID:???
>752
>ServerOSとXPなどのOSはなにが違うのでしょうか?
ライセンス
>SQLServerの勉強をしたいのですがXPProでは無理なんでしょうか?
全く問題ない。

>748は質問の書き方が問題。


755 :NAME IS NULL:2005/03/29(火) 17:04:49 ID:???
SQLServerなんですが、
SET @A=(SELECT A FROM TBL1 WHERE ID=1;)
SET @B=(SELECT B FROM TBL1 WHERE ID=1;)
SET @C=(SELECT C FROM TBL1 WHERE ID=1;)
といったような同一のレコードから複数の値を取得したい場合、簡潔に書く方法はありますでしょうか?

756 :NAME IS NULL:2005/03/29(火) 17:31:03 ID:???
select @A=A,@B=B,@C=C from TBL1 where ID=1

757 :755:2005/03/29(火) 17:42:31 ID:???
>>756
即レスありがとうございます

758 :NAME IS NULL:2005/03/30(水) 09:00:31 ID:XG0PxlMt
Accessについて質問です。
2つのフィールドのうち、それぞれのフィールド・データは重複しても良いが、
2つのフィールドのデータで重複があったときにエラー・メッセージを出すように
するにはどうしたらよいでしょうか?
例えば住所録で、名前は漢字も含めて同姓同名がいる場合があるので、名前フィールドの
レコードは重複OK、住所も同じ番地に二家族がいる場合があるので住所フィールドの
レコードも重複OK、しかし、名前と住所が同じ場合は、同じ人のデータをふたつ登録
してしまうことになるのでエラー、みたいな感じです。

初心者なものですみません。よろしくお願いします。
Access 2000、Windows 2000使用です。

759 :NAME IS NULL:2005/03/30(水) 09:40:21 ID:???
>>758
Accessで可能かどうか知らんけど、普通UNIQUE制約を掛けるが。
CREATE TABLE address_note
(
address varchar(100),
name varchar(20),
UNIQUE (address, name)
)


760 :NAME IS NULL:2005/03/30(水) 10:42:15 ID:???
>>758
普通は>>759だけど(accessで出来るかは自分も知らない)
質問そのものに対する回答ということであれば
二つのフィールドを結合させて比較。
名前||住所(accessだと名前&住所、だっけ?)みたいに

761 :NAME IS NULL:2005/03/30(水) 11:11:52 ID:fP9ktgju
SQL(Oracle8使っています)にて以下の構文を書こうとしているのですが、
Where句の並び準や位置を変更すると処理スピードは変わるのでしょうか?
A.aaa = B.aaa を B.aaa = A.aaaにしてみたり、
条件最終行を先頭にもってきたりするイメージです。
そこらへんの詳しい事が書いてあるページでもかまいません、ご教授願います。

select C.eee,A.aaa,A.bbb,C.ccc,C.ddd
from A,B,C
where C.eee = '固定文字'
   A.aaa = B.aaa
   A.bbb = B.bbb
   B.ccc = C.ccc
   B.ddd = C.ddd


762 :NAME IS NULL:2005/03/30(水) 11:21:21 ID:???
>761
変わる。
詳しいことは、SQL Tuningの84ページから107ページに書いてある。
Author: Dan Tow
ISBN 0-596-00573-3


763 :NAME IS NULL:2005/03/30(水) 11:25:57 ID:E+bsGd0v
マスタテーブルのレコード数が増えてきた時の管理方法について悩んでいます。
件数が少ないうちは良いんですが、増えてくると以下の問題が考えられると思っています。

・件数が増えすぎて入力時に探す時間がかかる
・該当項目が無かったので「その他」と入力したが、実は見落としていて存在する項目だった

大規模なDB管理者は、このような悩みはお持ちではないのでしょうか?

764 :761:2005/03/30(水) 11:42:02 ID:dC7LP9EH
ありがとうございます。
ページと宣言した私もあれなのですが、
手元に書物類が無いため調べる事が出来ません。

もし、ダイレクトに記述されているURLとかありましたら
お教えくださいませ。
最終的に○○、△△の単語でぐぐれでもかまいません。
自分の力では探せれませんでしたorz


765 :NAME IS NULL:2005/03/30(水) 12:19:39 ID:???
>761
キーワードは駆動表
順序が影響するのはRBOの場合。 CBOではOracleが適当に決めてくれる。
ttp://www.oracle-base.com/articles/Misc/EfficientSQLStatements.php


766 :761:2005/03/30(水) 12:29:47 ID:???
>>765
ありがとうございます。勉強してみます。

767 :NAME IS NULL:2005/03/30(水) 12:54:33 ID:???
>>763
普通はID入力欄で右クリックしたりESCを押したりすると
マスタ検索用のちっこい画面が出てくるようにつくる

768 :NAME IS NULL:皇紀2665/04/01(金) 06:54:14 ID:???
>>765
from句の記述順序で駆動表が変わる処理系は知っているが、
where句の記述で駆動表が変わる処理系ってあるかな?

769 :NAME IS NULL:皇紀2665/04/01(金) 16:25:39 ID:???
(,,゚Д゚)∩先生質問です

DBでピンポンってよく出てくるけど何のことなんですか?


770 :質問:皇紀2665/04/01(金) 19:16:49 ID:xJl2Q7lG
PostgreSQLにて

SQL文を実行し、そのまま前のデータを残して、ある文字を後ろに付け加えるにはどのような文章をSQL文を書いたらよいですか?

例えば

秩父
高崎
前橋
熊谷

と言うデータがならんでいて
更新後に

秩父市
高崎市
前橋市
熊谷市

というような感じのデータに書き換えるにはどんなSQL文を書いたらよいですか?

771 :NAME IS NULL:皇紀2665/04/01(金) 20:57:42 ID:???
>>770
SELECT city || '市' FROM ....

772 :NAME IS NULL:2005/04/02(土) 23:01:45 ID:F/fwSurc
だりかー!!
リアルプレイヤーでNAVERのスクラップされてた曲を
CDに写したいのですが、ギリギリのところで、リアルプレイヤーが
固まってできないのです・・・

773 :質問:2005/04/04(月) 14:41:16 ID:VM5d4pcd
>>771
ありがとうございました!出来ました


続けての質問で申し訳ないのですが、

次のようなデータがあります。

埼玉県さいたま市
栃木県宇都宮市
埼玉県秩父市
千葉県八千代市
埼玉県川越市
東京都八王子市


where mailaddress like '埼玉県%'

この中から、秩父市を除く埼玉県を抽出したい場合は、
どのようなSQL文を書いたらよいですか?
↑のSQL文に加える文を教えてください。


774 :NAME IS NULL:2005/04/04(月) 14:42:09 ID:???
not like

775 :NAME IS NULL:2005/04/04(月) 17:00:45 ID:???
email のカラム名は何にしているんだろうね

776 :NAME IS NULL:2005/04/04(月) 18:57:42 ID:???
table1 は id(int) と vnc(int) と date(datetime) という列があります。
vnc の値は -1 か、その行の id よりも若い int 値。

select したいのは以下の条件のいずれかを満たす列の date 降順 limit 0, 15
1)vnc が -1 で、他の行の vnc のがその行の id を指し示さない行
2)vnc が 0 以上で、同じ値を示すグループの中で date 降順的に筆頭の行

おながいします。

777 :776:2005/04/04(月) 19:01:25 ID:???
列と行がごっちゃになってます…後半部分、正しくは

select したいのは以下の条件のいずれかを満たす row の date 降順 limit 0, 15
1)vnc が -1 で、他の行の vnc のがその行の id を指し示さない row
2)vnc が 0 以上で、同じ値を示すグループの中で date 降順的に筆頭の row

778 :NAME IS NULL:2005/04/04(月) 20:10:24 ID:???
select * from table1 where vnc = -1 and id not in
(select a.id from table1 a join table1 b on a.id = b.vnc)
order by date1 desc

select * from table1 a join
(select vnc, max(date1) as maxdate from table1 group by vnc having vnc >= 0) b
on (a.vnc = b.vnc and a.date1 = b.maxdate)
order by date1 desc

limit 0, 15はPostgreSQL専用っぽいので付けてない。

779 :777:2005/04/04(月) 20:49:15 ID:???
>> 778
すげぇ!
この2つの SQL statement の結果を合わせて、date 降順に並べ替えるのはどうすればいいんですか?

780 :NAME IS NULL:2005/04/04(月) 21:08:45 ID:DcDa0Zng
超初心者の質問ですみません
SQLserverを使用したERPシステムのデータテーブルを
アクセスのDBにリンクさせてデータを操作することは可能ですか?



781 :NAME IS NULL:2005/04/04(月) 21:21:19 ID:???
>>780
ERPのマニュアルを調べるか販売元に問い合わせるべき。
テーブルはのぞけるかもしれないが使うべきではない。

782 :NAME IS NULL:2005/04/04(月) 21:24:29 ID:???
>>779
select * from table1 where vnc = -1 and id not in
(select a.id from table1 a join table1 b on a.id = b.vnc)
union all
select a.* from table1 a join
(select vnc, max(date1) as maxdate from table1 group by vnc having vnc >= 0) b
on (a.vnc = b.vnc and a.date1 = b.maxdate)
order by date1 desc

テーブル設計が悪くて問い合わせが複雑になってしまってる。
-1をやめてidと同じ番号をセットするだけでシンプルになると思うよ。

783 :NAME IS NULL:2005/04/04(月) 21:30:32 ID:DcDa0Zng
>>780
使うべきではないというのは主にどのような理由ですか?
現在はシステムの機能でデータをDLして(エクセルファイル)それを加工して
からアクセスにimportしています。
毎回DLするのが結構めんどくさいのでテーブルのリンク
のような感じで使用できたらと思ったのですが。。。

784 :NAME IS NULL:2005/04/04(月) 21:31:15 ID:DcDa0Zng
>>781
でした。すいません。

785 :NAME IS NULL:2005/04/04(月) 22:22:24 ID:???
id name age
1 a 10
2 b 15
3 c 16
4 d 17

↑このようなテーブルでIDが4の列を一番上に持っていくにはどのようにしたらよいでしょうか?
MYSQLを使っています。
また新たにinsert into でデータを入力する際にID2と3の間に入れたい場合もどのように記述したらよいでしょうか?

786 :785:2005/04/04(月) 22:23:36 ID:???
すみません二個以上にスペースは省かれてしまうのですね。
見にくいですがnameがabcd ageが10.15.16.17となっています

787 :779:2005/04/04(月) 22:33:27 ID:???
>>782
ありがとうございました。
相談した相手が違う値を入れた方が、後でトラブルが少なそう、って言われたんですけど、
考え直してみます。

788 :NAME IS NULL:2005/04/04(月) 22:42:50 ID:???
>一番上に持っていく
こういう考え方は良くない。

SELECTで取り出す順序を変えるのなら、ORDER BY


789 :785:2005/04/04(月) 23:37:51 ID:???
>>788
ご指導ありがとうございます。

掲示板を作成していてレスがついたら上にくるようにしようと思っています。
当初考えていたのは一番下から10行の親記事を表示しようと思っていたのですが、
順番がかえられないとなると、表示する順番用のフィールドを作り、表示する際は
全レコードを読み込んで表示順用のフィールドから数字が大きいもの10個を表示する
というような方法しか思いつきません。
 うまく説明できなくて申し訳ないのですが、参考になるページ等ありましたら教えてください。

790 :U ◆CZtFsGiu0c :2005/04/05(火) 13:09:25 ID:???
>>789
勘違いしているようだけど、原則としてRDBMSでレコードが実際にテーブルに
格納される順序は指定できない。もし特定の順序で取り出したかったら788
の通り、SELECT文でORDER BYを指定する。785の例であれば、

ORDER BY ID DESC

と指定して取得し、最初の10件だけ表示するようにすればいい。

791 :NAME IS NULL:2005/04/05(火) 15:05:31 ID:???
>>790
ORDER BY ID DESC これでぐぐったらわかりました。
お手数かけました。ありがとうございます。

792 :NAME IS NULL:2005/04/05(火) 19:35:52 ID:o1ZD/MjR
質問ですが、ソフトウエア会社等に、アクセスで作ってもらってPCに入れてもらったものがあるのですが、追加でもう一台のPCでも出来るようにコピーしてで来るものなのでしょうか?お願いいたします。

793 :NAME IS NULL:2005/04/06(水) 16:20:16 ID:???
>>792
作った会社に聞いてくれ、としか言いようが無い

794 :NAME IS NULL:2005/04/06(水) 19:30:10 ID:???
>>792
ライセンス違反

795 :NAME IS NULL:2005/04/07(木) 01:14:02 ID:???
OfficeのDeveloperがもしあるなら融通が利かない部分もあるけど
Accessランタイムってのは?
ttp://www.naboki.net/access/heaven/heaven_01.html

796 :NAME IS NULL:2005/04/07(木) 02:41:15 ID:1VNDdRCB
selectで出た結果の文字列を一定の長さで切り落とすような
方法は無いものでしょうか。

例えば、aというフィールドに「あいうえお」という文字列が入っている場合、
select a from table;
でa内の「あいうえお」を「あいう」までにしたい場合をご教示いただきたく
思っております。

宜しくお願いいたします。

797 :NAME IS NULL:2005/04/07(木) 07:33:24 ID:???
>>796
SELECT substring(a from 1 for 3) FROM table;

798 :NAME IS NULL:2005/04/07(木) 15:39:45 ID:???
>>797
本気で有難うございます!

799 :NAME IS NULL:2005/04/07(木) 21:27:28 ID:TsyIacKU
1レコードが400バイトを超えるレコードをSelectすると、4000バイトまでの出力結果しか得られません。
4000バイト以降のデータを取得する方法をお教えください。
Oracle 8.1.7 になります。

800 :NAME IS NULL:2005/04/07(木) 23:40:18 ID:???
>>799
SQL*Plusの話ですか?クライアントの環境も教えてくださいね。

801 :NAME IS NULL:2005/04/08(金) 09:43:26 ID:qWU4ovur
すみません。 SQL*Plus でのことです。
また質問内容にタイプミスがありましたので、訂正いたします。
冒頭の「1レコードが400バイトを超える」部分は、「1レコードが4000バイトを超える」です。
'0'が1つ足りませんでした。
よろしくお願いいたします。


802 :NAME IS NULL:2005/04/08(金) 18:49:48 ID:???
>>801
set linesize (1行に表示させる文字数);


803 :NAME IS NULL:2005/04/09(土) 00:37:33 ID:???
テーブル設計書って表の説明やカラムの説明が書かれている
ものだと思っているんですが、加えてER図も無ければ
ちゃんとしたテーブル設計書っていわんのかな。

お客さんに、テーブル設計書にER図が無いので書いてくださいと
言われてしまったYO。
ER図書きたくないのなら、納品物の確認でER図は
含みませんって断るのが普通?

泣くところですか?
自分がヘタレなだけですか?

804 :NAME IS NULL:2005/04/09(土) 01:14:42 ID:???
>>803
オマイが言うテーブル設計書というのは、「テーブル定義書」のことだろ。
テーブル設計書と言われると、テーブル定義書やER図やインデックス仕様書などを含むと漏れは連想するなぁ・・・

ていうかER図くらい描けよ!
(#゚Д゚)ゴルァ!!

ER図はテーブルとの相関関係を知る上で重要なものだし、
既にオマイの頭の中にER図が出来てるなら簡単に作成できるだろうが。

というかER図を書かないでよくテーブル定義書を書けるよな。


805 :NAME IS NULL:2005/04/09(土) 01:42:28 ID:???
>>804
テーブル定義書なしでER図だけ納品されるよりはましだけど。
それもすでに作ってしまったテーブルからツールを使って逆生成しただけの
ERもどきだったりする。

806 :803:2005/04/09(土) 08:49:08 ID:???
>>804,805
レスありがとう。

>既にオマイの頭の中にER図が出来てるなら簡単に作成できるだろうが。 
そうなんだけど、他の仕事もあるし。。。

>というかER図を書かないでよくテーブル定義書を書けるよな。 
フリーのツールで吐き出して、カラムのコメントだけ入れた。


とりあえず漏れがヘタレだったって事ですね。
ObjectBrowserでサクッと書くかな。

807 :NAME IS NULL:2005/04/09(土) 09:52:33 ID:???
>>783
アクセスはデフォルトでは結果セットを変更可能な状態で開こうとする。
そこで不用意にデータをいじってしまって事故になる可能性はある。
あと、システムが予期していないロックを保持し続けて
システムの動作を邪魔してしまうかもしれない。

レポート用のストアドがあればそれを叩くようにすれば比較的安全になるかも。
絶対ではないけどね。

808 :NAME IS NULL:2005/04/10(日) 04:30:00 ID:???
すみませんどうしてもわからないsql構文があります。
次の二つのテーブルがあるとします。(実際はもっと長いです)

table_a
d_id | s_id | a_array[]
--------------------
1 | 1 | {1, 6, 2, 4}
1 | 2 | {1, 3, 4, 5}
2 | 1 | {}
2 | 2 | {2, 6, 3}

table_b
d_id | s_id | a_id
--------------
1 | 1 | 3
1 | 1 | 5
1 | 2 | 1
1 | 2 | 6

このとき、d_id | s_id | a_id | count_num という view が作りたいのです。

count_num の定義:table_a.d_id = table_b.d_id AND table_a.s_id = table_b.s_id
の時の table_a.a_array に入ってる table_b.a_id の数

上記の例でいうなら、こういう表示になります。
d_id | s_id | a_id | count_num
--------------
1 | 1 | 3 | 0
1 | 1 | 5 | 0
1 | 2 | 1 | 1
1 | 2 | 6 | 0

どなたかご教授願えればと思います。ちなみにPostgresqlです。


809 :NAME IS NULL:2005/04/10(日) 05:09:41 ID:???
table_aを設計した人を呼び出して
鼻血が出るまで殴るというのはどうだろう

810 :NAME IS NULL:2005/04/10(日) 07:46:45 ID:frmzNCNU
>>808
a_array列内の値に重複ってある?
無ければ↓のSQL文で大丈夫だと思うが・・・・
・0の場合は、対象の値が存在しない
・0以外の場合は、対象の値が存在する



SELECT
    table_b.d_id, table_b.s_id, table_b.a_id, position(talbe_b.a_id  in  table_a.a_array) count_num
FROM
    table_a, table_b
WHERE
    table_a.d_id = table_b.d_id AND 
    table_a.s_id = table_b.s_id;


漏れもテーブル設計者を集団リンチする事をお勧めする。
('A`)


811 :NAME IS NULL:2005/04/10(日) 08:05:49 ID:???
ちと汚いですが

select d_id, s_id, a_id, sum(cnum) as count_num from
(
select a.d_id, a.s_id, b.a_id, a.arr, case when b.a_id = a.arr then 1 else 0 end as cnum
from table_b b left outer join (
select d_id, s_id, a_array[1] as arr from table_a where a_array[1] is not null
union all
select d_id, s_id, a_array[2] from table_a where a_array[2] is not null
union all
select d_id, s_id, a_array[3] from table_a where a_array[3] is not null
union all
select d_id, s_id, a_array[4] from table_a where a_array[4] is not null
) a
on b.d_id = a.d_id and b.s_id = a.s_id
) c
group by d_id, s_id, a_id;

812 :NAME IS NULL:2005/04/10(日) 08:34:47 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.0.1/
http://192.168.0.1/~ss.jpg
http://フェリdPC/
http://フェリdPC/~ss.jpg


813 :NAME IS NULL:2005/04/10(日) 09:05:55 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.0.2/
http://192.168.0.2/~ss.jpg
http://blueflag/
http://blueflag/~ss.jpg


814 :NAME IS NULL:2005/04/10(日) 09:19:22 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://169.254.170.74/
http://169.254.170.74/~ss.jpg
http://L3V8/
http://L3V8/~ss.jpg


815 :NAME IS NULL:2005/04/10(日) 09:25:53 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.11.2/
http://192.168.11.2/~ss.jpg
http://OEMCOMPUTER/
http://OEMCOMPUTER/~ss.jpg


816 :NAME IS NULL:2005/04/10(日) 09:31:24 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://210.194.197.31/
http://210.194.197.31/~ss.jpg
http://NABEPI.sagam1.kn.home.ne.jp/
http://NABEPI.sagam1.kn.home.ne.jp/~ss.jpg


817 :NAME IS NULL:2005/04/10(日) 09:54:56 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.11.8/
http://192.168.11.8/~ss.jpg
http://ラウール/
http://ラウール/~ss.jpg


818 :NAME IS NULL:2005/04/10(日) 10:09:05 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.11.2/
http://192.168.11.2/~ss.jpg
http://sumomo/
http://sumomo/~ss.jpg


819 :NAME IS NULL:2005/04/13(水) 11:04:01 ID:???
すいませんDBの勉強するなら
「PostgreSQL」と「MySQL」のどっちが良いのでしょうか?


820 :NAME IS NULL:2005/04/13(水) 11:21:47 ID:???
MySQL やるなら 4.1 は日本語関係がバギーなので 4.0 を。
個人的には PostgreSQL 8.0.2 を勧める。


821 :NAME IS NULL:2005/04/13(水) 11:35:33 ID:???
>>820
どうもありがとう。
さっそく調べてみます。

822 :NAME IS NULL:2005/04/14(木) 15:31:18 ID:5K9aESos
whereで絞り込んだ件数が23件だった場合、20件に切り落と
したいのですが、timestampを見て古いもの3件をdeleteする
ようなSQLを書きたいのですがどうも思い浮かびません。

ご教示いただけますと幸いです。

823 :NAME IS NULL:2005/04/14(木) 15:45:54 ID:???
>>822
20件固定なら
SELECT TOP 20 〜

824 :NAME IS NULL:2005/04/14(木) 16:26:35 ID:???
>>823
説明下手ですみません。
20件固定で常にデータを保持していたいということなのですが、
PostgreSQLではなにか方法がございますでしょうか。

825 :NAME IS NULL:2005/04/14(木) 17:28:01 ID:???
自分の練習がてら書いてみた。

DELETE FROM TableA
WHERE Not(timestamp IN (SELECT TOP 20 timestamp FROM TableA ORDER BY timestamp DESC))

timestampが重複する場合は20件以上残ることもある。

ってかPostgreSQLで試したわけじゃないし、自己責任でな。

…しかしわざわざdeleteする意味ってあるんだろうか?
残しときゃいいじゃん、勿体無い。

826 :NAME IS NULL:2005/04/14(木) 18:08:50 ID:???
>>822
DELETE FROM Table
WHERE timestamp_field <(SELECT min(timestamp_field) FROM Table AS Foo WHERE 20>(SELECT count(*) FROM Table WHERE timestamp_field>Foo.timestamp_field));

書いてて冗長な気がする。もうちょっと短くなるかな?

827 :NAME IS NULL:2005/04/14(木) 22:30:25 ID:odModjzd
みんなこれをおかずにして
(・∀・)つttp://www.ne.jp/asahi/web/ichihara/


828 :825:2005/04/15(金) 09:26:00 ID:???
あ、PostgreSQLじゃTOPは使えないのか。

代わりにLIMITが使えるみたいだから、こうかな?
これも試すなら保障ナシの自己責任で。

DELETE FROM TableA
WHERE Not(timestamp IN (SELECT timestamp FROM TableA ORDER BY timestamp DESC LIMIT 20))

829 :NAME IS NULL:2005/04/15(金) 09:48:32 ID:5K0FDFV5
特に処理速度が求められない状況でのQuery発行についての質問があります。
保守面を考えると、テーブルを結合して長ーいSQL文書いて一度のQuery発行でデータを取得するのより、
複数に分けてばらばらにデータを取得するほうが良いですか?

830 :NAME IS NULL:2005/04/15(金) 13:09:01 ID:???
>>829
環境作ってテストしてみたほうがいい

831 :NAME IS NULL:2005/04/15(金) 13:27:36 ID:???
一度のクエリ発行で取得できるデータなら、適度にビューをネスト
させて構造を整理したうえで一発取得が上策。



…じゃないかと自分は思うんだけど。教えてエロい人。

832 :& ◆guxGbIieIQ :2005/04/16(土) 19:56:40 ID:sBSCoyrD
http://news19.2ch.net/test/read.cgi/newsplus/1113641223/l50

833 :NAME IS NULL:2005/04/17(日) 18:22:26 ID:???
RDBMSについて質問です。
OSはLinuxがはじめてなのでVineLinuxを選び、
勉強がてらDBを構築したいと思っています。利用は自分だけです。
ANSI/ISO SQLの仕様に一番準拠しているRDBMSってなんですか?
ライセンス料は\0がいいです。


834 :NAME IS NULL:2005/04/17(日) 20:08:31 ID:SKMh7PuW
 

835 :NAME IS NULL:2005/04/17(日) 20:47:33 ID:???
>>833
PostgreSQL

836 :すいません:2005/04/17(日) 22:13:49 ID:McU+yINZ
すみません教えてください。。。
いろいろ調べたけど分かりません。

Access2KからOracleで作られたテーブルをVBAで直接触ろうとしています。

詳細はこんなかんじです。
フォームに作成した登録ボタンをクリックすると
Accessの○○テーブルからOracle○○テーブルへデータが追加される
Oracleテーブルは、Accessからリンクテーブルしています。


Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset

Set CN = CurrentProject.Connection
Set RS = New ADODB.Recordset

Set serch_cn = CurrentProject.Connection
Set serch_rs = New ADODB.Recordset

INSERT_SQL = "oracleのSQL(insert)"
IN_COMSTAFF_RS.Open INSERT_SQL, CN, adOpenKeyset, adLockOptimistic

自分のパソコンでは問題なく動作するのですが、
作成依頼者は、
登録ボタンをクリック時に
Oracleのユーザ名・パスワードを毎回聞いてくるのでどうにかしてくれ
といっています。
どうしたらよいのでしょうか?

837 :& ◆bUUJtFw26k :2005/04/17(日) 22:15:20 ID:McU+yINZ
Set serch_cn = CurrentProject.Connection
Set serch_rs = New ADODB.Recordset
は意味ないので読み飛ばしてください・・・

838 :NAME IS NULL:2005/04/17(日) 22:30:15 ID:uNJFXCMd
OracleのDBサーバを作りたいのですが、どのOSがいいか教えてください。
Windows?AIX?Linux?Solaris?

ちなみに今の候補としてはMiracle LinuxかRedhat Linuxを考えてます。

839 :NAME IS NULL:2005/04/17(日) 23:33:52 ID:???
Oracle10gならLinuxがいい。
MiracleかRedHatが無難。

840 :833:2005/04/18(月) 00:39:04 ID:yfJ4i9Qw
FireBirdはどうですか?

841 :NAME IS NULL:2005/04/18(月) 01:58:15 ID:???
>>840
VineにFireBirdの公式パッケージは無かったとおもう。

842 :NAME IS NULL:2005/04/18(月) 03:32:01 ID:PXlORFGA
>839
レスTHANX。
やっぱりLINUXがいいんですね。
Windowsに10g入れたら、何分かに1回フロッピーチェックをするという
おかしい状態になったので、やめました。
10gのせようと思ってるので、RHELにしようと思います。


843 :NAME IS NULL:2005/04/18(月) 13:44:22 ID:4k8VMJQi
WinXPを使ってデータベースを立ち上げようと思っています。
立ち上げ方は、何とかわかりました。
そこで、IISを無料でダウンロードできませんか?
NTなら付属されているみたいですが、XPにはないみたいで・・
おねがいします

844 :NAME IS NULL:2005/04/18(月) 16:27:01 ID:???
>>843
XP Proに付属されている。Pro版にアップグレードすべし。


845 :NAME IS NULL:2005/04/19(火) 02:00:22 ID:UrW92pgH
timestampで「now()に一番近いデータ」を取り出すやり方って
ございますでしょうか?

846 :824:2005/04/19(火) 03:27:16 ID:???
>>826様、828様
レス遅くなりすみません。

すばらしいです。勉強になりました。
828様のものを使わせていただきました。
本当に有難うございました。

847 :NAME IS NULL:2005/04/19(火) 07:28:40 ID:???
>>845
now()以下でmax()

848 :NAME IS NULL:2005/04/19(火) 10:34:35 ID:hCZOUp6o
テーブル設計でデータ(行)を削除する仕様を決めるとき、
DELETE命令で実際に削除するか、
削除フラグをカラムに含めて、データそのものは削除せず貯め込むかの
どちらか選択すると思いますが、
どっちがベターなんでしょうか?
(データ量とか運用とか考慮せんといかんとは思いますが)

849 :NAME IS NULL:2005/04/19(火) 11:13:38 ID:???
>>848
最後の1行が答えだと思う
オレはマスタ類はフラグで、それ以外はデータ量に応じてやってる
フラグ立てといてバッチで消すっていうパターンもたまに使う

850 :NAME IS NULL:2005/04/19(火) 11:32:45 ID:???
>>836
ODBCの設定でパスワードとか入れてないんじゃない?
と、適当にいっていみる。

851 :NAME IS NULL:2005/04/19(火) 14:56:44 ID:???
エクセルでデータベース作ろうと思っているのですが、
まずどこからはじめたら良いのでしょうか?

作成しようとしているものは販売状況表で後から検索できるものです。

852 :NAME IS NULL:2005/04/19(火) 15:22:09 ID:???
>>851
板違い

ビジネスsoft
http://pc8.2ch.net/bsoft/


853 :851:2005/04/19(火) 15:37:55 ID:???
>>852
すみません、ありがとうございます。

854 :833:2005/04/19(火) 17:38:01 ID:BU3ODWOg
亀レス、すいません。
ttp://sourceforge.net/projects/firebird
ここにいったのですが、ここでOSを選ぶんですよね。
Linuxってのがあるのですが、ディストリビューション
による違いあるのですか?Linuxという区切りしかないようなのですが。

ANSI/ISO SQLの勉強もしたいので、一番準拠しているDBMSってどれなんでしょう。

855 :NAME IS NULL:2005/04/19(火) 21:49:13 ID:I6SRgg44
 どなたか、教えて下さい
SQLサーバーで、ADO使用(VB6.0)
open後のselect文の実行途中でキャンセルして。
途中まで画面に表示できますか?

 よろしくお願いします。

856 :NAME IS NULL:2005/04/19(火) 23:17:15 ID:wl1ba11Z
edpってデータベースの一種だと思うのですが
何の略かわかりません、教えてください

857 :きむ:2005/04/20(水) 11:33:49 ID:lvdW/q3y
Oracleのvarchar2はlongのように動的に領域を拡張するのでしょうか。それとも指定サイズ分の領域を必ず占有してしまうのでしょうか。どうか教えてください。

858 :NAME IS NULL:2005/04/20(水) 17:54:03 ID:???
>>857
Oracleのvarcharは可変。可変の処理系が多いがFirebirdなど固定のもある。

859 :NAME IS NULL:2005/04/20(水) 23:37:11 ID:EHx9rP/e
どなたか知ってたら教えてください。
あるテーブル(NUMBERやVARCHAR2型の項目がいくつかある)
にINSERTしようとすると、
WIN2000の場合は正常に登録できるのですが、
WINXPの場合はORA-1401(列に挿入した値が大きすぎる)で
弾かれてしまいます。
とくに桁あふれするようなデータはなさそうなのですが、
気になることといえば、
上記の処理はVBから引数を指定してストアドファンクション
で行っているのですが、ファンクション側の引数にINT型
とかを指定していてそれをNUMBER型の項目に入れています。



860 :NAME IS NULL:2005/04/21(木) 00:36:57 ID:V0sk5GrL
ベタな質問で申し訳ありません。
Solaris版 Oracle10gで、Pro*COBOLはどこに格納されているのでしょう。
通常のEnterpriseのDevelopment KitではPro*Cしか
インストールされませんでした。
Oracle programmerのライセンスは持っています。

861 :NAME IS NULL:2005/04/21(木) 06:50:01 ID:???
>>854
ちょっと古い(1.5.0向け)がReleaseNoteの「Liinux compattiibiilliittiies」辺りでも。

http://www.ibphoenix.com/downloads/Firebird_v15.108_ReleaseNotes.pdf


862 :NAME IS NULL:2005/04/21(木) 19:47:02 ID:r+WQRtXN
何もわからないド素人です。検索してここにたどり着きました。
web上でデータベース(?)を組みたいのですが、
やりたいことは、このような感じです。

ジャンル 商品名 原価 売値 を入力。
アップすると
お客さん側は ジャンル 商品名 売値が見えて
管理側は ジャンル 商品名 原価 売値 が見えるということを
やりたいのです。
このようなことが出来る無料のCGIを探してみたのですが
なかなか見つからず困っています。

どなたかわかる方いらっしゃいましたらご教示願います。
当方プログラムを全く勉強したことが無く、やったことといえば
無料のCGIをダウンロードし、説明どおりにUPしたことくらいです。
これくらいの知識でも、ここでこんなのをダウンロードしたら
出来るよ、というのがあればお教え願いますか?

863 :NAME IS NULL:2005/04/21(木) 22:41:40 ID:???
>>862
それもデータベースには違わないがここはデータベース管理システム(DBMS)
やSQLがメインだからWEB関係の板に行ったほうが良くないかい。


864 :862です:2005/04/21(木) 22:43:01 ID:r+WQRtXN
あ。そうだったんですか・・・。
知らずに書き込んでしまって大変失礼を致しました・・・。
WEB関係の方にいってみます。
適切な指示ありがとうございました・・・。

865 : ◆ozOtJW9BFA :2005/04/22(金) 12:45:42 ID:II7QQsyJ
-spaceでサーバ借りてるんですけど
php プログラムは完成して立ち上げて機動するようになったんですけど
mysql がよくわかんなくって

Warning: mysql_connect():
Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (2)
in /export/home2/****/public_html/**/*****.php on line 3
パーミッション600 なんですけど

PHPの中身は
<?php
mysql_connect('', '', '');
mysql_select_db('');
?>
こんなんですけど
これって データーベース作れってことっすか?
どなたか詳しい方情報お願いします。
難しぃぃ
初心者から早く抜けたい

866 :NAME IS NULL:2005/04/22(金) 14:03:00 ID:???
>865
まだ、ここで質問するレベルに達していない。
まず、その「-space」とやらのサポートに聞け。


867 :NAME IS NULL:2005/04/22(金) 15:34:02 ID:???
>>865
データベースサーバ作ってないって事やろ?
PHP+MySQLやろ
データベースサーバーの作成方法は
ググレ

868 :NAME IS NULL:2005/04/22(金) 22:09:37 ID:???
皆さんDB作る時オプチマイザって何にしてます?
やっぱりちゅーず?

869 :NAME IS NULL:2005/04/22(金) 22:13:00 ID:UVNhzrAw
868でつ。
ちなみにおらくるでつ。

870 :NAME IS NULL:2005/04/22(金) 22:21:45 ID:???
>>868
ちゅーずでやるよん


871 :NAME IS NULL:2005/04/23(土) 00:10:18 ID:???
test

872 :NAME IS NULL:2005/04/23(土) 00:17:37 ID:???
>870

レスありでつ〜
でやっぱdbmsかなんかで統計情報取ってやるのかしらん?

873 :NAME IS NULL:2005/04/24(日) 09:26:26 ID:???
全てのフィールドにNOT NULL制約付けとけと言われたのですが
これって意味有るんでしょうか。
not nullって全部に打つのメンドイ。

874 :NAME IS NULL:2005/04/24(日) 09:50:21 ID:???
mysqlを使用しようと思ってるんだけど、
mysqlをインストール後、
chown -R root /usr/local/mysql
chown -R boy /usr/local/mysql/var
chgrp -R boy /usr/local/mysql

としたところ、やっぱりユーザーboyに変わって、girlという
ユーザー名に変更しました。
userdel boy
chown -R root /usr/local/mysql
chown -R girl /usr/local/mysql/var
chgrp -R girl /usr/local/mysql
/usr/local/mysql/bin/mysqld_safe &

と入力すると chown: boy:ユーザ指定が不正
Starting mysqld with databases from /usr/local/mysql/var
とでてきます。
なぜchown -R girlとしているのにユーザ指定が不正とでてくるのでしょうか?

875 :NAME IS NULL:2005/04/24(日) 10:01:49 ID:aPyqHgnm
>>872
当たり前だろうが


876 :NAME IS NULL:2005/04/24(日) 14:58:13 ID:???
>>874
マルチはよしなよ。
boyって本当はmysqlというユーザ名かな? だったら当然の話という気がする。


まぁ今頃は自己解決してるか。

877 :NAME IS NULL:2005/04/24(日) 16:02:56 ID:nrSc9FZA
あの・・・postgresでPL/SQLを使うにはどうしたらいいんでしょうか?
PostgreSQL 8.0をWindowsに入れているのですが。

878 :877:2005/04/24(日) 16:06:50 ID:nrSc9FZA
追記
何か設定が必要でしょうか?
GOOGLEで調べたけど分からないので、ご教授ください!

879 :NAME IS NULL:2005/04/24(日) 16:41:05 ID:???
>>877
PL/SQLはOracleのストアドプロシージャ記述言語、
PostgeSQKにストアドプロシージャがあるかという質問なら、
今のところなかった気がするが、最新版はしらんけど。

880 :NAME IS NULL:2005/04/24(日) 16:54:34 ID:???
>>873
理解せずにNULL使うとトラブルの元だから面倒でもつけたほうが良い。
もちろん意図的にNULLが必要な場合は例外。
ただしOracleの場合は事情があってvarchar/charはNOT NULLにしないことが多い。

881 :NAME IS NULL:2005/04/24(日) 17:33:43 ID:???
>>879
6.xあたりからPL/pgSQLってのがあるよ

882 :NAME IS NULL:2005/04/24(日) 17:56:59 ID:???
数値とか日付とかもnot null?

883 :877:2005/04/24(日) 19:21:26 ID:nrSc9FZA
>>879 >>881
ありがとうございます。
そのPL/pgSQLを使いたいのですが、
テストで、

DECLARE
wk_a int4;
wk_b int4;
BEGIN
wk_a := 1;
INSERT INTO test(col1) VALUES(wk_a);
wk_b := 1 + wk_a;
INSERT INTO test(col1) VALUES(wk_b);
wk_b := 1 + wk_b;
INSERT INTO test(col1) VALUES(wk_b);
COMMIT;
END;

としてみても、
ERROR: syntax error at or near "int4" at character 15
になります。
何か設定が必要なのかもしれませんが、分からないのです・・・。


884 :NAME IS NULL:2005/04/25(月) 02:10:31 ID:???
>>883
PL/pgSQL は、Oracle の PL/SQL と違い、ストアドファンクションとしてのみ使用可能である。

だそうだ。

885 :納豆バナナスパゲティ ◆4BoWsVXtKI :2005/04/25(月) 18:39:22 ID:???
例に依って某竜玉と勘違いして来た初心者です.
ここはどういったことを扱っているんですか?.
面白そうです

886 :NAME IS NULL:2005/04/26(火) 15:04:20 ID:???
>>885
以前Palmで使われていたモトローラの組み込み用CPUを扱っている

887 :NAME IS NULL:2005/04/26(火) 16:25:57 ID:???
DB管理者とかがよく使う
ピンポン
ってなんなんだよ・・・・

888 :NAME IS NULL:2005/04/27(水) 17:14:20 ID:MsG8U0Yr
シラネ(゚з゚)

889 :NAME IS NULL:2005/04/27(水) 17:14:57 ID:???
sage忘れてたorz

吊ってくる

890 :NAME IS NULL:2005/04/27(水) 21:42:18 ID:g57xEUXE
オラクルなんですけど
create procedure でupdate文書きたいんですけど
教えてください

891 :NAME IS NULL:2005/04/27(水) 21:45:25 ID:???
>>890
create or replace
を使いやがれ


892 :NAME IS NULL:2005/05/04(水) 18:47:23 ID:K+zVstCq
すいません「初めてでもできるASPプログラミング」という本を勉強しているんですが

D_FileName = "diary.xml"
Set Fs = Server.CreateObject("Scripting.FileSystemObject")
IF Fs.FileExists("diary.xml") then
Set Ts = Fs.OpenTextFile("diary.xml",8,True)
Else
Set Ts = Fs.CreateTextFile("diary.xml")
set xmlfile = Server.CreateObject("Microsoft.XMLDOM")
xmlfile.load "diary.xml"

の後が誤植なのか、ありません。
form.htmlというフォームから渡されたForm("sub")等のデータを、
diary.xml に XML形式で保存するというものなのですが、
似たようなサンプルがwebで見当たらず苦労しています。
アドバイスお願いします。

893 :892:2005/05/04(水) 20:04:07 ID:???
正誤表発見しました。
お騒がせしました

894 :NAME IS NULL:2005/05/05(木) 03:37:15 ID:???
この!
おっちょこちょいがっ!!

895 :NAME IS NULL:2005/05/05(木) 17:17:57 ID:???
すげー勢いだな。この(・∀・)スッドレ!

896 :NAME IS NULL:2005/05/10(火) 19:27:18 ID:pUjImQmO
MS Accessで改行コードを意図したものじゃない場合の旨いやり方は有りますでしょうか。

UNIXで作成した改行コード\nで作成したファイルを
WinxpのAccessでopenステータスを利用して読み込もうとしたのですが、
inputしたデータの改行部が無視されて次の行の分まで含まれていた為
読み込む前に\nを\r\nに変換してしまうか、読込み方法を変更したいのです。


897 :NAME IS NULL:2005/05/12(木) 03:17:05 ID:???
>>896
VBAのお話ですね。というわけで、板違い。
ftpで転送するときに改行コードの変換をしてみるとか

898 :NAME IS NULL:2005/05/12(木) 23:00:37 ID:oWFiCYu4
株価を研究するのにずっとエクセルを使ってきたのですが、
もっと多くのデータを扱いたいと重いデータベースの導入を考えています。
そこでデータベースの設計について質問があります。

データベースに記録したい内容は、始値 高値 安値 終値・・・などで、
これらのデータを、「銘柄数分」「毎日」記録したいと思っています。
もし、日付をテーブルにしたら(毎日テーブルを新規に作る)、データを利用するときは銘柄ごとに時系列で
追うことが多いので、テーブル間の串刺しが大量におこってしまいます。
また、もし、銘柄ごとにテーブルを作ると、テーブル数が膨大(4000銘柄くらい扱いたい)
になってしまいます。

こういった場合、どのように設計するのがいいのでしょうか?
分かりにくい表現があるかと思いますが、よろしくお願いします。


899 :NAME IS NULL:2005/05/12(木) 23:17:29 ID:???
ええっと、なにから説明したらよいのかな...

銘柄テーブルと株価データテーブルをつくって、
株価テーブルには日付カラムと銘柄IDを格納すればよい。

うーんだめだ、噛み砕いて説明できないな。


ところで、株価研究って自前のツールとか、データベースを
使ってやることが一般的なの? よくそういう話を聞くけど。

900 :NAME IS NULL:2005/05/12(木) 23:46:53 ID:H58fxviT
>>898 銘柄テーブル(
銘柄ID,銘柄名
)

株価テーブル(
銘柄ID,日付,高値,安値,始値,終値
(銘柄ID,日付)はprimary key
)



901 :898:2005/05/13(金) 00:28:43 ID:W8Hpy/5x
>>899
>>900
はやいレス、ありがとうございます。

すみません、私の説明が足りてませんでした。
銘柄名は保存しないつもりです。
株には銘柄ごとに固有の銘柄コードがあるので、それを使うつもりです。
(900さんのおっしゃる、一般で通じる銘柄IDみたいなものです)
というわけで、ちょうど

株価テーブル(
銘柄ID,日付,高値,安値,始値,終値
(銘柄ID,日付)はprimary key
)

のところが保存したい部分です。
そして、私が悩んでいるのはこのようにテーブルを設計すると、
データ取得のときにロスが大きくなってしまうのではないのか、ということです。
エクセル的な発想なのですが、1テーブル1銘柄にすれば、多くの場合のデータ取得は
1つの銘柄に対して連続した日のデータを取得するものなので、効率的かな、と思ったのです。
エクセルだとシートごとに銘柄を分けて、1行1日としてデータを記述しておけば、
データのメンテナンスや計算時に楽だったのでそう考えてみました。

できれば複数銘柄を1つのテーブルに入れたくないのですが、この発想自体がデータベース
的ではないのでしょうか?


>>899
そこそこいるとは思います。
近年多くなったデイトレーダーや業績重視で買って長期で持つ人はこういうことはしないでしょうが、
1週間〜2,3ヶ月単位で取引してる人は、こういうことしている人も多いと思います。


902 :NAME IS NULL:2005/05/13(金) 00:47:00 ID:???
>>901
4000銘柄でも年間100万行ぐらいだろ。
Accessでやるなら数年で糞重くなりそうだが、
他のDBMSなら大丈夫でしょ。
あと、銘柄テーブルも作っておいたほうが、後々便利だろうね。

903 :NAME IS NULL:2005/05/13(金) 01:18:52 ID:???
>>901 同じようなものはおなじテーブルに突っ込むのがDB的。
902の人も言ってるけど、数百万件程度なら問題ない。

904 :NAME IS NULL:2005/05/13(金) 01:40:41 ID:???
どうしても分割したければ、年毎に分割すればいいんじゃないかな。

905 :NAME IS NULL:2005/05/13(金) 02:19:42 ID:???
株価分析のプログラムは昔作ったことがあるけど、
条件を変えてバッチ処理を繰り返し流すイメージなんだよね。
DBに格納しようがCSVなどのシーケンシャルファイルに入ってようが
やることは一緒で端から読んで1件ずつ処理してゆくことになる。
SQLデータベース的な集計手法は役に立たない。
EXCELのBOOKだけで足りなくなったら、年度や月度ごとにBOOKを作って
複数のファイルから串刺しで集計するバッチプログラムを作るのが現実的。

906 :NAME IS NULL:2005/05/13(金) 02:25:23 ID:???
Lotus 1-2-3で処理しきれなくなっていきなりOracle買ってきて
使い方がわからないと泣き付いてきた自称投資家を思い出した。
OracleはおっきいLotusじゃないんだぞと説教したよ。

907 :902:2005/05/13(金) 03:33:26 ID:???
>>905
> SQLデータベース的な集計手法は役に立たない。

どう役に立たないのだろう。
年度毎や月間毎に別ける必要もなく、わざわざ串刺しする必要性もない。
Book管理やファイル管理も省ける。

DB側で集計しなくても、ある銘柄をある期間分抽出してホストプログラムへ
渡せばいいわけだし、あと、元質のところには無いが、出来高も加えて
その集計をDBに任せたりすると、期間別出来高変動なんかも、
1行のSQLでデータは取り出せる。

銘柄テーブルを作って、そこに鉄鋼株とか自動車株などのカテゴリーや
トヨタ自動車グループとかフジサンケイグループなどの企業グループを
識別するカラムを追加して、カテゴリー単位や企業グループ単位の
トレンドライン(?)を出したりするときも、1行のSQLで抽出できる。

って、株も株価分析もやったことないので的外れなことだったらスマソ。
個人が4000銘柄を管理したいと言うことは、多角的に株価を眺めたいん
だろうなと思って、MVCのMの部分が1行のSQLで済ませるのなら楽だと
思ったまでだ。

908 :NAME IS NULL:2005/05/13(金) 20:29:45 ID:ZTGzA6Xp
Postgresの
psql < DB名 〜.sql
はmySQLではどのようにやればよいのでしょうか。

ご教示いただけますと幸いです。

909 :898:2005/05/13(金) 22:30:45 ID:W8Hpy/5x
おお、さすがものすごい勢い〜スッドレですね。
みなさん、レスありがとうございます。

>>902
>>903
>>906
どうやら私はデータベースというものを甘く見すぎてたみたいです。
私はDBとはエクセルの親分みたいなものだと想像してたのですが(Accessの入門本で住所録とかが多いものですから…)、
数百万間程度なら問題ない、っていうレスを見て驚愕しました。
そんなに大量のデータでも1テーブルで処理できるんですね。
って書いてて思ったんですが、エクセルだと1ブック開くごとに
メモリ上にセル内容をロードしてるから限界があるけど、
DBだとそうしないので、1テーブルで相当数が入るわけですね。

>>904
実際に運用するようになったらそうしてみます。
そのほうがバックアップとかも楽そうですしね

>>905
>>907
これは結構悩みどころですね。
たしかにDBを使わなければ今のスキルで何とかなりそうですが、
DBを導入するとなれば、相当の勉強を覚悟しないとだめですよね。
ブック分散も考えたのですが、興味もあるのでどうせならこの際、
DBの勉強もしようかなと今のところ思っています。
とりあえず少し勉強して、実際SQLでどういったことができるのか(SELECTとかしか知らないorz)、
を知ってみたいです。
4000銘柄(ちなみに今は500銘柄監視くらいです)も管理する理由ですが、多角的に眺めるというより売買チャンスを増やすのが目的です。
それなら全銘柄監視すればいい、ということになるんですが、ある程度の流動性がある株でないと、
買ったはいいが売るに売れない状況(自分が売ることによって株が値下がりしてしまう)になってしまうのです。
なのでそういったことを考慮すると、日本市場だと4000銘柄くらいが分析対象になるかなと思っています。
そしてそれらの銘柄の中で「売られすぎ・買われすぎ」なものを抽出して、売買するって感じですね。



910 :NAME IS NULL:2005/05/14(土) 18:17:16 ID:8uuv/+F5
こんにちは!
postgreSQLのpg_shadowの内容を全部消したら、
postgresスーパーユーザーですらDBにアクセス
出来なくなりました!
修復方法などありますでしょうか?

911 :NAME IS NULL:2005/05/16(月) 14:55:48 ID:???
MySQLです。
物凄い初心者で申し訳ないんですが、
tableAとtableBがあってその二つにはnameレコード(プラキー)がある。
その中から「ぴよゆき」のフィールドを検索するには、
SELECT tableA.name,tableB.name FROM tableA,tableB
WHERE tableA.name=tableB.name AND tableA.name="ぴよゆき"
これでダメなんですが、どうしたらいいでしょうか?

912 :NAME IS NULL:2005/05/16(月) 15:01:02 ID:???
>>911
漢字以外でもだめか?

913 :NAME IS NULL:2005/05/16(月) 15:01:34 ID:???
漢字つーか、全角。
アルファベットでやってもだめなのかどうか

914 :データベース初心者:2005/05/16(月) 18:24:44 ID:oIkLPVZj
質問です。
あるクラスの生徒の食べ物の好みをデータベースにしたいのですが、
ラーメン、餃子、レバニラ炒め、ハヤシライス等の食べ物リストがあり、
各生徒はそれらの食べ物から好きな物を選びます。複数選択可能です。
これをデータベースで表現するとどうすれば良いでしょうか?

915 :NAME IS NULL:2005/05/16(月) 18:42:56 ID:5aaoni6l
証券会社に就職がきまったのですが、SQLとか学んだほうが
いいですか?

職種は、債権ディーラーなんですが。

916 :データベース初心者:2005/05/16(月) 18:45:20 ID:oIkLPVZj
補足)
食べ物の種類は100種類ぐらいあります。

917 :データベース初心者:2005/05/16(月) 18:57:12 ID:oIkLPVZj
>>915
私みたいなのが言うのもなんですがマイクロソフトアクセス使えます。
みたいなこといえれば、お、できる奴、って思われるんじゃないですかね。
なんで覚えておいたほうが良いと思いますよ。

918 :NAME IS NULL:2005/05/16(月) 19:21:31 ID:???
>>914
生徒テーブル
--------------
PK 生徒ID
生徒名


食べ物テーブル
--------------
PK 食べ物ID
食べ物名


好みテーブル
--------------
PK 生徒ID
PK 食べ物ID



この程度の基本的な事が解らないのか・・・・
データモデリングについての本で勉強した方が良いぞ。


919 :データベース初心者:2005/05/16(月) 21:09:07 ID:oIkLPVZj
>>918

ああ、なるほど〜〜そうすればいいんですね・・・

ちゃんとデータモデリングについて勉強します・・・・お勧めの本ありますか?

920 :918:2005/05/16(月) 21:14:25 ID:???
>>919
↓のスレを参考にしてくれやす

【より良い】データモデリング【モデルを】
http://pc8.2ch.net/test/read.cgi/db/1057509675/l50


921 :データベース初心者:2005/05/16(月) 21:25:55 ID:oIkLPVZj
>>920

ご丁寧にありがとうございます。恐縮です。
そちらのスレ、ちょっと覗きましたが奥が深そうですね・・データベースって・・・・
溺れないように頑張ります・・・・

922 :NAME IS NULL:2005/05/16(月) 21:57:57 ID:BP31J9XN
画像掲示板を作ろうと思います。
元々は自分が持っている100万枚のエロ画像を管理するために
データベースを構築していたのですが、
それを応用して画像掲示板を作り、みなさんにも使ってもらおうと思っています。
でもまだ名前がないので、みなさんで考えてください。
でも「ちゃんねる」がつかない名前でお願いします。

923 :NAME IS NULL:2005/05/17(火) 01:42:03 ID:???
>>912
>>913
全角以外でもダメでした('A`)
構文的には間違ってないんでしょうか?

924 :NAME IS NULL:2005/05/17(火) 02:22:35 ID:???
間違ってないと思うが、、両方に含まれてるものだけを出力するんだよね?

925 :NAME IS NULL:2005/05/17(火) 02:52:45 ID:???
>>924
そうです。
会員登録やログインページの型を作るつもりなんです。
で、登録画面で入力された値が既存しないかどうか確認するために

$sql="SELECT name FROM tableA WHERE name = '"._es($_SESSION["name"])."'";

ってやって、これだとうまくいくんですが、

$sql="SELECT tableA.name,tableB.name FROM tableA,tableB
WHERE tableA.name=tableB.name
AND tableA.name = '"._es($_SESSION["name"])."'";

これだとダメなんです。
エラーはでません。

926 :NAME IS NULL:2005/05/17(火) 03:38:34 ID:???
$sql="SELECT name FROM tableB WHERE name = '"._es($_SESSION["name"])."'";
のほうはどうなんだ?

927 :NAME IS NULL:2005/05/17(火) 17:11:24 ID:???
以下のようなテーブルがあるとします。(このテーブルは既存のもので変更できません)
CREATE TABLE t (
id, /* プライマリキー */
regdate, /* 登録日。ユニークとは限らない */
user, /* ユーザID */
name, /* 名前 */
addr, /* 住所 */
... );
ここで、
1) ある条件を満たすユーザの集合における
2) そのユーザの最新のレコード
を取得しようとしています。が、SQLを書いてみるとやけにややこしいモノになってしまいました。(SELECTが4回……)
もう少しシンプルにしたいのですが、何か方法はありますか?
なお、環境はOracle8iです。(オプショナルなモジュールは入っていないので、分析関数等は使えません)

SELECT * FROM t WHERE id IN (
SELECT MAX(id) FROM t, (
 SELECT MAX(regdate) max_regdate, user FROM t
 GROUP BY user
 HAVING user IN ( SELECT DISTINCT user FROM t WHERE 条件式 )
) t2 WHERE t.user = t2.user AND t.regdate = t2.max_regdate )
ORDER BY regdate DESC;


928 :927:2005/05/17(火) 18:06:57 ID:???
済みません、訂正です。(下から2行目のGROUP BYが抜けた)

SELECT * FROM t WHERE id IN (
SELECT MAX(t.id) FROM t, (
 SELECT MAX(regdate) max_regdate, user FROM t
 GROUP BY user
 HAVING user IN ( SELECT DISTINCT user FROM t WHERE 条件式 )
) t2 WHERE t.user = t2.user AND t.regdate = t2.max_regdate
GROUP BY t.user )
ORDER BY regdate DESC;


929 :927:2005/05/17(火) 18:07:41 ID:???
済みません、訂正です。(下から2行目のGROUP BYが抜けた)

SELECT * FROM t WHERE id IN (
SELECT MAX(t.id) FROM t, (
 SELECT MAX(regdate) max_regdate, user FROM t
 GROUP BY user
 HAVING user IN ( SELECT DISTINCT user FROM t WHERE 条件式 )
) t2 WHERE t.user = t2.user AND t.regdate = t2.max_regdate
GROUP BY t.user )
ORDER BY regdate DESC;


930 :927:2005/05/17(火) 18:09:27 ID:???
済みません、訂正です。(下から2行目のGROUP BYが抜けた)

SELECT * FROM t WHERE id IN (
SELECT MAX(t.id) FROM t, (
 SELECT MAX(regdate) max_regdate, user FROM t
 GROUP BY user
 HAVING user IN ( SELECT DISTINCT user FROM t WHERE 条件式 )
) t2 WHERE t.user = t2.user AND t.regdate = t2.max_regdate
GROUP BY t.user )
ORDER BY regdate DESC;


931 :927:2005/05/17(火) 18:10:18 ID:???
済みません、多重投稿に……orz

932 :NAME IS NULL:2005/05/17(火) 21:59:09 ID:???
>>927
一般的にはregdateとuserでユニークと考えていいように思うのですが、
max(id)という記述があるからユニークじゃないのでしょうか?
regdateとuserでユニークならばもう少しシンプルになると思います。
また同じuserで複数のregdateがある意味が履歴以上の意味を持ってない場合は、
履歴用のテーブルを別にして現在アクティブのuserだけのテーブルをつくれば
きわめてシンプルでパフォーマンスも良くなります。

933 :NAME IS NULL:2005/05/17(火) 23:52:56 ID:???
>>927

このスレでもさんざん外出だが…

select * from t as t1
where 条件
and not exists (
select * from t
where user = T1.user
and (( regdate > T1.regdate ) or
( regdate = T1.regdate and id > T1.id ))
)

934 :927:2005/05/18(水) 00:59:07 ID:???
情報大変感謝。
>>932
残念ながら、userとregdateでユニークであることは保証されていません。実用上はそう簡単には生じないはずなんですけど、テストデータで問題が発現してしまったので対応せざるを得ず(^^;
あと、テーブル構造を変更したいのは山々なんですが、既存システムへの影響が大き過ぎて断念しますた。
>>933
う゛、このスレで既出だったんですか。さんざんいろんなパターンでぐぐって見付けられなかったんですが、正に灯台元暗し。
最大値==MAX()と視野狭窄してたもので……。[not] existsは使ったことがなかったので大いに参考になりました。

935 :NAME IS NULL:2005/05/18(水) 02:39:10 ID:???
大学のサークル内で各自作成したデータを、Web上に日付順にアップロード
するようなシステムを構築したいのですが適した方法はありませんか?
またその際、サークル内で決めたID・パスワード等を用いてログインする
ことで、アクセス制限させるようにしたいと思っています。

分かりにくい質問ですみません。
データベースとは直接関係ないことですができれば教えてください。


936 :NAME IS NULL:2005/05/18(水) 03:56:28 ID:???
>データベースとは直接関係ないことですが
よくわかってるじゃないか

937 :NAME IS NULL:2005/05/20(金) 21:03:41 ID:WRX51hc3
Access(ADO)+SQL2Kで開発しようと思ってるんですが、
どこをADO(VBA)で、どこをSP(SQL2K)で開発すると
速度上がりますか?
ADO(VBA)とSP(ストアド)の住み分けがわかりません。
ばかで申し訳ありませんが、教えて下さい。

938 :NAME IS NULL:2005/05/21(土) 00:29:38 ID:???
>>937
処理実行速度に関しては、
ストアドだとDBMSが効率的な手段とタイミングで処理しますが、
VBAだと、これらは制作者に委ねられ、DBMSからAccessへのデータ転送が発生します。
よって一般にストアドの方が高速実行となりますが、SQLを書く腕にも大きく左右されます。

また、処理開発効率に関しては、
SQLの方が表現力が低い分、一般に後に戦うべきバグが少なくなりストアドの方が楽になりますが、
処理の複雑さと規模が小さい場合には、VBAの方が手早く柔軟性も高いでしょう。
よって一般にストアドが効率的開発に向きますが、仕様やSQLの腕にも大きく左右されます。




939 :NAME IS NULL:2005/05/21(土) 00:32:22 ID:4HJtkX17
OracleでMySQLで言うHHH:MM:SSみたいな形式って使用できるんでしょうか?

940 :NAME IS NULL:2005/05/21(土) 00:56:06 ID:???
>>939
出来るよん!


941 :NAME IS NULL:2005/05/21(土) 01:13:15 ID:???
VBでADOとかODBCとかでPostgreSQLに接続して
グリッドに表示したり変更したりできるようになりました。
更に制約違反になる操作をしたら、それに応じたエラーメッセージを表示しようとしてます。

が、ConnectionのErrorsのDiscriptionにはちゃんとしたエラーメッセージが入ってるのに、
Numberがいつも-2147467259(80004005)なんです。
-2147467259という数字に関しては様々な記述がありますが、
こういう状況に関する物は見付かりません。

制約違反って全部同じエラーコードなんですか?
そうでなければ、ちゃんとしたエラーコードってどうやったら取得できるのでしょうか?

942 :939:2005/05/21(土) 01:16:37 ID:???
>>940
Oracleでも使えるんですね。
ありがとうございました。


943 :NAME IS NULL:2005/05/21(土) 01:58:09 ID:1pDzoEyj
私は現在、フリーペーパー事業の会社に勤務しています。

システム部が作成するアクセスは1つのテーブルで、
契約書No.で顧客管理と売上管理をすると
方法を考えているようです。

でもその場合ですと
・再度契約した場合に異なる契約書No.に
 同じ契約者の(データ)がある。

という事になり、同じ契約者に対して
複数の契約書No.を管理することになり、
売上集計はまだいいのですが、
旅行券発行枚数等の顧客別の集計を取る際は、
いろいろ面倒ではないかと感じました。

それよりも顧客管理と売上等の契約書No.管理は
全く別ものであるから、アクセスで
下記の2つテーブルを作成し、

@顧客ID(重複番号無し)をつけて顧客(契約者)の
住所・電話番号・業種等を管理するするテーブル


A契約書No.(重複番号無し)で売上・旅行券発行等管理をし、
 なおかつ見積書発行・請求書発行等を作成できるテーブル


Aのテーブルに顧客IDを連動(クエリー?)させたら
顧客別の売上・旅行券の発行枚数・契約回数等の
管理やデータ収集もでき、売上全体に対する顧客別割合等の
集計等もだしやすいのでは?

と考えました。
私の考え方は、間違っているのでしょうか?
アクセスは聞きかじり程度の知識しかありません。
どなたかご教授をお願い申し上げます。




944 :NAME IS NULL:2005/05/21(土) 02:16:12 ID:???
>>943
フリーペーパーと旅行券の繋がりや、
契約書No.の意味や、どういう用途に使いたいのか等わかりませんが、

1テーブル案は間違いなく不適切なので、一度2テーブル案で作ってみる
ことをおすすめします。Accessなら手間もかからないかと思います。


945 :NAME IS NULL:2005/05/21(土) 02:40:52 ID:???
99%以上が一見客、かつ顧客情報として持つべきデータが少ない
とかなら不適切とも言い切れない

946 :NAME IS NULL:2005/05/21(土) 10:37:38 ID:UY6788K9
>>944さん、945さん
ありがとうございます。
>>フリーペーパーと旅行券の繋がりや、
>>契約書No.の意味や、どういう用途に使いたいのか等わかりませんが、

フリーペーパー掲載契約料金に旅行券代も含まれてます。
会社の意図としては企画旅行を売りたいが為の、
販促企画だそうです…。
契約書No.から旅行券がどんな契約者にどれぐらいの枚数で、
どんな旅行に、いつ頃使用されるのかというデータ収集と
企画旅行の経理管理をしたいようです。
契約No.は契約年と掲載月号と部署名と契約番号がわかる7桁です。

>>99%以上が一見客、かつ顧客情報として持つべきデータが少ない

1つのテーブルでつくるのであれば、やっぱり、これは必須条件ですよね。
50%前後は再契約者です。顧客情報と契約書の項目をあわせると
結構な項目数になります…。

ご教授ありがとうございました。
少しだけとアクセスを勉強してみようかなと思いました。
(でも難しそうですよね…。)
これからもよろしくお願い申し上げます。

947 :NAME IS NULL:2005/05/21(土) 10:48:16 ID:???
db設計した経験が少ないのなら、
どういった分析(データの利用方法)を考えているのかを
よくヒアリングしたほうがいい

948 :NAME IS NULL:2005/05/21(土) 20:38:07 ID:???
>>945
それならExcelの方がいいんじゃないかと。


949 :NAME IS NULL:2005/05/22(日) 00:14:41 ID:3MO12Rsm
948
いいなぁ〜
そのツッコミ…。

950 :NAME IS NULL:2005/05/22(日) 22:52:45 ID:???
みなさんこんばんは。
就職してデータベースなどの研修を受けているのですが、
Oracleマスターの試験はbronzeをとばして、
いきなりsilverやgoldを受けてもいいものなのでしょうか?

951 :NAME IS NULL:2005/05/22(日) 23:18:41 ID:???
>>950
受けても良いが、きちんと下位の試験も受けて合格しないとsilverやgoldの資格は得られないよ。


952 :939、942:2005/05/23(月) 00:29:46 ID:???
いくつか試してみましたが、結局分からずでした。orz
TO_DATEではダメなのでしょうか?

何度も申し訳ないですが、できれば何かヒントを…('A`)
よろしくお願いします。

953 :NAME IS NULL:2005/05/23(月) 00:39:44 ID:???
TO_CHAR

954 :952:2005/05/24(火) 01:28:22 ID:???
>>953
ありがとうございましたです。

955 :NAME IS NULL:2005/05/24(火) 09:39:50 ID:EsMZ3RTX
>>938
お礼送れてすみませんでした。
レス、ありがとうございました。

背景としては、
・1回のトランザクション処理件数が、10万件になる可能性がある
・スタンドアロン → 2層C/S への移行を容易にする
・開発したソフトは、スキルの低いグループ会社に提供する
・提供後は、ノー・サポートにしたい (提供先でカスタマイズ汁!)
 仕様書・ソースは全て、提供する
・開発・導入・運用の資金力の問題
・拡張性としては、
 Access → VB.NET(ADO.NET[?])
 MSDE2000 → SQLServer ラインナップの適切なもの

以上から、
Access(VBA[ADO]) + MSDE2000
(レポートはAccess)
という構成を考えてみました。
H/Wは、サーバーカテゴリのPCではない、
ビジネス用途のPCとなります(とにかく資金のないレベルに併せざるを得ない(TT))

社内オンリーであれば、VB.NET([ADO.NET]) + MSDE2000
レポートは、CrystalReport を考えていました。

もう一つ質問があるのですが、

C/Sで、H/W環境は同じとして、レポート印刷を考えた場合、
CrystalReport(クライアント)とReportingServicies(サーバー)とでは、
後者の方が処理速度的に早いのでしょうか?

よろしくお願いいたします。


956 :NAME IS NULL:2005/05/24(火) 10:16:15 ID:???
>>955

>社内オンリーであれば、VB.NET([ADO.NET]) + MSDE2000
>レポートは、CrystalReport を考えていました。
いいんじゃないですか。

>C/Sで、H/W環境は同じとして、レポート印刷を考えた場合、
>CrystalReport(クライアント)とReportingServicies(サーバー)とでは、
>後者の方が処理速度的に早いのでしょうか?
データ量と、集計内容と、レポートの作成のタイミング、LANの転送能力等に依存しますが、
Accessを選んだんならとりあえずCRでいいんじゃ?
CRとRSのフォームは再利用できたんじゃないかと思うけど、調べてみそ。



957 :NAME IS NULL:2005/05/24(火) 11:07:39 ID:EsMZ3RTX
>>956
レスありがとうございます。

>>CRとRSのフォームは再利用できたんじゃないかと思うけど、調べてみそ。
この件は、マイクロソフトに確認しましたが、再利用可能との回答でした。

たびたび申し訳ありませんが、言葉が足りなかったようでもう一度質問させてください。

>C/Sで、H/W環境は同じとして、レポート印刷を考えた場合、
>CrystalReport(クライアント)とReportingServicies(サーバー)とでは、
>後者の方が処理速度的に早いのでしょうか?
これは、クライアント・アプリをVB.NET(2003)で開発した場合です。

>>データ量と、集計内容と、レポートの作成のタイミング、LANの転送能力等に依存
この点についてですが、
・処理サイクルとしては、月次バッチ系で、10万件程度のデータ量(100バイト/レコード)です。
・集計レベルは3層程度でそれほど複雑な集計はありません。
・LAN環境は、残念ながら100Mでギガビットではありません(TT)
・レポートは最終的にPDF出力です

以上、レスをお願い致します。

958 :NAME IS NULL:2005/05/24(火) 12:22:50 ID:???
RSを触りたいんなら止めないけど、
月次でPDFアウト、データが100KB×10万程度、ならなんでもいいんじゃない?
バッチも今のPCなら10分かからないで終わるでしょ。
メンテを任せるんなら下手に自動化せず、誰かが自分の端末でPDF作ってメールすれば十分じゃないの?


959 :NAME IS NULL:2005/05/25(水) 20:30:46 ID:abMCb5s6
>>958
お礼遅れてすみません。
レスありがとうございました。
RSにこだわっているわけではないです、正直RSは殆どわかりません。
周囲に、クライアント:VB.NET + サーバー:SQLServerで、
「レポートは?」と聞いてみると、実績ベースではCrystalReportが多いと
聞きますが、実際はRSとどっちがパフォーマンス出るのかと疑問を持ちました。

質問の開始レスに10万件とは書いたものの桁が変わる可能性があるので
知識として、知っている方いらっしゃいましたら享受願いたかったのです。


960 :NAME IS NULL:2005/05/25(水) 22:06:28 ID:???
idef1xとie方式の違いってなんでしょう

961 :NAME IS NULL:2005/05/27(金) 11:33:05 ID:ISCRanb0
すいません、2005-05-27というDATE型のデータを、
2005年5月27日という(0を抜いた)形で取得したいんですが、
どういうSQL文で取得ができますでしょうか。

宜しくお願いします。

962 :U ◆CZtFsGiu0c :2005/05/27(金) 12:08:19 ID:???
>>961
RDBMSがなんなのかくらい書きましょう。
それからなんでそういうことをしたいのかわからないけど、そういう出力
のフォーマット処理は通常プログラム側でするものだよ。

963 :栄養”管理”する人:2005/05/27(金) 12:49:45 ID:Tm96gG30
教えて下さい。

料理の献立を打っています。
例えば、『うどん』 ですと
 
  code  050516201
  料理名 うどん
  日付  2005/5/16
  時間  昼

と打っています。
フォームで入力しているのですが、
codeを打った時点で日付も自動で入力されるような仕組みは
VBAでどのようにすればよいでしょうか?

※時間は自動になるようにできました。
codeの050516の後の数字が1だったら朝食、
2だったら昼食といった具合にVBAで作りました。
その後の01は昼食の中での品目数を表しています。

964 :栄養”管理”する人:2005/05/27(金) 12:50:45 ID:Tm96gG30
ちなみに自分でトライしましたのは、

Dim x As Variant
Dim y As Variant
Dim z As Variant

x = Left(Me!code, 2)
y = Mid(Me!code, 3, 2)
z = Mid(Me!code, 5, 2)

Me!日付 = x+y+z

と挑戦しまして挫折しました。
よろしくお願いします。

965 :961:2005/05/27(金) 12:56:16 ID:???
>>962
ADO接続で、DBはPostgreSQL8です。
ADOを使っているので、汎用的なSQLでそういうものがないかお尋ねしたかったのですが……

とりあえずプログラム側で実現していたのですが、
それしかないということですね。よく分かりました。有難うございました。

966 :栄養”管理”する人:2005/05/27(金) 14:03:21 ID:???
失礼しました。問題解決しました。
もし途中まで考えてくださった方
いらっしゃいましたらありがとうございました。

下のサイト参考にさせて頂きました。多謝
 ↓
http://www.accessclub.jp/samplefile/samplefile_158.htm

967 :栄養”管理”する人:2005/05/27(金) 14:29:49 ID:???
↑直リン、失礼しました。ごめんなさい。

968 :959:2005/05/27(金) 15:48:01 ID:Fa8Pg1B9
>>959です。
RSは比較的新しいので、>>959の質問はなかなか難しいですか?

969 :NAME IS NULL:2005/05/27(金) 21:23:06 ID:???
replace(日付,'-0','-')

970 :NAME IS NULL:2005/05/28(土) 08:51:57 ID:???
>>968
Web鯖とメールのどちらが速いですかと聞かれても困るだろ。



971 :NAME IS NULL:2005/05/31(火) 17:37:44 ID:???
>>970
Web鯖もメールも使いませんよ(汗

972 :NAME IS NULL:2005/05/31(火) 18:21:17 ID:???
RSはWeb鯖という罠。

973 :NAME IS NULL:2005/05/31(火) 21:00:33 ID:to0l0l2+
Accessで
YYYY/MM/DDのデータのあるテーブルをグループ化させて
たとえば
2002 14
2003 44
2004 23
みたいにしたいのですがどうすればいいのでしょうか?
SQLの本をみたらsubstrなんかも使えないらしいので困っています
教えてください


974 :NAME IS NULL:2005/05/31(火) 21:10:16 ID:???
>>973
何でグループ化するの?
その14とか44とか23っていうのはレコード数?

>SQLの本をみたらsubstrなんかも使えないらしいので困っています
VBとかVBAと同じようにLeftやRight関数使えますよ。

975 :NAME IS NULL:2005/05/31(火) 21:25:11 ID:to0l0l2+
YYYYだけを抜き出して
2002年が14件
2003年が44件
2004年が23件
って言う意味でした

976 :NAME IS NULL:2005/05/31(火) 23:19:22 ID:???
SELECT year(日付), count(*) FROM (ry

SELECT format(日付, 'yyyy/mm'), count(*) FRO(ry

977 :NAME IS NULL:2005/06/01(水) 21:04:14 ID:/tvQMhRt
SELECT NAME1, NAME2 FROM TOUROKU,NAME_MASTER,
WHERE TOUROKU.NAME1 = NAME_MASTER.ID
AND TOUROKU.NAME2 = NAME_MASTER.ID

NAME1とNAME2に同じNAME_MASTERから名前を取得して表示させたいのですが
この場合TOUROKU.NAME1とTOUROKU.NAME2の二つともにデータが入っていなかったら表示されません
nullの場合でも空白として表示させて全件取り出したいにはどうすればいいのでしょうか?

978 :NAME IS NULL:2005/06/01(水) 22:03:24 ID:???
>>977
そんなときには LEFT(OUTER) JOIN

って、環境も書いとくれ

979 :NAME IS NULL:2005/06/01(水) 22:03:32 ID:???
>>977
や、だってnull許すよーな条件式書いてませんがな。


980 :NAME IS NULL:2005/06/01(水) 22:17:18 ID:Uk0ivWAs
今まで、トリガーとか外部キーとか使ってるのをみたことがないんですが、
あまり業務では使われないモノなんですか?

981 :NAME IS NULL:2005/06/01(水) 22:23:37 ID:???
制約だからね。
あえて外すケースも多いかもしれない

982 :NAME IS NULL:2005/06/01(水) 22:29:20 ID:/tvQMhRt
>>979
詳しく…
どうすればいいのでしょうか?

983 :NAME IS NULL:2005/06/01(水) 22:41:25 ID:???
OR使わんのはなんで

984 :NAME IS NULL:2005/06/01(水) 23:03:35 ID:/tvQMhRt
ありがとうございます

SELECT NAME_MASTER.NAME, NAME2 FROM TOUROKU,NAME_MASTER,
WHERE TOUROKU.NAME1 = NAME_MASTER.ID
OR TOUROKU.NAME2 = NAME_MASTER.ID

にすればnullなんとかできるようになりましたが
やってて全然気づかなかったのですが
こうすると
一つ目はNAME_MASTER.NAMEとしてMasterから取得できますが
二つ目ってNAME_MASTER.NAMEにしたら一つ目のデータが二つ目に入ってしまいますよね
この場合どうすればいいのでしょうか?

985 :NAME IS NULL:2005/06/01(水) 23:27:18 ID:???
>二つ目ってNAME_MASTER.NAMEにしたら一つ目のデータが二つ目に入ってしまいますよね
意味が取れないのだが

986 :NAME IS NULL:2005/06/01(水) 23:37:46 ID:/tvQMhRt
>>985
SELECT NAME_MASTER.NAME,NAME_MASTER.NAME FROM〜
にしたら一つ目のカラム、二つ目のカラムに同じデータが入りますよね(当たり前だけど)

この場合
ひとつ目はTOUROKU.NAME1に対応したNAME_MASTER.NAME
ふたつ目はTOUROKU.NAME2に対応したNAME_MASTER.NAME
を取り出したいのです
これのやりかたがいまいちよくわからないので教えてください

987 :NAME IS NULL:2005/06/01(水) 23:42:30 ID:3KkVdQBd
ISBNコードのデータベースって公開されてるんでしょうか?
自前のプログラムで検索してみたいんですが
ご存知ありませんか?

988 :NAME IS NULL:2005/06/02(木) 00:09:28 ID:???
>>986
ぜんぜんわからん。テーブル例と取り出したい結果を「具体的」に書け。

989 :NAME IS NULL:2005/06/02(木) 00:22:48 ID:???
>>986
もしかしてこういうことかいな。
SELECT n1.NAME, n2.NAME FROM TOUROKU t
LEFT OUTER JOIN NAME_MASTER n1 ON t.NAME1 = n1.ID
LEFT OUTER JOIN NAME_MASTER n2 ON t.NAME2 = n2.ID

990 :981:2005/06/02(木) 00:35:50 ID:???
>>980
外部キーは設計時には入れてて、実際に作るとき外すケースがあるけど、
トリガーは使いまくってますが。実務で。
(トリガー見落としてた)

991 :NAME IS NULL:2005/06/02(木) 01:07:08 ID:???
>>989
そういうことです
ありがとうございますした

992 :NAME IS NULL:2005/06/02(木) 01:17:17 ID:???
質問です。perlとPostgresqlで現在勉強中です。
下記のようなsql文をperlで継ぎはぎして作るとき、
コードをシンプルにしたいために値は型に関わらず全部引用符で括ってました。
文字列は引用符が必ず必要だけど、数値はどっちでもいいようなので。

INSERT INTO "z_test" ("num1", "text") VALUES ('1','hoge');

最近、下記のような書き方を知りました。
なんか、引用符とか特に気にしなくても動いているっぽいです。
$v1 = "'hoge'"などとする必要がなくて楽なんですが、問題ないでしょうか。
シンプルだからという理由で下記のような記述にするのは間違ってないでしょうか。

my $st = $db->prepare(qq!INSERT INTO "z_test" ("num1", "text") VALUES (?,?);!);
my ($v1, $v2) = (1,'hoge');
$st->execute($v1, $v2);

宜しくお願いします。


993 :NAME IS NULL:2005/06/02(木) 11:35:36 ID:???
>>991
1レスで答えが出てたのに、それを無視してごちゃごちゃやってただけか・・・

306 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)