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

このエントリーをはてなブックマークに追加
1赤松
物凄い勢いで誰かが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:???
ドラゴンボール板でしょ?
61:03/06/30 21:58 ID:HD3wGG5f
>>3
存在しますよ
わーはっはっはっは
7名無しさん@お腹いっぱい。:03/06/30 21:58 ID:lkUe0ZB5
どれがネタスレなんですか?
8名無しさん@お腹いっぱい。:03/06/30 21:58 ID:???
最強は誰ですか?
91: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あぼーん:あぼーん
あぼーん
59chage-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:???
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
にしたほうがいいと思うんですけど。。。
8785:03/09/02 06:03 ID:???
>>84
よく考えたら、設定したいというわけじゃなくて、
別に設定する人がいて、利用するだけなのかな?
そうだとすればおそらく、
userはownerと同じ、serverは省略もしくはlocalhost
passwordは無し、でいいんじゃないかな
88名無しさん@お腹いっぱい。:03/09/02 17:05 ID:???
>>80
少なくともパスワードはそのまま保管しないで暗号化する
8980: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です。
解決しました。
質問取り消し。
101NAME 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 というコマンドで調べたものの、主キー等の
情報は表示されません。

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

また、あつかましいのですが、今私が行っている作業を
もっと効率よくでき方法をご存知の方がいらっしゃいましたら
ご指導お願いいたします。
103NAME IS NULL:03/11/11 16:24 ID:vIgI+zdL
データベース板の中でSYBASEorサイベース
を検索して周りましたがどこもかしこもおらくるおらくる

みなさんからみたサイベースってどうなんでしょうか??
触る事になったりすると危険なんでしょうか???
104NAME IS NULL:03/11/11 19:09 ID:???
>>103
SQLServerの中の人:)
105NAME IS NULL:03/11/12 03:17 ID:???
頭悪いかもしれんが、おまいらは、プライベートにおいてデータベースって何に使ってんの?
そこんとこがかなり気になる。
106NAME IS NULL:03/11/12 13:47 ID:???
CDDB
107NAME IS NULL:03/11/13 07:33 ID:???
SQLServer2000(SP3)で毎日積算解を表で出す方法ありませんか?
Num|Data|Total
----------------
1| 10| 10
2| 10| 20
3| 5| 25

こんな感じになるといいのですが
どなたか教えてください
108NAME IS NULL:03/11/14 19:20 ID:w8w7qJca
Sybaseについて語ってるスレ紹介きぼん
なければ勃てる
109NAME IS NULL:03/11/15 18:48 ID:fweAESpw
初心者なので教えて欲しいのですが、
VARCHAR(30)でフィールドを定義した場合、
全角では15文字、半角では30文字入るってことですか?

基本の基本なのでしょうが、どうもわからないもので・・・。
よろしくお願いします。。
110NAME 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)
111110: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
112110:03/11/15 21:55 ID:???
>>109
> 全角では15文字、半角では30文字入るってことですか?

ということで、CHARACTER SETによって変わります。
UTF8だと、あなたの言う全角では10文字。多分。
113NAME IS NULL:03/11/16 02:39 ID:vQ2gjH0c
本当はExcel + VBAで対応できるんでしょ?
114 :03/11/16 12:30 ID:6KPVJwmd
今何時?
115NAME 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 からインストールしなおして再度カスタマイズしなければならないのでしょうか?
どうぞよろしくお願い致します。
117NAME IS NULL:03/11/30 20:06 ID:xCyJHJMA
http://shopping.yahoo.co.jp/shop?d=HUSC&id=4512223530050

これはウインドウズで使うことはできるのでしょうか?
118NAME IS NULL:03/11/30 20:26 ID:/mFBWBO+
◎7254最新情報◎
http://homepage3.nifty.com/hot-hot/7254.html
119NAME 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; }
}
121NAME IS NULL:03/11/30 22:42 ID:3vFUqVD/
>>119
普通にエクスポートじゃダメなのかい?
122NAME IS NULL:03/12/01 03:35 ID:???
>>116
プラットフォームは何だよ?
運用系じゃなきゃ、いったん落として上書きしてみ。
123NAME IS NULL:03/12/01 21:01 ID:???
>>120
エラーメッセージくらい書けよ
124NAME IS NULL:03/12/02 01:33 ID:vUAKDRbI
あるSELECTしてソートしたデータ一覧から、10レコード目〜20レコード目までを取り出す
カーソルの記述を教えてください。

SQL鯖2000使ってます。

125NAME 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 個
127NAME IS NULL:03/12/02 13:11 ID:???
classpathは?
128NAME IS NULL:03/12/02 16:33 ID:???
>>124
カーソルでやるなら欲しいrecordだけ一時テーブルに入れておいて
カーソルのループを抜けた後で一時テーブルをselectする。
129NAME IS NULL:03/12/02 22:32 ID:???
はじめまして、ご質問をさせて下さい。
会社で、配属先のPCの管理を携帯電話の2次元バーコードで行う事になり
Access+携帯電話で製作して下さいと言われたました。
まったくの初心者なのですが、何からおこなえばいいのでしょうか?
よいWebや参考書がありましたらお教えください。
130NAME IS NULL:03/12/26 14:40 ID:7M55UFtw
設計の話なんですが、
ひとつのテーブルの2つのカラムから、同一の別テーブルを参照するような設計になってしまった場合、
どうすればいいのでしょう。
明細形式とかにするしかないんでしょうか。
131NAME IS NULL:03/12/29 21:38 ID:k4AdKuDO
お聞きしたいのですが、「研究カード」を作るのに最も適したアプリケーションはどれでしょうか?
「研究カード」とは勉強しながら重要なポイントを書いていくためのカードです。分類したり関係のあるカード
どうしをリンクさせたりしたいのですが。
プログラミングなどはできないパソコン初級者です。
132NAME IS NULL:03/12/29 21:53 ID:???
>>131
ソフトウェア板かビジネスソフト板の話題だと思う。

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

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

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


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

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


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

                                  斉藤
135NAME IS NULL:04/01/01 22:26 ID:0hzc88H+
DML文の中で一番時間がかかるものはどれですか?
136NAME IS NULL:04/01/01 23:13 ID:0hzc88H+
やっぱり口だけのカスどもには分からないか...
137NAME 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ではユーザ表領域に対してここまでの重い処理は行われません。

参考になりましたでしょうか。
138NAME 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 異常な人間(レッテル)
139NAME 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時間を目安にウインドーショッピングや本屋めぐり
140NAME IS NULL:04/01/02 02:15 ID:???
データベース関連でためになるサイト教えてください
141136:04/01/02 06:08 ID:+vY2f5k5
>>137 サンクス
142しろうと:04/01/03 06:39 ID:rrJF+aTo
以下の機能を実現するDBを構築したいのですが、一般的にどのようなソフトウエアを導入するのでしょうか?

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

機能:
高速プレビューでJPEG、PSD、他 主要画像フォーマットに対応 できればRAWデータも
タレント名、撮影日、未使用/使用済み、必要/不要 など複数条件検索
データ削除
外部ソフトウエアとの連携
143NAME IS NULL:04/01/03 14:46 ID:???
一般的にはそのソフトウエアに詳しい人がいる
データベースソフトを買いましょう。
あなたの職場にOracleに詳しい人がいるならOracleを
SQLserverに詳しい人がいるならSQLServerを。
144136:04/01/03 23:34 ID:ktNt/pdl
SQLserverなんていらねー
145あぼーん:あぼーん
あぼーん
146NAME 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
このように取りだしたいのです。
147NAME IS NULL:04/01/08 00:17 ID:QhsBCuB0
フリーウェアで代表的なデータベースって何ですか?
148NAME 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
14948*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を参照
150146:04/01/08 12:35 ID:ckFKX4bD
>>148
すいません。実は COL1 が日付なんで max() を使ってなかったんですけど
今使ってみたら思った結果が出力されてそうです。
時間ないので後で検証してみます。
日付に max() はまずい?
151NAME IS NULL:04/01/18 01:23 ID:bPI/YQ/Z
SQLserver7をやってます。
今回はじめてストアドプロシージャを使っています。
現在ストアドプロシージャ暦3時間ほどなんですが、
引数をもったストアドプロシージャが作れるとこまで分かりました。
それはまた別のストアドプロシージャから呼び出す形でしか実行出来ないのでしょうか?
例えば、VBからストアドプロシージャをSQLみたいに実行って出来ないものなのでしょうか?
引数付きでそれが出来ないのかなぁ?と考えております。
152NAME 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からストアドプロシージャを使ったことがないので予想だが。
153NAME IS NULL:04/01/18 13:12 ID:???
「sp_name xxx,yyy」の、xxx,yyyが、引数。
154151:04/01/18 15:01 ID:bPI/YQ/Z
>>152-153
回答ありがとうございます。
普通に出来たんですね、私の見ている本にはそれが全く書いてないので出来ないのかと思い、
避けて通っていました。
次から、可能性として引数を持ったSPをSQLから実行する事も考えていきたいと思います。
155NAME IS NULL:04/01/25 11:10 ID:FFy97x5l
フィールド3つを合体して、1つのタイトルフィールド作りたいのですが
SQL文が思いつきません。よろしくお願いします。

title1 | title2 | title3 → all_title
156155:04/01/25 11:24 ID:FFy97x5l
title1,2,3及びall_titleは文字列です。
文字の結合でなくて、title1,2,3それぞれの要素を挿入したいのですが…
よろしくお願いします。
157NAME IS NULL:04/01/25 11:40 ID:???
挿入の意味が分からないのであれですが、
substrとか、replaceとかの置換関数とか使えばできるのかな?

#せめて、DBMSの名前とバージョンくらい教えてください。。。
158155:04/01/25 11:50 ID:FFy97x5l
>157
すいません…MS ACCESS2000を使用しています。
例えば、
title1   | title2 | title3
タイタニック|アルマゲドン|もののけ姫
とあったら、

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

みたく1列にタイトル全てまとめて表示したいのです。
159NAME IS NULL:04/01/25 12:24 ID:???
>>155 そもそもDBの使い方が間違い。

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

一行に、title1,title2,title3 があるテーブルは
そもそもテーブルの作り方が間違ってる。
160155:04/01/25 12:45 ID:FFy97x5l
>159
それだと他との兼ね合いでうまくいかないんで質問たのですが…
すいません。もう1回考え直します…
161NAME IS NULL:04/01/25 12:54 ID:???
PostgreSQLからMySQLのDB移行って難しい?
162157:04/01/25 13:21 ID:???
>158
(´-`).。oO(単なる文字列の結合じゃないのかな。。。)

改行を足したいって事?

まぁ、>159さんの言うとおりだとは思う。
163155:04/01/25 14:05 ID:lQbWv2DD
アカデミー賞のDB作ろうしてたのです。
カテゴリごとに作品を列挙をしようと思ったのです。

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

↑これを
category | winnerID | nom1ID | nom2ID | nom3ID | nom4ID
のテーブルにIDでそのタイトルを取得するようにしました。
164NAME IS NULL:04/01/25 15:14 ID:L52hibMW
それじゃあ改善されてないよ
165155:04/01/25 15:37 ID:XF+uBVIk
>164
そ、そうなんですか?一応タイトル出たからいいかなと思ったのですが…
166NAME IS NULL:04/01/25 16:54 ID:???
小出しにしないで、全部吐けや
167NAME IS NULL:04/01/25 17:11 ID:???
>>163

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

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

とりあえずは受賞テーブルとノミネートテーブルを分けて
 タイトルテーブル(作品ID, 作品タイトル)
 受賞テーブル(カテゴリ, 作品ID)
 ノミネートテーブル(カテゴリ, 作品ID)
こう。
168155:04/01/25 20:20 ID:???
>167
お手数かけましてすいません。もう少し勉強します。
ありがとうございました。
169NAME IS NULL:04/02/04 11:40 ID:???
>>162
Perlのある意味スゴいところは
オブジェクト指向言語と関数型言語の調和と言うよりは
オブジェクト指向言語とPerl
関数型言語が普通持っている機能とPerl
の調和では無いだろうか…
170NAME 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"が無いことがわかりました。
171NAME IS NULL:04/02/16 22:48 ID:bNoBEBwH
(170の続き)
従って、この値をレジストリに追加してやれば解決するのでは?
考えていますが(明日確認予定)、
この値は、元から設定されているものではないのでしょうか?
設定されていない原因はなに?
スレ違いならどっかに誘導して下さい。
172NAME IS NULL:04/02/16 22:50 ID:CR1eR4bu
DBと全然関係ないのでは?
173NAME IS NULL:04/02/17 03:16 ID:???
よくわからんけど、Jetのセキュリティパッチ当てたら拡張子が制限される
(アプリ側がパッチ適用後の制限に対応していない)からでないの?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;239105
174170:04/02/17 22:03 ID:???
どうやら板違いなので、プログラム技術板に移動します。
173さん、ありがと。
175NAME IS NULL:04/02/18 02:11 ID:lXZEoopc
プライマリキーがCULUM1、CULUM2、CULUM3の3つが有る
テーブルでカウントしようとするとき、
SELECT COUNT(CULUM1 || CULUM2 || CULUM3) FROM HOGETB;
でいいの?一応、早さを求めるのでプライマリキーでカウント
しろと言われたのですが〔そういう指示なのでROWSとか解析とかは抜きで〕

プライマリキーを元にしたカウントの仕方としては合ってますか?
176NAME IS NULL:04/02/18 15:18 ID:3cojbVJ3
VC++ + MSDEでの開発で、参考になる書籍、HPを教えてください。
よろしくお願いします。
177NAME 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発行しないと無理ですか?
178NAME 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" );
}
}
}
179180:04/02/18 18:08 ID:XBlOHR+L
かなり初心者ですが、Cのデータベースってなに?
180NAME IS NULL:04/02/18 18:17 ID:JQdKbH1J
 
181NAME 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 で良いかと。

表示ロジックは見てないけど、的外れな事言ったかな?
182NAME 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
183NAME IS NULL:04/02/23 17:06 ID:???
すみませんが質問です。
10年くらい前にNECのPC98(それもたぶんDOS)で動いていた
Let'sアイリスというデータベースがあるのです。
そのデータベースでつくったデータがFDに入っているのですが
これを読む方法を探しています。
作った会社に問い合わせたところユーザー番号がわかれば
コンバートするサービスがあるとのことなのですが、何分昔の
ものなのでもうわかりません。有料でもユーザーでなければ
コンバートできないと言われてしまいました。
コンバートする方法、もしくは有料でいいのでコンバートしてくれる
サービスをご存じのかたはいらっしゃいませんでしょうか?
184NAME IS NULL:04/02/24 21:24 ID:???
テーブルのNULLを許可されたフィールドに空文字を入力したいのですが、
Insert X Values ("")、もしくは Values (' ')などとするとエラーがおきます。
どうやって直せばいいんでしょうか?
185NAME IS NULL:04/02/24 22:23 ID:gb67vciR
>>184
どんなエラーが出るんだ?
構文が違うだけじゃない?
INSERT INTO テーブル名 (列名) VALUES (" ") でいけると思うけど。
186185:04/02/24 22:25 ID:???
>>185
あ、一応。
ダブルコーテーションじゃなくて、シングルコーテーションのが良いかな。
187NAME IS NULL:04/03/24 16:00 ID:xvy/jEwE
sql-server初心者なのですが、ORACLEでDESC文ってあるじゃないですか。
DESC テーブル名
ってやるとテーブルのフィールド情報が出てくるやつ。
あれのsql-server版ってどなたかご存知ではないでしょうか?
お願いします。
188NAME IS NULL:04/03/24 19:21 ID:???
>>187
sp_help tablename
sp_helpindex tablename
sp_spaceused tablename





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

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

とりあえず
データベースはどれか限定しないです。
190NAME IS NULL:04/04/06 22:20 ID:GXxkLk8T
DB設計について話し合うスレはどこ?
191NAME IS NULL:04/04/07 15:27 ID:???
sql serverで2003-05-03から2003-06-05まで
といったような範囲を抽出したいのですが
どのようなコードを書けばいいでしょうか。
192NAME IS NULL:04/04/07 19:35 ID:Ip6Jhah0
パソコンを買い換えて、最新版のOoulookを導入したら、前のハードディスクのメール履歴が消えてしまいました。
どうしたら見れるでしょうか・・・。教えてください。お願いします・・・。
193NAME IS NULL:04/04/07 19:35 ID:Ip6Jhah0
すいません、Outlook です。
それに場違いでした・・・。
194NAME IS NULL:04/04/08 02:01 ID:+VTjr9hl
1
12
31
41
といった最大で二桁のデータがあった場合
あらかじめ桁数を指定して
00001
00012
00031
00041
のようにしたいのですがどうすればいいのでしょうか?
195NAME IS NULL:04/04/08 10:45 ID:???
>>194
printf("05d\n",a);
196NAME IS NULL:04/04/08 10:46 ID:???
>>195
つ[ % ]
197NAME IS NULL:04/04/08 17:50 ID:4JumAgE/
SQLに興味があります。ちょうどACCESSを持っているので
ACCESSでSQLを勉強できたらいいかな〜と思い、
本屋でACCESSでSQLを勉強する本を探したらほとんどないみたいです。
SQLを初歩から書いてある本だと、オラクル・シルバーの対策本が
いろいろでていて良いようですが、何か良い方法はありますでしょうか?
198NAME IS NULL:04/04/08 21:40 ID:???
単純にSQLを学びたいの?
であれば、ACCESSのヘルプで『クエリ』で検索してみて!
いろいろ調べられると思うけど。
本で勉強するより自分でいじってみることをお勧めします。


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

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

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

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

どちらにせよ、これらをキーワードにSQLServerのBooksOnlineで
調べてみてください。
204NAME 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になるものを、並びの最後にもっていくには、どうすれば良いのでしょうか?
205NAME IS NULL:04/04/15 07:42 ID:???
1つのデータベースに
テーブルは何個まで作っても大丈夫でしょうか?

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

よろしくお願いします。
206NAME 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に変更しています。
説明が下手で申し訳ないのですが、昨日から原因が解らず困っています。
ピンときた方は是非教えて下さい。
207NAME 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周りの設定どーよ?

というわけで、どちら側の問題か切り分けてみないと…
208NAME IS NULL:04/04/15 11:56 ID:Cwu6yyaA
あのー…
全然、もの凄い勢いじゃないんですけど
209207:04/04/15 12:03 ID:???
>>208
過疎板に何を期待してる?
本当にもの凄い勢いでレス付けると単なる煽りに成り下がってしまうからなぁ。

ちうわけで藻前ももの凄い勢いで回答汁
210204:04/04/15 18:13 ID:r2Q4gUZz
>>207さん、どうもありがとうございました。
私の持ってるSQLの初心者本には、CASE文が載ってないので、もっといい本を
買ってきます。(お勧めとかありますか?)
204で書いたのは、簡略化したものなので、実際には、内容は複雑化しております。
とりあえず、今、一時テーブルの方法で試してみます。
ありがとうございました。
211NAME IS NULL:04/04/15 23:09 ID:PvNdPHFr
ここ(http://www.sdi-net.co.jp/diagnosis.htm)に書いてある、

> ORDER-BY を使っている。

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

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

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

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

214NAME IS NULL:04/04/17 12:47 ID:???
>>213
A1. UNION
A2. たてつづけに一時テーブルに挿入
215NAME IS NULL:04/04/18 08:55 ID:???
テキストファイルでデータをもらうときに、
ヘッダー情報とかフッター情報とか必要なんでしょうか?
(ホストにデータを渡すことが前提)
216NAME IS NULL:04/04/18 10:07 ID:???
>>215
ホストの要求嫁このヴァカヤロウ
217NAME IS NULL:04/04/18 14:50 ID:???
ほんとに困っているので、
この人>>216以外の方、教えてください。
218NAME IS NULL:04/04/19 01:00 ID:???
( ´,_ゝ`)プッ
219NAME IS NULL:04/04/21 15:13 ID:???
どうしても必要かどうかは分かりませんが、
「システムの仕様がどうなっているか」じゃ無いですかね。
220NAME IS NULL:04/04/26 20:22 ID:???
>>207
>1000個超のテーブルが必要な設計がどうにかしてる、とだけ指摘しておく。
10個のテーブルが必要なアプリを100個動かしたいとかそーゆう話じゃねえ?
221NAME IS NULL:04/04/26 21:36 ID:hVx47epU
SQL Server 2000の質問なんですが、このスレでよいでしょうか?
222NAME IS NULL:04/04/27 05:01 ID:???
>>221
SQLServerのスレもあるがどっちに投げても構わんだろう
223NAME IS NULL:04/04/27 13:02 ID:o91YP1Fd
データベース用いるケースは

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

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

何か反論ありますか?
>>223
分離する条件が揃ったとき
・フロントエンドが複数プラットフォームにまたがるとき
・フロントエンドとバックエンド(RDBMS)のスケーラビリティ・アベイラビリティを
 別個にチューニングしたい場合
・でんでん(←なぜか変換できない)

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

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

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

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

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

ナルホド

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

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

めったに更新しない商品データをデータベースに入れたり。
しかもそれをウェブサーバと繋げて外に公開していたりする。
226NAME IS NULL:04/04/28 19:53 ID:???
チミのゆーデータベースが何をさしとんかしらんが
・複数のプロセスが読み書きするデータを
・同期とか考える(あるいはバグなしに作りこむ、あるいはホシュする)のがマンドクサいとき
RDBとはいわんがDBM系使うのはありだろ

あるいはデータを様々な方法で集計したいとき、
一度テンポラリなDB(テーブル)にぶっこんでSQLで集計、てのもアリじゃね?
227NAME IS NULL:04/04/28 21:22 ID:???
>>225
おカネが欲しい連中に提案されたんじゃネーノ?
228NAME IS NULL:04/04/28 21:22 ID:???
>>224
>ところでApacheのアクセスログですらセミリアルタイムでRDBMSにたたき込んでいますが何か?

貴方、かっこよすぎ
229NAME IS NULL:04/04/28 21:27 ID:???
>>226

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

いや、集計のためにSQLなんて、どうかしてると思うんだけど、、、よっぽど時間のかかる計算でないかぎりは
230NAME IS NULL:04/04/28 21:40 ID:???
>>228
INSERT間に合うんかいな

「セミ」リアルタイムちうのがミソなのかな?
231NAME IS NULL:04/05/08 00:39 ID:RTjPp/JA
おまいらはどうやってそんなに詳しくなったんだ?
書籍なり上達法なり教えてくれませんか。
232NAME IS NULL:04/05/08 03:12 ID:???
>>231
何度もコカした

知識を裏付けする経験を積めるだけの素養があれば問題ナシ
233NAME IS NULL:04/06/02 22:04 ID:???
質問です。
varchar(30)なのに
(60分)って追加すると(60 という具合に追加されてしまうのはなぜでしょうか?
234NAME IS NULL:04/06/02 22:34 ID:???
処理系を書け。
それから、複数の処理系を使ってるなら、
どの組み合わせでは「問題なくいけた」かを書け。

もうひとつ。抽出した結果が化けてるんじゃないだろうな?
235NAME IS NULL:04/06/02 22:52 ID:???
抽出した結果が化けてるのではありません。
が、化けるやつと化けないやつがあります。
化けるやつというのはupdateしても直りません。
236NAME IS NULL:04/06/13 15:26 ID:???
第5話、第11話という具合に「第」「話」を挟んだデータを作りたいのだが
型をintにすると数値のみしか記入出来ないし
varcharにするとソートかける時に番号順に並ばない。
どうすればいいんだ
237NAME IS NULL:04/06/14 12:58 ID:???
SELECT '第'+table.data+'話' From table order by table.data;
238NAME IS NULL:04/07/31 23:51 ID:gm78S/1D
どうもはじめまして2ちゃんに初めて書き込みます
ゴミバコの設定を変えて「ゴミバコを空にする」って項目をなくしたいんですけどどうすればいいのでしょうか?
どなたか親切な方いらしたら教えて下さいお願いします
正直ここに書き込んでいいのかすら疑問ですがよろしくお願いします
239NAME IS NULL:04/08/01 00:05 ID:XROISCMq
238ですOSはXPで打ち込むタグもわかるんですがどこにいれればいいかわかりません
お願いします
240アルル:04/08/01 00:26 ID:jX+EEun8
任意ラジオCDを知っていますか。知っている人にお願いです。
秋葉原で現在このCDを売っている店を教えてください。☆
241NAME IS NULL:04/08/01 12:11 ID:???
linux板から来ました。
くだらない質問ですまそ。Linuxでデータベースを構築しようと
思いますが、対象は画像ファイルが中心です。

今、リアルタイムで秒10枚程度、25KB前後の画像ファイルを
格納していくとしたら、どのデータベースが堅いでしょうか?
定期的にバックアップと削除が必要なので、DBへの登録と削除の
処理が軽いことが前提ですが、お勧めはありますか?
242NAME 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の知識はありません!
244NAME 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すら拒否するロックができるかもとか言っている人がいたのですが、
果たしてそのようなことはできるのでしょうか?
245NAME IS NULL:04/08/03 00:07 ID:???
このばやいBのselectは禁止する必要がなくて、insertのみを防げばよい。
246NAME IS NULL:04/08/03 01:27 ID:???
所持する文献の数が増えてきたので、個人用DBの構築を目論んでます。
ちょっと大袈裟でしょうが、折角なのでMySQLに触れてみることにしました。
(C,Ruby等のプログラミング経験有り、DB経験無し)

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

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

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

排他制御もinsertに対しては無効だよね?
249NAME IS NULL:04/08/04 01:12 ID:???
lock table ~ in exclusive mode でいけるっしょ?
insertだけ無効って、なんで?
250NAME IS NULL:04/08/04 21:41 ID:???
PHP+MySQLで掲示板作ったのですがコメントの部分がたまに文字化けするのはなぜでしょうか?
文字コードもEUC-JPにコンバートしてるのですが、たまーに文字化けしてしまいます。
ご教授よろしくお願いします。
251NAME IS NULL:04/08/04 22:44 ID:HQekxBXz
データーベースについては全くの初心者です。
データーベースの基本的な解説書を教えてください。
個人的にやってみようと考えているのですが、お金はかけられないので、
Linux に付属のDBでやりたいです。その場合はどのようなものがあるのでしょう
か?

宜しくお願いします。
252NAME IS NULL:04/08/05 07:29 ID:???
個人的にはこの本がお勧め。
最初からオープンソースRDBターゲットで基本的なことが簡単に書いてある。
Windows主体だけど。
http://w3.shinkigensha.co.jp/books/4-88317-092-6.html
253NAME IS NULL:04/08/05 17:54 ID:DNMUMrxA
odbcの設定をexportして、それを他の端末にimportする、
なんてことはできないよね?
254NAME IS NULL:04/08/05 18:08 ID:???
ファイルデータソースならできるんじゃ?
255NAME IS NULL:04/08/05 18:17 ID:DNMUMrxA
システムの方なんです。
すべての端末に手でポチポチ入力してくの大変だと思うんだけど、
みんなどうしてんだろ。
256NAME IS NULL:04/08/05 18:55 ID:???
ODBC.INI とかに設定書いてなかったっけ。
しかし、ドライバ側の設定になると、ドライバ依存だからもはやなんともならんと思う。

どうしても数こなさにゃならんとなったら、
インストール前と後との差を取るアプリあるから、
それで設定前と設定後を見比べて、変更ツール作るかなぁ。
10台なら泣く泣く手作業する。100台ならツール作る。そんな感じ。
257SQL初心者:04/08/05 22:08 ID:gV7q+xDA
SQL文を解析してSQLが意図するDBへのアクセスを視覚化してくれるツール
ございませんか?宜しくお願いします
258NAME IS NULL:04/08/06 10:02 ID:???
オラクルの最も簡単な設定法を教えてください。

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

よろしくお願いします。
259NAME IS NULL:04/08/07 00:12 ID:???
>>258
DB技術者を雇う。
260nulpo:04/08/07 01:19 ID:???
>>257
ms-access
261NAME IS NULL:04/08/08 00:42 ID:???
>>269
解決しました
262258: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サーバの設定なんてしたことねぇよ。
263NAME IS NULL:04/08/09 21:23 ID:???
初心者ですがよろしくお願いします。
なんかちょうど会社がIT革命ってる時期に入社してしまい、
しかも元々あんまり詳しい人がいないということで
大して経験もないのにデータベースを扱うチームのリーダーぽくなってしまいました。
一から運営を任されてる状態で、もうてんやわんやヽ(`Д´)/ウワアァァン

会社としては、どこにいても誰でも更新できるDBを作ってほしいみたいなんですけど、
データアクセスページっていうのは、実用性はありでしょうか?
なかなか積極的に説明してくれてるとこがなくって、あんまりなのかなあって
印象を受けているのですが…
やっぱり大人しくSQLを勉強した方が良いでしょうか?
264NAME IS NULL:04/08/11 06:27 ID:???
>どこにいても誰でも更新できるDB
wikiでも使えば?
265NAME IS NULL:04/08/11 13:01 ID:???
いいね
266NAME IS NULL:04/08/11 20:28 ID:???
アドバイスありがとうございます。wikiって初めて知りました。
いくつか見てみたのですが、数万件のデータを扱うのでも大丈夫なものですか?
267po:04/08/11 21:32 ID:???
ちゃんとしたwikiソースを持ってきたなら
大丈夫。
268NAME 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じゃつらい、というかハードウェア要件を満たしてないので
増設してもらうべき。
269NAME IS NULL:04/08/15 00:12 ID:xOjIZ/7h
会社で、ACCESSを使ったDBの設計をしたいのですが
どこか良い業者しってませんか?
大阪にある会社何で、業者も大阪近郊が望ましいです。
社内SEにやらせるという、やり方よりも業者を使って構築する方法
で考えてます。宜しくお願いします。
270Po:04/08/15 21:47 ID:???
>>269
上場企業で、大阪支店のある業者。
ここで具体的な名前だしていいのかわからんから
あえてふせておくが、Accessで開発してるところあります。
システムトラブル時の対応も早いです。
271NAME IS NULL:04/08/16 01:07 ID:yz1bWMbI
>270
お願いします。せめてもう少しヒントください。
無茶苦茶困ってるんです。
たのんます。
272NAME IS NULL:04/08/17 22:58 ID:???
>>271
捨てメアドでも晒してみたら?
273NAME IS NULL:04/08/18 10:53 ID:Bat91ee4
{本の名前 varchar, 売り場ID int, 価格 int}というフィールドがあったとして,
『売り場毎に一番高い本の名前を得る』クエリを実現したいのですが,

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

とすると,本の名前が出せません・・・。一つのクエリで実現する方法が
あったら教えてください.
274NAME 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
です。

駄文長文申し訳ありませんがよろしくご指導ください。
276NAME 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 の結果を出したい
277NAME IS NULL:04/08/20 00:16 ID:???
>>276
テーブルでは無理じゃない?
ビュー作ってビューで計算するのがよさそうだけど
278NAME IS NULL:04/08/20 09:47 ID:XS0zbX2d
>>277
やはり、無理でしょうか・・・・

hoge1とhoge2をselect文で取りだして、
計算結果を hoge3にINSERTする方法でやってみます。
279NAME IS NULL:04/08/20 13:00 ID:39fYexR2
>>276
Firebirdなら計算型の列を作れば可能なんだが。
280NAME IS NULL:04/08/20 16:34 ID:???
トランザクションって何故必要なんでしょうか…?
データベースの試験で出た問題(「トランザクションとは何か。また、何故必要か」)なんですが、何故って言われてもって感じです。
281NAME IS NULL:04/08/20 19:32 ID:???
ロックが必要だから
282NAME IS NULL:04/08/20 19:37 ID:vDurVTZ+
イースト社のskylinkというソフト(http://www.est.co.jp/skylink/
に関して、ネット上での解説ページや2chでの関連スレッドをご存じの方が
いらっしゃったら、ご教授ください。

今度働き始めた仕事場では、今まで紙に打ち出されていたデータを手でエクセルに入力していたのですが、
skylinkを操作してもっと簡単にデータをエクセルに移せるようにしろという
仕事が回ってきたのです。グーグルで検索してもほとんど情報がないので
困っています。どうかよろしくお願いします。
283NAME IS NULL:04/08/21 02:39 ID:???
>>281
ロックが必要…?競合アクセス(データ変更)が起こらないようにって事ですか?
284NAME IS NULL:04/08/21 16:20 ID:1QxAMdUd
すれ違いかもしれませんが、
黒船っていう電話帳のデーターベースソフトについて、教えてください。
発売元がもうないので、サポートセンターに電話しても、つながりません(当たり前ですが)

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

それで、質問なのですが

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

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

ほんとに初歩的な質問で恥ずかしい限りですが、どなたかご教授頂けません
でしょうか。
よろしくお願いいたします。
286NAME 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個並べるのは避けたいところ……
287286:04/08/22 11:01 ID:HXdAQdIP
すいません、環境はORACLEのPL/SQLです。
PL/SQL歴は3日くらいです。
288NAME 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

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

こういうのってどうやったら保存できるのでしょうか。
ソフトが必要なのでしょうか。
290NAME IS NULL:04/08/22 17:13 ID:???
MySQLのphpmyadminでOverload ってのがありますが、
これって負荷と同義で考えて問題ナッシングでしょうか?
291286:04/08/23 02:04 ID:XUUpXaQv
>>288
VIEWですか……でも結局一度はSELECT文を99個並べないといけないんですよね。
DBの構造が決定的に悪いのが原因なので、明日作成者に文句を言ってきたいと思います。
ご回答ありがとうございました。
292NAME IS NULL:04/08/23 05:40 ID:???
CASEが使えるDBだからCASE使って力技で出来ないかな?
293NAME IS NULL:04/08/23 15:45 ID:???
動的にSQL文くみたてればええやん
oracleの8以降ならできるっしょ
>>287
294NAME IS NULL:04/08/25 06:43 ID:???
Access の(ものらしい).mdb ファイルを mysql で扱えるようにする事って出来ますか?
もちろん Access は持ってないです。
295po:04/08/25 15:46 ID:???
>>294
一発変換はむずいだろうな。
何段階か踏んでいいのなら、Access持って無くても出来る。
296NAME IS NULL:04/08/25 23:02 ID:???
select ローション from 2ch
where ペペ=(

相関副問い合わせって、この後にどんな感じになるんでしょうか???
相関副問い合わせはよく解らんです。
297NAME IS NULL:04/08/26 10:21 ID:GBTb/k10
ある製品を購入したら、SQLServer2000DeveloperEditionの開発用およびテスト用限定版という
CDがついてきて、これでテストしてみたいと思うのですが、これの製品版と違うところって何がちがうのですか?
298NAME IS NULL:04/08/26 20:05 ID:???
シスアドスレで一日反応がなかったのでこちらで質問します。
シスアド参考書の問題に
「SELECTやINSERT文はデータ定義言語の一つである。」
って書いてるんですけどデータ操作言語じゃないんでしょうか?
なぜデータ定義言語なんでしょうか?
299NAME IS NULL:04/08/26 22:18 ID:???
問題に書いてあったんだったら「答は×」でいいんじゃなかろうか。
300NAME IS NULL:04/08/27 20:59 ID:???
>>297
本番環境で使っちゃダメってこと。
DeveloperEdition = 開発用およびテスト用限定版 という意味。
301300:04/08/27 21:03 ID:???
機能的にはDeveloperEditionとEnterpriseEditionは同等。
http://www.microsoft.com/japan/SQL/evaluation/overview/Feautures.asp
302NAME IS NULL:04/08/28 00:29 ID:???
組み込み系で使えるフリーのDBって無いですか?
電断対策用にトランザクションがあればあとはショボショボでいいです。
303NAME IS NULL:04/08/28 07:20 ID:???
Firebirdなら、WindowsとLinux用のDLLや.soのみで動作するアプリ組み込み用エンジンがある。
とりあえず商用でもフリーで使えるな。
304NAME IS NULL:04/09/02 15:33 ID:vOQvIN82
済みません、教えてください。
AとBという2つのテーブルがあります。
両テーブルともIDと日付、その他のフィールドがあり、IDと日付がキーになります。
各テーブル毎に抽出条件を指定し、ヒットしたレコード件数(A+B)の合計を求める。
ろいう式を1つのSQL文で実現させるにはどうすればよいのでしょうか?

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

strict two-phase locking による serializability 保証をしないのはパフォー
マンスが落ちるからでしょうか。いずれにせよ自分で LOCK すれば問題ないの
ですが、serializable の看板に偽りがあるのは何となく腑に落ちません。
308NAME IS NULL:04/09/04 00:31 ID:7Z38XOom
>307
ORACLEマニュアル(データベース概要)によるとserializableにした場合、
・内容を保証しない読込み(ダーティーリード)
・仮読込み (ファントムリード)
・未コミット読込み(繰返し読込み不可)
が起きないって書いてある。
実装上は、serialに処理できないときは、ユーザーへエラーを返すからそれを
ハンドリング(リトライとか)しろということみたいだけど。
厳密にserializableにならないってどういう意味?
309NAME IS NULL:04/09/04 10:03 ID:fpCYAHNF
ちょっと欝になるな・・・

【美人は】イエローキャブタレント候補生の痴漢アンケート【狙われる?】
 http://news17.2ch.net/test/read.cgi/news7/1092227664/l50
310307: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 の「シリアル化可能」モー
ドでは読込みが書込みをブロックしないとあるのでそれが原因なのかも知れま
せんが、同一テーブルだとブロックしたりするんですよね…。訳がわかりません。
311NAME IS NULL:04/09/06 10:17 ID:EJvheeEO
フリーのデータベース無い?
写真が貼り付けられる香具師キボン。
312NAME IS NULL:04/09/06 16:32 ID:???
関連リンク。ム板より転載。
http://program2ch.jugem.cc/
313NAME IS NULL:04/09/08 10:25 ID:???
CPU換装したら、ここで試せや↓
http://www5e.biglobe.ne.jp/~liquor/raytrace/
314NAME IS NULL:04/09/11 00:06:55 ID:???
クエリアナライザやCSE的な、ODBC接続してSQLを入力やその結果を表示させる
事をGUIでできる物を探しています。
確かにCSEは重宝しているのですが、他にあれば試してみようかなぁと。
クエリアナライザの様に、MDI的に複数のクエリと結果を表示できるものなら
試してみたいと思っています。
315300:04/09/12 15:30:39 ID:???
>>314
ベクターでSQLを検索するとそれっぽいのがいくつか出てくるけど
CSE以上のものはあまりなさそう
DBMSを限定すればよさげなのもあるけど、汎用だとあまり無いと思う
316NAME IS NULL:04/09/12 15:31:29 ID:???
う、名前が残ってた...orz
317NAME IS NULL:04/09/12 22:48:37 ID:fIWv22ST
IMEの辞書(〜.dic)をACCESSに取り込むことは可能でしょうか?
可能だとすればどのように取り込むのでしょうか?

お願いします。
318Po:04/09/12 23:12:42 ID:tByQwywY
>>317
取り込んで何をやりたいの?
319NAME IS NULL:04/09/13 00:13:28 ID:6euF9AeP
エクセルでひとつのセルに
東北支社
江口
といれたいのですが

東北支
社江口

となってしまいます

どうしたらいいですか・
320名前:04/09/13 01:29:43 ID:tgZuAvPf
>>319
ALT + ENTER でセル内での改行ができる

そうゆう問題ではない?
321NAME IS NULL:04/09/13 03:26:41 ID:???
>>319
ビジネスsoft板 / Excel総合相談所 26
http://pc5.2ch.net/test/read.cgi/bsoft/1091619391/
322317:04/09/14 01:27:22 ID:GCh/BwST
>>318
氏名変換を行いたいのです。
323NAME IS NULL:04/09/14 08:58:36 ID:???
>>322
ユーザー辞書なら辞書ツールでテキストに出来るはずだけど
システム辞書は無理
324NAME IS NULL:04/09/14 14:02:10 ID:gg6bxN74
殺人予告キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
               祭り開催中!

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

webminでデータベースの許可をそれぞれのユーザー名に
しているのですが、なぜでしょうか?何か良い方法はありませんでしょうか?
326NAME 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
329NAME IS NULL:04/09/15 23:03:50 ID:???
>>327

drop table テーブル2
go
330Po:04/09/15 23:14:18 ID:???
おれも328と同じ問題でぶつかって結局解決できんかったなぁ。。。
みんないったいどうやってるんだろ。。
331328:04/09/15 23:20:54 ID:???
>>330
ああ、やっぱり そうでしたか。
ウィルスとかを自動実行されると困るということで こういう機能は簡単に
は実行でいないようになっているのでしょうか...。
332NAME IS NULL:04/09/16 03:40:21 ID:XsgY9Ucc
新しく会社にパソコン導入するときのシステム管理って
どんなところに依頼したらいいんでしょうか?
「カスタマーエンジニア」とかで検索しても、採用情報ばっかり
出てきてよく分からないのです。。
誰か詳しい人がいたら教えて下さい。
333NAME IS NULL:04/09/16 04:37:52 ID:???
>>328,330
VBAでshellステートメントを使うんじゃないの?
DB板で扱う内容じゃないだろうから、
わからなければプログラム板かビジネスソフト板へGo
ほんと反対だよなー
335Po:04/09/17 06:35:23 ID:???
>>332
どんなシステムいれたいの?
336NAME IS NULL:04/09/17 13:25:30 ID:H8218lP1
>>335
私の知り合いが悩んでたのでここで聞いてみたのですが、
どんなシステムかは分からないです。。
たぶん、使うのは既存のソフトで文書作成とかがメインだと思います。
Windowsで、一太郎とかも使いたいらしい。。
小さな事務所で、故障とかのメンテナンスをしてくれるところを探してるみたいなのです。
良いところを探せる検索サイトみたいなのってありますか?
337Po:04/09/18 15:48:37 ID:???
それがデータベースとどう関係しているのかが良く分からん。。。
ファイルサーバを置くシステムにして欲しいとかそういうの
なのかなぁ。
338NAME IS NULL:04/09/19 14:00:33 ID:???
>>336
SOHO系で安くやってくれるようなとこ探してみては?
あと場所とかはっきりさせたら、フリーでやってる人とかで請け負ってくれる人がいるかもしれません。
339NAME IS NULL:04/09/19 20:43:40 ID:???
>>336 既存のソフトしか使わないんだったら、業者に頼まないで DELL とか HP とかの
直販PC を買っとけばいいよ。HPなんかだと有料オンサイトサポート契約とかあるし。

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

うちは小さなソフト屋なんだけど、PC一般の詳細なサポートはできないので、
ユーザーには、ハードウェアメーカーのサポートに入ってもらうようにしています。
昔は間に入ってマージンとっていたけど、レスポンス悪くなるし評判悪かったので。
340NAME IS NULL:04/09/21 11:54:18 ID:???
物凄くツマラソ質問だと思うが、

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

みたいな表がある時に、SQLで
100,AB
101,C
のように出す方法ってありますか?
341NAME 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
342NAME IS NULL:04/09/22 11:17:30 ID:y+gZ3JeN
質問です
SQL Server2000からSQL Server6.5が見れない(接続できない)のですが何か特別な
設定しないといけないのでしょうか?もしくは根本的に不可能なんでしょうか?
よろしくお願いしますm(_ _)m
343NAME IS NULL:04/09/22 21:42:25 ID:???
>>342
普通に繋がるはずだけどな。
具体的に何をしたくて、何をどう設定したのか、
どういうエラーになったのか書かないと答えようがない
344NAME IS NULL:04/09/22 23:01:32 ID:uHOk+Qns
候補キー(candidate key)についてdateの本で詳しく
調べています。その定義は一意性(uniqueness property)と
規約特性(irreducibility property)らしいのですが、
関係Rに対する候補キー
「Kの真部分集合が一意性をもたない」
の意味がわかりません(理解できませんでした)。
ご教示ください。
345NAME IS NULL:04/09/22 23:19:27 ID:???
すまん。かなり困っているので教えてくれ。

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

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

クグってみたけどイイ!!って方法なかったっす・・・。
イイ知恵ないかな?
346NAME IS NULL:04/09/22 23:46:50 ID:???
>>344

Kが(A,B,C)列からなる場合、その真部分集合である(A,B)や(B,C)で
ユニークになるならばKは候補キーではないということ。
逆に候補キーKに任意の列を追加した(A,B,C,D)も(キーとしては
有効に働くけれども)候補キーではない。
要するに行を一意に識別できる最小の組み合わせが候補キー。
347NAME IS NULL:04/09/22 23:52:23 ID:???
>>346
わかりました!なんかモヤモヤしていたものがスッキリ晴れた感じです。
多謝!
348NAME IS NULL:04/09/23 00:54:33 ID:???
mysqlで何か構築したい。
バイト先の在庫/発注管理みたいなの作ろうか、
情報処理技術者試験のSWやDBの問題をお手本に作ろうか
迷っているYO!
どっちがいいとおもふ?
349NAME IS NULL:04/09/23 02:54:49 ID:???
postgresqlにしれ。
サンプルも解説もネット上にイパーイあるYo!
350NAME IS NULL:04/09/23 05:18:47 ID:???
どっちでも大差ないだろ
351NAME IS NULL:04/09/23 11:44:03 ID:???
>>349
windowsでできないからやだ
352Daccess:04/09/23 13:09:34 ID:???
>>351
Cygwin使えばwindowsでもできるし、
accessからも接続できる。
353NAME IS NULL:04/09/24 11:03:38 ID:kDkdQSOn
すみません、質問です。

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

当方、DBの知識などほとんどなく、詳しい人に電話入れたら会社消えてたorz ので、
どう返答すれば良いか困惑しています。
どうかお知恵をお貸しください。よろしくお願いします。
354NAME IS NULL:04/09/24 11:40:36 ID:wvIcpsVv
すいませんORACLE初心者です
サーバを立てて試しにDB作成しテーブルを試作してみました
クライアントからサーバに接続成功したのですが
作成したテーブルを見るコマンドがわかりません
教えてください。
355NAME IS NULL:04/09/24 14:31:25 ID:???
>>354 無理。やめとけ。
データベースを単なるストレージとしてしか使用していないのであれば不可能ではないが…。
たいていは、データベース自体にビジネスロジックを実装している(トリガーやストアドなど)
そうなると、データベース製品の変更というのは、ほとんど不可能だと思ったほうがいい。

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

356355:04/09/24 14:31:49 ID:???
すまん >>353 宛て。
357NAME 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
の生活・情報を多くの人間に晒し、商用利用し なおかつ被害女性を
「あの人は、仕事で金を受け取って、自分を晒しているから問題ない。
彼女は私を好きで貢いでくれてるくらいだし。」と 周囲に言いふらし捏造工作したのである。
破廉恥悪質極まりない犯行である、といわなければならない。
358353:04/09/24 18:26:48 ID:???
>>355
御回答ありがとうございます。
内容的にはFlash(のようなもの)から、対戦ゲームを可能にするシステム
の構築なので、不可能ではないと他の方面から言われました。
ただ、その場合でもその納期では受けられないと言われましてorz

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

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

同時に、PostgreSQL とか MSDE を学ぶといいんじゃないかな。
360NAME IS NULL:04/09/25 17:03:44 ID:???
>>354

select
table_name
from
user_tables

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

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

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

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

それとも、やはりトランザクションはこういう用途を想定してはいないのでしょうか?
362361:04/09/25 23:45:06 ID:???
あと、トランザクション制御について、きちんと学ぶのに良い資料をご紹介
願えないでしょうか?

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

どうかよろしくお願いします。
363NAME IS NULL:04/09/25 23:59:55 ID:6qHV0nPR
関係代数のσ制限 π射影 ×直積 −差 ∪和 等の記号は、
誰の何が初出ですか?
364NAME IS NULL:04/09/30 10:38:21 ID:t95dMYw7
LinuxやMacOSXでAccessみたいにランタイム環境再配布無制限なDBって
ありますか?もしくは組み込み型サーバで機能限定すれば無制限または
安価に再配布できるものとか?

MySQLが好きで使ってるんですが、1本あたり3万なんて払えましぇん
365NAME IS NULL:04/09/30 10:46:41 ID:???
>>364
PostgreSQL
366364:04/09/30 11:21:25 ID:t95dMYw7
>>365
ありがとうございます。BSDライセンスだったんですね。勘違いしてました。
367NAME IS NULL:04/09/30 11:39:55 ID:???
Firebirdも商用で配布無料だ。
368NAME 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文になりますか?
369368: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

と挿入したい。
370NAME IS NULL:04/10/01 10:58:51 ID:???
not existsだっけ?こんなんでいけるんちゃう
371NAME IS NULL:04/10/01 11:14:46 ID:Nzecy8hf
質問なのですがリーダライタを使って携帯電話のMINI SDのデータをPCへ移しました。
ですがデータが全て見れないです。
例えば、画像だと夕日?のマークは出てるのですがクリックすると「表示できません」
こんな感じです。見れるようにする対処法教えてくれませんか?
372NAME IS NULL:04/10/01 22:13:15 ID:???
>>371
板違い
携帯板に行って来い
373NAME IS NULL:04/10/01 23:29:41 ID:???
>>371 心眼かもしくは脳内視を使うかのいずれかだな。
374NAME IS NULL:04/10/02 00:00:47 ID:UceS/lAX
Oracleで質問です。
アーカイブログファイルが吐き出されている途中なのか
それとも完了したものかを調べるのはV$ARCHIVED_LOGの
ARCHIVEDが「YES」かどうかを調べればOKなのでしょうか?
375NAME IS NULL:04/10/02 04:57:54 ID:lW1ESirt
おお、ここにも物質が!
記念カキコ
376NAME 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列といった順番で区別がつけられるので、属性名としては重複した名称をつけることが出来る。

以上が課題として出ているのですがよくわからないのでお願いします。
377NAME IS NULL:04/10/02 22:12:16 ID:???
>>376 →不可
378NAME IS NULL:04/10/03 18:46:16 ID:???
勉強は自分でやれよ。
ノートの丸写しじゃ仕事はできんぞ。
379NAME 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の本に書いてあるのですが、
理由が理解できませんでした。
何故ですか?ご教示願います。
380379:04/10/03 22:25:48 ID:???
もしかして、結合従属性という一種の制約のようなものが掛かるからですか?
381379:04/10/03 22:43:20 ID:???
それか、或いは、結合射影の例外を誤魔化す為ですか?
382NAME IS NULL:04/10/04 00:29:38 ID:yt8/2vKl
誰か年金データベースをデータモデリング汁!
383NAME IS NULL:04/10/04 00:52:27 ID:???
>>379
んな質問じゃ誰も答えられるわけないがな。
まずは初心者向けの本を読んで基本を押さえて、意味の通る
質問ができるようになるのが先。
384NAME IS NULL:04/10/04 01:01:05 ID:???
>>381
結合射影の例外って何?
ぐぐっても出てこない用語を勝手に作るな。
385NAME 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 句を使って書き直すことができるでしょうか?
386NAME 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);
387NAME IS NULL:04/10/04 14:56:39 ID:???
SELECT * FROM TABLE1 NATURAL JOIN TABLE2 NATURAL JOIN TABLE3;
388385: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だと問題ないのでしょうか?
389NAME IS NULL:04/10/04 17:21:28 ID:???
(A)(B,C)じゃなくて(B)(C,A)って書いてるのに。
390385: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です。どなたかお教えください。
391NAME IS NULL:04/10/04 18:26:18 ID:???
PostgreSQLだと動くね。
392385:04/10/04 21:14:30 ID:???
どうやら、MySQL の特殊事情のようですね。
続きは、MySQL総合スレでお伺いしたいと思います。
ありがとうございました。
393NAME IS NULL:04/10/07 17:44:02 ID:???
MySQL・PostgreSQL・Oracle等に共通して役立つ基礎知識を学べる
初学者にお勧めの書籍を教えて頂けますか?
レコードと設計の関連について具体的な事例が豊富な物が嬉しいです。
394NAME IS NULL:04/10/07 17:48:08 ID:???
395NAME IS NULL:04/10/07 18:29:23 ID:???
>>394
ごめんなさいスレ違いでしたね。
にも関わらずわざわざありがとうございます。
396NAME 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を使わずにできないものでしょうか
どなたか教えてください
397NAME IS NULL:04/10/08 13:29:23 ID:???
>>396
SELECT 顧客番号, 売上日, 単価*数量 AS 最新売上日小計
FROM 売上 AS S
WHERE EXISTS (SELECT *
FROM 売上 WHERE 売上日 < S.売上日
AND 顧客番号 = S.顧客番号);
398NAME IS NULL:04/10/08 13:36:51 ID:???
>>397 は間違い
399NAME IS NULL:04/10/09 00:18:56 ID:???
not existsで>だろう。
400NAME IS NULL:04/10/09 00:34:12 ID:???
>>399
流石ですね。

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

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

仮に常に非第五正規形で、3分割可能だとすると
S1|P1|J1 を追加すること無しに S2|P1|J1
を追加すると、join-projection anomaly(結合射影の例外)
が発生するから、3分割不可能になるよって話。
402396:04/10/09 20:56:34 ID:???
>>400の通りでできました!
皆さんありがとうございました
403NAME 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を書いたら良いのでしょうか?
どうか、宜しくお願いいたします。
404NAME 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 部門コード
405NAME IS NULL:04/10/12 22:40:55 ID:???
grantでcreate tableはできてcreate databaseはできないユーザーを作りたいのですけど
構文はどうなるのでしょうか?
よろしくおねがいします
406NAME IS NULL:04/10/12 23:47:37 ID:???
>>405
DBMSは何?
407NAME 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の
行数だけは得られることまでは行き着いたのですが、一度に出力したいのです…
408407:04/10/13 03:16:43 ID:???
自己レスで訂正です。
> select names, count(*) from name
ではなく、
select name, count(*) from names
です。

…なんかもうだめぽ…寝るかな…
409405:04/10/13 04:23:00 ID:???
>>406
あっ!はい。MySQLです
410NAME IS NULL:04/10/13 12:43:55 ID:???
名無しさんの集団ですか?
nameにNOT NULL制約を付ける。
411NAME IS NULL:04/10/13 23:45:18 ID:???
>>407
意味ワカンネ。おまえの言ってるクエリ流してもそんな結果にならねーし。
本当は group by name とか付けてんじゃねーの? で、group by では NULL も
ひとつのグループとして集約されるはずだし。本当におまえが流しているクエリを
コピペしないと話にならんよ?
412403:04/10/14 21:54:19 ID:???
神様方、403について叡智をお貸しください。
404は私自身が考えたものです。
413NAME 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
   部門コード
414NAME IS NULL:04/10/15 05:06:30 ID:JE/nND7p
データベースに関して議論できるMLとかはないのですか?
415NAME IS NULL:04/10/15 09:08:20 ID:???
>>414
fj.comp.databases
416NAME IS NULL:04/10/16 01:13:03 ID:BAyT8NZS
417119:04/10/16 05:17:59 ID:???
質問させてください。
linuxでデータベースのデータ(テーブルのデータとか)は
どこに保存されるのでしょうか?(/etcとか/homeとか)
よろしくおねがいします。
418NAME IS NULL:04/10/16 15:56:44 ID:???
419NAME 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 部門コード

って書くのとでは結果は一緒だと思うのですが
意味も変わってくるのでしょうか?
くだらない質問で申し訳ありません。
420NAME IS NULL:04/10/17 05:08:03 ID:???
>419

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

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

効率の面からも、後者が有利なのは明らか。
前者は fullscan になるので、仮に部門コードへ indexが付け
られていても、indexが使用されない可能性が高い。
421NAME IS NULL:04/10/17 16:53:34 ID:???
>>420さん、丁寧な解説をして頂き有難うございました。
悩んでいたのがすっきりしました。
422Response 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.
423NAME IS NULL:04/10/18 12:13:47 ID:P+UnzwON
テーブル名のスマートな命名規則ってないですか?

とりあえず、プリフィックスとして
・マスタテーブルは m
・トランザクションテーブルは t
を先頭につけるとか考えてるわけですが。
mItem とか tProduct みたいな感じで。
424NAME 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文字にシステム名のコードが振られてた。
425NAME IS NULL:04/10/18 17:24:29 ID:???
>>424
ありがとうございます。                タブー
一部のDBMS(accessなど)ではテーブル名に _ は禁忌らしいので、敢えて外してました。

プリフィックスをつけるのはアリ、適宜短縮もOKってことでよろしいでしょうか。
426NAME IS NULL:04/10/18 19:10:30 ID:yHFc1SeN
満期落としを日付をもとに行いたいのですが、どこかによいサンプルあり
ませんでしょうか。10カラムDATE型の行があり、日付が切れてたら
カラムごとにNULLにupdateしたいのですが、一度に

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

と行う方法がわかりません。アドバイスでもなんでも結構ですのでヒント
を頂けたら助かります。
427NAME IS NULL:04/10/18 20:52:26 ID:???
>>426
満期落としって何だ? ぐぐっても何も出てこないぞ。
他人がわかるように説明してくれ。
428426: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)と
なり、毎度の処理が大きくなる為、何か良い方法がないかと思いお聞き
致しました。至らない説明で申し訳ありませんが、宜しくお願い致します。
429NAME IS NULL:04/10/19 01:13:27 ID:???
>428

漠然としすぎ

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

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

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

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

DBMSが明示されてないから断言はできないが、今時のRDBならupdate1回で済ませられるし
indexを張ってテーブルスキャンを回避すれば処理時間も大したことないだろ
431426:04/10/19 02:47:42 ID:???
>>430
アドバイスありがとうございます。

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

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

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

MySQL3.23.58です。まだ、とりかかったばかりでDBの再設計も可能なので、テーブル
の正規化についてアドバイス頂ければ幸いです。何もわからない質問に答えて頂き
ありがとうございました。満期落としですが、もう使わないように気をつけます。
432NAME IS NULL:04/10/19 04:13:56 ID:???
商品購入後3年で満期って・・・
433424:04/10/19 10:50:40 ID:gIOThPgF
>>425
>プリフィックスをつけるのはアリ、
>適宜短縮もOKってことでよろしいでしょうか。
そうです。私の個人的なやり方ですけどね。
434NAME IS NULL:04/10/19 12:26:54 ID:n+HdS+aT
filemaker developer 7 の英語版を日本語版にするパッチなどはありませんか?
どなたか、知っていたら教えてください。
435NAME IS NULL:04/10/20 00:26:28 ID:???
われ?
436NAME IS NULL:04/10/20 05:35:24 ID:???
>>434
ない(マジ)
437NAME IS NULL:04/10/20 08:57:29 ID:CQS7kLeU
 オラクルって 8i、9i、10gってあるけど、どう違うんですか?
 例えば、現在の主流は8iだけと最新が10gとか?
 ただのバージョンで 10g が一番いいってだけでしょうか?

パッケージは、色々あるみたいですけど・・・
http://www.oracle.co.jp/database/packaging.html
438NAME 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を書けばいいのでしょうか?
439NAME IS NULL:04/10/20 17:56:26 ID:???
>438

oracle(8i以降かな?)だったら
select rank() over(order by ポイント desc) as 順位,名前,ポイント
from テーブル
order by ポイント desc,名前
とか
440438:04/10/20 18:19:48 ID:???
すみません。PostgreSQLなのですが方法ないでしょうか...
441NAME IS NULL:04/10/20 18:58:12 ID:???
>440

できるはず。
ありがちなネタなんで検索すりゃ、ごろごろ引っかかるだろう。
442いなむらきよし:04/10/23 01:10:04 ID:vtT94cT0
確かに俺は奇形だキケー!
だからっておまいらに迷惑かけてるわけじゃないキケー!
もう俺のことは放っておいてほしいキケー!
443NAME 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という値が欲しいのですが。
444NAME 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.日
445NAME IS NULL:04/10/23 17:00:18 ID:???
>>444
部門コードが同一で、年月日がそれより大きいレコードが
存在しないレコードを選択する。

それから、フィールドごとにmax()とっても正しい最新日付には
ならないので、>>444のSQLは正しい結果が得られない。
446NAME IS NULL:04/10/23 18:39:11 ID:???
>444


select distinct first_value(金額) over( order by 年 desc,月 desc,日 desc)
from テーブルA
where 部門コード = 'XXX'
447NAME IS NULL:04/10/23 19:20:46 ID:???
>>446
オラクルらしいんで
そんな書き方は無理だろう。
448NAME IS NULL:04/10/23 19:21:51 ID:???
>447

は?
Oracleだから、わざわざこういう書き方したのだが。
449NAME 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を全く使わないのでどうかと思うのですが。
450NAME 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'
が必要でした。
451NAME 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.日)))) --年月日がそれより大きい
)
452NAME IS NULL:04/10/24 00:04:35 ID:???
>>451さん
存在しないってことでnot existsを使わなければいけないとは
分かっていたのですが、
”年月日がそれより大きい”っていう部分の書き方が分かりませんでした。
この辺りの考え方は別の局面でも使えると思いますので
自分のものにできるようにいたします。
どうもありがとうございました。
453NAME IS NULL:04/10/25 18:38:38 ID:???
質問です。
linuxでMySQL使ってるのですが
デフォルトの文字コードを調べる方法教えてください
あと、文字コードを変える方法も教えてください。
よろしくおねがいします。
454NAME IS NULL:04/10/27 09:48:48 ID:LFbNK9Cr
AB01C0234が登録されている品番だとします。
これをAB1C234と書いても抽出してくれるような
SQL文はどう書けばよいでしょうか。
455NAME IS NULL:04/10/27 11:10:10 ID:Wn0vpavx
映画のデータベースを構築したいのですが、
監督が2人だったり、主要キャストの人数が作品によって違い、
こういうのをどう表現したらよいか分かりません。

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

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

となってかぶってしまいますからダメなんですよね?
よろしくお願いします。
456NAME IS NULL:04/10/27 16:33:42 ID:???
正規化とか勉強したこと無いので、あまりアテに
しないで欲しいけど


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

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

・人物
人物NO|人物名

とかじゃダメなのかな?
457NAME IS NULL:04/10/28 00:20:54 ID:ruwahTUw
>>456
できる感じがします。レスありがとうございました!
458NAME 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)
だと複合化されないです。
459NAME IS NULL:04/10/28 16:15:13 ID:81Wfp696
MySQLのORDER BY句は省略不可なのか?省略したらはじかれた。
昇順または降順つけたらうまくいった。即レスきぼんぬ
460NAME IS NULL:04/10/28 21:18:27 ID:nyqWuHEf
btrieveデータをコンバートかけなければならないのですが読み込めず困っています。
バージョンはおそらくBtrieve 6.15 以前のバージョンでDOSベースで動いていたPC
からファイルを抜きました。拡張子 btr です。
よろしくお願いします。

461NAME IS NULL:04/10/29 09:18:27 ID:Xo+C4H0K
Accessでもデータベース作れる(と思う)のに
なんでSQLが必要なんですか?
社内システム担当で内定取りましたが、
今から何を勉強すればいいのかわかりません。
462NAME 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は必要ないと思いますが
どのような意味があるのでしょうか?
463NAME IS NULL:04/10/30 10:13:27 ID:???
クラスタ化されているとインデックスノードにレコード実体も保持されるので、
Bookmark lookup が発生しなくなる。
464NAME IS NULL:04/10/31 00:43:01 ID:???
MySQLの質問です。
http://aaa.com/~hoge/hoge.cgi これだとDBにアクセスできるのですが
http://aaa.com/hoge/hoge.cgi これだとDBにアクセスできないのです。。。

なぜ?
465NAME IS NULL:04/10/31 02:45:09 ID:???
>>464
MySQLじゃなくてcgiの問題でわ?
466NAME IS NULL:04/10/31 04:31:24 ID:???
>>465
そ、、そのとおりでした
バーチャルホストでもcgi使えるようにしたら動いたのはいいのですが
mkdirができない。。。

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

みなさまお忙しいと思いますが、アドバイス頂ければ幸いです。
どうか、宜しくお願い致します。
469NAME IS NULL:04/10/31 22:56:55 ID:???
>468

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

トリガーを使うにしろ、選択時にそう表現するにしろ、
更新時に操作するにしろ。
470468:04/10/31 23:24:17 ID:???
>>469
出来れば、updateで一度に処理したかったのですが、トリガーなり
使うしか方法がないようですね。ありがとうございました。
471NAME IS NULL:04/11/01 00:29:42 ID:???
>>470
トリガー使えば、UPDATEで一度に処理できるじゃん・・・
472NAME IS NULL:04/11/01 06:34:27 ID:???
>>468
NULLなんて使うなよ。
473NAME IS NULL:04/11/01 21:50:08 ID:???
>>470
DBMSによるかもしれんけど、SET句の中でCaseを使えれば
トリガなしでもUPDATE1回で処理できる。

しかし、NULLを入れてしまうと値を足す時が面倒になるけどそれでいいのか?
普通の計算式だとNULLに何を足しても掛けても結果はNULLだぞ。
474NAME IS NULL:04/11/01 23:58:33 ID:y0xPwxbI
Win2000サーバ DB専用
なんですが、今日いきなりウィーーンってファンがものすごい
勢いで回りだしたかと思ったら、画面にダイアログで
「あと60秒でシャットダウンします」とでて
カウントダウンがはじまってクレズ?ニムダ?みたいな動作したんだけど
あれはなに??
クレズ以外で
475NAME IS NULL:04/11/02 00:00:06 ID:ZStcC7sr
ちなみに1回なっただけで
あとは症状でず
476NAME IS NULL:04/11/02 00:32:40 ID:???
>>474
データベースとは無関係だな
477NAME 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

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

ご教授いただけるとうれしいです
478NAME IS NULL:04/11/02 23:08:50 ID:???
>>477
会員テーブル
会員ID,名前,住所,..他..

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

試験合否テーブル
会員ID,試験ID,結果
479477:04/11/03 06:27:36 ID:???
>>478
レスありがとうございます
なんというか、目から鱗です。。

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

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

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

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

ほんとうにありがとうございました!
480NAME IS NULL:04/11/04 10:39:46 ID:???
質問です。

ASAからASEへDBのコンバートを行いたいんですがイイ方法が見つかりません。

ご存知の方いらっしゃいましたらよろしくお願いしますm(_ _)m
481NAME IS NULL:04/11/04 21:42:10 ID:???
>>480
イイ方法が見つからないってことは、なにか悪い方法は思いついた??
だったらそれを書いてみたらどうよ
482NAME IS NULL:04/11/11 23:26:46 ID:???
( ´,_ゝ`)プッ
483NAME IS NULL:04/11/21 03:10:42 ID:???
すみません。すごいお馬鹿な質問なのですが
真剣に困っています。教えてください。
telnetを使おうとしているのですが、半角英数字入力の状態で、\が
何処にあるのか分らないのです_| ̄|○
キーボードのどれを押したら\が出るのでしょうか。
484483:04/11/21 03:11:40 ID:6JCa8euH
すみません。sageてしまいました。上げます。
どなたかよろしくお願いいたします。
485NAME IS NULL:04/11/21 09:32:20 ID:mHOHnzCm
オッケェー、この板も刻んだ!
486NAME IS NULL:04/11/21 17:24:05 ID:pnpy18KG
487340:04/11/21 19:30:45 ID:???
MySQL板で2回質問をしたところ、2回ともスルーされたのですが、
死ぬべきでしょうか
488NAME IS NULL:04/11/21 21:39:07 ID:???
>>487
死ななくてもいいけど、回線切ってつr(ry
489483:04/11/22 00:02:00 ID:RC2l+T/+
お願いします〜〜
真剣に悩んでるんです。
どなたか/の半角の出し方を教えてください〜〜
490NAME IS NULL:04/11/22 00:35:32 ID:???
>>489
/の半角は\だ。日本語フォントだとみんなそうなる。
板違いの質問だから続きはPC関係の板で聞いてくれ。
491NAME IS NULL:04/11/22 00:40:02 ID:???
cygwinにdaemonは動くのにpostgresがインストできない
postgresはコンパイルはできたのに。
環境はwin2k,cygwin1.5,cygipc1.15,postgres7.45です
492483:04/11/22 01:15:33 ID:???
>>490
ありがとうございましたm(__)m
493K: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' を含んでいないクエリを実行しようとしました。
494NAME IS NULL:04/11/22 18:38:22 ID:j6017wAa
count(*) の時って、まさに集計だから
データを取る事できないんでない?

多分やりたい事はある日付以降のスケジュール全部取る、だろうけど
1つのSQLでやりたいなら・・・どうするんだろ(ノ´∀`;)
495NAME IS NULL:04/11/23 01:58:52 ID:???
Windows認証利用のみでMSDEをインストールしてしまったんですが、
SQL認証利用の指定は後から追加できないんでしょうか?
496NAME IS NULL:04/11/23 02:26:58 ID:???
>>493
エラーメッセージを噛み砕いて説明すれば
集計関数を使うときは集計関数以外にSELECTしたいカラムを
GROUP BYで指定しろということ。

この場合、GROUP BYをつけても望む結果は得られないだろうから
COUNT(*)を取り除いて、件数をクライアント側で取ればいい。
.NETはよく知らんのだが、RecordSet内にRecordがいくつあるかという
プロパティーがあるんじゃないの?
497NAME IS NULL:04/11/24 04:08:27 ID:???
えーっとほら、ほとんどの処理をオンメモリでやってオラクルのXX倍速いです!とか言ってるDBあったじゃない
あれの名前忘れちゃったのよ。
えーっと、えーっと・・・・教えてください。
498493:04/11/24 13:45:51 ID:???
>>>496
ありがとうございました
499NAME 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(ユニークチェック = 'ユニーク') など
を勝手にいろいろ放り込んだりしましたが無理でした、、。
三日三晩悩みつづけ、心身ともに限界を感じております。
どなたかご教授くださいませ。後生です。
500NAME IS NULL:04/12/01 09:08:07 ID:???
総アクセス数のSQLをViewにして、ユニーク数のSQLと結合。
501NAME 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と返ってきてしまいます
どうすればいいのでしょうか?
502NAME IS NULL:04/12/01 21:12:42 ID:???
UNIONしてからsum
503NAME 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の項目がとれないんです!

506NAME IS NULL:04/12/02 01:24:42 ID:???
これからデータベースを作ってみようと思っています。
文書ファイルの文章やインターネット上の文章をドラッグして選択し、
右クリックメニューから選択文字列をデータベースで検索ということができるものにしたいのですが
Access VBAで右クリックメニューに「データベースから検索」というようなものを追加する事はできますか?
是非教えてください。
507NAME IS NULL:04/12/02 09:58:19 ID:???
>>502
UNIONしてからSUMはどうやればいいのですか?
UNIONは
select a from A.a
union
select a from B.a
ここまでわかったのですがこの後がさっぱりで・・
508NAME IS NULL:04/12/02 12:54:45 ID:???
そもそもAとBのテーブルをFROMに書いただけで、結合条件なしじゃまともな検索結果は出ないぞ。
509NAME IS NULL:04/12/02 14:21:15 ID:???
できたっぽい
select sum(a)
from (select a from test1 union all select a from test2)
こういうことでいいのかな?
510NAME 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 は頭が良くなっているのでしょうか。
511NAME IS NULL:04/12/02 21:21:04 ID:???
>>510
select * from hugetable inner join freqcodes on freqcodes.code = hugetable.code
はダメ?
512NAME IS NULL:04/12/02 23:12:28 ID:???
発注票みたいなものをデータベースで扱いたいんですが、
こういうような、可変長なデータ(人によって買う商品の種類が違う)ってどう扱えばよいのでしょうか?
513512:04/12/02 23:13:14 ID:???
↑mysqlです。
514NAME IS NULL:04/12/03 01:39:37 ID:???
>>512 とりあえず本を読んで、「正規化」について学べば書いてある。
515NAME IS NULL:04/12/03 03:04:16 ID:???
いろんなurlの入った列があるとして、
?より以前を対象にgroup byしたいのですが良い方法はありますか?
516NAME 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

という結果が返ってくるようにしたいのです。
文章が長くなってすみません。
どなたか教えていただけないでしょうか。
517NAME IS NULL:04/12/04 04:49:17 ID:???
>>516
SQL99に再帰QUERYが定義されてるけど実装は見たことないなぁ。
無制限に階層も遡る必要があるならストアドかプログラム側のロジックで処理すること
になる。有限階層なら外部結合をつかったSQLでやれなくはない。
問題はその遡り処理が特別で一時的な処理、いわゆるアドホックな処理かどうかだろうか。
いろんなところで遡りの処理が頻繁に発生するなら現在組織をあらわすフィールドを
DATAテーブルに追加し、合併時に最新の値に保つようにしたほうが効率がいい。
ただしこの方法だと過去時点を起点にした場合も常に現在の組織をもとにした結果が
表示される。どちらが良いかは業務内容によるから検討は必要だ。
518NAME IS NULL:04/12/04 07:20:26 ID:???
再帰QUERYの実装されたDBなら知ってるが、使い道がわからん orz
519516: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'
のような内容のエラーがでてソフトを起動できません。

対処法ご教授ねがいます!
521NAME IS NULL:04/12/08 04:13:59 ID:???
>>520 DHCPでIPがかわったんじゃないの?
522NAME 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,ネットワーク一般、セキュリティ設定等)
システム開発プロジェクトマネージャー経験者


勤務地
東京都渋谷区
523NAME 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設定などがあるのでしょうか?
方法が知りたいです。
参考になりますサイトなどありましたら。是非にお願いします!
525NAME 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を調べて
調べ方ありますよね?ちょっと探してきます!
528NAME IS NULL:04/12/08 07:26:15 ID:???
IPが変わったかどうか、そのことが影響しているかどうかは予想の域を
出ないので、下手にネットワークの設定を触るとさらに事態を悪化させる
可能性があります。
業者が「電源を落とさないように」といっている以上、電源が落ちてしまった
場合の責任分担は業者にあると判断していいと思います。
電源やLANケーブルの断線がないことが確認できれば、もはや「つまらない事」
という事態ではないということで良いでしょう。
529まったくの素人・・:04/12/08 07:57:40 ID:???
>528
その通りですね^^;;
ちょっと素人が手を出せる域じゃないですね・・
今回はそのように話して済ませようと思います。

ちゃんとネットワークやらDBやらプログラミングについて
勉強してみようと思えた貴重な機会でした。
もういい年なんで趣味としてですがw
皆さんどうもありがとうございました
530U ◆CZtFsGiu0c :04/12/08 12:35:33 ID:???
>>526
>DHCP環境下ではクライアントのIPを固定させておくということですね

逆です。通常サーバは固定IPで運用するものです。ただDHCPで起動ごとに
IPが変わっていたとしても、ホスト名でアクセスする場合には通常は大丈
夫だと思います。

これも推測になってしまうのですが、メインPCでSQLServerは起動されて
いるのでしょうか。まさかと思うのですが、手動起動になっていたりしま
せんか?
531NAME IS NULL:04/12/08 21:45:34 ID:???
実はDHCPではなく、XP SP2のせいだったり・・・
532NAME IS NULL:04/12/09 10:16:27 ID:???
オラクルで、SELECT TABLE_NAME FROM USER_TABLES;
とやるとログオンユーザの所有するテーブル名が取得できますが、
MSのSQLServer(2000)で同様のことをやるにはどうしたら
よいでしょうか。
533NAME IS NULL:04/12/09 13:43:26 ID:???
>>532
sp_tables
sp_tables @table_owner = 'xxxx' (ユーザー指定)
結果セットを返すストアドだからOracleから来ると戸惑うかもね。
534NAME IS NULL:04/12/10 16:22:51 ID:GTVCQoEL
テーブルを開くとき、fieldの中にあるNULLの行だけ読み込ませないような
SQL文を作りたいのですがどのようなSQL文になるのでしょうか?
ちなみにVB6、Accessを使ってます。宜しくお願いいたしますm(__)m
535U ◆CZtFsGiu0c :04/12/10 21:43:06 ID:???
>>534
WHERE field IS NOT NULL
536NAME IS NULL:04/12/10 22:00:43 ID:???
18文字の文字列を格納するのに10バイト必要ってどういうことですか?
1文字1バイトじゃないんですか?
537NAME IS NULL:04/12/10 22:04:53 ID:8mF6v/tL
538NAME IS NULL:04/12/11 10:45:19 ID:???
>536
誤爆?
パック形式の数字なら18桁で10バイトかな。+−のサインで4Bit使うからね。
539NAME IS NULL:04/12/14 13:14:20 ID:88blfdAK
CHARに0x00-0x1F の制御コードは入れちゃマズイですか?
SQL埋め込み型プログラムなら出来ますよね?
540U ◆CZtFsGiu0c :04/12/14 13:17:35 ID:???
>>539
改行コードとか普通に入れると思うけど、0x00なんてなんのために入れるの?
541NAME IS NULL:04/12/14 13:38:23 ID:88blfdAK
4バイトのバイナリデータを格納するつもりです。
ただ、探索条件で使いたいのでイメージデータ扱いしたくない。
やっぱり、CHAR(8)で16進文字列表現にした方が
いいんでしょうか?
プログラムはバイナリデータとして意識するので、文字列として扱うつもりは無いです。
542NAME IS NULL:04/12/14 14:14:47 ID:???
データベースとクライアントで文字コードの変換が発生することが
あるから処理系依存かな。
4バイトなら32ビットintegerじゃだめなの?
543NAME IS NULL:04/12/16 02:53:32 ID:???
char binary じゃいけないのかな?
544NAME IS NULL:04/12/16 09:04:43 ID:???
>>543
MySQLの機能ですね。char binaryは大文字小文字を区別して比較する
ってヤツじゃないですか?
545NAME 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なのかプログラムなのかネット関係かさえ悩んでしまいました

誘導でも参考サイトでも構いません
どうかアドバイスお願いします
546545:04/12/18 20:26:02 ID:???
すみません自己解決しました
お騒がせしてすみません
547NAME IS NULL:04/12/18 22:05:26 ID:???
>>546
内容かけや
548545:04/12/19 01:08:19 ID:???
鯖の実行モジュールでなく
クライアントのローカルURL叩いて動くはずもありませんでした
回線切って首tskdjlうぁなにをsるやめrsdぁz;k;ぅslj・・・
549NAME 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
550NAME IS NULL:04/12/22 15:11:48 ID:VdyoeUI5
質問させて下さい。
緯度と経度をPostgreSQLで管理したいのですが、
この場合、どのようなデータ型ないし構造を用いたらよいでしょうか?
551NAME IS NULL:04/12/22 15:41:03 ID:OqGxSayv
552NAME IS NULL:04/12/22 16:14:57 ID:???
553NAME IS NULL:04/12/22 16:49:21 ID:???
>>551-552
レスthanks。

ぐぐってはいるのですが、どれも小数点や角度を扱うものばかりで、
何度、何分、何秒
といった形式でデータを格納できません。
たとえば、intの配列を格納する事で代用できるのでしょうか?
554NAME IS NULL:04/12/22 17:49:11 ID:???
>553

時刻型でやったら?
intervalあたりなら、時分秒で好きなように指定できると思う。
555550:04/12/22 17:53:01 ID:???
>>554
結局、ドメインでdegrees、minutes、secondsを定義することにしますた。
Thanks anyway.
556NAME IS NULL:04/12/24 14:02:47 ID:4+pQOxez
MS-AccessXPフォームで入力したいんよ。
そこまではできるんだけど、プログラミングの引数風に書くと、IDの部分で自動的に"WA"+year+month+data+iっていうふうにしたいんだけど、どうしたらいい?
参考サイトでもいいのでおせーてください・・・。

ちなみに、フォームで入力するとき、今日が2004年12月24日で2個目の入力だとすると
WA20041224002
みたいに、したいんよ。
557NAME IS NULL:04/12/25 23:50:44 ID:???
MS-Accessつかってます。
主キーのフィールドを数値型にした場合、主キーを自動で生成する
関数を自作する必要があると思いますが、その場合、
以下のようなSQLを使用すれば良いと思います。
SELECT MAX(番号) FROM 売上
テーブル名:売上
主キーのフィールド名:番号

しかし、この方法はデータベースを使用していくにつれ、
「番号」の値がどんどん膨大になっていくという欠点をもっています。
これ以外に良い方法はないのでしゅうか。よろしくお願いします。
558NAME IS NULL:04/12/25 23:53:47 ID:???
>>556
mid$()とかformat()とかを使ってもだめだったって意味?
559556:04/12/25 23:59:23 ID:???
そういうコマンドの使用方法がわからないんです・・・。
参考サイトでもいいのでご教授いただけるとありがたいです・・・。
560NAME IS NULL:04/12/26 00:04:12 ID:???
>>559
これらはコマンドではなく、関数。
関数の使い方はヘルプに載ってるじょ。
561556:04/12/26 10:00:46 ID:???
>>560
ヘルプに載ってますか・・・。調べてみますわ。
ありがとう!
562NAME IS NULL:04/12/29 00:16:39 ID:???
素人丸出しの初歩的な質問ですいません。

特にどこのDBとは限定しませんが、一般的にレコード中に、時々人数が増減
するような可変長の名簿を置くことは可能でしょうか。
基本的にレコードは定義したら、どのレコードも常にバイト数は同じであると
思っていますが、例えばプロジェクト毎の人間の稼動をDBに記録するような
場合、最初のレコードの定義時に人名を100人分確保したとすれば、1人しか
登録していないときは99人分のスペースが無駄になり、101人登録しようと
しても、1人ははみ出てしまいますね。

このような場合は、どのようにレコードを定義するのが定石なのでしょうか?
563NAME IS NULL:04/12/29 00:28:46 ID:???
根本的なRDBMSの概念が分かっていないようですね。
それともまさか、テーブルの列を人数分の100個用意するとか?
564562:04/12/29 00:57:38 ID:???
できれば、「共通の名簿IDと名前のIDを含めたレコードを
名簿として別個に定義するのが定石だ」とか答えてくれるとベスト。
565NAME 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)
}

じゃあこんな感じにしたら。
566562:04/12/29 02:29:47 ID:???
>>565 なんとなくソレがよさげですね。サンクスコ。
よくわかりませんけど。
567NAME IS NULL:04/12/29 13:00:39 ID:btSOVyaW
1つのトランザクション内でCommitしないままで
あるレコードをDeleteした直後に、
そのレコードをSelectした場合、取得は可能ですか?
その後、同じ値でInsertしても大丈夫なのですか?
568NAME IS NULL:04/12/29 13:28:35 ID:???
BEGIN TRANS
DELETE record A
SELECT record A

ってことか?
もちろん不可能。
それが可能だったらメチャクチャになる。
569name is null:04/12/30 23:59:13 ID:v92yogjU
初心者の質問ですが、お願いします。

テーブルやフィールドの名前のつけ方は、他のテーブルや
フィールドと同じにならないようにすべきなのでしょうか。
例えば、以下のような名前の付け方は問題あるのでしょうか。

テーブル「社員」
・ID
・氏名
・性別

テーブル「性別」
・ID
・性別

複雑なSQL文を使い始めてからエラーが出て、このあたりのこと
が原因のようなきがしましたので質問してみました。
どうぞよろしくお願いいたします。
570NAME IS NULL:04/12/31 00:03:17 ID:???
フィールド名は他のテーブルと同一でもいい。
SQLの中でフィールド名を書くときにテーブル名も指定できる。
571NAME 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の方で置く場所などが決まっているのか、もしくは
コマンドでディレクトリの指定などをすればどこに置いても良いのでしょうか?
とすればどのように書けばよいのでしょうか。
教えてください。よろしくお願いします。
572NAME IS NULL:04/12/31 18:25:05 ID:fVMJh0Ta
>>571
mysql> source c:\createdb.sql
は、試してみたの?
573571: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でインストールしたものです。
特に何も設定とかしておりません。
574NAME IS NULL:05/01/01 00:09:30 ID:UnBz74uX
>>573
そのCDは持ってないが、そのエラー番号は、
「サーバ名が正しくない」という意味だ。
サーバ名などの設定を確認してみてはどう?

あ、2005年おめでとう。w
575detabaseしろうと: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」としても、通常のクエリーは作動しますが、
上記同一テーブルとみなす処理の上では、「#」が「日付リテラル」と
認識されるようで、「日付」に関する記述エラー警告メッセージが出現して
これまたうまくいきません。

テキストファイルのデータベースでは、こういうことは制限があるのでしょうか?

分かりにくいかもしれませんが、どなたかエロイ人教えてください!
576NAME IS NULL:05/01/05 23:40:32 ID:3/u8KLdq
postgresで下のIDをいくつかupdateしたら
テーブル「果物」
・「ID」主キー
・「野菜」
上書きしたデータがselect文ですんなりと出てこないんですが
どうしてでしょうか、ものすごい勢いでお願いします
577NAME IS NULL:05/01/06 12:03:45 ID:???
>575、576
もう少しわかりやすく状況を説明してくらはい。
物凄い質問に勢いで答えるスレってふいんきになってきました。
578575: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」とすると今度は「日付関数が間違っている」という意味のメッセージが現れてしまいます。

きりがないので別の方法で目的の作業を終えてしまいましたが、
どういうことなのか、(何処が間違っているか)教えていただけたらありがたいです。
579NAME 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)経由ですか?
580575:05/01/06 17:16:06 ID:xNYa/ivL
>>579
レス、ありがとうございます。

両方にエリアスということですが、そのような書き方をして
ためしたこともあるんですが、駄目でした。

DAOのODBC、JET径由という意味が実はよく飲み込めていない素人で
恐縮なんですが、使用しているデータコントロールでは設定をJETに
しています。

どうしてtxtファイルを用いているかというと、
定型文が羅列してあるテキストファイルを読み込ませ、
そこからデータを拾ってカンマ切りのテキストファイルにし
そのままテーブルに使用しようとしているためです。

他に適切な方法があるのかどうかは分かりませんが。
581576:05/01/06 19:55:29 ID:PHo2e4CR
postgresで1〜10並んだID(主キー)の1〜3を11〜13にupdateしたら
上書きしたデータ11〜13がselect文ですんなりと出てこないんですが
どうしてでしょうか、ものすごい勢いでお願いします
582NAME IS NULL:05/01/06 21:11:05 ID:???
>>581
すんなりってことはそのうち出てくるって事ですか?
トランザクションの途中だとか。
Webから参照してるならページがキャッシュされてるとか。
583NAME IS NULL:05/01/06 21:52:56 ID:???
哲子?
584581:05/01/08 12:05:51 ID:kG2LW6z8
>>582
updateしたあとに11〜13の3つを表示させようとすると
なぜか8〜10が表示されます。それぞれ単独で表示させるのは上手くいくんですけど。
585NAME IS NULL:05/01/08 13:23:32 ID:???
>>581
UPDATEの仕方やSELECTの仕方がわからないとなんとも。
SQL晒して
586NAME IS NULL:05/01/08 20:19:28 ID:???
どうして581は少しずつしか情報公開してくれないんだろうか。。。
587581: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が表示されるんですがどうしてでしょうか?

情報を出し惜しみしてるわけじゃないんです、
自分ののコミュニケーション能力が足りなくてどう質問していいかわからないんです…
588NAME IS NULL:05/01/09 01:47:53 ID:???
>>587
ざっと見たところ考え方は間違ってないと思うので状況を誤認してる可能性が大きいと思います。
状況を誤認した状況で変に内容を編集すると問題のポイントが抜け落ちることが多いですから
psqlで実行しているなら実行時のログをそのまま出したほうが早いと思います。
明らかに転記ミスと思われるSQLが見受けられますのでこのままでは答えようがありません。
さて、今回のケースに当てはまるかどうかわかりませんが数字の大小比較がおかしい場合は、
ID列が文字列で定義されていることがよくあります。IDが主キーかどうかの情報も重要です。
テーブルの定義もアップしたほうがいいと思います。
589581: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は上手くいきました
そんなわけないと思いますが上手く表示されないのはネット経由だからでしょうか?
590NAME IS NULL:05/01/09 13:34:37 ID:???
>>589
別の環境で動くのであればSQLの使い方というレベルではなさそうですね。
ネット経由だからかどうかは、何を使ってどういう風にネット接続してるか
によるのでその情報も出してくれないと。
cygwinうんぬんのくだりだってsshやtelnetを使って仕事で使ってるその
マシンにログオンして同じpostgresを使ったのか、cygwin上で別のpostgres
を動かした(できるかどうかわからんけど)のかはっきり書かないと
コメントできないですよ。
591581:05/01/09 13:52:40 ID:ywvYRAMu
仕事(会社)ではLAN接続でTeraTerm(ssh)を使い
Linuxサーバーに接続して会社のPostgresを動かしています

自宅のは勉強用に自分個人のPCに自分専用のpostgresを入れて使っています

説明下手ですいません、自宅から会社のPostgresを使っているわけじゃないです
592NAME 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では当たり前な考え方なのでしょうか?
変数に入っている半角スペース等は無視されるとか。
593NAME 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型、半角スペースの考え方がよく分かりません。
説明が下手ですみませんが宜しくお願いいたします。
594NAME IS NULL:05/01/11 00:01:15 ID:???
CHAR型の比較は長いほうにあわせて短いほうにブランクがパディングされる
だったと思う。COBOLの文字型と同じ考え方でいいはず。
595NAME IS NULL:05/01/12 00:16:16 ID:rI4jwRN3
データベースって講義一応受けてるんだけど
このスレで出てるようなことは全くやってない・・・

ERモデルとかエンティティとか基数制約とか
PCではなく、ひたすらノートと鉛筆ばっかり使っている・・・
きっとこんなのは基礎の基礎だと思うんだけど

お前らも↑みたいなのマスターしたの?
596NAME IS NULL:05/01/12 00:27:22 ID:???
>>595
そういうのはやれるうちやってたほうがいいと思うよ。
いきなり実務ってやつらで向上心のない連中はこの板でときどき
話題にのぼるヘボSEまっしぐらだべさ。
597NAME 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かけてないからじゃないの?

598aaaa:05/01/12 16:37:40 ID:vSkHTNjw
aaaaaaa
599NAME IS NULL:05/01/12 20:13:38 ID:rxfwdxkA
>>595
実務なんて後から付いてくるんだから基礎の勉強はやれるだけやっとけ。
基礎的素養の無い雑魚みたいな使い捨てプログラマと仕事するのは勘弁ですよもう。
600NAME IS NULL:05/01/13 08:37:28 ID:N1TKOkoo
こんにちは。質問させてください。
子供が小さくて外に仕事へいけない主婦が集まって
ビーズアクセサリーのネットショップを立ち上げた者です。
インターネットで、ショッピングカートとは別で、
データーベースを使った顧客・商品管理・売上率の計算等をしたいのです。 
Accessでデーターベースを作って、それにパスワード等をつけて
私たち販売する人のみが、ネット上で、表示・管理をしたいとしたら、
もしかしてAccess以外に、何か勉強しなくてはいけないのでしょう
か・・・?
601NAME IS NULL:05/01/13 14:20:36 ID:???
どこかの販売管理サービスのASP(アプリケーションサービスプロバイダ)を
使うほうが安全だと思うのだが。
ひとつのオフィスのLANでAccessのファイルを共有して使ってるように、
離れた場所にいる関係者でネットを使って販売管理用のAccessのファイルを
共有したいってことならば、VPNやでつないでファイルを共有するか、
XPのリモートディスクトップで一台のPCを交代で共有するのも手かもしれないですね。
ネット上で何かしたいのなら勉強すべきはまずセキュリティです。
602yo-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 |
+-----+-----+--------+--------+
603NAME IS NULL:05/01/13 21:15:25 ID:???
本来あまり関係のない二つの事象をひとつにまとめようとするとめんどくさくなりますね。
甲乙で表(viewでもいい)を作くり、甲丙で表(viewでもいい)を作る。
それから最終的な形にするにはどうしたらいいか考えればできます。
2つのViewをマージするSQLを作ってもいいし、1つのSQLにまとめる方法をゆっくり考えてもいい。
2表できたところでプログラム側に処理を移しマージしてもいい。
無理にひとつのSQLで処理しようとするとバグの元、処理スピードとの兼ね合いもありますが、
後々理解できる範囲のSQLにまとめましょう。
604NAME IS NULL:05/01/13 23:02:08 ID:???
600です。
>>601さん
レスありがとうございました。
アプリケーションをレンタルする事も考えたのですが
料金が高いのがネックでして・・・_| ̄|○
もう一度みんなで相談してみます。
605yo-ko:05/01/14 09:20:18 ID:UC20sTBi
603さん。
回答ありがとうございます。
なんとか一文でできないかと考えていたのですが
なかなか難しそうですね。
2表作って処理をプログラム側に移してやって見ます。
ありがとうございました。
606NAME IS NULL:05/01/15 16:21:14 ID:ffG2I4Ip
CDをMP3ファイルにする時、
変換ソフトでCDDBを登録できるようになっているのですが、
CDDBのアドレスはどのようなものがあるおんでしょうか?

http://www.gracenote.com/
ここが凄いと聞くのですが、URLのどのように登録すればよろしいのでしょうか?

どなたか回答よろしくお願いします。
607NAME IS NULL:05/01/15 18:32:08 ID:ludeJFlu
postgresqlで、現在データを文字コードSJISで扱ってるデータを
EUCまたはUNICODEでデータベースを作り直したいんだけど、
良い方法はないでしょうか?
pg_dumpで落としたダンプデータの文字コードを変換して
データを入れ直しただけではうまくいかなくて悩んでおります。
御指南をよろしくお願いいたします。
608NAME IS NULL:05/01/15 21:38:27 ID:???
方法としてはそれ以外何かあんのか?
どうせデータのチェックではじかれてるんだろうから俺だったら
そこを修正するようにバッチくむけど
609NAME IS NULL:05/01/16 01:03:20 ID:i1aKOcPl
A社では、社員が取得している資格について、次のような“資格取得表”に記録している。

  資格取得表(社員番号,社員名,{資格コード,資格名,資格取得年月})

 社員番号と資格コードは、社員あるいは資格ごとに与えられた固有の番号である。
 また、1人の社員が複数の資格をもつ場合は、その社員について、{ }内の項目が繰り返し登録されている。
 この表を第3正規形となるように正規化すると、表はいくつできるか。
 また、それぞれの表の主キーは何か。
 次の例にならって、解答せよ。
 なお、表および主キーの順番は問わないものとする。

 【解答例】 表が2つで、それぞれの主キーが「社員番号」 「社員番号,社員名」の場合
 表の数=2
 表1の主キー=社員番号
 表2の主キー=社員番号,社員名
610NAME 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に書き込みました。一度目は成功したのですが、次のデータをしようとしたら
動かなくなりました。

情報が少ないかもしれませんが、誰か知っている人いませんか。
612NAME 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で動かないと、ちょっと業務に支障がでますので、よろしくお願いいたします。

それでは、失礼します。
613NAME IS NULL:05/01/18 09:17:17 ID:???
データベースの問題です。
友達に聞いてもわかりませんでした。

[1]
関係スキーマR上の関係rにおいて
関数従属X→Yが成り立つなら
多値従属X→→Yもr上で成り立つことを証明

[2]
第4正規形なら第3正規形でもあることを証明
614NAME IS NULL:05/01/21 00:11:07 ID:tOTfBFmP
PHPでデータベースにアクセスして検索キー入力して
検索結果したヒット数をだすにはどうしたらよいですか?
615NAME IS NULL:05/01/21 14:20:28 ID:???
>>614
www.amazon.co.jp で「PHP DB」で検索
616NAME IS NULL:05/01/21 20:03:33 ID:???
Win版Filemaker ver.6を使っていますが、平成の大合併を反映して、顧客住所を変更しろと言われています。どなたか、やりやすい方法をご存じでしょうか?
お願いします。
617NAME IS NULL:05/01/25 22:19:21 ID:5Qm04rSa
PostgreSQLで、DB「A」とDB「B」があったとき、
「A」に接続中に「B」のDBを参照することは可能ですか?
または「A」のDB内に「B」の任意のテーブルのviewを作るとかってできないでしょうか?
618NAME IS NULL:05/01/25 23:41:04 ID:tgIy3OR9
データベースにおける更新権限ってどういう意味でしょうか?
619NAME IS NULL:05/01/26 20:03:39 ID:tYmIJPUK
VBでゲームを個人作成している板はどちらでしょうか?
620NAME IS NULL:05/01/26 20:47:01 ID:???
621NAME IS NULL:05/01/30 16:12:25 ID:rb/8Ozy/
Q1:トランザクション管理におけるロールバックの必要性を
  具体例を示しながら説明する
Q2:データベースのバックアップ方法には想定される障害の重要度に応じて
  種々の方法がある。そのバックアップ方法について少なくと2種類の方法について、
  おのおのどのような障害を想定しているか。

こんなこと教えて下さるネ申を探していますorz・・・
622NAME IS NULL:05/01/30 19:55:09 ID:???
宿題は自分でどうぞ。
623NAME IS NULL:05/01/31 14:57:53 ID:???
>>621
musako sage
624NAME IS NULL:05/02/01 11:38:12 ID:???
マルチすみません。

ORACLE8にてトリガーステートメント中に、トリガー発動の契機となったSQLを発行した
プログラムの名前と、そのSQL文を取得したいのですが、 どのように記述すればよいのでしょうか?
宜しくお願いします。
625NAME IS NULL:05/02/01 16:19:15 ID:RpjMX2EP
すいません、教えてください。Oracleです。
ObjectBrowserからPL/SQLをデバッグ実行して
長くなりそうだったので、ObjectBrowser毎落としました。
セッションが残ってたんで強制的に切断してもKILLEDのままで
パッケージを掴みっぱなしです。おかげでこのパッケージを
呼べなくなってしまいました。どうしたら、このkilledされた
alter package debugのセッションを削除できるのでしょうか?
626625:05/02/01 18:23:01 ID:???
該当セッションのSPIDを求めて、
orakillした後、さらに
ObjectBrowserからkilledになっているセッションを切断したところ、
セッション一覧から消えた。OTN掲示板から。
627NAME IS NULL:05/02/02 00:42:07 ID:+mVum3XE
くだらない質問ですがどなたかお願いします。
ACCESS2003のフォームでデータをクリックすると
別のフォームを表示する方法教えていただけませんでしょうか?
マクロとかVBAなど方法は問いませんのでお願いします。
628NAME IS NULL:05/02/03 23:42:50 ID:8NKkPXsD
ストアドとJava等にSQLを書いて、要求の都度発行するのと、
全然速度って違いますか?
629NAME IS NULL:05/02/04 02:31:02 ID:???
>>628
複数の命令からなる複雑な処理ならストアドが速くなるが、
単一の命令の場合はほとんど差がでないことが多い。
jdbcならPreparedStatementをキチンと使うほうが大事だろう。
630NAME IS NULL:05/02/04 14:53:42 ID:WeD6/Po8
ABCってデータベースに、1、2、3、4…ってテーブルがあって、全部同じ構造をしてるんです。
そこで検索するスクリプトを作っているんですが、テーブルを指定しないでそのデータベースにあるテーブル全体から文字列を検索するにはどうしたらよいのかわかりません。
調べる所は(仮に)各テーブルの000ってフィールドなんです。

その場合のSQLクエリーはどぅすればよろしいのですか?
631NAME 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文で条件を付与する事は不可能なのでしょうか
633NAME 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

634NAME 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.その際のフィールド名なんですが、本によって日本語だったり英語だったりします。
日本語でも構わないのですか?
635NAME IS NULL:05/02/10 06:55:44 ID:???
>>634
1は正規化の問題。
その項目がメーカー名、価格、仕入先・・のように商品の直接の属性ならそのままでよい。
その項目に仕入先1、仕入先2、仕入先3・・のように繰り返しがあるなら商品仕入先テーブルを作る。
その項目に仕入先、仕入先住所、電話番号・・のように仕入先の属性を含んでいたら仕入先テーブルを作る。
それにもかかわらず効率やその他の要因で正規化を取りやめるケースもある。
2はその組み合わせでは使ったことはないのだが、使えたとしても他のツールと組み合わせたときに
うまく動く保証が無いのでよくわからない場合は使わないほうが無難。
この辺はプロジェクト全体で決めるべきことだと思うので独りで決めないほうがいいと思いますよ。
636NAME 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 (オープンソース)
637NAME IS NULL:05/02/12 22:39:42 ID:???
IBのオープンソース版をまだ使ってる人もいるんだ。
とりあえず、FB1.0.xではそういうのでエラーが出たことはないな。
638T.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)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−
639T.O:05/02/14 18:24:16 ID:RwPSRDsG
638>
スレが多少、適切ではない事に気付いたので、「SQL質疑応答スレ Part 2」へ
移動しました。
640NAME IS NULL:05/02/16 00:35:23 ID:???
データベースを個人活用してる人はどういう使い方してますか?
641NAME IS NULL:05/02/20 23:17:14 ID:PA+HGUYZ

ふー、困ってます。
Access2003で、テーブルでハイパーリンク型にしているファイル(画像)を、
レポートではハイパーリンクではなくてそのまま画像を表示させる方法教えてください。
642NAME IS NULL:05/02/22 23:26:08 ID:???
スキーマって何ですか?
いろいろ読んだんですが、なかなか理解できません。
いい例え話でも使って説明してくれませんか?
643NAME 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

644NAME 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に更新したいのです。

どうか宜しくお願いいたします。

645NAME IS NULL:05/03/02 00:18:00 ID:???
>>644

ワークテーブルとか作れますか?
顧客IDが一番小さいものだけ、ワークテーブルに突っ込むと、方法に広がりがでると思う。
646644:05/03/02 00:33:55 ID:SXcU4gI8
ワークテーブル?
その話もう少し詳しく聞かせてください
647NAME 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

で、どうだ?

648NAME IS NULL:05/03/02 01:49:13 ID:???
一時表をおすすめします。データがほかのセッションと混じらないし、たしかログ対象で
ないので余分なログを書き出さないというメリットがあったと思います。
Oracle (おそらく9以降)なら事前にアロケーションしておきます。
CREATE GLOBAL TEMPORARY TABLE table_name ...
INSERTしたデータはそのセッションからしか見えず、セッションが終わればそのデータが消えます。
MSSQL だと表名に@をつけるだったかな。こっちは実行時にアロケーションします。
CREATE TABLE @table_name ...
表自体がセッション内でのみ有効でセッションが終われば表ごと消えます。
649644:05/03/02 07:12:31 ID:SXcU4gI8
>647、648
色々とご助言ありがとうございます。
しかし私はOracleビギナー中のビギナーなもんで
まったく理解できません。
できれば例文でSQLをご教授いただければと思います。
わがまま言ってすいません
650NAME IS NULL:05/03/02 08:47:19 ID:6sCbSKMl
ライムワイヤー関係のスレ教えてください

651NAME 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で結合してくださいね。
652NAME 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のデータは消去される。
653NAME IS NULL:05/03/02 11:34:52 ID:???
誰かビューについて教えて下さいー。
複雑なSQLがあったとして、そのSQLを元にビューを作成したとします。
この場合、ビューを参照した時というのは、裏で作成元となったSQLが参照する度に実行されていて、
実行結果を得る時間は、ビューの作成元となったSQLを実行する場合と同じなのでしょうか?
それとも、一度ビューを作成すれば、Oracleが裏で何かしてくれていて、毎回ビューの作成元となった
SQLを実行するよりも、実行結果を早く得る事が出来るのでしょうか?

私は、ビューというのは見せたくないカラム等を隠すための、セキュリティ的な意義しかないと思っていたのですが、
先日会社の先輩が、ビューを作れば、ビューの作成元となったSQLを実行するより早く実行結果を得られると言っていたので・・・.
一応、Oracleのオンラインドキュメントには目を通したのですが、ビューについてはセキュリティ的な意義しか
書いてありませんでした。
どなたか知ってたら教えて下さい。お願いします。
654NAME IS NULL:05/03/02 11:53:02 ID:???
>>644 - >>652
移動してるようなので誘導しときます。 SQL質疑応答スレ Part 2
http://pc5.2ch.net/test/read.cgi/db/1103113155/256-
655NAME IS NULL:05/03/02 12:09:09 ID:???
>>653
あなたが正しい。ストアドプロシージャとちがって速度的なメリットはありません。
ただそういう特別な機能をもったViewを実装したDBMSがないとは言い切れませんけどね。
656NAME IS NULL:05/03/02 14:46:24 ID:???
実行する分にはViewを使うかどうかは関係ないだろうけど、
View作成時にその「複雑なSQL」はパース済みと考えると
その分だけ速くなったりしないかな?
検証したことないけどさー。

それと、俺はテーブルを結合させるようなSQLは、けっこうViewに
しちゃうけどな。
657NAME 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が事前にパースされない理由です。
658NAME IS NULL:05/03/02 23:14:42 ID:???
>>657
その理由は、プランナが実行計画を出せない理由であって
パースできない理由ではないかと。
とはいうもののPREPAREでもプランナまでもって行くようだから
パースとプランナって1セットで分離できない、もしくは
分離して中間コードのようなもので置いてもさほど速度的には
意味をなさないのかな。
659sage:05/03/02 23:49:33 ID:fYfnGZO2
PostgreSQLでデータ型に1byte符号なし整数を使うには
どうしたらいいのでしょうか?
660NAME IS NULL:05/03/02 23:50:39 ID:???
すみません…
661NAME IS NULL:05/03/03 00:10:50 ID:???
>>659
1バイト整数ってなかったと思うよ。
どうしてもというのなら
char(1)で定義して、chr()で挿入、ascii()で抽出すれば。
662NAME IS NULL:05/03/03 00:18:31 ID:???
大は小をかねるでsmallintが無難。
663659:05/03/03 00:21:32 ID:???
>>661
ありがとうございます。
やっぱりそれしかないですかね。でも、ちょっと面倒ですね。
PostgreSQLを使う場合、こういうのはケチケチせずに
SMALLINTを使うものなんでしょうか?
あと、0〜65535の数値を取りたい場合も、素直にINTEGER
使った方が楽ですかね?
664659:05/03/03 00:53:46 ID:???
>>662
どうもです。
PostgreSQLを使ってる人って、その辺大らかなんですかね
(そうならざるを得ない)?
PostgreSQLを今日初めて触ってみて(といっても他のも殆ど
使ったことのない初心者なんですが)、データ型が少ないのに
愕然としたんですが。
665NAME IS NULL:05/03/03 01:03:00 ID:???
Postgresは多いほうだと思いますけどね。
Oracleはかなり少ないです。aliasでごまかされるけど実態はほとんど
numberだしなぁ。
666659:05/03/03 01:10:55 ID:???
>>665
なるほど。
自分、実務経験ないんですが、そんなに必死にデータ容量を
小さく抑えようとする必要は無いものなんですかね?実際問題として。
667NAME IS NULL:05/03/03 01:14:02 ID:???
別スレでSQL鯖にはinterval型が無いとあったし、
point型やbox型(中身は配列型か)なんかもあるし多いほうじゃないの?
あとは3次元座標とその関数が揃ってればよかったんだけね。
まぁ、作って登録すればいいのだろうけど。

実装上、SMALLINTを使うよりINTEGERを使ったほうが高速じゃなかったかな。
668659:05/03/03 01:40:42 ID:???
>>667 色々勉強になります。
これから、いろいろ試してみて、また質問させて
いただきたいと思いますので、みなさんよろしくです。
669NAME IS NULL:05/03/03 12:16:51 ID:???
>>658
正確ですね。パースをパース+プランニングの意味で使ってます。
パースの部分をパースフェーズとでも読み替えてくださいませ。
おっしゃるとおりプランニングと比べて純粋なパース処理はきわめて軽微です。
670INTER:05/03/03 14:25:55 ID:HVLlIiUk
InterBase技術者いますか?
InterBase6.0 ON NT5.0SP2+JBuilderでアプリを作っているんですが
アプリもDBも正常に動作しています。
が、gdbファイルの更新日付が変わらないのです。
もちろんデータは日々COMMITされています。
このような事象を見たことはありますか?
よろしくお願いします。
671INTER:05/03/03 14:30:33 ID:HVLlIiUk
>>670の記事間違えました。
Win2000SP2でした。

誰か助けて...
672NAME IS NULL:05/03/03 15:49:14 ID:???
>>670
InterBase というよりも、Winodws の特徴じゃね?
Windows は、メモリへのファイルマッピングを使ってメモリアクセスで内容を変更しても、意図的に
変えるとかファイルサイズ自体か変わらない限り日付が変わらなかったような気がする。
メモリマッピング中は仮想記憶のページングアクセスとまったく同じ原理で動いてるからね。
条件もあるんだろうけど、それでアクセスしてるんじゃないの?
書き込みがあっても空きページを再使用してればサイズは変わらないし。
673INTER:05/03/03 16:09:44 ID:HVLlIiUk
>>672さん
ありがとうございます。参考になります。
明示的にCOMMITを発行すればメモリマッピング(?)
からファイルに反映されるのでしょうか?
メモリマッピングとはファイルに反映されずメモリ内で
データを保有すると解釈しましたがあってますでしょうか。
674NAME IS NULL:05/03/03 17:50:19 ID:???
通常のファイルIOとはまったく違う方法で読み書きするので、
アクセス日時といった情報が更新されないってことじゃないかな。
MSDNがあったらCreateFileMappingやMapViewOfFileExを参照しよう。
675NAME IS NULL:05/03/03 23:13:39 ID:A6askjLe
初心者で申し訳ないです。
ACCESS2003で以下のテーブルを作りました。簡略に
(基本テーブル)
コード
商品名
(○月テーブル)
コード
商品名
使用量
(△月テーブル)
コード
商品名
使用量

など月々の使用量のテーブルがあります。リレーションでコードを結びつけ、
クエリでその月々ごとに使用頻度が高い順に並べ替えたいのですが、
どうすればよいでしょうか?
初心者すぎて申し訳ないです。
どなたかご教授よろしくお願いします。
676NAME IS NULL:05/03/03 23:22:13 ID:PuIAYj8U
ttp://sexy.hame-hame.net/?DEBF

このサイトに偶然たどり着いて
クリックしたら
契約が完了したというメッセージとともに
自分のリモートホストやらが出てきて
46000円払えとぬかしやがった
677NAME IS NULL:05/03/03 23:23:17 ID:PuIAYj8U
なんで俺のリモートホスト
が分かったんだ

ほっといて大丈夫かな
678NAME IS NULL:05/03/04 00:23:20 ID:5FwP+Ow1
こちらは、××警察サイバー犯罪対策本部です。

警察が個々の契約の有効性について判断を下すことはできませんが、
契約の意思が無かったものについて安易に応じないよう注意して下さい。

最近、クリックしただけで登録し課金するサイト(いわゆるワンクリック料金請求)の
ご相談が増えていますが、電子契約法(電子消費者契約及び
電子承諾通知に関する民法の特例に関する法律)という法律では、
サイト側は、消費者に対して申し込み内容を再度確認させるための
画面を用意する必要があるので、このような確認措置が無いような場合は、
その申し込みは無効を主張することができるとしています。

また、このようなサイトではアクセス元のIPアドレスやリモートホストから
プロバイダに契約者情報を問い合わせ、利用料金を請求すると
書いてありますが、普通のホームページ閲覧で、サイト側は
IPアドレスとリモートホストを知ることができる仕組みになっており、
特別なものではありません。

契約の有効性について不安でしたら、
消費生活センターなどにご相談することをお勧めします。

最近増加している架空請求については、
以下の3点に留意するようお願いしています。
(1) 基本的には無視する。電話などで直接催促があれば、
  「 利用していないので払う気はない」と毅然と伝える。
(2) こちらから相手に連絡を取らない。
(3) こちらの個人情報(住所・氏名・勤務先・電話番号等)を教えない。

今後とも警察へのご理解とご協力をお願いします。
679NAME IS NULL:05/03/04 11:14:04 ID:???
リモートホストがわかってできることはアク禁くらいだね〜
せいぜいプロバイダを特定できる程度。個人を特定できるなら
2chだってもっとましな掲示板になってるよ〜
680NAME IS NULL:05/03/04 11:35:37 ID:???
>>675
その構造なら基本テーブルもリレーションもいらない気がする。
select コード,商品名,使用量 from ○月テーブル order by 使用量
月ごとに別のテーブルを作ってるから月が増えるたびにテーブルと
クエリーを増やす必要がある。
月またがりでなにか処理したいならこんなテーブルにしたらよい。
使用量テーブル コード、年月、使用量 KEY=(コード、年月)
681NAME IS NULL:05/03/07 20:21:40 ID:nZExOy0G
680さん
ありがとうございます。
助かりました。

たびたび質問で申し訳ないのですが、
基本テーブルに種類も分類してて、
それぞれの月テーブルの使用量を合計し、
種類別に使用頻度高い順をだしたい場合は
どうすればよいでしょう?
初心者には難しすぎて…。
682tokyufubai:05/03/07 20:45:32 ID:3fJ8oh6R
データベースで使われるメタデータ(metadata) とは、データの属性、意味、
 内容、格納場所など、データを管理するための情報のことをいいます。
http://www.geocities.com/tokyufubai/
683NAME IS NULL:05/03/09 12:27:21 ID:yTLZbjHw
MSSQLServerにて

where (a,b) in ((c,d),(e,f))

の様な抽出条件が通らんのですが、
タイプミスかサポート外か解んねであります。
684NAME IS NULL:05/03/09 12:34:23 ID:???
MSSQLは使ったこと無いけど、普通は
where
a in (c,d) and
b in (e,f)
じゃね?
やりたいのがandかorかわからないけど。
685NAME IS NULL:05/03/09 13:10:33 ID:???
(a=c and b=d) or (a=e and b=f)
686NAME IS NULL:05/03/09 17:41:05 ID:yL4n2lnv
以下のようなことを「SQL文のみ」で行いたいのですが、
どなたかご教授のほどお願い致します。

下記のような変換前の文字列があるとします。
それを変換後のような形式にしたいのですが可能でしょうか?
■変換前
→2721111千葉県浦安市3-3-3浦安マンション222

■変換後
→2721111333222

要するに数字だけを抜き出したいのですが
できますでしょうか。

REGEXPのような正規表現は使用できないようです、
oracle9iです。

恐れ入りますが、よろしくお願いします。
687NAME IS NULL:05/03/09 21:59:13 ID:???
今日は機嫌がいいから特別だぞ。

decode(項目名 , 2721111千葉県浦安市3-3-3浦安マンション222 , 2721111333222 , …
688NAME IS NULL:05/03/09 23:03:58 ID:???
>686
マルーチイクナイ
>687
ネ申
689NAME IS NULL:05/03/10 12:26:29 ID:???
PoatgreSQLで数値(16バイト)と文字列(固定長・16文字)のフィールドが存在するテーブルがあるとして
100万件程度のなかからSELECTで文字列を検索するのと数値を検索するのではどちらが早いのでしょうか?
(ただし、数値や文字列は重複しています)
690NAME IS NULL:05/03/10 17:04:40 ID:???
数値(16桁 64bit整数のことと解釈するけど)の方が効率はよいのだが、
気にするほど差は出ない。キーとして使いやすいほうを選ぶべき。
691689:05/03/10 20:52:00 ID:???
ありがとうございます。
あるひとつのレコードを特定する際にPostgresが絞り込みやすいようなキーを埋め込むというのは有効でしょうか?

例えば文字列だけのテーブルがあるとして、その文字列から求まるCRCやチェックサムのような数バイトの整数値を持たせておき、
それをインデックス化する事で、いきなり全件検索をさせるよりも効率よくデータの位置を絞り込めるんじゃないかと考えているのですが・・・
692NAME IS NULL:05/03/10 21:56:23 ID:???
>>691
そうすると等号による検索しか出来なくなる。
等号による検索を速くしたければHashインデックスを指定すればいいんじゃない。

で、普通のBtreeインデックスでも文字列カラムの検索が出来るんだし、
何故、「いきなり全件検索」させるのかワカランな。
693NAME IS NULL:05/03/10 22:24:24 ID:???
クエリー付のurlのように極端に長い文字列をキーにする場合はありかもしれないですね。
B-Treeしかサポートしてない処理系やキーの最大長の制限に引っかかる処理系もありますから。
それほど長くない文字列なら普通にB-Tree索引で十分。
694NAME IS NULL:05/03/11 06:54:58 ID:Sz5lvXPs
たすけてくださいorz

IMEのじしょがばぐかなにかでじしょがつかえなくなり、へんかんひりつからへんかんがしやすくなるしすてむが、
つかえなくなったので、きのうなにもかんがえずにIMEのふぁぃるをふぉるだごとけしてしまいました。

おかげでへんかんがまったくできなくなりましたorz

IMEでいまできるのは、

はんかくへいすう1234567890、ぜんかくえいすう1234567890、ひらがなのみです。。。あときーぼーどにかいてあるきごう。

もとのじょうたいというか、ぱそこんせっとあっぷじのじょうたいにしたいのですがなにかいいあんはありませんでしょうか?; ;
ちなみに、せーふもーどはこのぱそこんはふるくてがたがきてるおかげでなぜかできません。
ぱそこんのふぉーまっとはおかねが------(`A')。
695NAME IS NULL:05/03/11 15:03:57 ID:vBRqYSQS
受験者名とテストの点数が入力されているテーブルから、
テストの点数上位10人の名前を出力させたいときは、
どのようなSQL文を書けばよいのでしょうか?
696NAME IS NULL:05/03/11 16:17:13 ID:???
select 受験者名 from テーブル名
where rownum <= 10
order by テストの点数
697NAME IS NULL:05/03/11 16:23:25 ID:???
order by テストの点数 descだった
698689:05/03/11 17:10:19 ID:???
>>692-693 レスありがとうございます。
検索対象の文字列は日本語で最大64文字程度なのですが、
漠然と数値の方が効率よくインデックス化出来るような気がして、
文字列のCRCコードを使おうかと考えていました・・・単なる誤解のようでした。

まずは、素直にBTree又はhashインデックスを作成してみてパフォーマンスをチェックしてみようと思います。
ありがとうございました
699NAME IS NULL:05/03/11 21:08:04 ID:???
>>696
10件取得した後に点数順に並べ替えているように見えるのは気のせいか
700NAME 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
を追加。
701NAME 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
)
702700: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を順番に並べれる。
703701:05/03/12 00:41:12 ID:???
あースマン、rownumはOracle8i以降限定みたい。
ACCESSだとTOPが同じ役割…らしい。

あと、順位はWHERE T2.点数>=T1.点数じゃなくて
WHERE T2.点数>T1.点数にしてあとで1を足すべきでは。
(でないと2位が3人いたら全員4位になってしまう)
704700:05/03/12 01:05:04 ID:???
>>703
あぅ、そでした。orz
705NAME IS NULL:05/03/13 04:29:37 ID:???
試験でデーターベースを扱った問題が出題されるので、学習しときたいんですけど、

ソフトを使って勉強するのが良いのでしょうか??
706NAME IS NULL:05/03/13 04:37:59 ID:???
ベクターへ物色に行ってきます。。
707ё:05/03/15 10:27:14 ID:Dg+3N2rz
仮想メモリ 推奨値は189MBなんですが 不足やら最小値が低いと言われ動作不良です いくつまで上げてもOKでしょうか? 今400MBにしてもイマイチです(アセ
708NAME 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 となっております。
711NAME IS NULL:05/03/15 14:48:53 ID:???
メモリ買いに行け。
712NAME IS NULL:05/03/15 16:21:10 ID:???
ものすごく板違いかもしれんが…
スキャナー等で読み込んだ画像データの文字部を
テキストデータに変換してくれるようなツールないすか?
つまり、
 ・紙の文書を画像で取り込む
 ・ツールでテキストデータ化
 ・文字をワードで編集し、再利用ウマー
みたいなの
713ё:05/03/15 16:33:59 ID:Dg+3N2rz
メモリ増設ですね 有難うございました。
714NAME IS NULL:05/03/15 17:51:26 ID:???
>>712
ものすごく板違いだがOCRで検索してみれ。
ていうかスキャナー買ったらトライアル版だかが付いてないのか?
715NAME IS NULL:05/03/16 00:28:10 ID:???
>>714
読み取り革命てのがありますた。
おおきに
716NAME IS NULL:05/03/16 00:44:52 ID:ez0OXhUB
質問です。タグとか誰かご存じありませんか?板違ってたら謝謝
717NAME IS NULL:05/03/16 17:38:09 ID:???
>板違ってたら謝謝
何のタグかによる。赤札特化5割引のタグなら板違い。
jstlのdatabaseタグなら範囲内。
718NAME IS NULL:05/03/16 19:30:14 ID:ez0OXhUB
タグ知識全然ありません(>A<)アフ <form><textarea></form> こんな感じ?何か情報あればお願いします・‥土下座
719NAME IS NULL:05/03/16 21:24:59 ID:???
>>718
HTMLか? あわせ技で使われることはよくあるが、とにかく板違いだ。
web制作板でも行くがよろし。
720NAME IS NULL:05/03/16 22:36:23 ID:ez0OXhUB
ありがとうございますm(゚゚)m 逝って来ます
721NAME IS NULL:05/03/17 01:39:05 ID:???
ネタのつもりだろうが全く面白くない
722NAME IS NULL:05/03/17 12:28:57 ID:HZq3jAhn
ウイルス作成依頼
723NAME IS NULL:05/03/17 23:13:10 ID:lU8YPFMX
win2000でレジストリからipaddressって何処探すの?
9x系とは違うんですよね?
DLLとかから取得した方がいいんですか??
おせーて
724NAME IS NULL:05/03/18 01:17:38 ID:gjacGokd
もしかしたらくだらないかもしれない質問で恐縮なんですけど

Windowsのおまけで、Charmap(文字コード表)ってのがありますよね。
あれの「データ部分だけ」って、どこかで手に入りますか?
txtでもcsvでもxlsでもmdbでもaprでも、とにかくデータとして
使える形をしていれば何でもいいんですけど
725NAME IS NULL:05/03/18 08:17:26 ID:???
作れよ
726NAME IS NULL:05/03/18 11:43:34 ID:???
>>723-724
板違い
727NAME IS NULL:05/03/18 16:26:03 ID:U7Jp/A1S
728NAME IS NULL:05/03/19 22:25:57 ID:8EZN6kdj
http://game10.2ch.net/test/read.cgi/poke/1111068032/l50
2ch使用料とありますが、これは本当なのでしょうか?
729NAME IS NULL:05/03/19 22:44:16 ID:???
>>728
fusianasanは試したのか?
730NAME IS NULL:2005/03/23(水) 15:13:16 ID:bpgAlkh7
データベースエンジン側で一意の値を自動的に入れてくれるような機能ってありますか?
rowidを使おうと思ったら、今使おうとしているエンジンではrowidが出てこないので...
731U ◆CZtFsGiu0c :2005/03/23(水) 18:49:11 ID:???
>>730
そこまで書いておいて何を使ってるのか書かないのはなぜ?
732NAME IS NULL:2005/03/23(水) 23:41:39 ID:K1+AZ7nn
AUTOINCREMENTで一意に判別しよう
733730: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
734NAME 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読み込みますか?
737730:2005/03/24(木) 13:31:49 ID:/NMlCCoL
>>733
すみません。「単純にシーケンスを使う」ということが
どういうことなのかわかりません。汗
教えていただけませんでしょうか。m(_ _)m
738NAME IS NULL:2005/03/24(木) 15:14:26 ID:???
>>735
1000で割れ
739NAME IS NULL:2005/03/24(木) 15:17:13 ID:???
ちがった、100で割れ
740超初心者:2005/03/24(木) 15:20:14 ID:nqjgAjzD
>>739
有難うございました。
助かりました。
741NAME IS NULL:2005/03/24(木) 17:31:36 ID:nqjgAjzD
2つのテーブルを単に結合させることってできないんですか。
宜しくお願い致します。
742NAME IS NULL:2005/03/24(木) 18:16:37 ID:???
>741
UNION ALL のことか?
743U ◆CZtFsGiu0c :2005/03/25(金) 12:30:41 ID:???
>>737
Oracle準拠ならSEQUENCEがサポートされているのではないですか?
CREATE SEQUENCEでシーケンス作って、INSERT時に該当するカラムの値として
シーケンス名.nextvalとしてやればよいのだが。とりあえず、Oracle シーケンス
で検索してみて、使ってるDBMSでシーケンスをサポートしているかどうか確認して
みてはどうですか。
744NAME 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, '鈴木');

作ってみた。シーケンスだと番号の再利用が難しいね。
745NAME 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だけで書いても上記のような事を実装する事は可能でしょうか?
できれば例も書いていただけると助かります。

どうぞよろしくお願いします。
746NAME IS NULL:2005/03/25(金) 19:49:59 ID:gVDgIkMl
Oracle JDBC Driver 10.1.0 ドライバで、preparedStatement 使うとエラーが発生します。
どうも日本語文字を入れようとしているのが問題みたいなのですが。
同じような経験した人います?
747NAME IS NULL:2005/03/25(金) 20:49:39 ID:???
>>744
空き番号を探すコストやマルチで処理することを考えると再利用は避けたいのだけど、
顧客からそういう要望はよくあるんだよね。素直にシーケンス使えば簡単なのに。
748NAME IS NULL:2005/03/26(土) 10:25:18 ID:???
これからデータベースの勉強をしたいのですが、
データベースを構築するにはOSはwindows2000server
などじゃないとだめなんでしょうか?
749NAME IS NULL:2005/03/26(土) 11:11:45 ID:???
いや、Windows2000 Server じゃなくても別にかまわない。
Windows2003 Serverでも良い。
NetBSDでも良いし、Solarisでも良い。
MacOS X Server だってかまわない。
750NAME IS NULL:2005/03/26(土) 12:33:20 ID:???
Windows95にAccessでもいい?
751NAME IS NULL:2005/03/26(土) 12:59:38 ID:???
AccessのSQLは方言がきついからあまりお勧めできない。
752NAME IS NULL:2005/03/27(日) 18:35:09 ID:???
ServerOSとXPなどのOSはなにが違うのでしょうか?
SQLServerの勉強をしたいのですがXPProでは無理なんでしょうか?
753NAME 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でも動作可能です。
754NAME IS NULL:2005/03/28(月) 09:36:10 ID:???
>752
>ServerOSとXPなどのOSはなにが違うのでしょうか?
ライセンス
>SQLServerの勉強をしたいのですがXPProでは無理なんでしょうか?
全く問題ない。

>748は質問の書き方が問題。
755NAME 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;)
といったような同一のレコードから複数の値を取得したい場合、簡潔に書く方法はありますでしょうか?
756NAME IS NULL:2005/03/29(火) 17:31:03 ID:???
select @A=A,@B=B,@C=C from TBL1 where ID=1
757755:2005/03/29(火) 17:42:31 ID:???
>>756
即レスありがとうございます
758NAME IS NULL:2005/03/30(水) 09:00:31 ID:XG0PxlMt
Accessについて質問です。
2つのフィールドのうち、それぞれのフィールド・データは重複しても良いが、
2つのフィールドのデータで重複があったときにエラー・メッセージを出すように
するにはどうしたらよいでしょうか?
例えば住所録で、名前は漢字も含めて同姓同名がいる場合があるので、名前フィールドの
レコードは重複OK、住所も同じ番地に二家族がいる場合があるので住所フィールドの
レコードも重複OK、しかし、名前と住所が同じ場合は、同じ人のデータをふたつ登録
してしまうことになるのでエラー、みたいな感じです。

初心者なものですみません。よろしくお願いします。
Access 2000、Windows 2000使用です。
759NAME 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)
)
760NAME IS NULL:2005/03/30(水) 10:42:15 ID:???
>>758
普通は>>759だけど(accessで出来るかは自分も知らない)
質問そのものに対する回答ということであれば
二つのフィールドを結合させて比較。
名前||住所(accessだと名前&住所、だっけ?)みたいに
761NAME 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
762NAME IS NULL:2005/03/30(水) 11:21:21 ID:???
>761
変わる。
詳しいことは、SQL Tuningの84ページから107ページに書いてある。
Author: Dan Tow
ISBN 0-596-00573-3
763NAME IS NULL:2005/03/30(水) 11:25:57 ID:E+bsGd0v
マスタテーブルのレコード数が増えてきた時の管理方法について悩んでいます。
件数が少ないうちは良いんですが、増えてくると以下の問題が考えられると思っています。

・件数が増えすぎて入力時に探す時間がかかる
・該当項目が無かったので「その他」と入力したが、実は見落としていて存在する項目だった

大規模なDB管理者は、このような悩みはお持ちではないのでしょうか?
764761:2005/03/30(水) 11:42:02 ID:dC7LP9EH
ありがとうございます。
ページと宣言した私もあれなのですが、
手元に書物類が無いため調べる事が出来ません。

もし、ダイレクトに記述されているURLとかありましたら
お教えくださいませ。
最終的に○○、△△の単語でぐぐれでもかまいません。
自分の力では探せれませんでしたorz
765NAME IS NULL:2005/03/30(水) 12:19:39 ID:???
>761
キーワードは駆動表
順序が影響するのはRBOの場合。 CBOではOracleが適当に決めてくれる。
ttp://www.oracle-base.com/articles/Misc/EfficientSQLStatements.php
766761:2005/03/30(水) 12:29:47 ID:???
>>765
ありがとうございます。勉強してみます。
767NAME IS NULL:2005/03/30(水) 12:54:33 ID:???
>>763
普通はID入力欄で右クリックしたりESCを押したりすると
マスタ検索用のちっこい画面が出てくるようにつくる
768NAME IS NULL:皇紀2665/04/01(金) 06:54:14 ID:???
>>765
from句の記述順序で駆動表が変わる処理系は知っているが、
where句の記述で駆動表が変わる処理系ってあるかな?
769NAME IS NULL:皇紀2665/04/01(金) 16:25:39 ID:???
(,,゚Д゚)∩先生質問です

DBでピンポンってよく出てくるけど何のことなんですか?
770質問:皇紀2665/04/01(金) 19:16:49 ID:xJl2Q7lG
PostgreSQLにて

SQL文を実行し、そのまま前のデータを残して、ある文字を後ろに付け加えるにはどのような文章をSQL文を書いたらよいですか?

例えば

秩父
高崎
前橋
熊谷

と言うデータがならんでいて
更新後に

秩父市
高崎市
前橋市
熊谷市

というような感じのデータに書き換えるにはどんなSQL文を書いたらよいですか?
771NAME IS NULL:皇紀2665/04/01(金) 20:57:42 ID:???
>>770
SELECT city || '市' FROM ....
772NAME 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文に加える文を教えてください。
774NAME IS NULL:2005/04/04(月) 14:42:09 ID:???
not like
775NAME IS NULL:2005/04/04(月) 17:00:45 ID:???
email のカラム名は何にしているんだろうね
776NAME 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 降順的に筆頭の行

おながいします。
777776:2005/04/04(月) 19:01:25 ID:???
列と行がごっちゃになってます…後半部分、正しくは

select したいのは以下の条件のいずれかを満たす row の date 降順 limit 0, 15
1)vnc が -1 で、他の行の vnc のがその行の id を指し示さない row
2)vnc が 0 以上で、同じ値を示すグループの中で date 降順的に筆頭の row
778NAME 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専用っぽいので付けてない。
779777:2005/04/04(月) 20:49:15 ID:???
>> 778
すげぇ!
この2つの SQL statement の結果を合わせて、date 降順に並べ替えるのはどうすればいいんですか?
780NAME IS NULL:2005/04/04(月) 21:08:45 ID:DcDa0Zng
超初心者の質問ですみません
SQLserverを使用したERPシステムのデータテーブルを
アクセスのDBにリンクさせてデータを操作することは可能ですか?

781NAME IS NULL:2005/04/04(月) 21:21:19 ID:???
>>780
ERPのマニュアルを調べるか販売元に問い合わせるべき。
テーブルはのぞけるかもしれないが使うべきではない。
782NAME 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と同じ番号をセットするだけでシンプルになると思うよ。
783NAME IS NULL:2005/04/04(月) 21:30:32 ID:DcDa0Zng
>>780
使うべきではないというのは主にどのような理由ですか?
現在はシステムの機能でデータをDLして(エクセルファイル)それを加工して
からアクセスにimportしています。
毎回DLするのが結構めんどくさいのでテーブルのリンク
のような感じで使用できたらと思ったのですが。。。
784NAME IS NULL:2005/04/04(月) 21:31:15 ID:DcDa0Zng
>>781
でした。すいません。
785NAME 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の間に入れたい場合もどのように記述したらよいでしょうか?
786785:2005/04/04(月) 22:23:36 ID:???
すみません二個以上にスペースは省かれてしまうのですね。
見にくいですがnameがabcd ageが10.15.16.17となっています
787779:2005/04/04(月) 22:33:27 ID:???
>>782
ありがとうございました。
相談した相手が違う値を入れた方が、後でトラブルが少なそう、って言われたんですけど、
考え直してみます。
788NAME IS NULL:2005/04/04(月) 22:42:50 ID:???
>一番上に持っていく
こういう考え方は良くない。

SELECTで取り出す順序を変えるのなら、ORDER BY
789785:2005/04/04(月) 23:37:51 ID:???
>>788
ご指導ありがとうございます。

掲示板を作成していてレスがついたら上にくるようにしようと思っています。
当初考えていたのは一番下から10行の親記事を表示しようと思っていたのですが、
順番がかえられないとなると、表示する順番用のフィールドを作り、表示する際は
全レコードを読み込んで表示順用のフィールドから数字が大きいもの10個を表示する
というような方法しか思いつきません。
 うまく説明できなくて申し訳ないのですが、参考になるページ等ありましたら教えてください。
790U ◆CZtFsGiu0c :2005/04/05(火) 13:09:25 ID:???
>>789
勘違いしているようだけど、原則としてRDBMSでレコードが実際にテーブルに
格納される順序は指定できない。もし特定の順序で取り出したかったら788
の通り、SELECT文でORDER BYを指定する。785の例であれば、

ORDER BY ID DESC

と指定して取得し、最初の10件だけ表示するようにすればいい。
791NAME IS NULL:2005/04/05(火) 15:05:31 ID:???
>>790
ORDER BY ID DESC これでぐぐったらわかりました。
お手数かけました。ありがとうございます。
792NAME IS NULL:2005/04/05(火) 19:35:52 ID:o1ZD/MjR
質問ですが、ソフトウエア会社等に、アクセスで作ってもらってPCに入れてもらったものがあるのですが、追加でもう一台のPCでも出来るようにコピーしてで来るものなのでしょうか?お願いいたします。
793NAME IS NULL:2005/04/06(水) 16:20:16 ID:???
>>792
作った会社に聞いてくれ、としか言いようが無い
794NAME IS NULL:2005/04/06(水) 19:30:10 ID:???
>>792
ライセンス違反
795NAME IS NULL:2005/04/07(木) 01:14:02 ID:???
OfficeのDeveloperがもしあるなら融通が利かない部分もあるけど
Accessランタイムってのは?
ttp://www.naboki.net/access/heaven/heaven_01.html
796NAME IS NULL:2005/04/07(木) 02:41:15 ID:1VNDdRCB
selectで出た結果の文字列を一定の長さで切り落とすような
方法は無いものでしょうか。

例えば、aというフィールドに「あいうえお」という文字列が入っている場合、
select a from table;
でa内の「あいうえお」を「あいう」までにしたい場合をご教示いただきたく
思っております。

宜しくお願いいたします。
797NAME IS NULL:2005/04/07(木) 07:33:24 ID:???
>>796
SELECT substring(a from 1 for 3) FROM table;
798NAME IS NULL:2005/04/07(木) 15:39:45 ID:???
>>797
本気で有難うございます!
799NAME IS NULL:2005/04/07(木) 21:27:28 ID:TsyIacKU
1レコードが400バイトを超えるレコードをSelectすると、4000バイトまでの出力結果しか得られません。
4000バイト以降のデータを取得する方法をお教えください。
Oracle 8.1.7 になります。
800NAME IS NULL:2005/04/07(木) 23:40:18 ID:???
>>799
SQL*Plusの話ですか?クライアントの環境も教えてくださいね。
801NAME IS NULL:2005/04/08(金) 09:43:26 ID:qWU4ovur
すみません。 SQL*Plus でのことです。
また質問内容にタイプミスがありましたので、訂正いたします。
冒頭の「1レコードが400バイトを超える」部分は、「1レコードが4000バイトを超える」です。
'0'が1つ足りませんでした。
よろしくお願いいたします。
802NAME IS NULL:2005/04/08(金) 18:49:48 ID:???
>>801
set linesize (1行に表示させる文字数);
803NAME IS NULL:2005/04/09(土) 00:37:33 ID:???
テーブル設計書って表の説明やカラムの説明が書かれている
ものだと思っているんですが、加えてER図も無ければ
ちゃんとしたテーブル設計書っていわんのかな。

お客さんに、テーブル設計書にER図が無いので書いてくださいと
言われてしまったYO。
ER図書きたくないのなら、納品物の確認でER図は
含みませんって断るのが普通?

泣くところですか?
自分がヘタレなだけですか?
804NAME IS NULL:2005/04/09(土) 01:14:42 ID:???
>>803
オマイが言うテーブル設計書というのは、「テーブル定義書」のことだろ。
テーブル設計書と言われると、テーブル定義書やER図やインデックス仕様書などを含むと漏れは連想するなぁ・・・

ていうかER図くらい描けよ!
(#゚Д゚)ゴルァ!!

ER図はテーブルとの相関関係を知る上で重要なものだし、
既にオマイの頭の中にER図が出来てるなら簡単に作成できるだろうが。

というかER図を書かないでよくテーブル定義書を書けるよな。
805NAME IS NULL:2005/04/09(土) 01:42:28 ID:???
>>804
テーブル定義書なしでER図だけ納品されるよりはましだけど。
それもすでに作ってしまったテーブルからツールを使って逆生成しただけの
ERもどきだったりする。
806803:2005/04/09(土) 08:49:08 ID:???
>>804,805
レスありがとう。

>既にオマイの頭の中にER図が出来てるなら簡単に作成できるだろうが。 
そうなんだけど、他の仕事もあるし。。。

>というかER図を書かないでよくテーブル定義書を書けるよな。 
フリーのツールで吐き出して、カラムのコメントだけ入れた。


とりあえず漏れがヘタレだったって事ですね。
ObjectBrowserでサクッと書くかな。
807NAME IS NULL:2005/04/09(土) 09:52:33 ID:???
>>783
アクセスはデフォルトでは結果セットを変更可能な状態で開こうとする。
そこで不用意にデータをいじってしまって事故になる可能性はある。
あと、システムが予期していないロックを保持し続けて
システムの動作を邪魔してしまうかもしれない。

レポート用のストアドがあればそれを叩くようにすれば比較的安全になるかも。
絶対ではないけどね。
808NAME 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です。
809NAME IS NULL:2005/04/10(日) 05:09:41 ID:???
table_aを設計した人を呼び出して
鼻血が出るまで殴るというのはどうだろう
810NAME 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`)
811NAME 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;
812NAME 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
813NAME IS NULL:2005/04/10(日) 09:05:55 ID:???
814NAME IS NULL:2005/04/10(日) 09:19:22 ID:???
815NAME IS NULL:2005/04/10(日) 09:25:53 ID:???
816NAME IS NULL:2005/04/10(日) 09:31:24 ID:???
817NAME IS NULL:2005/04/10(日) 09:54:56 ID:???
818NAME IS NULL:2005/04/10(日) 10:09:05 ID:???
819NAME IS NULL:2005/04/13(水) 11:04:01 ID:???
すいませんDBの勉強するなら
「PostgreSQL」と「MySQL」のどっちが良いのでしょうか?
820NAME IS NULL:2005/04/13(水) 11:21:47 ID:???
MySQL やるなら 4.1 は日本語関係がバギーなので 4.0 を。
個人的には PostgreSQL 8.0.2 を勧める。
821NAME IS NULL:2005/04/13(水) 11:35:33 ID:???
>>820
どうもありがとう。
さっそく調べてみます。
822NAME IS NULL:2005/04/14(木) 15:31:18 ID:5K9aESos
whereで絞り込んだ件数が23件だった場合、20件に切り落と
したいのですが、timestampを見て古いもの3件をdeleteする
ようなSQLを書きたいのですがどうも思い浮かびません。

ご教示いただけますと幸いです。
823NAME IS NULL:2005/04/14(木) 15:45:54 ID:???
>>822
20件固定なら
SELECT TOP 20 〜
824NAME IS NULL:2005/04/14(木) 16:26:35 ID:???
>>823
説明下手ですみません。
20件固定で常にデータを保持していたいということなのですが、
PostgreSQLではなにか方法がございますでしょうか。
825NAME 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する意味ってあるんだろうか?
残しときゃいいじゃん、勿体無い。
826NAME 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));

書いてて冗長な気がする。もうちょっと短くなるかな?
827NAME IS NULL:2005/04/14(木) 22:30:25 ID:odModjzd
みんなこれをおかずにして
(・∀・)つttp://www.ne.jp/asahi/web/ichihara/
828825: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))
829NAME IS NULL:2005/04/15(金) 09:48:32 ID:5K0FDFV5
特に処理速度が求められない状況でのQuery発行についての質問があります。
保守面を考えると、テーブルを結合して長ーいSQL文書いて一度のQuery発行でデータを取得するのより、
複数に分けてばらばらにデータを取得するほうが良いですか?
830NAME IS NULL:2005/04/15(金) 13:09:01 ID:???
>>829
環境作ってテストしてみたほうがいい
831NAME IS NULL:2005/04/15(金) 13:27:36 ID:???
一度のクエリ発行で取得できるデータなら、適度にビューをネスト
させて構造を整理したうえで一発取得が上策。



…じゃないかと自分は思うんだけど。教えてエロい人。
832& ◆guxGbIieIQ :2005/04/16(土) 19:56:40 ID:sBSCoyrD
833NAME IS NULL:2005/04/17(日) 18:22:26 ID:???
RDBMSについて質問です。
OSはLinuxがはじめてなのでVineLinuxを選び、
勉強がてらDBを構築したいと思っています。利用は自分だけです。
ANSI/ISO SQLの仕様に一番準拠しているRDBMSってなんですか?
ライセンス料は\0がいいです。
834NAME IS NULL:2005/04/17(日) 20:08:31 ID:SKMh7PuW
 
835NAME 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
は意味ないので読み飛ばしてください・・・
838NAME IS NULL:2005/04/17(日) 22:30:15 ID:uNJFXCMd
OracleのDBサーバを作りたいのですが、どのOSがいいか教えてください。
Windows?AIX?Linux?Solaris?

ちなみに今の候補としてはMiracle LinuxかRedhat Linuxを考えてます。
839NAME IS NULL:2005/04/17(日) 23:33:52 ID:???
Oracle10gならLinuxがいい。
MiracleかRedHatが無難。
840833:2005/04/18(月) 00:39:04 ID:yfJ4i9Qw
FireBirdはどうですか?
841NAME IS NULL:2005/04/18(月) 01:58:15 ID:???
>>840
VineにFireBirdの公式パッケージは無かったとおもう。
842NAME IS NULL:2005/04/18(月) 03:32:01 ID:PXlORFGA
>839
レスTHANX。
やっぱりLINUXがいいんですね。
Windowsに10g入れたら、何分かに1回フロッピーチェックをするという
おかしい状態になったので、やめました。
10gのせようと思ってるので、RHELにしようと思います。
843NAME IS NULL:2005/04/18(月) 13:44:22 ID:4k8VMJQi
WinXPを使ってデータベースを立ち上げようと思っています。
立ち上げ方は、何とかわかりました。
そこで、IISを無料でダウンロードできませんか?
NTなら付属されているみたいですが、XPにはないみたいで・・
おねがいします
844NAME IS NULL:2005/04/18(月) 16:27:01 ID:???
>>843
XP Proに付属されている。Pro版にアップグレードすべし。
845NAME IS NULL:2005/04/19(火) 02:00:22 ID:UrW92pgH
timestampで「now()に一番近いデータ」を取り出すやり方って
ございますでしょうか?
846824:2005/04/19(火) 03:27:16 ID:???
>>826様、828様
レス遅くなりすみません。

すばらしいです。勉強になりました。
828様のものを使わせていただきました。
本当に有難うございました。
847NAME IS NULL:2005/04/19(火) 07:28:40 ID:???
>>845
now()以下でmax()
848NAME IS NULL:2005/04/19(火) 10:34:35 ID:hCZOUp6o
テーブル設計でデータ(行)を削除する仕様を決めるとき、
DELETE命令で実際に削除するか、
削除フラグをカラムに含めて、データそのものは削除せず貯め込むかの
どちらか選択すると思いますが、
どっちがベターなんでしょうか?
(データ量とか運用とか考慮せんといかんとは思いますが)
849NAME IS NULL:2005/04/19(火) 11:13:38 ID:???
>>848
最後の1行が答えだと思う
オレはマスタ類はフラグで、それ以外はデータ量に応じてやってる
フラグ立てといてバッチで消すっていうパターンもたまに使う
850NAME IS NULL:2005/04/19(火) 11:32:45 ID:???
>>836
ODBCの設定でパスワードとか入れてないんじゃない?
と、適当にいっていみる。
851NAME IS NULL:2005/04/19(火) 14:56:44 ID:???
エクセルでデータベース作ろうと思っているのですが、
まずどこからはじめたら良いのでしょうか?

作成しようとしているものは販売状況表で後から検索できるものです。
852NAME IS NULL:2005/04/19(火) 15:22:09 ID:???
>>851
板違い

ビジネスsoft
http://pc8.2ch.net/bsoft/
853851:2005/04/19(火) 15:37:55 ID:???
>>852
すみません、ありがとうございます。
854833:2005/04/19(火) 17:38:01 ID:BU3ODWOg
亀レス、すいません。
ttp://sourceforge.net/projects/firebird
ここにいったのですが、ここでOSを選ぶんですよね。
Linuxってのがあるのですが、ディストリビューション
による違いあるのですか?Linuxという区切りしかないようなのですが。

ANSI/ISO SQLの勉強もしたいので、一番準拠しているDBMSってどれなんでしょう。
855NAME IS NULL:2005/04/19(火) 21:49:13 ID:I6SRgg44
 どなたか、教えて下さい
SQLサーバーで、ADO使用(VB6.0)
open後のselect文の実行途中でキャンセルして。
途中まで画面に表示できますか?

 よろしくお願いします。
856NAME IS NULL:2005/04/19(火) 23:17:15 ID:wl1ba11Z
edpってデータベースの一種だと思うのですが
何の略かわかりません、教えてください
857きむ:2005/04/20(水) 11:33:49 ID:lvdW/q3y
Oracleのvarchar2はlongのように動的に領域を拡張するのでしょうか。それとも指定サイズ分の領域を必ず占有してしまうのでしょうか。どうか教えてください。
858NAME IS NULL:2005/04/20(水) 17:54:03 ID:???
>>857
Oracleのvarcharは可変。可変の処理系が多いがFirebirdなど固定のもある。
859NAME IS NULL:2005/04/20(水) 23:37:11 ID:EHx9rP/e
どなたか知ってたら教えてください。
あるテーブル(NUMBERやVARCHAR2型の項目がいくつかある)
にINSERTしようとすると、
WIN2000の場合は正常に登録できるのですが、
WINXPの場合はORA-1401(列に挿入した値が大きすぎる)で
弾かれてしまいます。
とくに桁あふれするようなデータはなさそうなのですが、
気になることといえば、
上記の処理はVBから引数を指定してストアドファンクション
で行っているのですが、ファンクション側の引数にINT型
とかを指定していてそれをNUMBER型の項目に入れています。

860NAME IS NULL:2005/04/21(木) 00:36:57 ID:V0sk5GrL
ベタな質問で申し訳ありません。
Solaris版 Oracle10gで、Pro*COBOLはどこに格納されているのでしょう。
通常のEnterpriseのDevelopment KitではPro*Cしか
インストールされませんでした。
Oracle programmerのライセンスは持っています。
861NAME 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
862NAME IS NULL:2005/04/21(木) 19:47:02 ID:r+WQRtXN
何もわからないド素人です。検索してここにたどり着きました。
web上でデータベース(?)を組みたいのですが、
やりたいことは、このような感じです。

ジャンル 商品名 原価 売値 を入力。
アップすると
お客さん側は ジャンル 商品名 売値が見えて
管理側は ジャンル 商品名 原価 売値 が見えるということを
やりたいのです。
このようなことが出来る無料のCGIを探してみたのですが
なかなか見つからず困っています。

どなたかわかる方いらっしゃいましたらご教示願います。
当方プログラムを全く勉強したことが無く、やったことといえば
無料のCGIをダウンロードし、説明どおりにUPしたことくらいです。
これくらいの知識でも、ここでこんなのをダウンロードしたら
出来るよ、というのがあればお教え願いますか?
863NAME IS NULL:2005/04/21(木) 22:41:40 ID:???
>>862
それもデータベースには違わないがここはデータベース管理システム(DBMS)
やSQLがメインだからWEB関係の板に行ったほうが良くないかい。
864862です: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('');
?>
こんなんですけど
これって データーベース作れってことっすか?
どなたか詳しい方情報お願いします。
難しぃぃ
初心者から早く抜けたい
866NAME IS NULL:2005/04/22(金) 14:03:00 ID:???
>865
まだ、ここで質問するレベルに達していない。
まず、その「-space」とやらのサポートに聞け。
867NAME IS NULL:2005/04/22(金) 15:34:02 ID:???
>>865
データベースサーバ作ってないって事やろ?
PHP+MySQLやろ
データベースサーバーの作成方法は
ググレ
868NAME IS NULL:2005/04/22(金) 22:09:37 ID:???
皆さんDB作る時オプチマイザって何にしてます?
やっぱりちゅーず?
869NAME IS NULL:2005/04/22(金) 22:13:00 ID:UVNhzrAw
868でつ。
ちなみにおらくるでつ。
870NAME IS NULL:2005/04/22(金) 22:21:45 ID:???
>>868
ちゅーずでやるよん
871NAME IS NULL:2005/04/23(土) 00:10:18 ID:???
test
872NAME IS NULL:2005/04/23(土) 00:17:37 ID:???
>870

レスありでつ〜
でやっぱdbmsかなんかで統計情報取ってやるのかしらん?
873NAME IS NULL:2005/04/24(日) 09:26:26 ID:???
全てのフィールドにNOT NULL制約付けとけと言われたのですが
これって意味有るんでしょうか。
not nullって全部に打つのメンドイ。
874NAME 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としているのにユーザ指定が不正とでてくるのでしょうか?
875NAME IS NULL:2005/04/24(日) 10:01:49 ID:aPyqHgnm
>>872
当たり前だろうが
876NAME IS NULL:2005/04/24(日) 14:58:13 ID:???
>>874
マルチはよしなよ。
boyって本当はmysqlというユーザ名かな? だったら当然の話という気がする。


まぁ今頃は自己解決してるか。
877NAME IS NULL:2005/04/24(日) 16:02:56 ID:nrSc9FZA
あの・・・postgresでPL/SQLを使うにはどうしたらいいんでしょうか?
PostgreSQL 8.0をWindowsに入れているのですが。
878877:2005/04/24(日) 16:06:50 ID:nrSc9FZA
追記
何か設定が必要でしょうか?
GOOGLEで調べたけど分からないので、ご教授ください!
879NAME IS NULL:2005/04/24(日) 16:41:05 ID:???
>>877
PL/SQLはOracleのストアドプロシージャ記述言語、
PostgeSQKにストアドプロシージャがあるかという質問なら、
今のところなかった気がするが、最新版はしらんけど。
880NAME IS NULL:2005/04/24(日) 16:54:34 ID:???
>>873
理解せずにNULL使うとトラブルの元だから面倒でもつけたほうが良い。
もちろん意図的にNULLが必要な場合は例外。
ただしOracleの場合は事情があってvarchar/charはNOT NULLにしないことが多い。
881NAME IS NULL:2005/04/24(日) 17:33:43 ID:???
>>879
6.xあたりからPL/pgSQLってのがあるよ
882NAME IS NULL:2005/04/24(日) 17:56:59 ID:???
数値とか日付とかもnot null?
883877: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
になります。
何か設定が必要なのかもしれませんが、分からないのです・・・。
884NAME IS NULL:2005/04/25(月) 02:10:31 ID:???
>>883
PL/pgSQL は、Oracle の PL/SQL と違い、ストアドファンクションとしてのみ使用可能である。

だそうだ。
885納豆バナナスパゲティ ◆4BoWsVXtKI :2005/04/25(月) 18:39:22 ID:???
例に依って某竜玉と勘違いして来た初心者です.
ここはどういったことを扱っているんですか?.
面白そうです
886NAME IS NULL:2005/04/26(火) 15:04:20 ID:???
>>885
以前Palmで使われていたモトローラの組み込み用CPUを扱っている
887NAME IS NULL:2005/04/26(火) 16:25:57 ID:???
DB管理者とかがよく使う
ピンポン
ってなんなんだよ・・・・
888NAME IS NULL:2005/04/27(水) 17:14:20 ID:MsG8U0Yr
シラネ(゚з゚)
889NAME IS NULL:2005/04/27(水) 17:14:57 ID:???
sage忘れてたorz

吊ってくる
890NAME IS NULL:2005/04/27(水) 21:42:18 ID:g57xEUXE
オラクルなんですけど
create procedure でupdate文書きたいんですけど
教えてください
891NAME IS NULL:2005/04/27(水) 21:45:25 ID:???
>>890
create or replace
を使いやがれ
892NAME 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で見当たらず苦労しています。
アドバイスお願いします。
893892:2005/05/04(水) 20:04:07 ID:???
正誤表発見しました。
お騒がせしました
894NAME IS NULL:2005/05/05(木) 03:37:15 ID:???
この!
おっちょこちょいがっ!!
895NAME IS NULL:2005/05/05(木) 17:17:57 ID:???
すげー勢いだな。この(・∀・)スッドレ!
896NAME IS NULL:2005/05/10(火) 19:27:18 ID:pUjImQmO
MS Accessで改行コードを意図したものじゃない場合の旨いやり方は有りますでしょうか。

UNIXで作成した改行コード\nで作成したファイルを
WinxpのAccessでopenステータスを利用して読み込もうとしたのですが、
inputしたデータの改行部が無視されて次の行の分まで含まれていた為
読み込む前に\nを\r\nに変換してしまうか、読込み方法を変更したいのです。
897NAME IS NULL:2005/05/12(木) 03:17:05 ID:???
>>896
VBAのお話ですね。というわけで、板違い。
ftpで転送するときに改行コードの変換をしてみるとか
898NAME IS NULL:2005/05/12(木) 23:00:37 ID:oWFiCYu4
株価を研究するのにずっとエクセルを使ってきたのですが、
もっと多くのデータを扱いたいと重いデータベースの導入を考えています。
そこでデータベースの設計について質問があります。

データベースに記録したい内容は、始値 高値 安値 終値・・・などで、
これらのデータを、「銘柄数分」「毎日」記録したいと思っています。
もし、日付をテーブルにしたら(毎日テーブルを新規に作る)、データを利用するときは銘柄ごとに時系列で
追うことが多いので、テーブル間の串刺しが大量におこってしまいます。
また、もし、銘柄ごとにテーブルを作ると、テーブル数が膨大(4000銘柄くらい扱いたい)
になってしまいます。

こういった場合、どのように設計するのがいいのでしょうか?
分かりにくい表現があるかと思いますが、よろしくお願いします。
899NAME IS NULL:2005/05/12(木) 23:17:29 ID:???
ええっと、なにから説明したらよいのかな...

銘柄テーブルと株価データテーブルをつくって、
株価テーブルには日付カラムと銘柄IDを格納すればよい。

うーんだめだ、噛み砕いて説明できないな。


ところで、株価研究って自前のツールとか、データベースを
使ってやることが一般的なの? よくそういう話を聞くけど。
900NAME IS NULL:2005/05/12(木) 23:46:53 ID:H58fxviT
>>898 銘柄テーブル(
銘柄ID,銘柄名
)

株価テーブル(
銘柄ID,日付,高値,安値,始値,終値
(銘柄ID,日付)はprimary key
)

901898: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ヶ月単位で取引してる人は、こういうことしている人も多いと思います。
902NAME IS NULL:2005/05/13(金) 00:47:00 ID:???
>>901
4000銘柄でも年間100万行ぐらいだろ。
Accessでやるなら数年で糞重くなりそうだが、
他のDBMSなら大丈夫でしょ。
あと、銘柄テーブルも作っておいたほうが、後々便利だろうね。
903NAME IS NULL:2005/05/13(金) 01:18:52 ID:???
>>901 同じようなものはおなじテーブルに突っ込むのがDB的。
902の人も言ってるけど、数百万件程度なら問題ない。
904NAME IS NULL:2005/05/13(金) 01:40:41 ID:???
どうしても分割したければ、年毎に分割すればいいんじゃないかな。
905NAME IS NULL:2005/05/13(金) 02:19:42 ID:???
株価分析のプログラムは昔作ったことがあるけど、
条件を変えてバッチ処理を繰り返し流すイメージなんだよね。
DBに格納しようがCSVなどのシーケンシャルファイルに入ってようが
やることは一緒で端から読んで1件ずつ処理してゆくことになる。
SQLデータベース的な集計手法は役に立たない。
EXCELのBOOKだけで足りなくなったら、年度や月度ごとにBOOKを作って
複数のファイルから串刺しで集計するバッチプログラムを作るのが現実的。
906NAME IS NULL:2005/05/13(金) 02:25:23 ID:???
Lotus 1-2-3で処理しきれなくなっていきなりOracle買ってきて
使い方がわからないと泣き付いてきた自称投資家を思い出した。
OracleはおっきいLotusじゃないんだぞと説教したよ。
907902:2005/05/13(金) 03:33:26 ID:???
>>905
> SQLデータベース的な集計手法は役に立たない。

どう役に立たないのだろう。
年度毎や月間毎に別ける必要もなく、わざわざ串刺しする必要性もない。
Book管理やファイル管理も省ける。

DB側で集計しなくても、ある銘柄をある期間分抽出してホストプログラムへ
渡せばいいわけだし、あと、元質のところには無いが、出来高も加えて
その集計をDBに任せたりすると、期間別出来高変動なんかも、
1行のSQLでデータは取り出せる。

銘柄テーブルを作って、そこに鉄鋼株とか自動車株などのカテゴリーや
トヨタ自動車グループとかフジサンケイグループなどの企業グループを
識別するカラムを追加して、カテゴリー単位や企業グループ単位の
トレンドライン(?)を出したりするときも、1行のSQLで抽出できる。

って、株も株価分析もやったことないので的外れなことだったらスマソ。
個人が4000銘柄を管理したいと言うことは、多角的に株価を眺めたいん
だろうなと思って、MVCのMの部分が1行のSQLで済ませるのなら楽だと
思ったまでだ。
908NAME IS NULL:2005/05/13(金) 20:29:45 ID:ZTGzA6Xp
Postgresの
psql < DB名 〜.sql
はmySQLではどのようにやればよいのでしょうか。

ご教示いただけますと幸いです。
909898: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銘柄くらいが分析対象になるかなと思っています。
そしてそれらの銘柄の中で「売られすぎ・買われすぎ」なものを抽出して、売買するって感じですね。

910NAME IS NULL:2005/05/14(土) 18:17:16 ID:8uuv/+F5
こんにちは!
postgreSQLのpg_shadowの内容を全部消したら、
postgresスーパーユーザーですらDBにアクセス
出来なくなりました!
修復方法などありますでしょうか?
911NAME 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="ぴよゆき"
これでダメなんですが、どうしたらいいでしょうか?
912NAME IS NULL:2005/05/16(月) 15:01:02 ID:???
>>911
漢字以外でもだめか?
913NAME IS NULL:2005/05/16(月) 15:01:34 ID:???
漢字つーか、全角。
アルファベットでやってもだめなのかどうか
914データベース初心者:2005/05/16(月) 18:24:44 ID:oIkLPVZj
質問です。
あるクラスの生徒の食べ物の好みをデータベースにしたいのですが、
ラーメン、餃子、レバニラ炒め、ハヤシライス等の食べ物リストがあり、
各生徒はそれらの食べ物から好きな物を選びます。複数選択可能です。
これをデータベースで表現するとどうすれば良いでしょうか?
915NAME 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
私みたいなのが言うのもなんですがマイクロソフトアクセス使えます。
みたいなこといえれば、お、できる奴、って思われるんじゃないですかね。
なんで覚えておいたほうが良いと思いますよ。
918NAME 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

ああ、なるほど〜〜そうすればいいんですね・・・

ちゃんとデータモデリングについて勉強します・・・・お勧めの本ありますか?
920918: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

ご丁寧にありがとうございます。恐縮です。
そちらのスレ、ちょっと覗きましたが奥が深そうですね・・データベースって・・・・
溺れないように頑張ります・・・・
922NAME IS NULL:2005/05/16(月) 21:57:57 ID:BP31J9XN
画像掲示板を作ろうと思います。
元々は自分が持っている100万枚のエロ画像を管理するために
データベースを構築していたのですが、
それを応用して画像掲示板を作り、みなさんにも使ってもらおうと思っています。
でもまだ名前がないので、みなさんで考えてください。
でも「ちゃんねる」がつかない名前でお願いします。
923NAME IS NULL:2005/05/17(火) 01:42:03 ID:???
>>912
>>913
全角以外でもダメでした('A`)
構文的には間違ってないんでしょうか?
924NAME IS NULL:2005/05/17(火) 02:22:35 ID:???
間違ってないと思うが、、両方に含まれてるものだけを出力するんだよね?
925NAME 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"])."'";

これだとダメなんです。
エラーはでません。
926NAME IS NULL:2005/05/17(火) 03:38:34 ID:???
$sql="SELECT name FROM tableB WHERE name = '"._es($_SESSION["name"])."'";
のほうはどうなんだ?
927NAME 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;
928927: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;
929927: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;
930927: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;
931927:2005/05/17(火) 18:10:18 ID:???
済みません、多重投稿に……orz
932NAME IS NULL:2005/05/17(火) 21:59:09 ID:???
>>927
一般的にはregdateとuserでユニークと考えていいように思うのですが、
max(id)という記述があるからユニークじゃないのでしょうか?
regdateとuserでユニークならばもう少しシンプルになると思います。
また同じuserで複数のregdateがある意味が履歴以上の意味を持ってない場合は、
履歴用のテーブルを別にして現在アクティブのuserだけのテーブルをつくれば
きわめてシンプルでパフォーマンスも良くなります。
933NAME 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 ))
)
934927:2005/05/18(水) 00:59:07 ID:???
情報大変感謝。
>>932
残念ながら、userとregdateでユニークであることは保証されていません。実用上はそう簡単には生じないはずなんですけど、テストデータで問題が発現してしまったので対応せざるを得ず(^^;
あと、テーブル構造を変更したいのは山々なんですが、既存システムへの影響が大き過ぎて断念しますた。
>>933
う゛、このスレで既出だったんですか。さんざんいろんなパターンでぐぐって見付けられなかったんですが、正に灯台元暗し。
最大値==MAX()と視野狭窄してたもので……。[not] existsは使ったことがなかったので大いに参考になりました。
935NAME IS NULL:2005/05/18(水) 02:39:10 ID:???
大学のサークル内で各自作成したデータを、Web上に日付順にアップロード
するようなシステムを構築したいのですが適した方法はありませんか?
またその際、サークル内で決めたID・パスワード等を用いてログインする
ことで、アクセス制限させるようにしたいと思っています。

分かりにくい質問ですみません。
データベースとは直接関係ないことですができれば教えてください。
936NAME IS NULL:2005/05/18(水) 03:56:28 ID:???
>データベースとは直接関係ないことですが
よくわかってるじゃないか
937NAME IS NULL:2005/05/20(金) 21:03:41 ID:WRX51hc3
Access(ADO)+SQL2Kで開発しようと思ってるんですが、
どこをADO(VBA)で、どこをSP(SQL2K)で開発すると
速度上がりますか?
ADO(VBA)とSP(ストアド)の住み分けがわかりません。
ばかで申し訳ありませんが、教えて下さい。
938NAME IS NULL:2005/05/21(土) 00:29:38 ID:???
>>937
処理実行速度に関しては、
ストアドだとDBMSが効率的な手段とタイミングで処理しますが、
VBAだと、これらは制作者に委ねられ、DBMSからAccessへのデータ転送が発生します。
よって一般にストアドの方が高速実行となりますが、SQLを書く腕にも大きく左右されます。

また、処理開発効率に関しては、
SQLの方が表現力が低い分、一般に後に戦うべきバグが少なくなりストアドの方が楽になりますが、
処理の複雑さと規模が小さい場合には、VBAの方が手早く柔軟性も高いでしょう。
よって一般にストアドが効率的開発に向きますが、仕様やSQLの腕にも大きく左右されます。


939NAME IS NULL:2005/05/21(土) 00:32:22 ID:4HJtkX17
OracleでMySQLで言うHHH:MM:SSみたいな形式って使用できるんでしょうか?
940NAME IS NULL:2005/05/21(土) 00:56:06 ID:???
>>939
出来るよん!
941NAME IS NULL:2005/05/21(土) 01:13:15 ID:???
VBでADOとかODBCとかでPostgreSQLに接続して
グリッドに表示したり変更したりできるようになりました。
更に制約違反になる操作をしたら、それに応じたエラーメッセージを表示しようとしてます。

が、ConnectionのErrorsのDiscriptionにはちゃんとしたエラーメッセージが入ってるのに、
Numberがいつも-2147467259(80004005)なんです。
-2147467259という数字に関しては様々な記述がありますが、
こういう状況に関する物は見付かりません。

制約違反って全部同じエラーコードなんですか?
そうでなければ、ちゃんとしたエラーコードってどうやったら取得できるのでしょうか?
942939:2005/05/21(土) 01:16:37 ID:???
>>940
Oracleでも使えるんですね。
ありがとうございました。
943NAME IS NULL:2005/05/21(土) 01:58:09 ID:1pDzoEyj
私は現在、フリーペーパー事業の会社に勤務しています。

システム部が作成するアクセスは1つのテーブルで、
契約書No.で顧客管理と売上管理をすると
方法を考えているようです。

でもその場合ですと
・再度契約した場合に異なる契約書No.に
 同じ契約者の(データ)がある。

という事になり、同じ契約者に対して
複数の契約書No.を管理することになり、
売上集計はまだいいのですが、
旅行券発行枚数等の顧客別の集計を取る際は、
いろいろ面倒ではないかと感じました。

それよりも顧客管理と売上等の契約書No.管理は
全く別ものであるから、アクセスで
下記の2つテーブルを作成し、

@顧客ID(重複番号無し)をつけて顧客(契約者)の
住所・電話番号・業種等を管理するするテーブル


A契約書No.(重複番号無し)で売上・旅行券発行等管理をし、
 なおかつ見積書発行・請求書発行等を作成できるテーブル


Aのテーブルに顧客IDを連動(クエリー?)させたら
顧客別の売上・旅行券の発行枚数・契約回数等の
管理やデータ収集もでき、売上全体に対する顧客別割合等の
集計等もだしやすいのでは?

と考えました。
私の考え方は、間違っているのでしょうか?
アクセスは聞きかじり程度の知識しかありません。
どなたかご教授をお願い申し上げます。


944NAME IS NULL:2005/05/21(土) 02:16:12 ID:???
>>943
フリーペーパーと旅行券の繋がりや、
契約書No.の意味や、どういう用途に使いたいのか等わかりませんが、

1テーブル案は間違いなく不適切なので、一度2テーブル案で作ってみる
ことをおすすめします。Accessなら手間もかからないかと思います。
945NAME IS NULL
99%以上が一見客、かつ顧客情報として持つべきデータが少ない
とかなら不適切とも言い切れない