1 :
無天老子 :
03/07/12 13:53 ID:??? ちょっとした疑問からマニアックな質問までDB関連の疑問に答えるスレです。 すぐに回答が得られるとは限りませんが。
CHARA へっCHARA〜
ブルマはいつまで処女でしたか?
4 :
1さんへ :03/07/12 14:16 ID:???
孫悟空とか言う奴は山崎並にウザイな・・・
クリリンの娘ってなんて名前だっけ?
マーロンとセックス死体
SQLiteはどうかなぁ。。。MySQLで十分すぎる俺にとって、SQLiteも使いこなせないかもな。。。
魔族じゃない神様にどうして魔封波が効いたん?
質問と雑談を一緒にしていいのか。
ギニュー隊長、強い体が欲しいならフリーザとチェンジすればよかったのに。
14 :
名無しさん@お腹いっぱい。 :03/07/13 13:49 ID:bftypz/1
>>12 質問から雑談が産まれ、雑談から質問が産まれる。
>>13 ボディチェンジのビームが届く前に避けられる。
15 :
名無しさん@お腹いっぱい。 :03/07/13 17:19 ID:w5g1Jcie
魔族どころか普通に人間の体に効いてたし。
お前ら学習機能って無いのなw
17 :
名無しさん@お腹いっぱい。 :03/07/13 19:23 ID:NkcK7LBo
機能じゃなくて能力だろ パソヲタはこれだからw
18 :
野菜王子ベジータ :03/07/13 19:30 ID:ZUQnHCrx
魔封波は最初はピッコロ大魔王を封じるために作られた技のため、名前だけなら魔封波なのだが、 技の内容は効くやつならなんでも封じることが可能な技
20 :
HERO!! :03/07/13 21:02 ID:l8RwdYOg
D−D)−0)..) ノ⌒ヽ、_ノ⌒ヽ、_ノ⌒ヽ、_ノ⌒ヽ、_ノ⌒ヽ、_ノ / ( ) 残念ながら、お前等不評みたいよ・・・。 / ( ⌒|/⌒ヽ、_ノ⌒ヽ、_ノ⌒ヽ、ノ⌒ヽ/⌒ヽ、_ノ⌒ /⌒ヽ、_ノ⌒ヽ、_ノ⌒ヽ、_ノ⌒ ∧∧ ∩_,∩ ∧∧ 。o o O O ○ (´曲`)( ・σ・ (´⊇`) ( 引退ヒャ・・・? ι J ( つつ ヽ、 ∪∪| | |∪∪ `ー'⌒ー'⌒ー'⌒ー'⌒ー' /| (__)_) |\/\/ !/\_/\_/\_/\_/| / \ \ 自分の無芸棚にageて / / 人形のせいするなっテナー \ \ / |/∨\/\/\/∨\/\/∨\|
22 :
名無しさん@お腹いっぱい。 :03/07/13 21:06 ID:vJqEJEaF
Oracleで使用するPL/SQLってどう発音するのでしょうか。 『ピーエル スラッシュ シークエル』 『ピーエル スラッシュ エスキューエル』 開発者じゃないもんで、現場でどう発音しているのでしょうか。 くだらなすぎてごめんなさい。
あぼーん
フリーザってちんこないけど女の子?
25 :
野菜王子ベジータ :03/07/13 22:20 ID:ZUQnHCrx
>>24 ナメック星人みたいなものじゃないのであろうか
26 :
名無しさん@お腹いっぱい。 :03/07/13 22:28 ID:hsnuEkxp
ピーエルエスキューエルですだ。仕事くだされ
27 :
22 :03/07/14 03:38 ID:aWFFlleU
>>26 >ピーエルエスキューエルですだ。仕事くだされ
レスありがとうございました。m(__)m
本でしか勉強していないもんで、すんません。
『アスキーデジタル用語辞典』等に書いてなかったもんで、助かりました。
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
40 :
山崎 渉 :03/07/15 11:19 ID:???
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
あぼーん
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
43 :
山崎 渉 :03/08/15 22:16 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
44 :
山崎 渉 :03/08/15 22:32 ID:???
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
45 :
NAME IS NULL :03/10/30 20:07 ID:N5QRCOrn
46 :
NAME IS NULL :04/04/24 00:17 ID:QYQQp63u
テキストファイルをOracleDBへ反映させるとき、キーでつながりのあるデータ を反映するなら、ワークテーブルって必要?不要? というか、どっちがお勧めなの?今、2(コボラ)NOワーク:2(Oraクラ)ワークの同点。。。 自分的には、ワークテーブルに退避したい。。。退避したい。。。 上が。。。。。くそー。
47 :
NAME IS NULL :04/05/16 08:41 ID:ofNIhSqp
2chの掲示板は、今でもDB使ってないのでしょうか? 今でも使っていないとしたら、なぜなのでしょうか? ファイルで充分だから?
使う必要がないからだろ
49 :
NAME IS NULL :04/05/18 20:11 ID:Nn+p6tsB
しにたい
ゲーム系板の質問スレテンプレ張ります ご参考まで
▲ PS2でPSのソフトのセーブが出来ません。
▽ PSソフトのセーブにはPS用メモリーカードが必要です。
PS2用メモリーカードにはセーブできません。
▲ PS用メモリーカードのデータをPS2用メモリーカードにコピーできるの?
▽ できる。
ただし、PS用ソフトはPS2用メモリーカードを認識できないので、
PS2メモリーカード内のPS用ソフトデータを直接ロードすることは出来ない。
PS2用メモリーカードはPS用に比べて大容量なので、プレイが終わって
当分使う予定の無いPS用ソフトのデータをPS2用メモリーカードで
保存することにすれば、今までデータの入っていたPS用メモリーカードを
新しく始めるゲームの為に使えるので経済的。
▲ PSのコントローラーってPS2で使えるの?
▽ 通常・アナログコントローラーともに使えるが、
デュアルショック2専用ソフト(バイオハザードコードベロニカ,Shinobiなど)の
場合は使えない。
その他専用コントローラーは各ソフトを参考に。
▲ PS2のコントローラーってPSでも使えるの?
▽ 使える。
▲ PSのソフトってPS2でも遊べるの?
▽ 基本的にPS2はPSソフトが動くことになっているが、一部のPS用ソフトは
PS2では不具合が(詳しくは以下のリストを参照)。
http://www.scei.co.jp/corporate/info/list.html ▲ PS2のメモカのセーブデータが壊れます。
▽ 初期不良品があるのでメールか電話で詳細を確認
参考(ぐぐるより)
製造番号が「3-059-051-01」だったら使用を控えてSCEに連絡しましょう。
(製造番号が違ったりカッコが付いているものはOK)
■PS2のFAQ 現在326件
http://www.playstation.jp/info/i_faq_list.php?page=1 1. "PlayStation 2"で一部のディスク(DVD-ROM/DVDビデオ)が「読み込みに失敗しました」と画面に出てしまい起動しません。どうしたらいいですか。
2. "PlayStation 2"SCPH-50000NB(SCPH-50000)の特徴、及び従来品(SCPH-39000以前の"PlayStation 2")との機能・性能の違いは何ですか?
3. 全てのソフトではなく、一部のソフトだけが"PlayStation 2"で起動しないのはなぜですか?
4. "PlayStation 2"を修理に出したいのですが、送付方法を教えて。
5. DVDプレーヤーのバージョンアップをするにはどうしたらいいですか?
6. SCPH-39000以前の"PlayStation 2"本体をDVDプレーヤーVer.3.00にバージョンアップできますか?
7. ユーティリティディスクを交換していると聞きましたが、交換すると何かメリットはあるの?その違いは何ですか?
8. DVDプレーヤーのデータを"PlayStation 2"専用メモリーカード(8MB)内から誤って削除してしまいました。もうDVDビデオの再生はできないのですか?(SCPH-10000、SCPH-15000の場合)
9. ネットワーク接続時に「-50000」というエラー表示が出ます。
10. "PlayStation 2"のレンズ部分のお手入れ方法は?
11. ユーティリティディスクとはどういうディスクなのですか?必要なものなのですか?
12. "PlayStation BB Unit"は外付け型とEXPANSION BAYタイプのどちらを購入したらいいの?
13. "PlayStation 2"の主な点検方法を教えて
14. "PlayStation 2"内部のレンズに汚れが付着しないように使用するにはどうしたら良いですか?
15. ネットワーク接続時に「-20612」というエラー表示が出ます。
16. "PlayStation 2"SCPH-50000及びSCPH-55000で再生可能なDVD-R/-RW、DVD+R/+RWとは何ですか?また、+−の違いは何ですか?
17. "PlayStation 2"の通風孔にホコリがたまってしまいました。お手入れはどうしたらいいですか?
18. テレビを見ている時やゲームをプレイしている時と比べてDVDビデオを見ている時の音量が小さいのはどうして?
19. SCPH-39000以前の"PlayStation 2"本体をDVDプレーヤーVer.3.00にバージョンアップしたらどうなるの?
20. "PlayStation 2"が故障したようなのですが、修理に出したほうがいいですか?
21. ゲームは問題ないけれど、DVDビデオを見ていると画面が乱れるのはどうして?
22. "PlayStation 2"で使用できるディスクの種類を教えて。
23. DVDリモートコントローラは2種類あるけれど、どちらを買えばいいの?
24. ユーティリティディスクVer.1.00はどこで交換してもらえるの?料金がかかるの?
25. ゲームプレイ中に同じ場所で止まってしまい、ディスクの裏を見たらキズがついていることに気づいた。ディスクは直してもらえるの?
26. ビデオモード(ビデオフォーマット)とは?
27. "PlayStation BB Navigator"でネットワーク接続時に、「プロバイダ情報の取得に失敗しました」というメッセージが表示されるのですが。
28. DVDビデオ再生時のアナログ音声出力の音量を上げるにはどうしたらいいの?
29. "PlayStation 2"の電源を入れても画面が出ません。
62 :
改 :04/07/10 22:37 ID:???
★スレ立て規制の仕組み IPアドレス $1.$2.$3.$4 グループの決め方→ ($1 % 4) * 256 + $2 つまり、$1を4で割ったあまりを256倍して、$2を足す たとえば 220.49.0.0と224.49.0.0は同じグループ。 ・グループ数は1024です。 ・スレが立つと、そのスレを立てた人が属しているグループを、スレ立てリストに記録します。 ・その記録は、新しいものから順にTATESUGI値の分だけ保存されています。古いものは順に消えていきます。 ・スレを立てようとしたときに、その人が属しているグループがリストに載っているかを調べ、リストに載っているとスレが立てられません。載っていないとスレが立てられます。 AAA.BBB.CCC.DDDとEEE.FFF.GGG.HHHのIPアドレスが同じグループであるためには BBB=FFF かつ (AAAを4で割った余り)=(EEEを4で割った余り)
626 :▲ 某ソレ511 :04/08/14 18:51 ID:gx5+sten
http://rock.s54.xrea.com/bbspost/count3.cgi ちゃっかりカウンターの数字を手作業でとってきて、
レス数との比がどんな感じになるのかやってみたー。。
でも、正直何を表してるのかよく分からん(´・ω・`)
手作業で書き写してた中で気づいた点としては、
けっこう書き込み数が少ない板でも、新設されたばっかりでなければ
ほとんどの板がちゃっかりカウンターで1000超えるんですね、、
だいたい、中間値が、ちゃっかりカウンター÷投稿数=6 で、
ニュース系は大きい値になる傾向があるみたいです。
ただしニュー速は4くらい、ニュー速VIPに至っては1以下、、
そして、実況板はだいたいその数字が1〜2、
人の多い雑談系板は1以下っていうのも特徴的かな、、
なくしたものを探し出す 12のステップ
http://news16.2ch.net/test/read.cgi/dqnplus/1095167307/l50 1 : ◆.ZBATT41.E @快傑ズバットφ ★ :04/09/14 22:08:27
デジタル時代に便利なアイテムが増えるのはいいのだが、モノが増えすぎてよくなくしてしまう、
という人もいるだろう。それではそれらのステップを紹介していきましょう。
1. Don't Look for It
モノをなくしたのに気づいたら、いきなり探し出してはいけない。
まずは考えるのが先である。あわててそこかしこをひっくりかえしたら見つかるものも見つからない。
2. It's Not Lost - You Are
あなたがなにかを無くしたといっても、それが消滅したわけではない。見失っているのはあなた自身なのだ。
まずは落ち着いて「モノが消えてなくなったわけではない」と自分に言い聞かせよう。
3. Remember the Three C's
モノを探し始める前には三つの「C」で探す準備をしよう。それらは「Comfort(快適なソファやベッドにまず座ること)」
「Calmness(座りながら足が波に洗われている様子をイメージしよう。落ち着くことができるはずだ)」
「Confidence(絶対見つかる!という自信を持とう)」。これらの「C」を行ってはじめて実際に探し始める準備ができる。
4. It's Where It's Supposed to Be
ではモノ探しを始めよう。まず最初に探すべきは「それがあるべき場所」だ。
一般的に鍵はどこに置くだろうか?リモコンは?携帯は?あなたがなくしたモノは他の人がどこか別の場所に置いている
こともある。普通、人がそれらを置く場所はどこか?まずはそこを探そう。それで見つからなければ次のステップだ。
5. Domestic Drift
モノがあるべき場所にない場合、最後に使われた場所にある可能性が高い。それらはどこで使われただろうか。
あなたが使った場合、他の人が使った場合、どこで最後に使われるだろうか。思い出してみよう。
6. You're looking right at it.
それがあるべき場所、それが最後に使われた場所、どちらも探したが見つからない場合、あなたの目の前を探してみよう。
モノがなくなった!というパニックに陥った際に目の前のものを見逃している可能性もある。
もう一度自分がパニックに陥った場所に行ってみよう。
7. The Camouflage Effect
それでも見つからない?本当にそうだろうか。そこにあるのだが、死角に隠れている可能性もある。
あなたの視界をさえぎる雑誌、新聞、その他のものを洗い出してみよう。
それらを動かしてみたらあなたが探しているものが見つかるのかもしれない。
8. Think Back
それでも見つからなければリラックスしてなくしたものを最後に見たときのことを思い出してみよう。
どんなに細かいことでもいい。そのときどこにいて、何をしていて、何をみて、何を聞いたか。
「ああ!そうだった!」と思い出すこともあるかもしれない。
9. Look Once, Look Well
一度探したところは二度と探してはならない。そのぐらいの覚悟で探すときは徹底的に探すことだ。
部屋のこの一画は探した、ここも探した、とやっていけば最後は見つかるのだ。
10. The Eureka Zone
モノはひとりでに動く場合がある。しかし45cmと動くことはない。鉛筆がパソコンの下に入り込む、
文房具が引き出しの奥にすべりこむ、本が本棚の後ろに押し込まれる。こうしたことは十分考えられる。
それがあるべき場所、半径45cmをもう一度探してみよう。
11. Tail Thyself
ここまでして見つからなければ自分を他の人の立ち場に置いてみる。そう、探偵になりきってみよう。
あなた自身にインタビューする自分をイメージするのだ。あなたは昨日家に帰ってきて何をしましたか?次は?その次は?
自分を客観的に捉えることで見えてくるものもあるのだ。
12. It's not You
それでもだめならあなた以外の人がそれを無くしてしまった可能性も高い。
あなたが会った人、あなたがモノをなくした場所にアクセスがある人を思い出してみよう。その人たちに電話をして聞いてみるのだ。
その人たちが悪気なくちょっと借りてしまっただけ、という場合もあるのだ。
さてここまですれば大抵見つかるわけだがそれでもだめなら・・・最後の手段。13番目のステップが存在する。それは・・・、
13. Que Sera Sera
いくら探しても見つからないということは見つからない、ということである。しょうがない。忘れよう。
世の中、なるようになるのだ。物事にとらわれずに新しいオプションを探してみよう。
以上。あなたがなくしたモノが見つかりますように・・・。
http://www.adnec.com/blog/archives/2004_09_09_130653.html http://professorsolomon.com/12principles.html
インデックスのないテーブルに CREATE INDEX したいんだけど、 そのテーブルに毎秒1〜2件のアクセス(更新)があり、これは 運用上止められません。データ量からして CREATE INDEX に 数十秒かかりそうなんだけど、そのまま実行して大丈夫?
71 :
NAME IS NULL :04/09/22 00:20:16 ID:3eQqTtwE
↑ MS SQL Server 2000 SP3 でつ。
>>70 どうもテストをしてなさそうな書き方だな。
下手にインデックスを張るとINSERTやUPDATEが遅くなったりするけど
その辺は大丈夫なのかい?
追加。 テスト環境でINDEXを張るときには どういう風にロックされるか確認しておくこと。
75 :
NAME IS NULL :04/10/07 22:09:05 ID:kTpaTW5v
複数のSELECT文を実行するときでもトランザクション処理は必要ですか?
76 :
NAME IS NULL :04/10/09 21:23:27 ID:T/dhAKTT
数百件程度でいいんですけど、サンプルデータってどこかにないですかね。
>>76 他の質問スレで出ていたと思うが郵便番号一覧がお手軽
PS2でPSソフトのセーブができません。メモカはone用で、新品を購入したばかりでした。 かってスグ壊れたって事でしょうか。なにか解決方法はありませんか? ('A`)
おれ、UNIX板、Linux板、プログラマー板、プログラム板を行ったり来たりしてるんだけど、 間にあるこの板がじゃま。 でもたまに見て勉強してる。 でもよくわからんからじゃまだ。
JR新幹線の切符発行システムのデータベースって何使ってるんでしょうか? あと、主要な銀行のデータベースは何でしょうか?
82 :
MAME IS NULL :04/12/10 15:07:31 ID:dR+3zdN7
__ __ / `'v''" ̄ ̄ ̄_ `v'´ ヽ ./ /⌒} , ‐‐、 / ヽ {⌒'、 ヽ .| { ~| __l /__ |^ } | し'_ | (_ ・ ・ _) | _,し′ ` l "~ ....... ~" l ' | ( ・ ・ ) | 人 __ 人 ./ ` ー― ―一' ヽ
>>82 銀行とかはあれじゃない?
汎用機のDBとOSとハードが一緒になったやつ。アレが多いんじゃないかな?
1000.txt
先輩! Windows2000SP4やXPで標準で利用できるMDBについて教えてください。 ローカル環境でPureBasicのMDBライブラリから、MDB-ODBCを使いたい のですが、クエリーの一覧や仕様が、どこで公開されているのか、よくわかり ません。これはAccessとクエリーは一緒なのか違うのか、根本的な部分が よく分からないし、Googleで検索してみたものの、まとめサイトが見つかりま せん。どの本がいいのか? 古くても探しますので教えてください。 えーと、英語の本でも、英語のサイトでも、OKです。 サンプルソースでは下記のクエリーが紹介されてました。 Create table Info(id autoincrement,name text(100),phone text(50),constraint Info unique(id)); Insert into Info(name,phone)values('Paul','555-1234') Select * from Info order by name asc; どうかお願いします。
88 :
NAME IS NULL :05/01/10 02:26:41 ID:yvNWI5HJ
JISが使えるDBってどれ? プレインスコされていたMySQLはEUC-JPかSJISしか使えないっていちいち文字コード変換ですか。orz 日本語使うなよ。みんな英語で済ませろと個人的には思う。
90 :
NAME IS NULL :05/01/12 01:17:45 ID:XtSzywsP
大学の課題でACCESS使ってデーターベース作れって言われたけど無理だよ・・・ いくら情報科っても文系だし使ったことないソフトでどう作れっていうんだよぅ・・・orz あと8時間か・・・もうわかんなくて頭痛いよ・・・orz 「簡単だから作れるでしょ?」 使い方も知らないのにどうやって・・・ パソも調子悪いしもう嫌。゚(゚´Д`゚)゚。
91 :
NAME IS NULL :05/01/12 06:33:44 ID:ApR1v1Xe
あきらめて留年汁! 卒研課題だったりして卒業できませんよりマシだろ(w つーか生協でマニュアル本買うなり図書館でマニュアル本借りるなりしろよ。 そもそもマニュアル持ってないってライセンスは?
使い方を学ぶところから勉強だろ。 情報科ならそれくらいのスキルは必要だろうし、 アプリの使い方しか教えない専門学校よりよっぽどマシ。 自分の殻を破って成長していくニダ!がんがれ。
93 :
NAME IS NULL :05/01/12 21:50:43 ID:SBe3sKKA
ここで2つほど問題を。 1、複数のプログラムから同じディスクに同時にファイル作成しても場所が重ならないのはなぜか? 2、複数のCPUを持つコンピュータで入出力要求をだしたCPU以外に入出力完了の割り込みをし、要求をだした側のCPUを放置すると何が問題か?
RedHat8.0にPostgreSQL7.4.6をインストールするのに 確実な方法が紹介されたHPってありますか? いろんなページ見てるとどこもやり方が微妙に違うんですよね。 どこのページのやり方か忘れちゃったんですが、 やってみてもPGDATA unsetとかなんとか出て pg_ctl -w start が動かなくて会社で諦めて帰ってきたんですけど。
>>93 DBの話じゃないな。宿題は自分で解けよ。
マジ、それ宿題の丸投げだろw
97 :
NAME IS NULL :05/01/20 23:29:04 ID:WwWE56x1
どこで聞いていいのかわからなかったんでここで質問します。 SQLserver7.0を手に入れたいのですが、 取り扱っている店、売ってる店とかあったら教えて下さい。
99 :
NAME IS NULL :05/01/22 02:13:27 ID:k+TsDaR7
>>98 レス、ありがとうございます。
ですが、出来れば箱で手に入れたいです。
本当に一時的な使用なので、中古とかでも構わないんですが。
100 :
名あり :05/01/22 23:39:09 ID:Ss5oM/nv
あの、アクセスデータベースのサンプルがたくさんあるサイトってありますか?あったら教えてほしいんですが..
101 :
名あり :05/01/22 23:43:10 ID:Ss5oM/nv
あと、メインフォームとサブフォームを表示してその表示しているメインフォームのレコードとサブフォームのレコードをエクセルに出力するにはどうしたらよいでしょうか?簡単に出力させる方法はありますか?教えてもらえないですか?
103 :
NAME IS NULL :05/01/23 10:17:53 ID:uiS8YUo7
>>102 ありがとうございます。
それで探してみます。
104 :
NAME IS NULL :05/01/23 11:59:28 ID:sMtlOfhN
オラクルに詳しい方に教えていただきたいのですが、 オラクル10gと下位バージョンを混在させた環境の場合、 グリッドは可能でしょうか?
MySQLで初めて業務アプリを設計したのですが、 気合をいれすぎて正規化しすぎました。 検索かけるときは5つのテーブルを内部結合しなければいけないのですが、 WEBサーバのタイムアウトエラー(30s)になってしまいますた。 こんなに時間かかるものなのですか?? ↓のような感じです SELECT * FROM tbl1,tbl2,tbl3,tbl4,tbl5 WHERE tbl1.code2 = tbl2.code AND tbl1.code2 = tbl3.code AND tbl1.code4 = tbl4.code AND tbl1.code5 = tbl5.code AND *******(検索条件) 環境はWinServer2003 メモリ128MB CPU Pen3 733MHzです
普通のファイルに数個のデータを文字列として連結して一行として格納するのと DBMと 普通のファイルにSQL形式で保存するのと PostgreやMysqlと オラクルと どう違うのですか? データの保存をどうしようか悩んでいます。 上記の違いを教えて下さい。 お願いします。
わかんないなら「普通のファイルに数個のデータを文字列として連結して一行として格納する」でいいよ
106のうちどれが処理が早いの?
>>108 要件と実装次第で変わってくることを聞かれても答えようがない
110 :
NAME IS NULL :05/01/25 04:22:52 ID:fFuVLIUL
openbaseスレがないのはやっぱりマイナーだからだよな。 おとなしくmysql使います。orz
>>108 「普通のファイルに数個のデータを文字列として連結して一行として格納する」って言うのが
選択肢にあるならMicrosoft-EXCELがちょーオススメ!!UI作るならCSVで。これ最強。
たすけて。。。。 デフラグ? 最適化!したら、MOのデータが、カラッポになってしまった。 もうだめぽ。 職人にとっては、筆が折れたも同然。。。。T0T)ウウッ
112あげ
114 :
NAME IS NULL :05/01/25 17:28:01 ID:7Ibioq1V
PostgresSQLをデータベースに使える会計ソフトってありませんか。 有料、シェアウェア、フリー、なんでも構いませんが。
なんでPostgreSQLである必要があるの? プラットフォームは? 会計ソフトって言ってもピンキリだと思うけど。
116 :
NAME IS NULL :05/01/25 18:17:02 ID:7Ibioq1V
>115 LINUXです。Redhat9。 販売管理が既にORACLEからPostgresSQLに代わってしまったので、 いい会計ソフトないかなと思って。 自作してもいいのだけれど。
118 :
NAME IS NULL :05/02/07 20:41:48 ID:raPQTY20
>>112 仮にデータベースを扱ってる人間だったら、バックアップの一つ程度やらなければDBを弄る資格は無いと思われ。
たいていの技術者がそうなんだけど、自分の作成した開発ソースをサーバか何かにバックアップしないんだよな。
もし吹っ飛んだら、という危機感が無いのかと小一時間問いたい。
ハードディスクは消耗品と思えだよ。
でも、ドンマイ!
データベースの課題がでますた。 外部仕様の設計で、"どうデータを登録するのか" を書かなきゃだめなんですが、何を書いていいか わからんとです。だれかヘルプを!
120 :
NAME IS NULL :05/02/07 23:23:15 ID:raPQTY20
>>119 今までの開発実績を参考にすれば良いんじゃないの?
121 :
NAME IS NULL :05/02/08 12:34:48 ID:2cB8TyER
SQL Server 2000(WindowsServer2003)を用いており、 2台のサーバ(ともに同じ環境)に同じDBを構築し、レプリケーションを行ないたいのですが ネットワーク内にドメインコントローラが存在する環境でないと レプリケーションは行なえないのでしょうか。 それともそれぞれローカルの管理権限をもつ同じ名前のアカウントを用いて 行なうということは可能なのでしょうか。
122 :
NAME IS NULL :05/02/08 18:35:10 ID:07RwFJVf
質問です。 テクニカルエンジニア データベース試験 関連スレってないですか? データベースで「テクニカル」で見てもなさそうだったので・・
123 :
NAME IS NULL :05/02/08 23:30:46 ID:ELZSb76/
OracleのSQLで一般的に、どっちのほうが早いですか? union→distinct distinct→union→distinct
質問です。 Oracleって、どういうときに使うのでしょうか? SQLは、かじったことがあるのですが
125 :
NAME IS NULL :05/02/12 13:54:36 ID:RX8p0uU3
そうですか。 ありがとうございました
ここの板自体もしかして人気ありませんか?。 それとも住人のやる気がありませんか?。 更新頻度が少ないんですが(汗。 漏れも含めてな・・。
129 :
NAME IS NULL :05/02/17 16:50:18 ID:Pexhhhis
Q:なぜいまさらSQLなのですか?
TOTALなんてデータベース今でも動いているのだろうか。 大手の石油元売会社が代表的なユーザだったと思うが。
132 :
NAME IS NULL :05/02/24 03:08:23 ID:g1jEISI5
PL/SQLのDEBUGが出来るFreeなツールってありますか?
133 :
NAME IS NULL :05/02/24 13:11:51 ID:PiyDYup1
最近MSDEをPCとNotePCに入れたのですが、2つほど教えてください。 1.PC-01にあるMSDEのデーターベースDB01を LAN通じてNOTE-01にコピーする方法を教えてください。 2.コピー後、PC-01に合わせてNOTE-01のデーターを 更新する方法を教えてください。
134 :
NAME IS NULL :05/02/24 16:24:29 ID:NkBtGVQv
質問です。 PostgreSQLの古いVersionにおいて、lockの動作が信用できないという話を聞いたのですが、 いつ頃かのVersionでそういう不具合がでているのでしょうか? 曖昧な質問かと思いますが、よろしくお願いいたします。
135 :
NAME IS NULL :05/02/24 18:09:40 ID:OerGEjoG
データベースモデルズをかくソフトで、 Visio以外にやくにたつソフト教えてください。 なお、WinXPProでで動くものがいいです。 postgresに特別対応していればなおステキ 英語のスフとでもいいです
136 :
NAME IS NULL :05/02/24 22:34:29 ID:eUuZAqCL
Visioってそんなこと出来るンかぁぁぁ と言って見る刷れ
137 :
NAME IS NULL :05/02/24 22:35:22 ID:eUuZAqCL
ER Winってどうよ?
138 :
初心者 :05/02/25 01:06:23 ID:gpROZZAZ
mysqlにてrootで接続出来なくなってしまった。パスワードの書いてある設定ファイルなどあるのだろうか? あぁ、幾4かないのか・・・
このスレって質問だけが積み重なっていくスレだな。
>>139 質問と雑談スレだから回答は含まれません
142 :
NAME IS NULL :05/03/16 02:07:36 ID:57HX1W7J
(上のアドレスの内容) 以下のサンプルプログラムは、PostgreSQLのサンプルデータベース(test_db)に対してデータを検索して表示するプログラムである。 問題:サンプルのデータベースの内容をpointの値で降順で表示するプログラムに変更しなさい。 #include<stdio.h> #include<stdlib.h> #include"libpq-fe.h" main(int argc,char *arrgv[]) { char query_string[512]; PGconn *conn; PGresult *res; int i; conn=PQconnextdb("dbname=test_db"); if(PQstatus(conn)==CONNECTION_BAD){ fprintf(stderr,"Connection to database failed.\n%s",PQerrorMessage(conn)); exit(1); } sprintf(query_string,"SELECT *FROM test_db where point>50"); res=PQexec(conn,query_string); for(i=0;i<PQntuples(res);i++){ printf("%s %s\n",PQgetvaluee(res,i,0),PQgetvalue(res,i,1)); } PQclear(res); PQfinish(conn; }
DBド素人の俺だが SELECT文のところにアスクだかデスクだか入れればいいんじゃねーの
SQLサーバ2000で以下の事を実施するのにうまい方法を教えてください。 Aテーブル メーカーID 商品ID フラグ Bテーブル メーカーID 商品ID 価格 の様な2つのテーブルで、AテーブルとBテーブルのメーカーIDと商品IDが関係を持って いる状態として、「Bテーブルにて価格が100円以上のもののメーカーIDと価格IDを持った 商品について、Aテーブルのフラグを1にUPDATEする」という事をしたく思っています。 今は最初にBテーブルから価格>=100なメーカーID・商品IDのレコードセットを作成し、 Aテーブル側でのそのメーカーID・商品IDの行を一行一行更新するというツールをVBで 作って使っているのですが、行数が多いと遅いので、SQLで実現したいと思っています。 例えばBテーブルのメーカーIDがxxxなもののフラグを更新というのであれば、 UPDATE A SET フラグ='1' WHERE メーカーID IN (SELECT メーカーID FROM B WHERE メーカーID='xxx') 等となろうかと思いますが、この時のUPDATEの際の条件となる列が複数になったときに うまく処理できる方法を探しています。 悩んでいたら夜が明けてしまった…
UPDATE テーブルA SET フラグ=1 WHERE exists (select * from テーブルB where テーブルB.メーカーID = テーブルA.メーカーID and テーブルB.商品ID = テーブルB.商品ID and 価格 >= 1000)
142.143わかりました。144さんのとおり物凄く単純でした・・・ありがとうございました。
A|B -+--- a|3 b|2 c|100 みたいな B を SQL 一発で A|B -+--- a|1 b|2 c|3 のように 1 からはじまる連番にする方法ありませんか。 update t1 set B = ???; の ??? に何か技が必要?
どういう順序で連番にしたいんだ?
2〜30件の更新を行うオンライン画面プログラムなんですが、 DBの更新はリソースを大量に食うから、一度にコミットせずに1件ずつDBへの接続&切断を繰り返すようにと言われました。 それはそれで無駄が多いようにも思うんですが、それでも一度に更新するよりメリットが大きいものなんでしょうか? なんか釈然としなくて。 そういうパフォーマンス面のことが載ってる本があれば教えて下さい。
>>150 つーか一度にコミットすべきであるはずのトランザクションを、1件ずつコミットしちゃって
よいのかと。つーかコミットして切断だよな?コミットしないで切断するとロールバックだよな。
まぁケースバイケースだろうな。サーバ側のリソースが足りて無いなら、あえて大きな
トランザクションを作らず、チビチビとコミットした方いいかもしれない。逆にチビチビとおこなう
コミット時に生じるオーバーヘッドが問題になるようであれば、逆に一度にコミットした方が
よいというケースもあろうかと。
でも2〜30件程度でそれが問題になるってのはどうかとも思うが。
DBMSがOrackeなら、OracleのDBAとかパフォーマンスチューニングに関する書籍かな?
>>149 update t1 set B = ??? order by B;
です。
シリアルキー解析集「ALTEA」
大好評発売中!
http://openuser10.auctions.yahoo.co.jp/jp/user/dancexxx1960? 市販SOFTやオンラインSOFTのパスワード集です。
オークション関係から画像・OS・表計算・CAD・・・・etc
国内・国外のあらゆる分野のSoftを解析済です。
これを初めて手にされた時には、驚愕される事でしょう。
そして・・・手当たり次第にインストールを始める筈ですw
パソコンをご使用の方なら、必ず!満足されると思います。
解析結果のデータベースには15,000点を越えるパスワードが入ってます。
このパスワード集から検索するだけで、登録や制限解除が出来てしまいます。
シェアウェアを購入して、正規登録したのと同じ状態になります。
余りにもデータが多すぎる為、辞書引のようなパスワード検索SOFTで提供します。
シェアウェア以外にもパッケージ版をVectorなどでオンライン販売してるSOFTにも
多数対応しています。これらをダウンロードして無期限に試用する事も可能です(^^;
WindowsXPやOfficeなどのCDキー(プロダクトキー)ジェネレーターを使えば複数のパソコンに
インストールする事も可能です。デスクトップとノートPCなど2台以上持ってる場合は特に有効ですね。
オンラインSOFTを購入した経験は有りますか?
ありとあらゆる分野の優れたSOFTが、数多くありますよね。
しかし、ほとんどが試用期間や機能制限をして、「気に入ったら購入してください」です。
もう少し使いたいが使用期限切れで、削除・・・再インストールを繰り返していませんか?
154 :
150 :05/03/17 23:12:47 ID:???
>>151 >つーか一度にコミットすべきであるはずのトランザクションを、1件ずつコミットしちゃってよいのかと。
そういう前提で設計しなさいとのことでした。
>つーかコミットして切断だよな?コミットしないで切断するとロールバックだよな。
はい。
実際にはJavaのEJBを使っており、EJB層の呼び出しが繰り返される形です。
>DBMSがOrackeなら、OracleのDBAとかパフォーマンスチューニングに関する書籍かな?
Oracleです。
本屋で探してみます。
たしかにケースバイケースなんでしょうね。
とりあえず結果を見届けて良い経験にしたいと思います。
ありがとうございます。
関連性の低いリクエストが複数で、リクエストごとに成功と失敗のステータスを 管理するのであれば1件ずつコミットでもかまいません。 それ以外のケースでは途中で失敗した場合の対応が必要になります。 >実際にはJavaのEJBを使っており、EJB層の呼び出しが繰り返される形です。 データベースに直接アクセスするbeanの設計をしているわけではないのですか? EJBを呼び出すEJB、EJBを呼び出すServlet、EJBを呼び出す通常のアプリケーション、 といったケースでチューニングやトランザクションに関する部分はいろいろと変わってきます。 もしentity beanを使ってるならOracle Databaseはもうあまり直接関係なくて Application Serverのチューニングの問題になってきますね。
156 :
145 :05/03/18 23:35:29 ID:???
>>146 あれから泊り込みになってしまい、亀レスになりましたが、回答ありがとうございました。
exists句内でテーブルA・Bを結合させればよかったんですね。勉強になりました。
157 :
150 :05/03/19 04:23:38 ID:???
>>155 >データベースに直接アクセスするbeanの設計をしているわけではないのですか?
>EJBを呼び出すEJB、EJBを呼び出すServlet、EJBを呼び出す通常のアプリケーション、
>といったケースでチューニングやトランザクションに関する部分はいろいろと変わってきます。
EJBを呼び出すServletを作っています。
呼び出される側は別チームが既に作っていて、それが1件更新するだけの処理になっていて、
Servletから繰り返し実行することになってます。
>もしentity beanを使ってるならOracle Databaseはもうあまり直接関係なくて
>Application Serverのチューニングの問題になってきますね。
EJBの側のソースにSQLが書いてあったので、entity beanというやつではないと思います。
(EJBのことはあまり分かってないかも知れません。間違ったこと言ってたらすいません。)
158 :
NAME IS NULL :2005/03/30(水) 09:48:11 ID:XG0PxlMt
Access初心者で住所録を作っているのですが・・・ 名前は漢字も含め同姓同名がいる場合があるのでデータ重複可 住所も同一住所に違う家族がいる場合があるのでデータ重複可 名前も住所も重複した場合、2重登録としてエラーメッセージをだす。 簡単な方法はないでしょうか? はじめてなので、いろいろ調べながらやっているのですが…・。 よろしくお願いします。
ご相談というか、質問なんですが。 友人から、ボランティアメンバーのデーターデースの製作の打診がありました。 HP上で、メンバー呑みが検索・閲覧できるもの、いう事なんですが。 予算は、ソフト購入するんなら2〜3万くらいだせるとのこと。 データー人数は現在200、今後年10名程度で増えていく予定。 業種や地区などで検索したいとの事。 友人は知識全然なし、 自分はAccess98・2000しか使ったことありません、 自分の仕事で使う、商品管理と顧客情報管理しか造った?事がありません。 HPもビルダーぐらいしか・・・簡単なHTMLぐらい。 HPで閲覧できるデーターデース造ったことないので教えてください。 完成予定は今年の11月です>< どのようは、ソフト・プログラム・CGIを使えばよいのでしょうか? サーバーは、別の友人が貸してくれるようです。 板違いならすいません。
BASE認証かけたWiki立ててみるとか…
その程度の知識しかないなら素直に外注した方が・・・ 2,3万じゃ上がらないとは思うけど。
200人のボランティア名簿程度で外注て…。 そんな本格的やらんでもperlでcsvファイルいじるような の作ればいいと思う。この程度なら素人の俺はJscriptでADO経由で エクセルシート上のデータいじるよ。1000件ぐらいまでなら十分いけるでしょ。 CGIスクリプトぐらい自分で書くつもりはあるんだろな。 あまり勉強するつもりはなさそうだが。ボランティアなら勉強して0円であげろ。
163 :
NAME IS NULL :2005/04/22(金) 08:48:40 ID:yz4hi/Um
Paradox 7J というのWindowsXPでは動かないみたいです。 Paradox 7J未だ生きてますか?
164 :
七資産 :2005/04/26(火) 16:07:08 ID:???
結局フュージョンなの?
165 :
:2005/04/26(火) 16:07:47 ID:APaHcUAf
フュージョンだ。
postgresql 8.0.2でgccで書いています。 非同期でたくさん書き込みたいので、pqsendqueryとpqgetresultをセットで使っています。 でも、そうすると待機時間が発生して、非同期にならないです。。。 なんか良いアイディアはないでしょうか??
167 :
NAME IS NULL :2005/04/27(水) 00:28:41 ID:4HgOmCd9
あるアカウントのデータを もう一つのアカウントにそのままコピーする方法を教えてください
168 :
NAME IS NULL :2005/04/27(水) 12:54:52 ID:Kw9u+tw1
>>166 forkでコネクションから複数張ってpqexec、並列処理というのはどうかね?
>>168 助言ありがとうございます。forkでの分身は元のプロセスが少し巨大なので厳しそうです。
結局、PQconsumeInputとPQisBusyを使ってpsqlを監視。
busyならば処理継続。busyでないならば、pqgetreslutを投げることで、
非同期にしました。
パソコン同士をLANケーブルに繋げてデーターを引越ししようと考えていますが それに関する良い書籍があれば教えて下さい
oracle(シルバー)とMYSQLをマスターするならどちらが難易度が 高いでしょうか?
173 :
初心者 :2005/04/28(木) 15:04:08 ID:kvbjVM5V
以下のクエリで”このコンテキストではサブクエリは無効です。”というエラーが でるんですが、こういうことは出来ないのでしょうか? INSERT t_City ([Prefecture], [City]) VALUES ((SELECT Prefecture FROM t_Prefecture WHERE id = 2), '横浜市');
>>173 エラーメッセージの意味はよくわからないけど、こんな感じでどう?
INSERT t_City ([Prefecture], [City]) SELECT Prefecture, '横浜市' FROM t_Prefecture WHERE id = 2;
>>172 難易度が高いのはMySQL。
理由:Oracleシルバーの範囲はOracleの極一部。かつそのための参考書
があったり先生になるひとがたくさんいる。
MySQLのマスターとなると、範囲がOracleだとプラチナまでになる。
MySQLということではしょれることもあるが、基本的により高度で広範囲。
177 :
NAME IS NULL :2005/04/29(金) 16:46:33 ID:co2ombPb
全くの初心者です。 今、友人の会社で働いているのですが、 HPでお客様が物件の検索をできる様に、 不動産賃貸・戸建物件用のデータベースを作って欲しいと言われました。 (写真も検索時に表示させたいそうです。) 私はDreamweaverでHPを作った事がある、という程度の初心者で、 何から勉強していいのかサッパリ分かりません。 本屋に行ってみたのですが、どの言語(?)の物を買っていいのかも分かりません。 「これをまず最初に勉強すれば良い」等、アドバイスをして頂けませんでしょうか。 よろしくお願い致します。
178 :
NAME IS NULL :2005/04/29(金) 18:59:55 ID:y0UOTasb
楽天ビジネス行けば? 10万くらいで誰か作ってくれるよ。
179 :
177 :2005/04/29(金) 22:57:53 ID:???
>178 済みません。時間かかってもいいから勉強して欲しいと言われました。 けど、どうしていいか、友達も私も分からないのです。 ご面倒で申し訳ございませんが、引き続きアドバイス宜しくお願いします。
180 :
NAME IS NULL :2005/04/30(土) 06:20:31 ID:SEFlAblA
>>177 今時ならPHPとMySQL(or PostgreSQL)なのかな。連携して使う方法がどちらの本にも書いてあるケースが多いよ。
でも、ごく一般的な入門書の知識だけだと、セキュリティホールだらけになりやすいので注意。
正直、対外用のもの作るなら、まじめにやっても半年は修行した方がいいと思う。
181 :
NAME IS NULL :2005/04/30(土) 10:19:16 ID:SEFlAblA
180だけど、 「PHP5徹底攻略」でPHPの基本を勉強して、「PostgreSQL完全攻略ガイド」もしくは「MySQL徹底攻略ガイド」 でDBを勉強するのが最近の定番かな。がんがれ。 つか、漏れもそのレベルでいままさにがんばってます。
182 :
177 :2005/04/30(土) 11:08:03 ID:???
>180 ありがとうございます! 途方に暮れていたのですが、俄然やる気が出てきました! 本当に本当にありがとうございました。頑張ります!
1円確認株式会社ってありますよね あれ、法律で3ヶ月ごとに決算書を 公開しなければならない、と決められていて、 それが地元の経済産業局にいくとキングファイル 2冊分、合計2000社分くらい無料で閲覧できるわけです そんで、それが紙ベースで公開されてるんで、それを ノートパソコンとかを持ち込んで全部入力して、 ネットで公開する仕組みを作りたいと思いまして、 霞ヶ関の経済産業省の本省に電話して聞いたら 別に公開しているデーターなのでコピーは取れないが 自分でノートパソコンを持ち込んで入力したり、 ノートにメモを取ったりする分には問題無い、と回答を いただきましたので、これをやろうと思うのですが、 データーベースのソフトとしては、どんなものを使ったら いいでしょうか? 自分の脳内ではエクセルとかに入力していこうかと思うのですが
>>183 1円起業会社って決算3ヶ月ごとなんだ結構面倒ですなぁ。
2000件くらいなら十分excelの範囲です。
データさえあればあとで別のシステムにコンバートしてもいいし。
てかよく考えたら、今の時代、 決算書なんてほとんどソフトで 作ってると思うし、そのソフトで 作ったデーターを、わざわざ紙に プリントアウトし、その紙をキングファイルに たばねて公開して、その紙に書かれた情報を またオレ様がエクセルに打ち込む、、、、 ってあまりにもばからしくてロシアの刑務作業みたいなので、 どうせもともとデーターはそれぞれの会社のパソコンに入っているのだから、 何かプラグインを作って無料で配布して、ボタン一発で 自社の決算書の内容をネットに公開できるような仕組みを 作った方が早いですか?どうせ3ヶ月ごとに公開するデーターだし、 この仕組みを作ればオレ様がいちいち、手で入力しなくてもいいし
でもそのソフトをダウンロードさせてインストールさせて 決算書公開ボタンを押させるには、なんらかの インセンティブが必要なわけだ たとえば 1円確認会社の社長さんにとって、すごい便利で 使いやすい決算書のソフトを作って、それを無料で 配布する。そんでそのソフトを使ってもらって、 「この公開ボタンを押せばクリック一発でネットに 決算書を公開できますよ、もしそれを見た投資家から 投資や融資の話があれば当社で代理で商談を聞いておきますよ」 などといえば導入する動機ができるかんじ? とにかく相手にとってなんらかのメリットがないと こっちの思うとおりに動いてもらえないから
187 :
NAME IS NULL :2005/05/04(水) 10:44:41 ID:WN3q55GR
Oracle9i使ってます。 Timestamp(6)というフィールドに どうやっても入力されないんですが知ってる方いましたら お願いします。
188 :
NAME IS NULL :2005/05/05(木) 15:34:33 ID:DEc7a0K2
何の質問でもいいですか? ガソリンスタンドとかの請求書の打ち出しとかはどういう風に プログラムしてあるのですか?
>>188 どこがDBに関する質問なの?
何でもいいというが、あくまでもデータベースについての質問。
190 :
NAME IS NULL :2005/05/06(金) 00:42:05 ID:SNR5yxSQ
ある小規模なシステムを作ることになったのですが、 忘れかけのACCESSと一から覚えるファイルメーカーではどちらがいいですかね? ちなみにACCESSでの開発は数年くらい前が最後、 ファイルメーカーは先ほど試しに触ってみた程度です。
191 :
NAME IS NULL :2005/05/06(金) 01:12:59 ID:QbOKHf4/
MySQLで、userテーブルから全てのユーザーを削除してしまいました。 現在rootでもサーバに接続できません。 だれか復旧方法を教えて下さいませ。
専用スレいったほうがいいと思うのだが
193 :
191 :2005/05/07(土) 00:30:50 ID:???
自己解決しました。 mysqlフォルダの中にbackupフォルダがあったので、 そこからuser.MYD、user.MYIを持ってきて上書きしたら、rootで接続できました。
初歩的な質問でスミマセン >< oracle8というデータベースが社内にあり 至急以下内容のsql文を発行し調べ物をしたいと思いのます。 コレが終わらないと今日の仕事が終わりません(´・ω・`) AテーブルのカラムDとBテーブルのカラムEを比較し 同一値のみを抽出したいと思っています。 GW中なのにこんな時間まで仕事中の私をどなたか救って下さい
195 :
NAME IS NULL :2005/05/09(月) 12:28:42 ID:VSWj15v/
SQLに関する質問です。 以下のテーブルがあるとして(括弧内はフィールド)、 社員テーブル(ID、名前、年齢) 担当先テーブル(ID、名前、住所) 資格テーブル(ID、名前) 社員担当先テーブル(社員ID、担当先ID) 社員資格テーブル(社員ID、資格ID) 社員情報一覧に、資格や担当先も表示するといった場合、どのようにすればよいでしょうか? 担当先や資格は、無いときもあるし複数あるかもしれない。 表示するときは、DBから返ってきた表をそのまま表示するのでなく加工します。 考えられるのが、 1、社員担当先、社員資格を社員テーブルへ左結合して取得。 2、最初に社員テーブルだけ取得して、担当先、資格は社員ごとに1件ずつ取得。 しかし、1だとレコードが担当先x資格の数になるし、2だとDBへ何度もアクセスし性能面が心配です。 1、または2の方法でいいのか、それとも何か他の方法があるのか、設計からまずいのか教えてください。
社員:担当先=1:n、社員:資格=1:nで担当先と資格は直接関連がないから まとめて取得するのは無理がある。社員担当先だけ左外部結合で、資格だけ 1件ずつ取得するか、ソート順をそろえてクライアント側でマッチングするか といったところでしょうか。 ストアドファンクションで複数の値をカンマ区切りの文字列にしてしまう方法も あるがそこまでする必要もないだろう。
197 :
NAME IS NULL :2005/05/09(月) 23:13:00 ID:6x6AGuYv
xserveにDBインスコしようと思ったが、OpenBaseってsshからのモニタレスだとインストーラが起動できなくてインストール不能なんだな。 最初からインスコされてるMySQLをおとなしく使うよ。orz
こんなDB作りたいなってのがあって、 どんな設計(?)っていうのかな?どんな感じに作ったらいいかっていう 相談をしたいんですが、どこのスレで聞いたらいいですか?
200 :
NAME IS NULL :2005/05/11(水) 09:25:41 ID:RvsSPPUm
プログラム板で質問をしたらDB板に行くように勧められたので移行してきました。 OS:Win2000 DB:Oracle9i VB6.0で開発をしています。早速ですが 得意先テーブルに番号、請求番号、区分、口座番号の4つフィールドがあり、番号= 請求番号・区分=0のレコードで口座番号をグループ化したデータを抽出したいので すが、行き詰まってしまいました。 口座番号をグループ化するだけならよかったのですが、他で条件をつけてしまうと 同口座番号のレコードが複数できてしまいます。 アドバイスお願いします。
>>200 何がしたいのか読み取れないけど、
抽出条件が番号=請求番号 and 区分=0 で
グループ化が口座番号でいいのかな?
202 :
NAME IS NULL :2005/05/11(水) 17:02:45 ID:RvsSPPUm
>>201 レスが遅れてすいません。
はい、そうです。
>>200 よくわからんけど、番号・請求番号・区分もグループ化の条件にしてないですか?
select 口座番号 from xxx where 番号=請求番号 and 区分=0 group by 口座番号
で口座番号の重複はないと思うのだが。
口座番号でグループ化する必要あるのだろうか・・・ 普通にWHERE句で条件指定して、SELECT DISTINCT 口座番号でいいんじゃ・・・
205 :
NAME IS NULL :2005/05/11(水) 20:33:52 ID:jNe+rQKW
>>204 欲しい情報が口座番号だけであれば、その通りだな。
>>200 言わんとしている意味がいまいちよく解らんが、↓のSQL文でどうだ?
select a.口座番号 from 得意先テーブル a
where exists (select * from 得意先テーブル b where b.番号 = a.請求番号)
and a.区分 = 0
group by a.口座番号;
よく解らん質問にこれだけ回答がつくとはお前らいいやつらだな。
>>199 データモデリング関連か、近いの無かったら立ててみたら
208 :
NAME IS NULL :2005/05/12(木) 14:08:42 ID:4hckKXOk
>>203 >>204 >>205 みなさんレスありがとうございます。203さんの予想通り、番号等もグループ化
にしていました。
>>205 さんのSQLを参考にして作ってみました。自分で作ってみた「グループ化
をせずに条件式だけ当てはめて口座番号順で抽出」をループにかけて、同じ口
座番号の間は処理をしないというプログラムと件数が一致しないので、これか
ら原因を調査してみます。
皆さん本当にありがとうございました。説明下手で申し訳ないです。
209 :
NAME IS NULL :2005/05/12(木) 21:21:04 ID:s0CUQHxA
Accessで作ったテーブルおよびデータを そっくりOracleに移行したいのですが どうすればいいのでしょうか?
WEBクリエーターのシステム開発で、MYSQLよりも、 ORACLEを学んだ方が、収益に格差はでて きますでしょうか? また、MYSQLはPHPと互換性がありますが、ORAcLEにも、 互換性のあるプログラミングはありますか?
>>210 >MYSQLはPHPと互換性がありますが、
↑意味不明だよ
とりあえずもうちょっと勉強してからなんか書けよ。
DBなんて基本は一緒なんだからさあ。
今の君はMYSQLだろうがORACLEだろうがだめぽ。
>>210 善意で解釈すれば組み合わせて使えるかってことだろうけどな。
そろばんのこと気にするよりまずいろはの勉強だな。
213 :
NAME IS NULL :2005/05/13(金) 13:02:13 ID:TNGA819J
MS-ACCESSにて、データを削除してもその領域は再利用されず、 またデフラグみたいなこともできないので、追加削除がたくさん行われると データはそれほどなくても、mdbのサイズが肥大してしまうと聞いたけど、 それって本当?
>>213 本当。
だけど、最適化で領域のサイズを小さくする事は出来るよ。
215 :
213 :2005/05/17(火) 13:27:58 ID:m4rft8qi
216 :
NAME IS NULL :2005/05/19(木) 10:57:00 ID:DvvYhUaB
Private Sub cmdRun_Click() Dim r1 As Recordset Dim strSQL As String Dim r1cnt As Integer strSQL = "SELECT * FROM ITSU" Set r1 = CurrentDb.OpenRecordset(strSQL) txtMain.SetFocus txtMain.Text = r1!Ku r1cnt = r1.RecordCount txtMain.Text = txtMain.Text & r1cnt r1.Close: Set r1 = Nothing End Sub これで実行すると、r1cntの中身が1になってしまいますorz r1.Move(2)でレコード移動、とかしてやると、正しく3が入るのですが… 環境はAccess2000にWin2000Proです。 ボ ス ケ テ
217 :
216 :2005/05/19(木) 11:10:32 ID:DvvYhUaB
補足ですが… Set r1 = CurrentDb.OpenRecordset(strSQL) のすぐ下に、 r1.MoveNext r1.MovePrevious を入れると、ちゃんと動作するんです(><) なんだよこれぇ…orz
>>216 それは仕様。
r1.MoveLast (手元に資料がないのであってるかな?)などで
結果セットを最後まで読み込まないと正しい件数は入らない。
219 :
216 :2005/05/19(木) 11:14:43 ID:DvvYhUaB
>>218 ΩΩΩ<な、なんだってーっ!
なるほど…出会ったばかりじゃお互いのことを何も知らない、と解釈しておきますw
助言d!
220 :
216 :2005/05/19(木) 13:21:21 ID:DvvYhUaB
あ、補足すんの忘れてたw
>>217 にも書いたけど、最後まで読み込まなくても大丈夫でした。
少しくらいお互いを知ってからじゃないと分からない、っつーコトでw
>>220 10件のデータなら2件目を読めばcountは10になるが、
1000件あるなら2件目を読んだらcountは100くらい。
件数や数量は適当だがこんな感じだ。
ちょっといいことしたくらいで仲良くなったつもりでいると痛い目にあう。
222 :
NAME IS NULL :2005/05/19(木) 21:11:33 ID:hHUaKtpi
すみません、初歩的な質問なのですが データベース定義書というものはどのようなものなのでしょうか? 実際に見たことがないのでイマイチ、ピンときません。 ググってはみたのですがよく理解ができなくて。 スレ違いだったら申し訳ないです。
224 :
223 :2005/05/19(木) 21:53:42 ID:???
ああ、ごめん。 ググったら、データベース定義書とも言うんだな・・・。 データベース定義書 ≒ テーブル定義書 だな。
225 :
NAME IS NULL :2005/05/19(木) 23:12:39 ID:jZCAEdaE
>>223 どうもです。
テーブル定義書でググってみます。
226 :
NAME IS NULL :2005/05/20(金) 00:05:08 ID:mLA73BI4
質問してみます。 レガシーマイグレーションしなきゃいけないんだが、どこか参考になるスレを紹介してくれないか。 オフコン→オラクルなのだが。
オフコンがRDB使ってるなら、自分で考えればよいだろ。 今時オフコンなんて稼動していないから 唯一稼動していると思われるIBM AS400なら DB2 → ORACLEのマイグレーションを考えればよい。 DB2とORACLEのテーブル定義属性の違いを吸収するように。。。
228 :
216 :2005/05/20(金) 10:13:10 ID:ZTmXqtUI
>>221 …その仕様は、便利なのかどうかっorz
了解、中〇しするまで油断しないでおきますY⌒Y⌒(*。A。)
で、昨日はしっかり動いてたプログラムが、今日なぜか動かない件についてorz
レコードセットを開く(CurrentDb.OpenRecordset("SQL文"))←コレがエラー出してくれる。
型が一致しません、だそうなorz
ってか、今朝は動いてた。さっき動かしたらこのエラー。
実は昨日もあった。再起動とかしてたら動いたりしたorz
原因分かる方いますか?orz
229 :
216 :2005/05/20(金) 10:48:54 ID:ZTmXqtUI
自己解決しますた…他の人に参照設定いじられてたorz さて、七誌に戻ろうw
最初に件数数えるためだけに全読み込みなんてしてらんないのだよ
SELECT count(*) as cnt FROM ITSU で、cntを見た方が速いんじゃない?
select count(*)で件数を確かめて、その大きさの配列を作ったあと select * で読み込んだとする。最初のselectと2回目のselectの間に データの削除や追加があった場合に不都合なことが起きる。 コレクションなど動的に大きさを変えられる配列がある場合は件数を 確認せずに順に読めばいいのだが、ない場合はCountを参照することになる。
そのためのトランザクションですよ。
>>233 シリアライズトランザクションが必要になりそうだが、パフォーマンス悪そう。
235 :
226 :2005/05/21(土) 19:08:58 ID:???
今どきオフコンなんて稼働してないのか・・ 三菱Entranceなんて使ってるウチの会社逝ってよし。
236 :
NAME IS NULL :2005/05/22(日) 13:36:04 ID:TBKZk51g
質問です。。。 PostgreSQL8.0.2のWindows版を使っていて、pgAdmin3を使って テーブル名を変更したところ、このテーブルを参照できなくなりました。 手順は次のような感じです。 1.pgAdmin3でテーブルを右クリック、プロパティで名前を変更(test_tbl→test_tbl_old) 2.PerlでDBIを使用して、"SELECT * FROM test_tbl_old"を実行。 3.次のエラーが表示されて参照できませんでした。 「DBD::PgPP::st execute failed: Unknown message type: ' at aaa.pl line 29.」 試しに"test_tbl_old"の部分だけ他のテーブルに置き換えてためしたらそちらのデータは取得できました。 pgAdmin3のクエリで上記のSQL文を実行してもとれました。 試しに名前を元に戻したり("test_tbl_old"→"test_tbl")したのですが、結果は変わらず(エラー)でした。 どなたか原因お知りでないでしょうか。
237 :
NAME IS NULL :2005/05/22(日) 13:46:40 ID:VoU4t4JU
ISBNコードのデータベースって公開されてるんでしょうか? 自前のプログラムで検索してみたいんですが ご存知ありませんか?
239 :
236 :2005/05/22(日) 22:37:59 ID:TBKZk51g
ヒントありがとうございました。 試す前に再起動させたところ、、、なんかチェックディスクとか動いてerrorとかでて動かなくなりましたorz #起動させると青い画面が一瞬出てプツン・・・再起動→繰り返し。 OSインストールからやり直しますorz(このカキコは別PCです。)
241 :
NAME IS NULL :2005/05/27(金) 20:03:20 ID:j2UhUfGV
素人プログラマがセキュリティの知識もなしに構築したサイトって多いよ。 なによりちゃんと専門知識持ってる所に頼むとコストがかかるからな。 ウェブ鯖なんて外から見える所でモロにDB動かしてたりするし(w
>>241 全体にわたってスカスカってことはないと思うが、
規模が大きく更新の速度が速いとどうしても漏れができる。
予算や工期を削られるとセキュリティや異常系にしわ寄せが来る。
さらにこういう部分はホワイトボックステストでは発見しにくい。
専任のセキュリティ管理者を置いて監視を強化するのが一番だと思う。
DBも専任のDBAを置いてくれたらトラブルも減るのだが、
DBAがちゃんと働いてトラブル無しが続くと仕事がないように
見えるらしくて別の仕事を入れられちゃうんだよな。
そうするとDBAの仕事が片手間になってトラブルが起こる。
以上愚痴でした。すまそ・・
理想と現実ってとこですか
244 :
NAME IS NULL :2005/06/03(金) 23:26:14 ID:oTHvrulW
postgresqlで既に作ってあるdatabaseのownerを変更する方法はありますか? # su - postgres $ psql sample sample=# ALTER DATABASE sample SET owner to myaccount; ERROR: unrecognized configuration parameter "owner" とか試してみて失敗しました。
246 :
NAME IS NULL :2005/06/05(日) 13:40:18 ID:J+iYtvmB
リレーションについて質問があります。 SQLServer(他のDBにもたぶんあるはず)のリレーションの設定 をするとどんなメリットがあるのでしょうか 結合ならSQLだけでできるはず。 となれば、削除のときとかに連携して削除?くらいしか思い浮かびません なにかもっと重要なことに使われる気がするのですが・・・
>>246 削除だけでなく、連鎖更新もある。
それに、おそらく一番使われるのは参照整合性だと思うが?
248 :
246 :2005/06/06(月) 07:13:00 ID:bTXMybjK
>>247 素早いレス、ありがとうございます。
参照整合性を調べると謎が解けました。
これはたしかに設定しとくべきですね。
もうひとつお聞きしたいのですが、ということは、リレーションの主キー・外部キーと、
SQLで結合するときの主キー・外部キーとの間には直接の関係はない、
ということでしょうか?
(なんといったらいいのか難しいのですが、普通の場合、
リレーションに設定するキーとSQLの結合に使うキーは同じ
ものになるはずですが、仮にリレーションを設定してなくても
きちんと参照さえされていればSQLの結合には影響を与えない、
という意味です)
>>248 リレーションは設計上の概念で、外部キー制約はその概念を実現強制するための手段。
設計上のリレーションがあっても実装では制約にしないことも多いので、
リレーション≡外部キー制約を前提にしているツールは使いにくいと思う。
リレーションはあっても制約にしないというオプションは欲しい。
「リレーションの設定」や外部キーはSQLを直接記述する場合の結合には関係しない。
「リレーションの設定」の目的は次のようなものだと思う。
外部キー関係を視覚化する。設計上のリレーションを他のメタ情報と同列に保存する。
外部のプログラムやツールなどに表間にリレーションがあるという情報を提供する。
250 :
NAME IS NULL :2005/06/06(月) 22:54:20 ID:pJ2aCNkQ
Oracle10g + TOMCAT4.1 でシステムを作れって案件を任されました。 Oracle はとりあえずインストールしました。 TOMCATもとりあえずインストールしました。 でも、この先が全くわからなくて困っています。 とりあえず、オラクルにDB&テーブルを作って、Servletの画面に表示させる事をしたいのですが。 何をどうすればいいんでしょうか?
251 :
名無しさん :2005/06/06(月) 23:17:25 ID:4hfqP/Xc
業務システムのDB設計って基本的に論理削除ですか? その場合、論理削除フラグが0のものだけ抽出するようなビューを作って アプリケーションはそのビューにアクセスするようにするものですか?
>>250 わかってることは何か、わからないことは何か、ということがわからないと掲示板のレベル
ではアドバイスのしようがない。とりあえず何がわからないか、ということが明確になるまで
OracleとJavaについて勉強するのが先決でしょう。
>>251 論理削除が基本、ということはない。あくまで要件次第。
253 :
NAME IS NULL :2005/06/06(月) 23:37:05 ID:pJ2aCNkQ
>>252 早速のレスありがとうございます。
わかってる事
どうやら、OracleDBにJAVAさーぶれっとからアクセスできるらしい
JDBCとか言うのをつかうらしい
わからない事
DBの作成方法
JAVAサーブレットからDBにアクセスするための環境設定や手順
こんな感じです。
>>253 EJBやHIBERNATEなどを使わないならJDBCの使い方はスタンドアロンのJavaアプリと同じ
OracleのJDBCドライバはoracle\product\10.1.0\db_1\jdbc\libにはいっているので
tomcat\common\libにコピーしておけばCLASSPATHの設定を省略できたと思う。
Oracle固有の部分はOracleのJDBCのマニュアルを参照する。
255 :
Eclipse :2005/06/07(火) 01:03:04 ID:BBudaw4T
WindowsのPostgreSQLでDBをいじってるんですが、 シェルスクリプトを実行してDBを作成するみたいなんですが、 Windowsでシェルスクリプトを実行できるんですか? 出来るなら手順の説明お願いします。 開発に使っているソフトはEclipseとPostgreSQLです。
Windowsは、普通にコマンドラインからcreatedb。 その後はpsqlで。
>>253 「らしい」というのは実際にやってみたことはない、ということでしょうか。
であれば、Web上でも書籍でもサーブレットやJSPも含め、JDBCプログラミング
の解説はいくらでも転がっていますから、まずそれで勉強してみてください。
それから、Oracleのデータベース構築については、まずはマニュアルを
当たってみるのが先決でしょう。
258 :
NAME IS NULL :2005/06/07(火) 16:43:32 ID:DUMmn5aH
>>257 いろいろググりまくってつながるようになりました。ありがとうございます
259 :
246 :2005/06/07(火) 17:12:42 ID:9KAEpatc
>>249 レスありがとうございます。
ようやくリレーションについて分かりました。
どの本も天下り的に「ここはリレーション関係なので
リレーションを設定する」としか書かれてなかったので
とても参考になりました。
260 :
Eclipse :2005/06/07(火) 19:15:29 ID:/zbVpilX
>>256 レスありがとうございます。データベースが作成できました。
261 :
NAME IS NULL :2005/06/08(水) 16:05:23 ID:C+/buy4E
初めてデータベースに触った、というか、インストールでのトラブルなんですけど Fedoracore3でmysqlをインスコしたらmysqladminが見つからないです
どうやってインストールしたのか書いてくれ まあソースからじゃあないんだろうけど・・・
263 :
NAME IS NULL :2005/06/08(水) 17:43:42 ID:gCeNQ6+v
PC&データベース共に超初心者なのですが、 MySQLのインストール確認のため、命令プロンプトから起動させる時点で C:\mysql\bin\mysqlshow と入力したのですが、指定されたパスが見つからないとのメッセージが出ました。 これは一体どういうことなのでしょうか…?
264 :
NAME IS NULL :2005/06/08(水) 19:46:25 ID:6vNeS4FX
はじめまして。ここで質問してよいのやら分からないのですが、 C++Builder6のデータベースデスクトップでInterBase(バージョン7) のテーブルを作成しようとしています。 テーブルの新規作成でInterBaseを指定してLONG型などはテーブル作成 できるのですがDATE型で作成しようとすると「テーブル作成要求が無効です」 というエラーがでるのですがDATE型は作成できないのでしょうか。 ヘルプによれば、できるように書いてありました。 どなたかよろしくお願い致します。
265 :
NAME IS NULL :2005/06/08(水) 22:43:11 ID:C+/buy4E
>262 aptです・・・パッケージ管理で、インストールしたファイル一覧見れるんですけど mysqladmin含まれてないです 一旦uninstallして、tarからmake installした方がよさそうですね
>>265 apt-cache search mysql | grep -i admin
<略>
mysql-admin - GUI tool for intuitive MySQL administration
mysql-admin-common - Architecture independent files for MySQL Administrator
<略>
サッカーの総当たり戦のデータベースを作りました。 試合ごとに番号を付けて、各チームごとに カラムを<試合番号、チーム名、得点>として、試合番号とチーム名をキーにしました。 このテーブルから、チームごとの勝ち点を問い合わせるにはどうしたらいいでしょうか? 勝ち点は勝ったら3点、引き分けで1点、負けたら0点です。
268 :
267 :2005/06/09(木) 13:53:28 ID:???
すみません追記です。 例えばこのテーブルからチームごとの勝数を問い合わせたかったら、 SELECT チーム名, count(*) as win FROM テーブル, テーブル as M WHERE 試合番号 = M.試合番号 and チーム名 <> M.チーム名 and 得点 > M.得点 GROUP BY チーム名; とすればいい状況です。
SUMとCASEを組み合わせればできるはず。検証はしてないのでやってみてください。 SUM( CASE WHEN 得点 > M.得点 THEN 3 WHEN 得点 = M.得点 THEN 1 ELSE 0 END )
>266 ありがとうございます 調べたら、mysql-serverの方に入ってました ホント間抜けな質問してすもませんでした
271 :
267 :2005/06/10(金) 06:40:43 ID:???
>>269 無事できました!!
ありがとうございます。
CASE文知りませんでしたorz
272 :
NAME IS NULL :2005/06/13(月) 11:13:20 ID:PsaJaN3I
相談させてください 会員サイトで操作履歴を格納するテーブルをつくってるのですが やはりプライマリキーはつけたほうがいいのでしょうか? ログ的なテーブルなので追加以外は参照のみで 更新はありません。 キーにするとしたら、会員IDと操作日時 もしくは会員IDと何らかのキー? 一意になりそうなら会員IDと操作日時をキーにしても問題ないですか? なんとなく日時をキーにするのは気が引けて いつも悩みます。
>>272 IDENTITYやSEQUENCEを使って自動で番号を振りそれをキーとする
274 :
272 :2005/06/13(月) 14:16:05 ID:???
>>273 なんとなく溢れたときのことまで考えるのが
いやだったんですけど
4バイトもあれば十分か・・・
単純にそうしますー
275 :
NAME IS NULL :2005/06/14(火) 01:58:00 ID:43NDRbMy
データを入れてスループット検証することになった メンバーテーブルで10万件のメンバー名を日本語で入れることになった 実際の運用に近いようになるべくランダムな日本語データ入れたくて 歴史人物の入ったcsvファイルとかあればいいなと思いググったがうまくいかず (あってもシェアだったり、数が数千が限度・・・) 地名などでもいいかと思って検索したがこれもいいのがみつからない 数万単位で日本語ランダムデータが手に入るいいファイルとかないですかね? みなさんこのようなランダムデータ入れるときはどのようにしていますか? ちなみに開発環境はC++builder5とFirebirdです
277 :
NAME IS NULL :2005/06/14(火) 15:14:08 ID:rj4vdg4K
質問なんですが、 列を増やすと検索スピードが遅くなるんでしょうか? 値は1か0のフラグ用です。
>>277 理屈の上で言うと、一レコードのサイズが増えるため、検索時に読む込む
データページ数が増えて「遅くなる」可能性はある。ただそれが問題に
なるかどうかはなんともいえない。
279 :
NAME IS NULL :2005/06/16(木) 22:28:18 ID:gNTdOToO
質問 FETCHしたときホスト変数の後ろの余った部分には 半角スペースが入るってホント?
280 :
NAME IS NULL :2005/06/16(木) 22:51:37 ID:6z0FGnzs
ORACLE10Gの障害教えてくれ
>>279 埋め込みSQLの話かな?CHAR型だとそういう動きをしてもおかしくない。
>>275 日本語のランダムデータは大体エクセルでつくってる。
元ねたを自分で作った後、
RAND,INDIRECT,CONCATENATE
とかの関数つかってグネグネやったら
なんとかなったりしたこともあった。
283 :
NAME IS NULL :2005/06/17(金) 14:31:12 ID:ogiV8NgL
phpmyadminを開いて「select last_insert_id() from 目的のテーブル」 を発行してみましたが、「last_insert_id」「0」×レコードの数の 表が表示されます。これではcount(last_insert_id())などとしなければ 最新のAuto_increment値が得られません。 last_insert_id()は値をそのまま返すのではないのですか?
284 :
NAME IS NULL :2005/06/18(土) 21:54:53 ID:2M7UZf8K
googleのDBってoracleですか
285 :
NAME IS NULL :2005/06/18(土) 22:08:10 ID:X+w1D4Tc
分散データベースやレプリケーションについて 詳しく書いてある書籍はないでしょうか?
286 :
NAME IS NULL :2005/06/18(土) 22:42:43 ID:ywdW8xqh
OS X10.4なんですが、CAD図面の画像データベースってつくれませんか?
287 :
NAME IS NULL :2005/06/19(日) 00:58:36 ID:xdcP5eBL
質問です 「R1(A1,A2,A3)R2(B1,B2,B3)R3 (C1,C2,C3)の表があります。 この三つの表を使ってVR(A1,B1,A2,A3,B2,B3,C1)となる表VRを 作成しなさい」 と言うのが問題なのですが、教えていただけませんか?
かなり初心者な質問なのですが自宅の環境でデスクトップPCにSQLServerがインストールしてあって 無線LANでつながっているノートパソコンでサーバーの中を覗けるようにしたいのですが、 このまま無線LANで接続できるようになるのでしょうか? LANケーブルで直接つながないと無理なのでしょうか? また、SQLServerをノートパソコンにもインストールしないと駄目なのでしょうか? よろしくお願いします。
290 :
NAME IS NULL :2005/06/19(日) 02:22:30 ID:xdcP5eBL
>>288 課題を先生に聞けると思いますか?
聞けるのならば聞いていますよ。
それともここで質問とかはしていけないのでしょうか?
291 :
NAME IS NULL :2005/06/19(日) 02:32:51 ID:xdcP5eBL
テーブル設計に関する質問です。 日々ある一つの文字列を入力し、月ごとにデータを管理する場合、 データ効率や処理速度的には以下のどちらの ほうがよろしいのでしょうか? Type1 id,年,月,日,data Type2 id,年,月,day1,day2,day3,day4,day5,day6・・・,day31 私はType2のほうが、クエリが書きやすいのと、レコード件数を 少なく抑えることができるので良いと思うのですが、 無駄なフィールドがあるとか、ちゃんと正規化されてないとか 批判されております。 皆さんは実際どっちを使っているのかが気になって質問してみました。
>>292 操作単位が常に月単位ならType2それ以外ならType1にしてる。
なぜかしら意図した方と違う修正が入ることが多いよ(笑)
type2は死んでも作らんなあ type1作ってtype2のviewを作ることはあるかも
Type2を作りたくなる気持ちは分かるが俺だったら id,年月日,data だけで済ますな。他に応用が利かないデータなんて寂しいもん。
297 :
NAME IS NULL :2005/06/19(日) 13:07:13 ID:LkvMtjKc
QDBMのVillaで、キーを char a[25] = ""; unsigned int b = 54561; char c[20] = "aiueoaiueoaiueoaiueo"; memcpy(a,&b,sizeof(unsigned int)); memcpy(&a[sizeof(unsigned int)],c,20); というようにして生成したのですけど、 これだとvilla.curjump()が失敗する様です。(一番上のレコードに飛んでしまう) 原因や解決策が分かる方居ませんか?
298 :
297 :2005/06/19(日) 13:10:50 ID:???
すみません。
>>297 でキーとはa[25]の事です。
>>290 どのフィールドがキーなのかわからないから先生に聞けとしか答えられない
301 :
292 :2005/06/19(日) 15:13:40 ID:???
やはり、汎用性などの理由からType2ですか。 でも、私はType1の方が、レコード数が少ないことから、 複数アクセスによる競合の危険性を低くする事にも つながると思ったんですよね。 月ごとなので、読取り、更新、追加、削除が、必ずレコード1件 単位で行われることになるので。 小出しみたいになってスマソ。汗
302 :
292 :2005/06/19(日) 15:14:57 ID:???
301の書き込み、Type2とType1が逆だったぁ〜。
304 :
NAME IS NULL :2005/06/19(日) 17:13:48 ID:yz2G81Nd
WGETを使って集め、インデックス化してデータベースにぶち込みたいんですが 普通にやるとパンクしたりするんでしょうか?教えてエロイ人
305 :
297 :2005/06/19(日) 18:14:40 ID:???
自己解決しました。 一応原因と解決策について、自分のメモ帳に書いた文章をそのまま載せます。 Villaのcurjumpで指定する接頭辞とその文字数は、 接頭辞[文字数] == '\0' になるものでなければならない。 例えば"aiueo"という文字列の先頭ポインタを接頭辞に指定して、 文字数を3にしてaiuから始まるものを検索しようとしても出来ない。 「aiu\0」という文字列を用意して、文字数3を指定するかあるいは-1を指定すれば出来る。 だが、putのkeyは"aiueo"という文字列の先頭ポインタと文字数3を指定するとaiuを格納する。
>>301 アクセス競合はType2の方が増えるんでないかな?
いまどきレコードレベルロックが使えないDBMSとかじゃないだろう。
それはさておし、292はそんな心配する前にきっちり正規化した
データベースをまず作ってみるのが先だな。
307 :
NAME IS NULL :2005/06/19(日) 20:16:36 ID:MCaBgXED
これからデータベースを独学で勉強しようと思うのですが、何かよい参考書は ありませんか?
開発環境は何よ?
309 :
NAME IS NULL :2005/06/19(日) 22:36:46 ID:MCaBgXED
>>308 すいません載せ忘れました。
PostgreSQLです。
DBの何を勉強するのさ
312 :
NAME IS NULL :2005/06/20(月) 20:04:40 ID:6iecJH7U
QDBMのVillaの比較関数で以下の様なコードを書きました。 int cmpfunc(const char *aptr, int asiz, const char *bptr, int bsiz){ unsigned int i = 0; while((i < (asiz-10))&&(i < (bsiz-10))){ if((aptr[i+10] - bptr[i+10])>0){return 1;}else if((aptr[i+10] - bptr[i+10])<0){return -1;} i++; } if(asiz < bsiz){return -1;}else if(asiz > bsiz){return 1;} i=0; while(i < 10){if((aptr[i] - bptr[i])>0){return -1;}else if((aptr[i] - bptr[i])<0){return 1;}i++;} } これは、上位桁0埋めの10桁の数字+文字列がキーとなるDBで、 最初に後半文字列部分で辞書順に並べ替えて、 その部分が一致した場合に前半数字部分で値の大きい方が先に来る様に並べ替える意図です。 qabm.cgiによってレコードを確認してみるとちゃんと意図した通りに並んでいるのですが、 何故かこの比較関数を用いたDBだけvilla.curjumpによる前方一致検索が出来ません。 デフォルトの辞書順による並べ替えでは、それ以外のコードを全く同じ物にして成功するので 原因はこの比較関数だと思うのですが、何がダメなのか想像もつきません。 分かる方居たら教えてください。
すみません。 DBIでtimestamp型のデータをNULLにUPDATEしたいんですが、空データを突っ込んでも エラーになってしまいます。(ERROR: Bad timestamp external representation '') timestampに限らずNULLを突っ込みたい場合はどのようにすれば良いのでしょうか?
314 :
NAME IS NULL :2005/06/21(火) 07:16:24 ID:mS090twS
age
315 :
NAME IS NULL :2005/06/21(火) 09:48:06 ID:s7+j/QmL
超初心者な質問ですみませんが、 SELECT文で1件を選択する場合の処理時間について、 ・10件から1件を選択 ・100件から1件を選択 ・1000件から1件を選択 ・10000件から1件を選択 と母体となるレコード数が増加した場合に、処理時間がどのように 変化するのか、その傾向を教えていただけませんでしょうか?
>>313 DBIでは、NULLはプレースホルダに入れられるの? column = NULLみたいに書くしかないと思ってたんだけど。
(Oracleの文字列では空文字列==NULLらしいので、扱いがびみょーなんだけど)
>>315 索引がない場合は端から1件ずつチェックしてゆくため件数と比例して検索時間が増加する。
索引がある場合は検索時間はほとんど変化しない。一般的なB-Tree索引の場合、
件数が増えると索引の階層がわずかに深くなるが、10件と10000件程度なら誤差範囲。
318 :
312 :2005/06/21(火) 16:16:59 ID:???
自己解決しました。
すいませんDB超初心者なのですがCSVファイルをASCIIファイルに 変換するいいソフトはありませんか? ベクターで見てもいまいち分からないです よろしくお願いいたします
>>319 CSVファイルと言うのはデータが","で区切られた形式のASCIIファイルなのだが、
君が言うASCIIファイルはどんなものか説明して欲しい。
321 :
319 :2005/06/21(火) 18:42:00 ID:???
おいおい、それだけで問題解決なのかよw
323 :
319 :2005/06/21(火) 22:12:49 ID:???
問題は解決しませんよ。 ものすごく難しくて手に負えそうにないというのが正直なところです。 株の英語のソフトなんですけど、とっても難しいです。 株のデータをCSVファイル(ASCIIファイル)に移して、それをそのソフトに取り込むんですが 取り込み方が分からないんです。 一応、取り込めたと表示が出るんですけど。 ぶっちゃけた話お金払ってでも何とか解決したいですね。 英語のできるSEとかじゃないとわからない感じがしたのでへこんでました。 一応、私は英語だけは何とかなるんですが、DBは専門分野なので難しいですね・・・
じゃあまず一万円から競売スタートです↓
325 :
319 :2005/06/21(火) 23:01:38 ID:???
>>324 一応、ソフトの作成者にファイルを送信していますので
ちょっと待って下さい。
本気にすんなよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
Postgres、なにも考えずインストールしてパスワードメモって無かったから、 同じパソコンで再インストールしたら、ユーザアカウントがすでに存在しているって、 勝手にどこに登録しやがったんだ? 変なソフトだな、もう授業切りたい
ユーザーアカウントってOSの話じゃないのか? winは知らんけど
adminあればどーにでもなるでしょ
MySQLで、たとえば入力した生年月日から算出した年齢を毎年自動更新させるようなことは可能でしょうか? selectで呼び出すときに計算するのではなく、テーブルの内容を自動更新させることが可能か知りたいのですが。
複合インデックスって最大何列まで使ったことあります? (複合インデックスの個数じゃなくて、列数ね)
3つ
333 :
331 :2005/06/23(木) 17:24:34 ID:???
自分は今まで最高5つだったんですが、このたび8個という荒業に挑むの ですが、やっぱマズイですかねぇ? 経験者、体験者いないでしょうか?
8つもあったらindexの意味ないような
336 :
333 :2005/06/23(木) 18:59:14 ID:???
>>334 DBがあまりにも遅いので改善しる!と依頼されたのですが、
SQL文には手をつけるなと...○rz
まずインデックスの見直しを始めたのですが、
とにかく滅茶苦茶で、全カラムに単独インデックスが張ってあったり、
SQLアナライズしてみると、インデックスが使用されていないなど
とにかく無茶苦茶でした。
そんな訳でテーブルの設計うんぬんはご容赦ください。m(_ _)m
私的には連結インデックスは3つまで。それを超えるような場合は
テーブル設計を見直すという方針でやってきたので、こういった
場合、どう対処してよいのか分かりません。
>>335 検索キーとなるカラムが多くて、さすがに全てを選ぶ訳には
いかないので、重複値の少ないカラムをポツポツと選択した結果、
8個になってしまいました。
カラムがA、B、C、D、E、F、G、H、I、J、K、L、M、N
とあって、Aだけが必ず指定されるカラムで、その他は指定されたり
されなかったりなので、Aを先頭にして重複値が少ないカラムの順に
複合インデックスを作ったのですが、そもそもこの考えが間違って
いるのでしょうか?
長文すみません。
A+B+Cで複合索引なら、AかA+BかA+B+Cの検索時のみ索引が使われる。 B+CやCで検索した場合索引は使われない。 A + C の場合は実際に使われるのはAの部分のみ。 属性がたくさんありそれを自由に検索させるプログラムならすべての ケースに索引付けすることは現実的でない。実際に使われている検索 のパターンを調査して使用頻度の高いものに索引をつけるべし。
>>336 使用頻度が高くて値の分布が広いカラムに単独のインデックスをはったっ方が実用的。
使用頻度が高くても値が数種類しかないようなら意味ない。
339 :
336 :2005/06/23(木) 23:07:51 ID:???
>>336 、337さん
ありがとうございます。
1.使用頻度が高い検索パターンに近い連結インデックスと、分布が広いカラムの単独インデックス。
前者を出来るだけパターンに近づけようとした結果、8列もの連結インデックスに
なってしまった訳ですが、メリットとデメリットがトレードオフになるのは何列からなんでしょうか?
2.使用頻度が高くても値が数種類しかないようなら意味ない。
今回、フラグ的なカラムが大量にあり、そのうち数個を連結インデックスに入れました。
(コスト計算をしたところ、非常に効果があったためです)
正直、2値しかないカラムがこんなに有効に働くのが自分でも不思議で仕方ありません。
レコードが少ないからでしょうか?
教えてくんですみませんが、よろしくお願いします。
>>339 >フラグ的なカラムが大量にあり
これはビットマップ索引が有効なケースじゃないかな。
それならば一般的な索引のセオリーとは違ってくる。
こういうのにB-Tree索引をつけた場合は最下位リーフをシーケンシャルに走査してるはず。
検索に必要な属性だけが物理的に連続してまとまっているので、
索引なしで元データを走査するより物理的に読み込む分量が少なくてすむ分有利になる。
中途半端に単独の索引があって使われた場合、
索引と元データの両方をアクセスするため遅くなるケースがある。
もっとも索引あたりのフィールド数は処理系によって制限があるので、
通常は主キーと検索対処のフィールドだけを集めた索引テーブルを作って単純に
全件スキャンするのがよい。
ビットマップ索引が使える処理系だったらその使用を検討するべし。
残念ながらSQLServerなのでビットマップ索引は使えません。(と思っています) 今日もあれこれ悩んでいたのですが、本質的にインデックスを理解できていないのでは? と思うようになりました。 私も337さん同様に理解していたのですが、もしかしたら、A+Cのとき、A+Cがインデックスとして 有効に利用されているのでは?と思いはじめました。 というのも、 検索対象となるカラムを選んで [A][B][C][D][E][F][G][H] という連結インデックスを作りました。そして、A+C+F+Hという条件で検索した場合とAのみで検索した場合を 比較しました。前者も後者も有効な索引はAのみと思っていたので、大差ない結果を予想していたのですが、 実際は前者が断然速く、10数倍の差がうまれました。 今、勉強不足を痛感しています。
エクセルについて質問していいですか?
MySQLadminが、PC起動時に自動で立ち上がって常駐するのを やめさせたいのですが、方法はありますか?
345 :
342 :2005/06/24(金) 22:27:24 ID:???
>>341 インデックス作ったときに統計情報が書き換わって、
オプティマイザの動作が変わったのかもね。
>>341 カーディナリティが低いようだから、インデックスを全部はずすかヒントで使わないようにして
実行すると速くなるんじゃないかな。
348 :
NAME IS NULL :2005/06/26(日) 17:37:00 ID:35IBhiYj
ユーザIDとパスワード管理のためのテーブルを作成した場合 パスワードをテーブルにそのまま出すのはまずいですよね その場合、パスワードのデータを隠蔽化させるにはどうすればいいのでしょうか?
>>348 MD5でエンコードして保存するのがお手ごろ。
350 :
素人カタギ :2005/06/27(月) 10:43:19 ID:AZvnTamt
あのー、ホント恥ずかしい質問なんですけど、AccessにExcelを組み込むことは 可能でしょうか? って言うかできるんでしょうけど、私まったくの素人でサパーリです。 使い方としては、入力用フォームの画面上で個人データの下部にエクセル入力できる フィールドがあったら便利なのになぁといった感じです。そんなテク解説のURLとか 書籍もご紹介いただけると幸いです。 素人のカタギがでしゃばってごめんなさい。よろしくお願いしますです。
どうでもいいけどカタギの使い方間違ってないかい
352 :
341 :2005/06/27(月) 12:40:26 ID:???
>>341 、347
インデックスをはずしてみたところ、実用に耐えない数値になり、また、
カーディナリティが低くても高くても、インデックスがあると
コストが同程度に下がりました。不思議です。
ここでアドバイスをもらって、あれこれやった結果、計算上2〜3倍速く
なったので良かったのですが、SQLServerのクセ?が理解できず、
すっきりしない気分です。
353 :
素人カタギ :2005/06/27(月) 13:29:16 ID:AZvnTamt
>>351 えっ、どういうことですか? なにか良い方法がありますか?
( ´,_ゝ`)プッ
355 :
NAME IS NULL :2005/06/27(月) 16:23:25 ID:nO37uHNb
つまりこの板の住人のほとんどはヤ○ザだと
>>352 答えは
>>340 で出てる。
[A][B][C][D][E][F][G][H] でインデックスがあるとして
A+C+F+Hで検索した場合、最初はインデックスのツリー構造部分でAの値のみを使用するが、
それ以降はインデックスのリスト構造部分(最下位リーフ)のA+C+F+Hの値を利用する。
C+F+Hはインデックスのツリー構造部分で使わないだけでリスト部分では利用されるため
十分効果がある。
357 :
352 :2005/06/27(月) 22:31:43 ID:???
>>356 ツリーでは、索引Aを使って、絞り込み、
絞り込まれたリーフでは、その他の索引が有効に働く・・・
ツリーでの絞り込みを無視する考えであれば(その行為自体は無意味ですが・・・)、
[A][B][C][D][E][F][G][H]の連結インデックスで、B+C+D+E+F+G+Hで検索しても、
この連結インデックスには十分意味があるということ(無いよりはあった方がマシ)という理解でいいのでしょうか?
ある文字列のフィールドに外字が混入しているかどうかを 調べる方法を教えて下さい。 環境は、 OS:WindowsXP APP:Access2000 です。 テーブル名:sample、フィールド名:col1 テキスト型 を例として、col1に外字が含まれている行の選択法を 教えて下さい。 よろしくお願いします。
>>357 実際に動かしてプランを見ないとわからない。
そういう動作をするとしても、索引の全件スキャンになるので、
もとのテーブルの全件スキャンと比べてどの程度効率が上がるかも一概には言えない。
>>358 簡単な方法はない。
windowsXPの外字エディタで外字の範囲を調べたらunicode:0xe000-0xf8ffなので
文字列中にこの範囲の文字を含むかどうかのファンクションをVBAで自作すれば、
クエリーで抽出できる。
>>358 です
>>360 さん、レスありがとうございました。
宛名情報を受託して、宛名ラベルを作成する際に、
住所、氏名 等に外字が使われていないかをチェックしたいんです。
この宛名情報の預託者との間に、数社入るので、外字の確認ができなくなくて
困っていました。
結論として、外字混入の宛先は省くのですが、その確認を
目視で行っていたので、何か良い方法がないものか模索していました。
(多いのは、中点(・)に化けますが、♂に化けたりしてるものもありました)
確実な方法が欲しいものです。
362 :
素人カタギ :2005/06/28(火) 18:47:31 ID:KIRyADHn
ふん、誰も答えてくれないんですね。
( ´,_ゝ`)プッ
ちゃんと質問の形式になってないからだろ。
365 :
NAME IS NULL :2005/06/29(水) 03:23:53 ID:d6CKgWEe
現在引きこもりでデータ管理のネットで出来るアルバイト捜しているんですが、何か情報をお持ちの方はお願いします。他の板で探しても見つからなかったです。
お前も見つからなくなってくれ。
まあ俺から見たらここはDB覚えようとしたが挫折したウジ虫の集まりだな 頭の軽い香具師ばかりで笑えるな (^∀^)ゲラゲラ シネヤカスドモ (^∀^)ゲラゲラ シネヤカスドモ (^∀^)ゲラゲラ シネヤカスドモ (^∀^)ゲラゲラ シネヤカスドモ
367は、きちがいですか?
単に煽りのセンスが無いだけだと思う。
370 :
NAME IS NULL :2005/07/01(金) 23:55:09 ID:DsVAB85v
ミカです!OracleデータベースをODBCでリンクしてACCESSで利用する際に、 ACCESSではデータの更新をできないように(つまり読み取り専用に) したいんですが、どのように設定したらいいのでしょうか? 基本的な質問で恐縮ですが、ご教示くだしゃれ。うふ。
クエリとビューの違いって何ですか?
ビューはstaticなクエリです。
romanticなクエリはなんと呼ぶのですか?
375 :
NAME IS NULL :2005/07/02(土) 18:21:42 ID:PwnpLld5
半角カナを大量に含むParadox DBファイル(*.DB/PX/MB)があります。 バイナリエディタで覗くと半角カナはShift-JISエンコードされている ようなのですが、MS Accessに読み込ませると半角カナが解釈されずに 文字化けして、テキストでエクスポートすると文字列が壊れます。。。 Win環境でもUNIX(Linux)環境でも良いので、これをCSVやTSVなどの 形式に変換する方法はないでしょうか。
376 :
375 :2005/07/02(土) 18:23:54 ID:???
書き忘れました。 Delphiはないので、「Delphiでやれ」以外の解で。。。
377 :
375 :2005/07/02(土) 19:01:37 ID:???
自己解決。 「Paradox viewer」なるシェアウェアでいけました。 しかし過疎板だね、ここは・・・
UNIXやLinux、WebProgやプログラム、ソフトウェア、それらに 分散しちゃってるからな
379 :
NAME IS NULL :2005/07/03(日) 01:32:51 ID:/aKUEvIB
MS SQL Server には汎用的な (しかし使いやすい) 入力 (データ追加/検索) 用の GUI が付属していますか? 導入予定なんですけど、データ追加や検索を使うのがまったくの素人の女の子なので 付いていなければ/わかりにくいものであれば、自分が VC++ か VC# で社用に特化した UI を作ろうと思うので 今から準備をしたいのですが。
cse使えるかも
>>379 付属のものは管理ツールの範疇で一般人向けではない。
MS-ACCESSがその代用になる。リンクテーブルではなくて、
プロジェクト形式にすればMS SQLのフロントエンドで使える。
データベースの管理などではなく、単にSQLコマンドの勉強に使えるソフト を探しているのですが、よいソフトありますか?
PostgreSQLじゃだめかい
384 :
382 :2005/07/06(水) 01:09:31 ID:???
>>383 うぅ・・・ヘタレなので使い方が分かりませんでした。
winXPsp2環境でver8.0をインストールし、pgAdminVを起動し、
(ファイル) -> (サーバの追加)
自分に繋げばよいので、"アドレス"を localhost とし、
"記述"はヘルプには、「記述の項目は、pgAdminツリーでサーバー
を識別するテキスト文です。」とあったのですがよく分からないので
PSE としました。
"パスワードの必須"のチェックボックスをOFFにしOKをクリックしたところ、
サーバーが開いておりませんとなります。
また色々と試してみます。
ヘタレならAccessで十分だろ
>>384 インストールしたあと、initdbして、サーバの起動が必要
それが完了してからPgAdminIIIの出番
最近SQL Serverをなんとなく使い始めたものです。 ちょっと詰まってしまっていて、誰か助けてもらえないでしょうか? .NetからSQL Serverへ接続していて、 System.Data.SqlClient.SqlDataAdapter でプロシージャを呼び出し、 DataSetに定義された複数のテーブルにデータ取得を行おうとしています。 プロシージャの中で主キーがINTでIDENTITYなテーブルに INSERT 文を発行します。このとき追加されたレコードのキーの値が、 @@IDENTITYに入るということまでは何とかわかりました。 この@@IDENTITYの値を取得するために、プロシージャ中で、 SELECT @@IDENTITY としています。このとき、@の値をDataSetに定義された特定のテーブルに 納めるために、明示的にテーブル名を指定したいと思っています。 Oracleであれば、DUAL使って、 SELECT @@IDENTITY DUAL INSERT_ID_TBL みたくすればいいのかなーと思っていたのですが、 SQL ServerにはDUALは無いようで、どうしたらいいかわかりません。 わかる方がいらっしゃたら是非教えてください。よろしくお願いします。
>>387 OracleのDUALはSYS.DUALのシノニムで
DUMMY VARCHAR2(1) に X が1件入ってる表なので同じことをすればできる。
create table INSERT_ID_TBL (DUMMY VARCHAR(1))
insert into INSERT_ID_TBL values ('X')
from @@IDENTITY from INSERT_ID_TBL
ウイザードを使わなければfromなしのクエリでもできたはず、
ただこんなのにDataAdapterを使う意味あるのかな
SqlCommand.ExecuteScalar で済ませればいい気がする。
質問させて下さい。 文字列の % をLIKEで検索出来るでしょうか? postgreSqlなら SELECT * FROM TABLE WHERE TABLE LIKE '%\\%%' で出来るんですけどOracle9iだとヒットしません。 よろしくお願いします。
>>389 マルチいくないが、ちょっとだけヒント LIKE ESCAPE でぐぐれ。
391 :
NAME IS NULL :2005/07/09(土) 09:41:49 ID:Mk442O0j
MySQLのテーブル結合について質問です。 以下の二つの文は同じ動作をすると考えてよいのでしょうか? select test1.id, test2.id, tel from test1, test2 where test1.id=test2.id select test1.id, test2.id, tel from test1 inner join test2 on test1.id=test2.id
結果は同じ
393 :
391 :2005/07/09(土) 12:48:13 ID:Mk442O0j
どうもありがとうございました。
394 :
387 :2005/07/09(土) 13:31:13 ID:???
> 388 ちょっと仕事のほうがどたばたしてて、返信が遅れましてすみません。 私自身中途半端な理解での質問になってしまいすみません。 > ウイザードを使わなければfromなしのクエリでもできたはず、 > ただこんなのにDataAdapterを使う意味あるのかな > SqlCommand.ExecuteScalar で済ませればいい気がする。 やりたかったのは、1回の接続で、 ・特定テーブルへのレコード追加 ・レコード追加時の@@IDENTITYの値の取得 ・画面に表示する各種データの取得 を一気にやってしまうことです。 a_tbl,b_tbl がSQL Server上に存在しているとして、 DataSetにa_tbl,b_tblと同じ構造のDataTableと、@@IDENTITYの値を格納する DataTableを定義( insert_id_tbl( id int ) )します。 その上で、SqlDataAdapter#SelectCommand に、 a_tblへレコードを追加し、同時に@@IDENTITYの値と、a_tbl,b_tblを、 一気に取得するようなプロシージャを指定し、 一回のFillで、DataSetの3つのテーブルへデータを取得できないか? と考えてました。 ただ、さっきDataAdapterについていろいろ実験してみたんですが、 どうも、私のDataAdapterとプロシージャに対する理解が、 思ってた以上にヘボイようなので、おもいっきり見当違いなこと、 考えてるのかなぁとも思ってきました。 もうちょっと、いろいろ試してみようと思います。
すみません、ちっよとお聞きしたいのですが アクセスなどで、入力フォームから日付を入力するさい 「05/06/31」のように実際にはあり得ない日付を入力された場合 変数内部では「1931/5/6」となり、Isdateでは日付と判断されてしまいます これを、エラーとするには、どうしたら良いのでしょうか?
396 :
NAME IS NULL :2005/07/10(日) 08:58:21 ID:yXkhj4SU
特定のテーブルに対し、PHPから複数のレコードをinsert/updateしたい場合はどうすればよいのでしょうか? PHPのループ処理でSQL文を連続して発行すればよいのでしょうか? (なにやらお作法的に問題があるような意見があるようですが・・・。) MySQLのマニュアルには「INSERT ステートメントで同時に複数のレコードを挿入した場合」といった文もあるのですが、 INSERTの項目には具体的にどのように複数のレコードを一つのinsert文で書くのかがわかりませんでした。 よろしくお願いします。
397 :
396 :2005/07/10(日) 09:05:48 ID:???
ああっ。括弧を続けて書けばよかったのか。 解決しました。
398 :
396 :2005/07/10(日) 11:25:26 ID:yXkhj4SU
やはりつまってしまいました・・・。 insertは括弧を続けるだけでよかったのですが、 複数のレコードのupdateが分かりません。 マニュアルの該当箇所にも複数のレコードを1つのSQL文で更新できるような記述が見当たりません。 具体的には、phpでブラウザに複数のレコードをまとめて表示し、 それを編集した後にまとめて更新させたいのです。 ループ処理でupdate文を連続して発行するしかないのでしょうか? よろしくお願いします。
WHERE句でまとめられる範囲を同じパラメタにするなら一行のSQLでできるけど。 いったいどうしたいのだ
400 :
396 :2005/07/11(月) 14:36:07 ID:???
レスありがとうございます。 同じパラメータにするのではなくて、例えば ID name score 001 yamada 100 002 tanaka 90 003 morita 95 といったカンジのテーブルがあり、IDでそれぞれ一意にレコードを決定できるとして、 そこに3人の点数をそれぞれ修正するようなSQL文を1つにまとめられるか? という疑問です。 update tbl_score set score = 90 where id = 001 update tbl_score set score = 95 where id = 002 update tbl_score set score = 80 where id = 003 上の3つのSQL文を一つにまとめることは可能なのでしょうか?
401 :
NAME IS NULL :2005/07/11(月) 16:07:36 ID:Z7WsV4Z8
データ型について質問です。 postgresなんかだとBIT型ってありますよね WhereでINT型のデータにビット演算しかけても正しく抽出出来るような気がするのですが BIT型を使うメリットってあるんでしょうか? MySqlなんかだと、この型が無かったりで存在意義が無いような気がしますがどうなのかな、と ここらへん詳しい方の見解をお伺いしたいです。 今までスクリプト上でわざわざ整数と文字列のビットを変換して 演算させてたりしたもので、もし整数型でのビット演算の使用に問題が無いようであれば (問題のあるビット演算というもの在るとは思えませんが…) 今後はBIT型は使わない方向で行こうと思ってます。 よろしくおねがいします。
402 :
NAME IS NULL :2005/07/12(火) 02:45:44 ID:+KjdrfpI
オス、オラ孫悟空。ここ過疎板だってのにまだ機能してんなんてスゲェーな。 オラなんだかワクワクしてきたぞ
403 :
NAME IS NULL :2005/07/12(火) 20:37:43 ID:LAhnfC/s
今日のテストに出題された問題なんですが、 「関数従属における主キーと候補キーの概念を説明せよ」 まったくわかりませんでした。 誰か教えてください。とゆうか助けてください。
404 :
NAME IS NULL :2005/07/13(水) 02:58:10 ID:lDu7Hvfy
>>403 そういうのはここで教えてもらうもんじゃなくて、
自分で本を読むなりして理解するもんだ。
そうしないと身につかないぞ。
>>403 先生に聞こうよ。金払って学校行ってるんだろ?
SQL Server 2000でBLOBデータの取り扱いについて質問があります。 SELECTを使ってバイナリデータをRetrieveするのと、 READTEXTを使ってRetrieveするのに何か大きな違いがあるのでしょうか。
407 :
NAME IS NULL :2005/07/13(水) 09:55:13 ID:wKD/Eyon
PL/SQLに関する質問です PL/SQLでファンクションを定義したのですが 受け取った引数とファンクション内で扱う テーブルのカラム名がかぶってしまうとい SQL文が意図したとおりに動かないという バグで、はまってしまっていたのですが 下記のようなコードでSQL内で変数 data_codeを変数として明示的に示す方法 はないでしょうか? FUNCTION SAMPLE ( data_code ) RETURN NUMBER IS BEGIN /*ここで変数名data_codeがカラム名DATA_CODEとして扱われてしまう*/ UPDATE T_SAMPLE SET DATA_CODE=data_code WHERE CODE='1'; RETURN NULL; END;
>>403 PRIMARY KEY はテーブル内の各Data Row においてユニークな識別値になるものであり、
一つの set of data を他の set of data と区別する為に使われる。
尚、PRIMARY KEYは各テーブルにおいてただ一つだけしか作成できない。
UNIQUE (or ALTERNATE)KEYを附加したColumnは、そのColumn内の全ての
レコードがユニークでなくては成らない点においてPRIMARY KEYと似ているが、
その値は一つのset of data を他のset of data の中から識別するものである必要はない。
又、PRIMARY KEYと異なりALTERNATE KEYはテーブル内に幾つも作成することができる。
例)以下のような、Employeeテーブルがある場合。
CREATE Table Employee(
EmployeeIDintPRIMARY KEY IDENTITY(1,1),
EmployeeNamevarchar(50)NOT NULL,
Emailvarchar(60)NULL
)
----------------------------------------------
EmployeeIDEmployeeNameEmail
----------------------------------------------
[email protected] [email protected] [email protected] [email protected] ----------------------------------------------
EmployeeIDがPRIMARY KEYとして設定されいる場合、
レコード1と4のようにEmployeeNameは重複してもかまわない。
なぜなら、EmployeeIDが各Rowを識別することが可能で、テーブル内の
Data Integrityを保証することができるからである。
しかしながら、EmployeeNameにUNIQUE Constraintを各Rowを識別する為のデータフィールドとして
PRIMARY KEYの代わりに(ALTERNATE)使うこともできる。
だからALTERNATE KEYと呼ばれたりしている。
CREATE Table Employee(
EmployeeIDintPRIMARY KEY IDENTITY(1,1),
EmployeeNamevarchar(50)UNIQUE NOT NULL,
Emailvarchar(60)NULL
)
>>406 テキストポインターを返すかバイナリを返すかの違いなんじゃね?しらんけど。
>>401 単にOverheadが違うんじゃね?しらんけど。
Intは値を格納するのに-2^31 から 2^31 - 1 までの4 Bytes消費し、
Bitはどうなんだろ4 Bytesよりは少ないと思うけど、どうよ。
しらんけど。
UPDATE STATEMENTはRow全体に対して働きかけるから、一行一行に対してModification を行うならカーソル使うしかないんじゃね?しらんけど。 ---------------------- DECLARE MyCursor CURSOR FOR SELECT ID, score FROM tbl_score DECLARE @tempID varchar(3), @tempScore smallint OPEN MyCursor WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM MyCursor INTO @tempID, @tempScore SET @tempScore = CASE WHEN @tempID = '001' THEN 90 WHEN @tempID = '002' THEN 95 WHEN @tempID = '003' THEN 80 END UPDATE tbl_score SET score = @tempScore WHERE ID = @tempID END CLOSE MyCursor DEALLOCATE MyCursor SELECT * FROM tbl_Score
413 :
NAME IS NULL :2005/07/13(水) 16:12:13 ID:0AMoRrDY
同じ構造の表を外部結合する場合に、 同じ主キー同士のレコードだと特定カラムの値を比べて大きい方を有効 とする場合、どのようなSQLをかけばいいんでしょうか? SELECT * FROM A OUTER JOIN B ...?
すみません、FULL OUTER JOIN を使えばいいみたいですね。 でも、使ってる sqlite に FULL OUTER JOIN が実装されてなかった…。 (´・ω・`)
>>406 BooksOnline>リレーショナル データへのアクセスおよびデータの変更>
ntext 型、text 型、および image 型のデータの管理
みんなSQL普段何に使ってるの? やっぱ仕事?
業務以外で使ったことない
業務以外の活用方法があれば教えてくれ。
やっぱあれだろ、ゲームのデータ集めたり。根性ない俺には無理だが。
421 :
NAME IS NULL :2005/07/15(金) 02:14:12 ID:0pzFxJt7
>>416 個人でデータ管理とかってExcelで十分でしょ。65535行超えることって個人じゃ普通ないし。検索とかしないし。
趣味でBBSに
SQLと名のつくスレが沢山あって どこ行けばいいのか分からないので一先ずココに質問です。 ACCESSでSQLを使っています。 複数の表からデータを取ってくるのに SQL = "SELECT 表●.id●,表■.id■" & _ " FROM 表● LEFT OUTER JOIN 表■" & _ " ON 表●.id★=表■.id★)" とやってみたのですが、「FROM句の構文エラー」になってしまいます。 どこが間違っているのか教えて下さい。
>>423 Accessだったら、そのできた文字列でクエリ作って自分で確認しる
★って何だ? 表●.id●って何だ? とじかっこしかないのは何故だ?
>>424 クエリとか、よく分からないけどやってみます。
>>425 コードそのまま書くのも何かマズイかと思って
同じ文字列の所は同じ記号にしてみました。
) は間違えて入ってしまった物でした。
何がまずいのかわからんが、わかりにくいことこの上ない 自分で書いてて見づらいと思わなかった?
表●の中に id● と id★ があって 同じく表■の中に id■ と id★ があって id★同士で連結させて id●とid■を表示させるのか。 さっぱり分からん
回答者がこぞって自分の頭の悪さを競い合うってのも おかしな光景だな。
つまりこれは巧妙な釣りですね!
OUTERを抜いてみ
432 :
NAME IS NULL :2005/07/19(火) 01:52:30 ID:lf8Z5Doc
埋込sqlと直接sqlについて知りたいのですが。 埋込sqlはプログラム内に、sql文をコーディングしておく事だと思うのですが(合ってますよね?) 直接sqlってどういうことでしょうか?
オラクル9.2.0をインストールしようとオラクルのCD-ROMを入れるとその瞬間に電源が切れて 自動的に再起動がかかり、以降はWindowsの青い画面から強制的に再起動がかかるの繰り返しです。 セーフモードで起動することも出来ず、このままでは元に戻すことも出来ません。 オラクルをインストールする際にこのようなことが発生するケースはあるものなのでしょうか? また、どうすればこの問題を解決することが出来るのでしょうか? 念のためにインストールしようとしたパソコンの環境を以下に記します。 ・PC名 :COMPAQ Evo D320 ST/CT C1.8 ・OS :WindowsXP Professional SP2 ・CPU :Celeron(R) 1.80GHz ・メモリー:512MB(増設済み) ・HDD :60GB
436 :
NAME IS NULL :2005/07/19(火) 13:49:13 ID:nLKb96Kc
主キーをINT型でauto_incrementに設定しているのですが、 新規レコードをinsertする際に自動連番で割り振られる番号を 同レコードの他のフィールドにも同時に挿入するという操作は可能なのでしょうか? MySQLとPHPでスレッド形式の掲示板を作っているのですが、 親記事と返信された記事の関係を維持すべく ・新規投稿→parentno(親記事番号)に自身の書き込み番号を入力 ・返信→parentnoに親記事の書き込み番号を入力 ということをしたいのです。 表題一覧で各スレッドの更新日時を表示するために parentnoでグループ化できればと考えてます。 どなたかアドバイスお願いします。
テーブル構成がよくわからんです
438 :
436 :2005/07/19(火) 15:01:47 ID:nLKb96Kc
>>437 説明が足らず申し訳ありません。
項目はno, timestamp, user, title, comments, parentno
となっており、noを主キーとしてauto_incrementにしています。
要は同じスレッドの記事で共通の内容となるフィールドが欲しいのです。
ただスレッド(親・子記事含む)が一意に定められないと困るため、timestampやtitleでスレッドを指定するのはちょっと無理そうです。
よろしくお願いします。
>>438 DBMSを知りたいな。シーケンスとINDENTITYでやり方が違う。
440 :
436 :2005/07/19(火) 15:28:53 ID:???
>>440 書いてあった、暑さでぼけてるねぇ。
SQL関数のLAST_INSERT_ID() を使えば発行されたAUTO_INCREMENTの値がわかる。
442 :
436 :2005/07/19(火) 16:09:25 ID:???
>>441 レスありがとうございます。
同様の関数はPHPにも用意してあるのですが、
これは一度insertした後から取得することになるわけですよね?
ということは、まず新規レコードをinsertし、それに続いて取得した連番をupdateするようなスクリプトを書けばいいわけか。
とりあえずは解決しそうです。
追加で質問なのですが、現状ではテーブルはMyISAMになっており、トランザクション処理に対応していません。
まだInnoDBは使ったことがないものの、そのうちInnoDBに変更する予定なのですが、
一つのトランザクションの中でinsertやupdate、deleteを実行した場合、
そのトランザクションにおける後の処理(コミットする前)では、それまでの処理を前提とすることができるのでしょうか?
上の掲示板の例でいうと、
トランザクション開始→新規レコードをinsert→直前に挿入したレコードに対しupdate→トランザクション終了
といったことは可能なのでしょうか?
よろしくお願いします。
>>442 可能です。自トランザクション内なら自分で追加変更したデータはきちんと見えます。
444 :
436 :2005/07/19(火) 16:56:51 ID:???
>>443 どうもありがとうございます。
なんとか思い通りのものが作れそうです。
最後に一つだけ追加質問なのですが、InnoDBを使用する場合、自動連番がどう機能するのかが気になっています。
マニュアルや
http://www.buena-idea.net/~hironobu/mysql/m-2-10.html の説明を読んだところ
テーブルへの書込み操作の際には行単位でロックがかかるとのことですが、
例えばトランザクションが複数同時に開始した際、
それぞれがコミット/ロールバックした場合に自動連番に穴ができたりするのでしょうか?
上記のテーブルの例で、すでに9件(noが1から9まで)登録されているとして、
トランザクションを開始して新規レコードをinsertするとnoに10が割り振られますが、
このトランザクションをコミットする前に他のトランザクションが開始し、同テーブルに新規レコードをinsertした場合、
後のトランザクションにおけるinsertによる連番は11となるのでしょうか?
その場合、仮に前者のトランザクションはコミットせずロールバックし、後者のトランザクションがコミットした場合、
結果的にテーブルにはnoが1-9,11というレコードが残ることになるのでしょうか?
するとその後noには10という値は埋まることなく12から使用されるのでしょうか?
(別にnoの連番に穴が空いても特に問題はないのですが・・・。)
質問ばかりですみませんがよろしくお願いします。
(こういった疑問はMySQL全機能リファレンスあたりを買えば解消されるのかな?)
446 :
NAME IS NULL :2005/07/19(火) 20:16:28 ID:gwKNESwV
質問なんですが例えば、画面からテキストボックスに数字を入れてその数字をDBに保存します。そして次に画面を開いたときにその数字を変更したとします。その変更前と変更後の数字の差を出したいのですがどうしたらいいでしょうか?質問が分かりずらかったらすみません。
447 :
NAME IS NULL :2005/07/19(火) 20:21:17 ID:gwKNESwV
書き忘れました。VBで画面を作ってDBにはaccessを使ってます。
448 :
NAME IS NULL :2005/07/20(水) 01:47:25 ID:apBvC1+e
PostgreSQL 7.4を使っています。 以下の様なflgテーブルで id | date | emp | flg 1 .| 2005-01-01 | 001 .| 1 2 .| 2005-01-02 | 001 .| 2 3 .| 2005-01-02 | 002 .| 2 emp毎に、最新(=dateがmax)の行を取得したいと思っています。 (欲しい結果) id | date | emp | flg 2 .| 2005-01-02 | 001 .| 2 3 .| 2005-01-02 | 002 .| 2 SELECT ID, MAX(DATE), EMP, FLG FROM FLG GROUP BY ID, DATE, EMP, FLG; とすると、flgカラムは異なる値が入っているので、欲しい結果に加えて、id=1の行も 出力されてしまいます。 欲しい結果を得るための方法はありますでしょうか。
GROUP BY EMPじゃダメなの?
450 :
436 :2005/07/20(水) 08:55:58 ID:???
たびたび質問ですみません。
>>438 のテーブル構成にて
>>442 のparentnoを追加することによって
なんとかスレッド形式で掲示板を作ることができたのですが、
表題一覧をうまく取得できません。
「各parentno毎に最もtimestampが新しいレコードの情報」を取得したいのですが、
select no, max(timestamp) as newtimestamp, user, title, parentno
from board_notice group by parentno order by newtimestamp desc
このSQL文で試したところ、最終更新日時は得られるものの最終投稿者が取得できません。
どうやらuserに関しては親記事の投稿者が表示されてしまいます。
(各parentno毎にテーブルの一番上にあるからかな?)
いろいろ考えてみたのですが、
・parentnoでグループ化してparentnoをcount(*)
・副問合せでwhere parentno = 10 order by timestamp descとかやって
そこからlimit0,1で結果的にtimestampが最新のものを得る
ぐらいしか思いつきません。
使用しているMySQLのバージョンが4.0.14なため副問合せが使用できないのですが、
他に何かうまいやり方はあるものでしょうか?
よろしくお願いします。
めちゃ基本的な事なんですが、質問です。 SQLの内部結合っていうのは レコードの中に空っぽの列があると結合できないわけじゃなくて、 結合の時に基準にしたキー列が片方のテーブルに無い時だけ そのレコードを結合できないんですか?
INNER JOIN はそう
453 :
451 :2005/07/20(水) 16:27:48 ID:???
>>452 そうでしたか・・・
何をどこで勘違いしたのか、空の列があるだけで
INNER JOINやRIGHT/LEFT JOINでこぼれると思い込んで
もう2日くらいの間、7つくらいのテーブルを
ACCESSのRIGHT/LEFT JOINとUNIONを使って
擬似FULL OUTER JOINしようと悩み続けてたよ・・・
すみません date |value 2005-07-01|100 2005-07-03|56 2005-07-04|30 2005-07-08|87 ・ ・ ・ というようなテーブルで直近10日分のvalueの合計を求めたいんですが、どのように したら良いんでしょうか? dateが毎日必ずあるものならwhere date > now() - interval ' 10day' とかすれば良いんですが、 そうとは限らないので困っています。。。 また、同様に日付でソートして下から10番目のvalueの値のみを取り出すこととかって 出来ますか?
455 :
454 :2005/07/20(水) 23:11:36 ID:???
ちなみにPostgreSQLですた
つ「副問合せ」
WHERE date > now()::DATE - ' 10 day'::INTERVAL じゃあかんの?coalesce(sum(value),0)とか使ってさ LIMIT 1 OFFSET 10
>>450 >>436 を最初に読んだ時にも思ったのだけど、
投稿を管理するテーブルの他に、スレッドを管理するテーブルも
用意したほうがいいんじゃないすか?
とりあえず現状でやるなら、
1) SELECT max(no) FROM board_notice GROUP BY parentno
2) 取得したmax(no)の列を", "で連結した文字列を作る
3) SELECT no, timestamp, user, title, parentno FROM board_notice WHERE no IN ([2)で作った文字列])
みたいなのが妥当なんじゃないかなぁ。
>>458 どうもありがとうございます。
いろいろやり方あるものだなぁ・・・頭柔らかくしないと。
スレッド管理用テーブルですが、やはりあったほうがパフォーマンスはよくなるのでしょうか?
今のところそれほど大量のスレッド・書き込みを想定していない(内部での使用)ので
最小限のもので済ませようと思っていたのですが。
Solaris8で動いているDBサーバ(oracle9.2.0.5)に、別のWebサーバからJDBC(ojdbc14)で接続をしています。 で、いざ接続をしようとすると、「接続を確立できません」とjavaが例外を吐きます。 そこで、DBサーバ側でsnoopを取ったところ、コネクション要求は来るんですが DBがそれに応答していません。(JDBCがリトライを繰り返し、諦めています) 同じ環境構成のマシンが10台あって、1台だけ症状が出てるんですが ツッコミどころがあればお教え願います・・・。oz
461 :
460 :2005/07/21(木) 14:15:22 ID:fcsdL1ZJ
マジごめんなさい。1台だけ、帰りのルーティングが間違っていたというオチでした・・・。 好きなだけ蹴ってやってください(´・ω・`
_
'´ ヽ
!i((ノノ)))〉
| (i|゚ ー゚ノi|
ノi⊂)凹と) ∧_∧
( ((//_|_ルフつ)) ゚∀゚)
<_/_|_l_|ノ i つ つ ←
>>460 し ,ノ ,, /
.・.し'' し'
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
|
____.____ |
| | | |
あー。 初心者ながらデータベースを構築すべくいろいろ試しているんですが、 長く複雑になったSQL文がちゃんと自分の意図どおりに機能するものかどうか、というのは どうやって確認するものなのでしょうか? 1. 文法上イケるはずだからオッケ 2. 実際のデータに気をつけるべき例外的なデータも登録し、検証する 3. 結局のところ、運用してしばらくするまで100%とは言えない。 やっぱり2.あたりで問題がなければいいのでしょうか? 経験がないだけに3.の疑念が捨てきれないのですが・・・。
464 :
NAME IS NULL :2005/07/21(木) 22:00:51 ID:GSkiVCl0
すいません。お力をお貸しください。 以下の100行の成績テーブルがあったとします。 名前 点 たろう 5 はなこ 12 ・・・ ・・・ データが100行あり、点数上位10位だけのSQLってどうすればいいんでしょうか。 DBはMySQLです。
OracleのJDBCで実行しているPreparedStatementが 実際どんなSQLをはいているか見る方法ありませんか? DataSourceのsetLogWriterで見れるって聞いたんですが まったく出る気配がありません。 JNDI使ってるからダメなんですかね? 9iの「JDBC 開発者ガイドおよびリファレンス」見たら 「データ・ソース・インスタンスを初めにJNDI 名にバインドしたとき にPrinterWriter を設定した場合でも、JNDI 名前参照から取得さ れるOracleDataSource にPrintWriter セットはありません。」 っていう難しい日本語書いてあるし・・・。
466 :
NAME IS NULL :2005/07/22(金) 06:41:29 ID:ShdC6b4P
>>464 点数に対してORDER BYでソート
LIMIT句を使って最初の10レコードのみ取得
とかはどうでしょうか。
>>466 上位10位ってことは必ずしも10人を意味しないんじゃないかな。
途中に複数同点がいると変わってくる。
(「10位」がいなかったり、あるいは「10位」が複数いたり。)
なので
・点数に対してorder byでソート limit 0, 10
・上位10人(単純に上から10人)の点数を取得
・点数に対してorder byでソート where 点数 in (上で取得した点数)
こんなもんか?
「10位の点数」を LIMIT 9, 1 で取得して、 WHERE 点 >= 「10位の点数」 のほうが良い、かも?
469 :
NAME IS NULL :2005/07/22(金) 11:11:11 ID:ccr/CMeA
今更ながらのVB6+ADO+Access2000でスタンドアロンな小規模 アプリはなんとか作れるようになったんですが。 クライアント/サーバ型の小規模アプリも作る必要がでてきました。 が、何をどうすればいいのかもわからないのが現状です。 とりあえず金はそうかけられない(数万円〜数十万円程度目安) 状態なんですが、 ・DBMSはSQLServerとOracle10gどちらを選択すべきか ・クライアント/サーバ型のアプリを作るにあたって今後何を習得すべきか ・開発環境は今のままでいいか、VB.netに移行すべきか、 または別の環境にすべきか (煩雑な計算処理があるのでインタプリタ型言語から離れるのには躊躇が…) 一人でやってるもので、足がかりがなくて。 どなたかアドバイスをお願いします。
>>469 求人のサイトまわりながら、貴方がいきたいなぁと
感じている会社が求めているスキルを見れば、方向が決まるんじゃ
ないかな。
ま、VB6ができるんだからSQLServerを選択して、
VB.NETでADO.NETでの接続方法を学んでいくのがよろしいかと
思いますね。
VB.NETは今後の事を考えると必要だと思います。
ADOとADO.NETは概念が大きく違うので、全く知りませんでは、
ついていけなくなる。
MSDEだとフリーだし、SQLServerのDevやVB.NETは数万円で手に入る。
コストをかけないで勉強というのならこちらの方が良い選択肢。
471 :
NAME IS NULL :2005/07/22(金) 15:11:11 ID:AOT0Z6JT
>>469 MySQLとかPostgreSQLという選択肢もあるぞ。
>>470-471 とりあえず現在の環境からの移行を考えて、
VB6 + ADO + MSDE → VB.NET + ADO.NET + MSDE
の順で勉強していきたいと思います。
まず大きめの書店で参考になりそうな書籍を探してきます。
ありがとうございました。
473 :
sage :2005/07/24(日) 18:43:43 ID:T7aEnFeA
このようなデータを持つテーブルTBL_HISTORYがあるとします。 +-------------------------+--------------+--------------+ | idHISTORY | idCUSTOMER | idRESULT | RECORD_DATE | +------------+------------+--------------+--------------+ | 000001 | P000001 | C02 | 2005/07/22 | +------------+------------+--------------+--------------+ | 000002 | P000004 | D08 | 2005/07/23 | +------------+------------+--------------+--------------+ | 000003 | P000001 | D09 | 2005/07/24 | +------------+------------+--------------+--------------+ idCUSTOMERごとに、それぞれ最新のデータのみを取得したいのですが、 select max(idHISTORY) from TBL_CUSTOMER where idCUSTOMER='P000001' group by idCUSTOMER; とすると、maxに指定したidHISTORY列は最大値が得られるのですが、他の列は最新のものが取得できるとは限りません。 どのようなSQL文を発行すれば意図したものが得られるでしょうか・・? ヒントだけでも頂けると助かります。 環境:mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (x86_64)
すみません、投稿内容に一部間違いがありました 正)select max(idHISTORY), idCUSTOMER, idRESULT, RECORD_DATE from TBL_CUSTOMER where idCUSTOMER='P000001' group by idCUSTOMER; 誤)select max(idHISTORY) from TBL_CUSTOMER where idCUSTOMER='P000001' group by idCUSTOMER;
それは
>>450 の質問と同質のものだね。
4.1.11ならサブクエリ使えるから、
SELECT * FROM TBL_CUSTOMER WHERE idHISTORY IN
(SELECT max(idHISTORY) FROM TBL_CUSTOMER GROUP BY idCUSTOMER);
でいいのではないかと。
476 :
473 :2005/07/24(日) 20:13:25 ID:???
>>475 教えていただいた方法で解決しました。
どうもありがとうございました。
477 :
NAME IS NULL :2005/07/25(月) 05:43:41 ID:ELtgE9uO
HTTPクライアントが与えられたURLのWeb文章を検索しようとしている。 HTTPサーバのIPは分からない。 このURLのWeb文章には、元のドキュメントと同じサーバにある GIFイメージが組み込まれている。 この場合、HTTP以外、どんなトランスポート層と アプリケーション層プロトコルが必要か? レポートでこの問題だされたんですが、誰か解ける人いませんか?(´・ω・`)
質問です。 ACCESSで表Aと表BをRootIDで連結しています。(表A LFET JOIN 表B) 表Bの中にSubIDがありSubIDには1〜5まであります。 表Bの項目Xに色々な数値が入っています。 この状態で、 rootID毎に、SubIDが1である物の中から項目Xの最大値 同じくrootID毎に、SubIDが2である物の中から項目Xの最大値を 表示したいのですが、どうSQLを書いていいのかさっぱり分かりません。 最初、表Bの名前を変えて2つに分けて SubID1用とSubID2用の表にして それぞれの項目X最大値を出そうかと思ったのですが 「SELECT MAX(項目X) FROM 表B WHERE SubID=1」 とやったらrootIDの違いを無視して値Xが出てしまいますよね?
rootIDでグループ化するしかないんじゃない?
SELECT RootID, SubID, Max(項目X) FROM 表B GROUP BY RootID, SubID とかじゃダメなの?
誰か助けてください。 <Table_A> ID ------------------------------------------ 1 2 3 4 5 6 <Table_B> ID Col_A ------------------------------------------ 2 xxxxx 4 yyyyy 6 zzzzz 上記をマージして以下のよう表示させるには、どうSQL組めば良いですか? ID Col_A ------------------------------------------ 1 (空欄) 2 xxxxx 3 (空欄) 4 yyyyy 5 (空欄) 6 zzzzz
LEFT OUTER JOIN
SELECT TableA.ID,TableB.ColA FROM TableA LEFT OUTER JOIN TableB ON TableA.ID = TableB.ID ORDER BY TableA.ID;
486 :
478 :2005/07/25(月) 17:21:31 ID:???
>>479 >>480 レスありがとうございます。
本当はさらにいくつかの表を結合していて
SQL文のどこがどうなっているか分かっておらず
教えてもらったSQLで幾つかの値が取得できたものの
それが目的の数値なのかどうか判断できない状態です。
分かり易くするために新しく小さい表を用意して
目的の値が取れているか確認中です。
しばらくお待ちください。
別に待ってないからいいよw
488 :
478 :2005/07/25(月) 19:02:00 ID:???
おそらく正しい値が取れていると思われる、 という結論に達しました。 ACCESSのクエリ作成で同じような式のSQLになるクエリを用意して それを既存のクエリ(表がいくつもある物)に持ち込んで 強引に結合できるのであれば、もう少しでSQLは完成するかもしれません。
489 :
NAME IS NULL :2005/07/25(月) 21:52:52 ID:s+YT1a81
すみません。他スレでスレ違いと言われたので こちらに書き込みします。 複数のエクセルファイルをドラッグアンドドロップして いずれのファイルからも特定のセル (例えば5枚目のシートのE12みたいに) からデータを拾ってきて、1つのエクセルファイルに 出力するようなツールを作りたいのですが そういうのってAccessで実現できるのでしょうか? また、出来るとしたらどうすればいいのでしょうか? よろしくおながいします。
342 名前:NAME IS NULL[] 投稿日:2005/07/25(月) 21:08:33 ID:7/LueBL9 すみません。少しスレ違いかもしれませんが 複数のエクセルファイルをドラッグアンドドロップして いずれのファイルからも特定のセル (例えば5枚目のシートのE12みたいに) からデータを拾ってきて、1つのエクセルファイルに 出力するようなツールを作りたいのですが そういうのってAccessで実現できるのでしょうか? また、出来るとしたらどうすればいいのでしょうか? よろしくおながいします。 45 名前:NAME IS NULL[age] 投稿日:2005/07/25(月) 22:09:24 ID:??? すみません。少しスレ違いかもしれませんが 複数のエクセルファイルをドラッグアンドドロップして いずれのファイルからも特定のセル (例えば5枚目のシートのE12みたいに) からデータを拾ってきて、1つのエクセルファイルに 出力するようなツールを作りたいのですが そういうのってAccessで実現できるのでしょうか? また、出来るとしたらどうすればいいのでしょうか? よろしくおながいします。
491 :
NAME IS NULL :2005/07/25(月) 22:22:54 ID:s+YT1a81
はいはいわろすわろす
493 :
NAME IS NULL :2005/07/25(月) 22:46:22 ID:V2Rq1U9J
SQL Server2000 Standard EditionのCD-ROMを拾いました。シリアル付き正規CDです。 警察に届けまして、半年後、自分のものになるのですが、正直、使い道もなく、売ろうと思っています。 ぶっちゃげた話、いくらで売れますか?例えばソフマップとかで買い取ってくれるものでしょうか?
495 :
NAME IS NULL :2005/07/26(火) 00:12:53 ID:rC2LW7y1
oracleでANALIZE INDEX AAA PARTITION(XXXX) ESTIMATE STATISTICS SAMPLE 25 PERCENTとうちましたが SELECT LAST_ANALYZED FROM USER_IND_PARTITIONSで見ても LAST_ANALYZEDが更新されません。なぜでしょう? もしくは必ずしも更新されるものではないのでしょうか?
496 :
NAME IS NULL :2005/07/27(水) 18:50:09 ID:V/Fuj2Fh
ORACLE初心者です。SQLとかDBの概念は解ります。 うちのユーザーがシステム再構築することになり、ORACLEバージョンアップをすることになりました。 Ver8→9iだそうです。私はデータの移行を任されてしまったわけです。 ググってもまったくわからなかったのですが、なんというツールを使って データ移行すれば良いのでしょうか? ツールの名前だけでも教えてもらえませんか? それで調べなおしますので。 おながいします。
>>496 __
_.. ..‐::´/
_/::::::::::::/
_/:::::::::::::/ ____
,..::::´::::::::::::::::::::: ̄:::::::::::._/
/:::::::::::::::::|ヽ、:::::;::::::::::::/
/:::::::::::::::::::::|´|ヽ|/_:::.::/
_ .. -─':::::::::::::::、::|`'./`' ,.!::∠
`'' ‐-.._:::::::;-‐、` |_・ ・|::::`::-、
=ニ二::::::::::::::::| """r‐-`,、-──` / ̄ ̄ ̄ ̄ ̄ ̄ ̄
‐=.二;;;;;`‐t ` 一',.' < オラバックアップ?
' `'ー- '" \_______
501 :
NAME IS NULL :2005/07/29(金) 18:16:39 ID:PQcddzL3
データベースの勉強を兼ね、論文の図をsqliteで管理しようとしています。 データ構造の設計について御教示頂きたく参上しました。 個人的用途なので、論文の数は現在1000程度です(時とともに増えます)。 図の数は各論文についてまちまち(1 - 30程度)です。 これらの画像ファイルをBLOBで格納したいと思っています。 最初は、TABLEひとつで、ひと論文をひとレコードにしようと思いました。 その場合必要なカラム(図)の数が各レコード(論文)でまちまちとなるので 一工夫必要だなと思ったのですが、私に思いつける作戦は 1) TABLEはひとつのみで、最初っから多め(100くらい)のカラムを確保。 2) 各論文についてTABLEを作成。図はその中でレコードとして管理。 ぐらいでした。1)は単純だがnullだらけになってカッコ悪いかなと思い、 というわけで2)がいいかなと現在思っているのですが、先輩方の御意見を お聞かせ願えますでしょうか?
780 名前:NAME IS NULL[sage] 投稿日:2005/07/29(金) 19:46:57 ID:??? データベースの勉強を兼ね、論文の図をsqliteで管理しようとしています。 データ構造の設計について御教示頂きたく参上しました。 個人的用途なので、論文の数は現在1000程度です(時とともに増えます)。 図の数は各論文についてまちまち(1 - 30程度)です。 これらの画像ファイルをBLOBで格納したいと思っています。 最初は、TABLEひとつで、ひと論文をひとレコードにしようと思いました。 その場合必要なカラム(図)の数が各レコード(論文)でまちまちとなるので 一工夫必要だなと思ったのですが、私に思いつける作戦は 1) TABLEはひとつのみで、最初っから多め(100くらい)のカラムを確保。 2) 各論文についてTABLEを作成。図はその中でレコードとして管理。 ぐらいでした。1)は単純だがnullだらけになってカッコ悪いかなと思い、 というわけで2)がいいかなと現在思っているのですが、先輩方の御意見を お聞かせ願えますでしょうか? またマルチか
>>503 2つのテーブル、論文テーブルと図テーブルで
1:N の関係を築け。
1も2もどうかと思う。 タイトルテーブル(PK:タイトルID) タイトルID 論文名 <以下、作成日など論文毎の情報フィールド> 本文テーブル(PK:タイトルID、章ID) タイトルID 章ID(Sequence) 本文 図テーブル(PK:タイトルID、章ID、図ID) タイトルID 章ID 図ID(Sequence) 図 章ごとに図を関連づける必要がないなら 図テーブルに章IDは不要。
皆様、お返事ありがとうございます。
>>503 は私ではありません。
>>502 すみません、短かすぎると曖昧でかえって無礼かと思いまして・・・
>>504 >>505 アドバイスありがとうございます。目から鱗であります。
>>504 さんのおっしゃっている事は、
>>505 さんが具体的に示して下すった様に、
「図(あるいは本文)テーブルにおいては、タイトルIDだけでレコードはuniqueでは
ない(1:N)が、別のIDと併せてuniqueな主キーにできる」ということですよね?
これがRDBというものなんですね・・・感銘を受けました。私の案が死ぬほど幼稚に見えるorz
教えて頂いた案で行ってみることにします。どうもありがとうございました。
507 :
505 :2005/07/30(土) 10:03:34 ID:???
ちょっと補足。 まず、「論文」というデータについて考えると、以下のようになります。 論文 題名 本文 図1 図2 図3 <以下略> これが502さんの考えた作戦1ですが、これだと「図」という 同じ属性の項目が繰り返されています。 そこで、「図」の項目を複数のレコードにして、冗長性を排除します。 論文 題名 本文 図 題名 図 これが>504さんの言う、1:Nの関係です。 作戦2は同じ「論文」のデータを扱うのに、 テーブルが「論文」毎に作られるってのはナンセンス。 例えば、「論文」一覧を表示したくても簡単にはできません。 とりあえず「正規化」について調べてみるのをお勧めします。 頑張ってください。
マルチにまじめに答えるのもどうかと思うが。 質問の程度も低いし。
509 :
NAME IS NULL :2005/07/30(土) 15:16:10 ID:Yjta9KAL
SQLで、抜けがあっても必ずある秒数おきの時間データを取得する方法ってありませんか? 例えば次のような場合です。 現在はアプリ側で対応しておりめちゃくちゃ時間がかかってしまいます。 環境は SQL Server 2000です。 テーブル 時間 次のデータまでの秒数 2005/07/30 15:00:00 30 2005/07/30 15:01:00 30 2005/07/30 15:01:30 30 クエリの結果 時間 2005/07/30 15:00:00 2005/07/30 15:00:30 2005/07/30 15:01:00 2005/07/30 15:01:30
SQL Serverを知らないんだけど、Oracleならこれで出来た。 SELECT TO_CHAR([時間], 'yyyy/mm/dd hh24:mi:ss') FROM [テーブル] UNION SELECT TO_CHAR([時間] + [次の秒数] / 86400, 'yyyy/mm/dd hh24:mi:ss') FROM [テーブル] 結果 ----------------- 2005/07/30 15:00:00 2005/07/30 15:00:30 2005/07/30 15:01:00 2005/07/30 15:01:30 2005/07/30 15:02:00 ←これはでちゃダメ?
511 :
509 :2005/07/30(土) 16:24:52 ID:???
>>510 ありがとうございました!
うまくできました!
512 :
509 :2005/07/30(土) 17:11:44 ID:Yjta9KAL
510さんに教えていただいた後、最終的に以下のような「データ」列が入っているテーブルで試しました。 試行錯誤の結果、以下のようなSQL文を思いつき結果も正常に取得できたのですが 同じテーブルを2回検索しているのでもっと効率的にできるのではないかと思いました。 もっと効率的な方法ってあるでしょうか? SQL文(時間の文字列化は省略) SELECT * FROM [テーブル] UNION SELECT * FROM ( SELECT ([時間] + [次の秒数] / 86400) AS time2, NULL, [次の秒数] FROM [テーブル] ) AS A WHERE NOT EXISTS (SELECT * FROM [テーブル] AS B WHERE B.time = A.time2) テーブル 時間 データ 次のデータまでの秒数 2005/07/30 15:00:00 100 30 2005/07/30 15:01:00 200 30 2005/07/30 15:01:30 300 30 クエリの結果 2005/07/30 15:00:00 100 2005/07/30 15:00:30 NULL 2005/07/30 15:01:00 200 2005/07/30 15:01:30 300 2005/07/30 15:02:00 NULL
513 :
510 :2005/07/30(土) 18:58:50 ID:???
どうなんでしょうねぇ。 思いつくのは SELECT time,MAX(data) FROM (SELECT TO_CHAR(time,'yyyy/mm/dd hh24:mi:ss') AS time, data FROM test UNION SELECT TO_CHAR(time + nexttime / 86400,'yyyy/mm/dd hh24:mi:ss'), NULL FROM test) GROUP BY time; くらいですが・・・。どっちのほうがパフォーマンス高いかはわかりません。
514 :
509 :2005/07/30(土) 20:02:58 ID:???
>>513 重ね重ねありがとうございます。
おー、MAX()を使うのはいいですね。
実データで試してみます。
どうもありがとうございました。
515 :
NAME IS NULL :2005/07/31(日) 02:25:03 ID:MX1zwxcZ
つまらない質問で申し訳ありません。 アクセスの宛名ラベルで、一件の住所を複数印刷したいのですが、どういう方法があるのでしょうか? 出来ればストックで、一枚丸ごと同じラベルを印刷したいのですが。 どうか教えてください。
>>515 それがスレ立てるまでもない質問ってのは確かなんだが、AccessはAccessの質問スレあるぞ。
>>515 言いたいことは分かるけど情報不足で正確な回答はできない。
仮に一つのレコードを10回繰り返して印刷したいなら、
Dim i As Integer
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
i = i + 1
If i Mod 10 = 0 Then
Me.NextRecord = True
Else
Me.NextRecord = False
End If
End Sub
でいけるはず。
詳細フォーマット時、行数が10で割り切れる時のみ、次のレコードに移動させる。
518 :
515 :2005/07/31(日) 15:09:01 ID:MX1zwxcZ
Accessの質問スレがあるとは知りませんでした。 どうか誘導をお願いします。 517さん有り難うございます。でも、私には理解できません。ごめんなさい。
>>518 無理に背伸びしてPCでやろうとすると周りに迷惑をかけるだけ。
コピー機を使って作りなさい。
テーブル構造を丸ごと他のPCに移動させたいのですが テーブル構造から逆にテーブルやリレーションを生成するSQLを作ってくれるようなソフトってありますか?
D B M S は 何 だ よ
523 :
521 :2005/08/01(月) 17:36:10 ID:???
書き忘れてました postgresqlの8.0、windowsで稼動させています
524 :
NAME IS NULL :2005/08/01(月) 19:47:04 ID:7JTZAasO
postgresqlにimport/exportユーティリティはないのか?
pgAdminIIIでバックアップ・リストアすればいいじゃないか。
ER図を描くツールを探しています。 リレーションを視覚的に表現するときに、 テーブルとテーブルではなく、列と列が結ばれるものが良いです。 今あるデータベースから図を作成してくれると重畳です。 そんなものがあれば教えてください。
Rose
日本でだけ使うシステムならば、テーブル名・フィールド名は、日本語に汁!! ただでさえ、意識の統一が大変なのに変な略号は、止めない快? 開発効率ぜんぜんちがいますぜ。 と考えているのだけど、どう思う?
コード書くときに日本語ON/OFFめんどい
530 :
NAME IS NULL :2005/08/03(水) 00:26:30 ID:mmp5FCD+
独学しているので、読み方が分かりません。 一側テーブル → いちがわ 多側テーブル → たがわ 主キー → しゅきー でいいですか?基本的すぎて申し訳ありません。
>>529 日本語ONで、F10使えば問題解決( ゚∀゚)b
>>528 テーブル名やカラム名が化けるとか特定の名前が使えないとか
特定クライアントからアクセスできないなんて事態が発生しそうで使いたくない
最近の商用DBMSなら大丈夫そうな気はするがやっぱし不安。
>>531 F10押すのと半角/全角キー押す労力一緒だろ。F10の方が押す回数多いな。
データとしてIPアドレスを格納したいんだけど 検索性をよくするためにはどういう形式にしたらよかですか
テキスト型
536 :
NAME IS NULL :2005/08/03(水) 16:15:08 ID:kKumxXsr
>>532 ここ5年位、中小規模なDBを日本語で設計してきたけど、
使えなかったのは、ColdfusionのQueryOfQueryってなマイナーな処理位かな。
それもフィールド別名を半角英数で付ければ回避可能だし
最新バージョンでは動作する。
アプリ開発には、内部処理がUNICODEな物を選んで行けば問題無いのでは?と思う。
日本語にしておくと数年前に作った物でも物理モデル見るだけでイメージが沸いて保守も楽なんだぞ〜。
英語にすると、ボキャブラリが少なくて同音異議なフィールドを作らない様に
苦労した上、後で意味が分からなくなり本末転倒なことがある。(英語力不足か。。
ちなみに
Oracleは、8から
SQLServerは、2000から
Accessは、97から
使ってる。
指摘のとおり商用ばかりなので注意。
逆に日本語使って苦労したって経験談ないですか?
538 :
NAME IS NULL :2005/08/03(水) 16:53:16 ID:kKumxXsr
>>532 >>537 MySQLであればデータベース名/テーブル名/カラム名に日本語が使えることを当方確認済み。
ただし、全ての日本語の文字が使えるわけではなく、例えばWindows上では以下の文字集合は使えるが、
・JISX0201
・JISX0208
・NEC拡張文字
・IBM拡張文字
・NEC選定IBM拡張文字
以下の文字集合は使えない。
・JISX0212
なぜかというとSJISには含まれずUJISに含まれる3バイト文字であるこのJISX0212は
Windowsがファイル名/ディレクトリ名などに扱うことができないから。
何が言いたいのかというと、ここまで使えることが判明しているので使ってもいいのではということ。
漏れは英語テーブル名派だけどね。
ついでに日本語プログラム言語使おうぜ
>>533 うん、ネタだ。
>>539 Σ(゚∀゚) それだ!
(問題は、DBに接続できるかだけどな。
飛べ!ジャイアント(ry
542 :
NAME IS NULL :2005/08/04(木) 13:41:55 ID:3iyYfpBb
アクセスが何とか使えるようになったのですが、次にSQLに興味がわいてきました。 そこで独学としてはどのように勉強していけばよろしいでしょうか? 定石のようなコースがあれば教えてください。 スレ違いならすみません。
>>542 まず、googleを使えるようになろうな。すぐ人に聞くようだと上達はしないから。
544 :
542 :2005/08/04(木) 14:14:26 ID:3iyYfpBb
545 :
543 :2005/08/04(木) 21:54:30 ID:???
546 :
543 :2005/08/04(木) 22:15:29 ID:???
>>538 すこぶる詳しい情報 トンクス!!
ある業界の標準XMLフォーマットも、日本語で定義されていたし、
RDBも日本語定義しても突っ込まれない様になるといいなぁ。。と妄想中
>>542 漏れも最初は、Accessで勉強したなぁ。
定石は、知らないけど、
Accessのクエリーで出来る事を、一通りやっておけば、
基本は、大丈夫だと思う。
※関数は、DB毎に実装違うので注意。
とりあえず、クエリーのデザインモードで
出来る事を理解してSQLモードでSQL文を確認。
※冗長なSQLだったりするので、注意。
主に、INNERと、LEFTのJOIN。 (ついでにRIGHT
だいたい理解したと思ったら、SQLモードからしか
書けなかったハズのUNIONとか試す。
(Access97の頃の話だから、最近は知らない
Accessって、FULL JOINとか、使えたっけな。。?)
といった感じで勉強したかな。
>>538 フリーのDBMSでも対応が進んでるんだね。
ああ、SQL2000にDB-Library(=Unicode非対応)なアプリを使い続けるのは勘弁して欲しい...orz
愚痴スマン
コード 名称 100 ハンバーガー 201 フライドポテト 306 コーラ ↑ 上記のような表を作ってvlookupで 100 と入力するだけで、「ハンバーガー」と表示できるのはできました。 そこで、発展させてセットものも表示できるようにしたいのですが、なかなかよい方法が思いつきません。 100S というコードの内容をハンバーガー、フライドポテト、コーラのセットとして定義して、 100S と入力するだけで 100S ハンバーガーセット 100 ハンバーガー 201 フライドポテト 306 コーラ 100 という感じで表示させてたいのですが、なにかいい方法ないでしょうか、助けて
vlookupってExcel以外にもあるんだな。それなんてDB?
552 :
550 :2005/08/05(金) 21:30:13 ID:???
すいません、Excelです。
554 :
550 :2005/08/05(金) 21:32:34 ID:???
ふがっ
556 :
550 :2005/08/05(金) 21:52:18 ID:???
557 :
NAME IS NULL :2005/08/07(日) 00:14:22 ID:O3Tzr0Xj
以下の条件を表示できるSQL文を考えているんですが、 どうにもうまく表示されません……。 商品TBL - 商品コード・商品詳細コード・商品数 商品詳細TBL - 商品コード・仕入先コード・商品状態 発注TBL - 発注コード・商品コード・発注状態コード こんなテーブルが3つで、 1.商品TBLで商品数が"0"の商品コード かつ、発注TBLで発注状態コードが"1"の 商品コードを抽出 2.1で抽出した商品コードに対応する 仕入先コードを抽出 以下のSQL文で試しています。環境はAccess2000です。 何か問題点等分かる方、どんなことでもいいのでお助けください……orz SELECT 発注.商品コード, 商品詳細.仕入先コード FROM 発注,商品詳細 WHERE 発注.商品コード = 商品詳細.商品コード AND 発注.商品コード IN(SELECT 商品コード FROM 発注 WHERE 発注状態=1) AND 発注.商品コード IN(SELECT 商品コート FROM 商品 WHERE 商品数=0)
>>557 連結いらないじゃん。
SELECT 商品コード, 仕入先コード
FROM 商品詳細
WHERE 商品コード IN (SELECT 商品コード FROM 商品 WHERE 商品数=0)
AND 商品コード IN (SELECT 商品コード FROM 発注 WHERE 発注状態コード=1)
>>558 557です。教えてもらった通りで、問題なく出来ました……。
ありがとうございます。
参考本等がなく、WEBの知識だけのまるっきり暗中模索の中で
SQL文を考えていたので、はっきりとした正解を示して頂いて非常に助かりました。
本当にありがとうございます。
これから、自分のSQL文は何がいけなかったのかを考えてみます(ノ-`、)
560 :
NAME IS NULL :2005/08/07(日) 05:01:14 ID:79zzeOsq
データベースってなんですか?
objectの永続化を行う入れ物
え?
563 :
NAME IS NULL :2005/08/08(月) 12:08:15 ID:0/SMLf0I
アダルトチルドレンID
565 :
NAME IS NULL :2005/08/09(火) 03:25:29 ID:meYSeOcN
登録してくれたユーザーに順番に番号をつけたいのですが、 100番目から101,102・・・と順番につけたいときはauto_incrementを 使ってどうやればいいでげすか?
アプリケーション側で
567 :
NAME IS NULL :2005/08/09(火) 07:56:44 ID:tn4gkldq
SQL ServerにAccessからADPファイルでアクセスしています。 テーブルは2つで、それぞのテーブルにはオートナンバーでインデックスがついていて PrimaryとForeignキーになっています。 既存のデータを見る分には何の問題もないのですが、フォームから新規にデータを入れようとすると エラー ' Column data is unavailable' がでます。 2つのテーブルのIDは一応フォーム上にあり、双方とも同じIDを取ってほしいと思っています。 なぜこのようなエラーがでるのでしょうか?
568 :
NAME IS NULL :2005/08/09(火) 07:59:33 ID:tn4gkldq
567の補足です。 テーブルの正規化を行った結果テーブルが2つにわかれたのですが、フォームからは 両方のテーブルにデータを書き込むようになっています。 この辺が問題でしょうか?
569 :
NAME IS NULL :2005/08/09(火) 14:29:01 ID:qjt+SVB9
とあるアクセスのシステムのサーブレット+オラクルへの移植をやってるんですが、ソースコード中に80文字X86行のSQLがあって、複雑すぎて意味がわかんないんですけど、これって俺が悪いですかね?それともそんな長いSQL書く奴が悪いですかね?
>80文字X86行のSQL 超見てみたい…… 公開しちゃまずいところ修正してコピペよろ
SQL文が縦長の長方形になっちゃいかんよな・・・w
test
>>570 うpった。ブラウザで見ると横に長くなっちゃうかも…
こぴぺだと長すぎて無理・・・
ttp://www.vip per.org/vip79232.txt
↑なんか書き込みエラーになるんで、ここの半角スペース消してください。
>>573 整理すると構造はそう難解ではない。
INSERT INTO
SELECT
FROM LEFT JOIN LEFT JOIN RIGHTJOIN ...
WHERE
GROUP BY
フィールドが多いのは仕方が無いとして、複雑なJOINとGROUP BYの使い方が気になる。
下手なJOINTをしてしまって重複したデータをはじくためだけにGROUP BYを使ってる気がするな。
>>574 トンクス、幸いにも作った本人が近くにいるので、明日、細かいことを
聞いてみようと思います。今日はなーんもやるき無くなって、何もしなかった…ヤバス
カンマ毎に改行して見ていったらなんとか理解できた。 インサート元のデータの作り方に難があるね。 6+(1*3)のテーブル結合して84個のフィールドにインスコしたいだけみたいだけど、 WHERE条件一つだけだし、もっとスッキリしたやり方ありそう。
勝手で申し訳ないが、 同じ場所の79259に読みやすく改行入れたのをうpってみた。 感想は574と同じ。 たった1つの集計項目(MIN_SASEBOKANRI_NO)のために全項目GROUP BYはワロタ。 あと、マスタ(T_M_ではじまるもの)から名称取得するために結合してるけど、 漏れならFUNCTION作って名称取得させるかなあ。 作成者、更新者、削除者それぞれの名称取得するために T_M_STAFFテーブルを3枚結合してるのにもワロタ。
MONA.NG01〜24がむちゃくちゃ気になる……
ちょっと人がいなくてやんわり進行する板 みんなマジメで勉強になることも多いけど 遊び心は忘れずにIDチェックが一番伸びる そんなDB板が好きだ っとふと思った
過疎すぎて俺は寂しい
581 :
NAME IS NULL :2005/08/12(金) 19:10:20 ID:iTY+fal9
すいません。誰か教えてください。 アクセス使ってたとえば成績表のように ------------------ 山本大治郎 男 湊山中学 3年3組 数学 20 英語 80 国語 91 合計 191 ------------------ 竹中小一郎 男 湊山中学 3年3組 数学 80 英語 70 国語 90 合計 240 ------------------ テーブルのデータを1レコード1枚ずつ何枚ものレポートを 印刷することできますか? どういう機能を使ったらいいんでしょう?
>>581 レポートという機能を使うといいよ^^
('A`)
583 :
581 :2005/08/12(金) 19:30:03 ID:iTY+fal9
>>582 ありがとう。
でも使い方わからないです... orz
585 :
NAME IS NULL :2005/08/12(金) 19:32:21 ID:iTY+fal9
>>584 それ言われたの 今日2回目だ (ノ△・。)
586 :
(0M0) :2005/08/13(土) 23:26:11 ID:PZPd7DMB
こんにちは 突然ですが・・・・・DBってなんですか?
>>586 そういう質問をすると、「クリリンのことか〜!」とかいうAAが跋扈するようになるからやめれ。
560 名前:NAME IS NULL[] 投稿日:2005/08/07(日) 05:01:14 ID:79zzeOsq
データベースってなんですか?
561 名前:NAME IS NULL[sage] 投稿日:2005/08/07(日) 07:34:30 ID:???
objectの永続化を行う入れ物
562 名前:NAME IS NULL[sage] 投稿日:2005/08/07(日) 14:29:31 ID:???
え?
563 名前:NAME IS NULL[] 投稿日:2005/08/08(月) 12:08:15 ID:0/SMLf0I
>>560 ヒント:ACID
564 名前:NAME IS NULL[sage] 投稿日:2005/08/08(月) 13:34:23 ID:???
アダルトチルドレンID
なんか板違いな気もするけど 懐かしネタなので食いついてみる。 ノンラベル(NL)っていうのは、その名の通り テープ内部にそのテープについての情報(ラベル)がないことを言います。 磁気データとしては実際の情報しか入ってないテープね。 逆に、ラベルあり(SL=スタンダードラベル)だと、テープの先頭何バイトかは テープについての情報が入ってるの。
すみません 日付・単価・個数という構成のテーブルから、過去10日間で売上(=単価×個数)が前日比で+になっている 日の売上の合計を求めることは可能でしょうか? とりあえず SELECT 売上 FROM (SELECT 日付,単価*個数 AS 売上 FROM テーブル ORDER BY 日付 DESC LIMIT 1 OFFSET 0) AS x, (SELECT 日付、単価*個数 AS 売上前日 FROM テーブル ORDER BY 日付 DESC LIMIT 1 OFFSET 1) AS y WHERE x.売上 > y.売上前日; というのをOFFSETを変えて別で合計するしかやり方が思い浮かびませんでした、、、
>>591 データの並び順に依存する処理はあまりSQL向けではないので、
11日分のデータを取得してあとはプログラムで処理することをすすめるが、
どうしてもSQLだけでやりたいなら、前日の定義をしっかり整理しておく。
単純なカレンダー上の前日・前営業日・最近売上が発生した日
後の2つの場合、日付、前日付の2項目からなる表が別に必要になる。
ストアドファンクションなどで前日付を算出する方法もあるが保守性も実行効率も良くない。
これを前提に同じテーブルに当日と前日の別名をつけて1日違いで結合すれば実現できる。
594 :
NAME IS NULL :2005/08/18(木) 22:01:57 ID:GbIt1DXS
PukiwikiとMySQLとXOOPSではどれが一番 構築が簡単ですか?
595 :
NAME IS NULL :2005/08/19(金) 00:38:32 ID:AtGYt5jY
>>594 XOOPSとかPukiwikiを構築するためには、前提条件としてMySQLがインストールされている必要がある
ということを考えるとMySQLが一番簡単なんじゃないの?
ってか質問の意図がわがんね。
596 :
NAME IS NULL :2005/08/19(金) 01:30:30 ID:7xqM0Wg0
テーブルを create table hoge( huga char, hage int, hogehoge int ); と定義した場合、select * from hogeした際に huga hage hogehoge と表示されますよね。 これをselect * from hogeを変えずにデフォルトの並びを変えるには どうしたらよいでしょうか。 テーブル自体を作り直すしかないのでしょうか。
質問に対する回答ということなら、 「テーブル自体を作り直すしかない」になるんだけど。 「select * from hogeを変えずに」の意図がわからん。 なんで変えたくないの?何か意味があるなら教えてたもれ。
598 :
NAME IS NULL :2005/08/19(金) 09:53:25 ID:AtGYt5jY
また叩かれそうな質問してるやつがいるな
599 :
NAME IS NULL :2005/08/19(金) 13:31:58 ID:JxaG/F8y
携帯の番号カラ持ち主の事を調べる事は可能なのでしょぅか?!
600 :
NAME IS NULL :2005/08/19(金) 13:40:18 ID:2SFvpPR6
SYBASEで、整数値を0詰めの桁固定の文字列に変換する関数はないのでしょうか?
601 :
NAME IS NULL :2005/08/19(金) 15:37:18 ID:imlcGJk2
Oracle10gを使っているんですが、SQLを使わずにGUI等で表の編集って可能でしょうか? エンタープライズマネージャーから表のカラム名の編集などができるのは知っているんですが、表の中身の編集がしたいのです。
Accessでリンクテーブルを作
604 :
:2005/08/20(土) 00:58:34 ID:???
postgresでdate型をSELECTすると YYYY-MM-DD という形で出てくるんですが、 これをYYYYMMDDとすることってできるんでしょうか?
605 :
596 :2005/08/20(土) 02:25:09 ID:???
>>597 ありがとうございます。
理由はプログラムの内容を変えずに
表示順を変えたいと思ったからです。
>>598 すいませんでした。
606 :
601 :2005/08/20(土) 08:57:44 ID:ZYFecA5D
>>603 リンクテーブルを作ろうと思ってODBCのデータソースを作ろうとすると
接続テストで下記のようなエラーがでてそこから前にすすめません。
--
SQLState=IM004
[Microsoft][ODBC Driver Manager]SQL_HANDLE_ENVでのドライバのSQLAllocHandleは失敗しました
--
いろいろサイトを調べたら、
Olacle9で同様のエラーに対するアドバイスで、ORAHOME/binにpathを通せとか言うアドバイスがありましたが、私のはOracle10iなのでORAHOMEが存在しない様なので…
607 :
601 :2005/08/20(土) 09:01:21 ID:???
ちなみにAccessのバージョンは Access 2000(9.0.6926 SP-3)です。
>>606 俺はOracleよくわからんが、ウチの鯖覗いてみたらPATHにこんなん入ってた。
C:\Oracle\product\10.1.0\Client_1\bin;
C:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin\client;
C:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin;
C:\oracle\product\10.1.0\Db_1\bin;
C:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;
C:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;
610 :
601 :2005/08/20(土) 09:55:10 ID:???
>>609 レスありがとうございます。
内の環境を見てみたところ。
C:\Oracle\product\10.1.0\Client_1
↑このディレクトリ自体存在しないようなので、これは無視しました
でもって、
C:\oracle\product\10.1.0\Db_1\bin;
C:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;
C:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;
↑ここら辺があやしいかなーと思ってパスを通してみましたが、状況は変わりませんでした
orz
611 :
NAME IS NULL :2005/08/20(土) 17:43:13 ID:M02AJR/k
|val| +---+ | a | | a | | b | | a | +---+ ↑のテーブルからaとbの出現回数を下のように表示するにはどうSQLを書いたら良いのでしょうか a|b -+-- 3|1 ----
(aなら1、違うなら0)の合計 (bなら1、違うなら0)の合計
613 :
661 :2005/08/20(土) 21:33:10 ID:???
ありがとう御座います count()でできなくて困ってたんでとても勉強になりました
SQL文をAND〜〜って書き連ねていったら、 明示的に()で括ったりAND INしない限りは 最後に書かれた条件から抽出されていくものなんでしょうか?
やってみたらいいではないか。
質問させてください。 購入履歴 − [取引コード] [購入者コード] [購入額] 購入者情報 − [購入者コード] [購入者名] こんなテーブルから、一万円以上の取引をした[購入者コード] [購入者名] を抽出します。 当然購入者コードは重複するのですが、重複したレコード数=購入者の購入件数を COUNTやGROUPで求められないものかと試しています。 しかし、どうにも上手く行かず……無理なことなのか、質問させていただくことにしました。 そのままデータグリッドに連結する予定なので [0005] [名無しさん] [2] [0006] [ひろゆきさん] [1] みたいに抽出できてくれると凄く嬉しいんですが……。
HAVINGを知らない予感
すいません……HAVINGを使ってもまだ上手く出来ないようなのです。
よろしければ、
>>616 のテーブルから抽出するSQLの例文のようなものを
教えていただけないでしょうか……
まず自分がどんなSQL書いてダメだったのか晒せよ
SELECT 購入履歴.購入者コード, 購入者情報.購入者名, Count(*) AS 購入回数 FROM 購入者情報 INNER JOIN 購入履歴 ON 購入者情報.購入者コード = 購入履歴.購入者コード WHERE 購入履歴.購入額>=10000 GROUP BY 購入履歴.購入者コード, 購入者情報.購入者名
>>619 スイマセン、晒すことは全く思いつきませんでした……ちょっと色々あって焦ってしまって。
確かに自分のSQLを書いた方が回答しやすいに決まってますよねorz
>>620 どうもありがとうございます。おかげさまで、無事に解決できました!
全く根本から、Countの使い方が間違っていたようです。
618=620?? HAVINGを使って試したSQLを晒してくれ。
はい、618=620は自分です。
見返すと本当に怒られてしまうレベルだというか、かなり恥ずかしいんですが……
ただ単に
SELECT 購入履歴.購入者コード, 購入者情報.購入者名, Count(*) AS 購入履歴.購入者コード
ここのCountが全然記法を間違えているという点です……。
それ以外は
>>620 さんの例のINNER JOINがWHEREに変わっているだけで特に違いはありません。
HAVINGでも出来ませんなんて誤解を招くことを言ってしまって申し訳ありませんでした……。
626 :
622 :2005/08/22(月) 22:03:41 ID:???
うん・・・。まぁ、なんだ。 かなりテンパってるみたいだね・・・。 そのうちいいこともきっとあるから。 頑張りや。
627 :
NAME IS NULL :2005/08/22(月) 23:19:36 ID:SWGcojO7
スミマセン初めての質問です。 顧客管理データベースが作れるDBソフトを探しているのですが、 幾つかあるDBソフトの中で何を買ったら良いですか? やりたい事を以下に記します。 (1)顧客の住所・氏名等のデータベース化と検索による集計結果表示。 (2)(1)のリストに付随する機能として顧客訪問日時をあらかじめ打っておいて、 その日が来ると何らかの方法で知らせてくれる。 (3)ランタイム配布もしくはそれに相当する機能で 社内LANで繋がった各PCが母体のソフトウェアをインストールしていなくても (1)(2)のデータベースを参照、新規データ打ち込みが出来る。 取り合えず現段階でこれらのシステムを構築しようと考えています。 当方DB初心者でプログラミング未経験者ですが、 3DCG屋で企画屋で営業でスクリプター経験有りですので ソフトウェアに限って言えば抵抗が無く、また根気は続く方です。 知識ある方よろしく頼んます。 また各ソフトの長所と短所など織り交ぜて答えて頂けると嬉しいです。
>627 ・開発予算はどのくらいを予定していますか。 ・どのような配布方法を検討していますか。 ・想定PC台数(接続する台数)は何台程度ですか。
629 :
627 :2005/08/23(火) 00:18:21 ID:???
>>628 開発予算というかDBの構築は私がやりますので
ソフトウェア予算としては一本に付き10万以内と考えております。
外部に依頼したりなど云十万単位の費用を掛ける必要は無いとの判断です。
配布というのがイマイチよく分かりませんが、
DB化した顧客情報の配布という事であれば現段階では考えておりません。
あくまで社内の営業マン用に特化した機能だけを盛り込みます。
接続する台数は5台を予定しております。
LAMPでいいんじゃないか
631 :
628 :2005/08/23(火) 09:42:47 ID:???
えっと、 ・プログラムを各端末にセットアップして使う ・インターネットブラウザで使う どちらがいいですかね。 あと、今回のDB構築にあたり、新規サーバは導入されますか? それとも、既存のサーバを使用する予定ですか? もし既存のサーバを使用する予定の場合、 そのサーバのスペックもお願いします。 >630 WEBサーバ立てれるならそれがいいんでしょうかねぇ。 私はLAMP/LAPP共に未経験ですが、 本も結構出てるし、初めての人でも作りやすいのかも?
>>627 DB初心者には難しいと思うがその心意気に感心した。挫折すんなよw
素人がsoftwareのライセンスの問題、予算の問題を 深く考えずに鯖を立てるなら LAMP/LAPPが無難だと思う 開発用には手許に余ったマシンがあればそれを使って 無ければ中古でマシンを安く調達 データバックアップ用にusb HDDでも刺して 一日一回DBをdumpしてやれば
634 :
NAME IS NULL :2005/08/23(火) 11:06:35 ID:fcysfb6z
MS SQL Serverで、シーケンステーブルを作成するにはどうするのですか? さらには、PostgreSQLのように、nextvalで、最大値を採番するには、 どうすればよいのでしょうか。
なんかIDENTITYっての使うらしいんだけど、 よくわかりません。
VBのソースの最後にDROP DATABASE AAAを走らせるバッチを起動するように したんですが、最初に行ったCon.Open(〜〜)によって開いた時より 後ろでは、「データベース 'AAA' は現在使用中なので、削除できません」 と出てしまいます。Con.Closeの後にやっても同じで削除できません。 VBでは一度繋いだデータベースを完全に手放すことは処理が全て終了するまで できないのでしょうか? ご存知の方いましたらよろしくお願いします。
釣りだよな? いくらバッチとはいえ、DBそのものを削除なんて・・・
いや、釣りじゃなくてできるかどうかってことを知りたかったんです。 バッチ外に出せば削除できるから困ってるって訳ではないんです。 今作ってるのが、MSDEにDB一つ追加してそこにテーブル作って、 違う型のテーブルに分配したあとテキスト出力するっつーものなんで、 使い終わったら消すわけです。はい。
Con.Closeの後にやっても「同じで」削除できないって、エラーメッセージも同じ? Connection開いてないのにSQLキックできるはずがないと思うんだけど。 てか、なんでハコごと消す必要があるのかわからん・・・。 テーブルクリアするだけじゃ駄目な理由があるのかねぇ?
641 :
x :2005/08/23(火) 19:51:11 ID:tVasb0qP
初心者です。 DBの設計の基本的なことなのですが、 データーベースは一般に OPEN CLOSEの回数は減らしたほうが良いのですか? それとも、必要な検索処理等を終えたら、きっちりCLOSEしたほうが良いのですが? 同時アクセス規模1万程度
自称初心者キタ━━('A`)━━・・・
>>640 >「同じで」削除できないって、エラーメッセージも同じ?
VB上ではブレークポイント付けて流した時、
エラーは出ないで凄い時間が経った後処理が進みます。
「DB削除できたのかな?」と思ってみてみると
テーブルもみんな残ってました。
ここで言ってたエラーはバッチのほうで
「DROP TABLE AAA > a.txt」と書いて出したものです。
説明不足ですみません。
箱ごと消す必要があるのは他人のとこで流す処理で、
結構たくさん使うものだからです。
わけわからないDB残しとくのも後で何か言われそうだから
DB作るとこからDB消すまでを一連の動作にするつもりです。
644 :
NAME IS NULL :2005/08/23(火) 20:41:34 ID:1PNcH5zW
>>643 そういえば何のDB使ってるんだ? DROP DATABASEのような命令の重みは
DBMSで違うから一概には言えないが、自分自身の接続がそのデータベースにあるうちは
使用中なんじゃないのか。
>>644 MSDEっていうSQL-SERVERと互換性のある奴です。
そしてSQL-SERVERは入ってません。
接続中は使用中ですね、多分。
VBでは一回Openすると終わるまで使用中みたいなので、
質問したというわけです。
>644 それ俺も思って調べてみたんだけど、 MSDEではosqlってツールでDB削除できるみたい。 ファイルも削除されるらしい。 とりあえず、 OracleにはDROP DATABASE文なんて無いからなぁ。 ここからはあくまで予想だけど、 たとえsu(?)で接続しても、通常のDB接続では DROP DATABASEの権限が無いんじゃないんだろうか? Oracleで言う、 SYSDBA権限でログインするがosqlなのかなぁと。
PostgreSQLってなんて読むんですか?
ポストグレース・キューエル OR ポストグレ・エスキューエル。 略称は大体ポスグレかな。
ポストグレス・キューエルって呼び方が英語に近いらしい。
>646 osqlであろうと何であろうと 使用中のDBはDropできんよ
当方、DBには全く疎いので、GUIでのデータ参照をしたい者です。 oracle9iにcseを接続したいと思ったのですが、公式をみると8iまでしか 検証されていないとのことでした。 9iでcseを使用することは可能でしょうか? 可能であればその方法を教えてください。 よろしく御願いします。
動作事例に9i載ってるみたいだけど。
ド、しろうとのマジカキコです(^^; 「単精度浮動小数」と「倍精度浮動小数」の違いがわかりません!? 「浮動小数」は分かったんですけど、単精度、倍精度って?? DBについてはまだまだ始めたばっかりですので、よろしくお願いしますー。
654 :
NAME IS NULL :2005/08/25(木) 00:50:28 ID:c5DyPHti
655 :
653 :2005/08/25(木) 01:08:01 ID:???
SQLを学ぶにあたって、数値型のデータを扱う際、フィールドにFLOATなり DOUBLEなりを指定するとあるのですが、ここで先の単精度……、倍精度…… という単語が出てきたわけなんです。で、その意味がよくわからない。。。 もちろん「RDBMS」に限定される質問ではないというのは認識しています。 コンピュータの仕様っていうんですかね?そういう問題だ、というのは分かる のですが、どこで質問すればいいかもよくわからない次第で。もしここで質問 するのが不適切であるならば、どこで質問するのが適切なのか誘導お願いします。。
>>655 現在使ってるプログラミング言語でよく勉強したほうがいい。
DBMSはプログラミング言語から中立なので、浮動小数点実数については各言語の違いを
吸収するために独特の実装方法や名称を採用しているし、DBMSによる違いも大きい。
ごく一般的な説明をすると、その実数を記憶するのに必要なメモリが4バイトのを単精度、8バイトのを倍精度と呼ぶ。
fortranだと前者をreal、後者をdouble precision
c/c++/java だと前者をfloat、後者をdouble
データベースでは実装により違いが多いが、次のはMSSQL
float(有効桁数)
別名として定義されているのが
real - float(7) のことで4バイト
double precision - float(15) のことで8バイト
float - float(15) のことで8バイト
ORACLEでは実数はすべて固定小数点で扱うので、
realやfloatはすべてnumber(??, ??) の別名になっている。(??の数値は資料が出てこないので省略)
当確マークついてるだろ _,,..,,,,_ ./ ,' 3 `ヽーっ l ⊃ ⌒_つ `'ー---‐'''''" でも落選してるんだぜ、これ ** みんなのお約束 ** 1 9.11には投票所で自由に投票 2 マスコミの出口調査では、あなたがどこに投票したかに関係なく 「○○さん(民主党候補)に入れました」 「比例は民主党に入れました」 と答えましょう 3 家に帰ってテレビの選挙特番をマターリヲチする マニュフェストをコロコロ変更して楽しませてくれたお礼をしよう!
>>656 ,657
レスdクスです!
やっぱりわかるような、わからないようなっていう感じですが。。。
プログラム板でもう少し突っ込んで質問してきます。
ありがとうございます(^-^)
人に聞くな。自分で調べろ。
>>660 あれこれぐぐってみたんですよー。で、わからないからここで質問したわけなんですが。
「スレ立てるまでもない質問」をここでするなっていうなら、どこでするんですか?w
と、煽りはここまでにしておいて。
ようやく知りたい答えが出てきました。
ttp://pc21.nikkeibp.co.jp/special/gosa/eg4.shtml ここに単精度浮動小数、倍精度浮動小数が解説されていました。俺以外にもつまづく
人がいるかもしれないので、残しておきます。
レスをいただいた方にはあらためてお礼申し上げます(^-^)ノ
(約一名除くw)
つまづく→× つまずく→○
663 :
NAME IS NULL :2005/08/26(金) 02:19:25 ID:yMTwS5g6
661みたいな、当事者のくせに問題の切り分けせずに丸投げするやつ、うざい。
664 :
NAME IS NULL :2005/08/26(金) 11:03:22 ID:oQYGTE5L
初歩的な質問ですみません。 質問1 MDBってオラクルみたいに、クライアントサーバーで使えますか? 質問2 クライアントサーバーで使う安価(あるいはフリー)のDBとしては、 MDB、MySQL、ポストグルSQL?(よくしらない)の中で、 どれがオススメですか?
>>664 そこに上げてるのではMDBだけは使えない。MDBはシングルユースと考えたほうが良い。
MDBはファイル共有式でクラサバもどきはできるがユーザーが2〜3ユーザーが限界なうえ耐久性が低い。
すいません。DB作成で躓いています。
自分なりに参考書片手に頑張っているんですが
初心者どうもでうまくいきません。
どなたかお知恵をおかしください。
いま挑戦しているDBの原文はこうです。
-------------------------------------------------------------
SQL
Create 4 Databases called ASD, character and itemstorage , Clan
Restore the dbs ( They are on \DB Backs )
If you put on drive c: ( Check the restore paths )
ODBC :
Windows Auth
Create ODBC name point to SQL DB name
Create A3ASD dsn point to ASD DB
Create A3GameCharDB dsn point to gamechar DB
Create A3ItemStorageDB dsn point to itemstorage DB
Create ClanDb dsn point to Clan DB
-------------------------------------------------------------
つまりデータベースを合計8個作ればいいのでしょうか?
(実際に作成したDB)
1.ASD
2.character
3.ItemStorage
4.Clan
(実際に作成したDB)
A3ASD
A3GameChaDB
A3ItemStorageDB
ClanDB
http://gazou.tank.jp/niji/ref/1125040081331.htm それと下記なんですが
dbs (それらがDBがバックアップする\DB Backs )を回復させてください
Restore the dbs ( They are on \DB Backs )
ODBC: ASD DBにdsnが向ける A3ASD を作ってください
Create A3ASD dsn point to ASD DB
Create A3GameCharDB dsn point to gamechar DB
Create A3ItemStorageDB dsn point to itemstorage DB
Create ClanDb dsn point to Clan DB
これはどの様な操作を意味しているのかわかりません。
説明不足もあると思いますが何方か教えてください。
初心者はAccessでもいじっていればいいと思うよ^^
>>666 何のアプリを導入設定しようとしてるかはさっぱりわからないが、DBは画像を見る限りSQLサーバー2000か?
この辺の情報はちゃんと書いとかないと答えられない。
英文の部分だがこんな感じか
\DB Backs にバックアップイメージが入っているから、ASD, character, itemstorage , Clanの4つをリストアせよ。
それからODBCのデータソース(DNS)を4つ作れ。
DNS名はA3ASD, A3GameChar, A3ItemStorageDB, ClanDb
それぞれデータベースのASD, character, itemstorage , Clanに対応させ、すべてWindows認証で設定せよ。
このアプリ相当古くないか?MSSQL6.5とか7のにおいがする。素人が手を出すようなものじゃない気がするぞ。
>>666 もう後の祭りだがそのDB名を晒すのはやばいと思うぞ
部外者だが何のシステムなのか速攻でわかってしまった
ああ、DB名じゃなくてDSN名かやばいんだった
とりあえず
>>666 は先輩か上司に頭下げて教えてもらえ。
あと、ここに書き込みしてしまったことも連絡しておいたほうがいい
>>668 SQL2000のEnterpriseManagerだと思われ。
SQL7だとMeta Data Services が無いし、6.5はもっとぼろかったはず
>>670 画像のEMが2000なのは見ればわかったが、バックアップイメージが古いとしたら2000にリストアできるのかなって話さ。
A3ASDでぐぐると中国のサイトしか出てこないのだが、何かいわくつきのソフトなのかい?
>>668 さん
該当DNS名がない場合ローカル環境で作り各DBを対応させなさい。それはWindows認証でなければならない。ってことですね。
serverの設定もいるなんて.......orz
正確な和訳のおかげで助かりました。
DNS関係から調べて見ます。
当方の環境は皆さんのおっしゃるとおりです。
説明不足で申し訳ない。
どうもありがとうございました。
>>670 さん どうもです。
ローカルな環境でのDNSですのでたぶん勘違いかと思います。
一応心当たりがあるようでしたのでその人の名誉のために書きました。
ググって出てくるDNS等はたぶん偶然です。
>>671 某ネトゲのサーバ。もうネットに流出してしまってるぽいが....
674 :
NAME IS NULL :2005/08/29(月) 15:02:38 ID:jA/pRf97
oracle10gクライアントからoracle8iサーバーへの接続って 保証されてますか?
8.1.7なら繋がる。 それより前だと繋がらない。
676 :
674 :2005/08/30(火) 09:36:56 ID:???
誤解が無いようにもう一度いっとくけど 「保証されない」ではなく「繋がらない」ので注意してください。 バージョン古すぎるってエラー出るよ。
678 :
NAME IS NULL :2005/08/30(火) 20:03:24 ID:EE7VKMqR
>>678 OODBやXMLDBの特徴を挙げてRDBにそれが無いといった書き方をしたらいいじゃないかな。
継承されたり多義的に定義されたデータ構造を格納することができないといった感じで。
BLOBに生のXMLをぶち込んどけっていう使い方は無いでもないけどね。
680 :
NAME IS NULL :2005/08/31(水) 15:12:32 ID:26TdWtQJ
なんか教科書的な回答でつまらないね。 ええ、試験対策ですか、そうなりますよね・・・。
681 :
NAME IS NULL :2005/08/31(水) 20:28:42 ID:gNZDywbz
すんません。ど素人ですがオナガイシマス。 参考書読んでたら以下のような文章が書かれていました。 「JDBCドライバを利用する際、それらのインタフェースで定義されているものが各RDBMSの何に マッピングされているのかを把握することが重要になる。 例えばMySQLにあるデータ型「DATETIME」は、JDBCのインタフェースには存在しない。」 って書いてあったんですけど、これはMySQLでDATETIMEは使用できるが、JDBCにはDATETIMEを使 用する為の命令がない、と捉えてよろしいでしょうか?
お前がド素人かどうかなんてどうでも良いよ
683 :
NAME IS NULL :2005/09/01(木) 00:01:58 ID:26TdWtQJ
MySQLなんていくらでもダウンロードして試せるんだからやってみりゃいいじゃん。 教科書、参考書ってお前らなにもんだ。
>>681 MySQLのDATETIMEは通常JDBCのTIMESTAMP型にマップされている。
JDBCのTIMESTAMP型は年月日時分秒ナノ秒を格納できるが、
MySQLのDATETIMEは年月日時分秒までであり100%互換があるわけではない。
ちなみにMySQLのTIMESTAMP型は通常はROWVERSIONと呼ばれるもので
JDBCの日付型とはまったく関係が無い。
JDBCが想定しているデータ型はANSI SQLのデータ型であるが、ANSI SQLの
データ型を完全にサポートしているDBMSは存在しない。このため近い型に
マッピングされるわけでプログラマーは型の違いを意識する必要があるということ。
ど素人かどうかは質問の内容を見ればわかる。ど素人と書くことでお手柔らかにと
いってるつもりかもしれないが、まともに相手にされなくなるのでやめたほうが良い。
685 :
681 :2005/09/01(木) 02:03:31 ID:???
皆さん、どうもありがとうございました。 指摘されたとおり自己保身に走ってました。 本当腑抜けでスンマセンorz
Winのデータベース連携の初歩的な質問を失礼します。 Win自宅サバを使ってMysql+PHP+Accessのデータベースの動作テストを行おうとしております。 Accsessのデータをデータベースに連携するにはMysqlではなくODBCが便利ということを知ったのですが AccsessのデータをMysqlで連携させるうまい方法はないのでしょうか。
初歩的な質問だったら自分で調べて解決すれば?
688 :
686 :2005/09/01(木) 17:41:08 ID:???
ODBCをサバにつっこむ以外にヒントがあれば聞きたかったのですが。 初歩的な質問はNGワードなんですね。レスありがとでした。出直してきます。(´・ω・`)
特化型データベースの開発者を募集してます。 興味のある方、腕に自信のある方はいませんか?
>>688 NGワードではないがデータベースを2種類使うようなことを「初歩的な」とはいわない。
質問者に文書力や表現力が欠如してて、初歩的な質問がときに難解で哲学的な質問に
読めてしまうことはたまにあるから今回はそれかもしれないけどね。
質問からはMysqlとAccessをなぜ両方使う必要があるのか、どう使いたいかはさっぱりわからない。
691 :
686 :2005/09/02(金) 01:49:43 ID:???
>>690 >質問者に文書力や表現力が欠如してて
痛いところつかれた・・。ご指摘ありがとうございます。今後努力します。
学校の宿題でAccessを使った個人用データベースを作ってます。
作ったデータをupして提出する予定のウェブサバがmySQLしかつかえない上MyODBCが入ってないのです。
試行錯誤しながら自宅テストサバで試したところ、
どうもAccessとmySQLだけだと連携がぐだぐだで動かない。(自分の知識不足かも・・)
サバにあわせるのならデータベースに連携できるようにtxtファイルに変換するしかなのかと考えてます。
それだと課題にあるAccess(.odb)を使ったデータベースにはならないし・・。
こんな感じです。
長文と文章へたですんません。では提出期限まで頑張ってみます。(`・ω・´)シャキーン
連携とか難しく考えずにCSVで吐き出してmysqlにimportしてやればいいんじゃねーの
693 :
NAME IS NULL :2005/09/02(金) 19:29:12 ID:kvIbnLC3
社内LAN WinXP 社内LANのトラブルについて教えてください 先日、社内LANが組まれたパソコンに決められたフォームへの入力作業を しました。アクセスは随時500件くらい、接続はケーブル、WinXP、 開始は2005.4.1から、システム設計は最大手の会社でした。 トラブルとは、入力してもホストコンピューターにデーターが送信されず パソコン自体がフリーズ。もちろん入力もしなおし。 この原因は、処理能力、システム、端末パソコン?? パソコン担当の人はいても、システム設計会社の人は常駐していません。 聞く人がいない中での作業で大変でした。 また起きた時の対処方は一般的なALT+F4から始めれば良いのでしょうか? どなたか助けてください。
はいはいくまくま
ヒント:保守契約
>>693 同時接続数がでかいと、NATテーブルが安物のルータから溢れたりします。
LAN管理者に変な物使ってないか確認してみませう。
どうせ孫請けかひ孫請けあたりに適当に作らせた代物だろ
>>693 ここに書き込んでること自体が見当はずれ。見当はずれの達人かもしれん。
699 :
NAME IS NULL :2005/09/05(月) 09:50:24 ID:fhH8zyEh
table1 ID1:名前 --------- 001:吉田 002:山田 003:鈴木 table2 ID2:ID1:項目 ------------ 111:001:aaa 112:001:bbb 113:002:ccc 114:002:ddd 115:003:eee table3 ID3:ID2:金額 ------------- 221:111:5000 222:111:1000 223:112:3000 224:112:2000 225:112:500 226:113:1500 227:115:10000 上記の3つのテーブルから、金額が 2000円以上の人の名前と金額を取得したいのですが select A.名前,C.金額 from table1 as A,table3 as C where A.ID1 in (select ID1 from table2 where ID2 in (select ID2 from table3 where 金額 > 2000)) これではエラーが出てしまいます。 どこが間違っているんでしょうか? よろしくお願いします。
joinさせた方が楽なんじゃ……
701 :
NAME IS NULL :2005/09/05(月) 10:16:23 ID:fhH8zyEh
>>700 あ、joinでいけました。
ありがとうございます。
702 :
NAME IS NULL :2005/09/05(月) 13:29:48 ID:fhH8zyEh
699です。
joinでの表の結合はできましたが、また問題にぶつかりました。
上記(
>>699 )の3つのテーブルから、金額が
2000円以上の明細(table3)を持つ人の名前と金額を
取得したいのですが、さらに、その金額の中でも
最も大きなものだけを取得したいのです。
上記の表からの結果としては、
名前:金額
----------
吉田:5000
鈴木:10000
を返すようにしたいんです。
最も大きなもの、というのをどうやって取得したらいいかわかりません。
抽出できるSQLを教えてください。よろしくお願いします。
select max(金額) (中略) group by 名前 つーか、もう一度基礎から勉強し直した方が良いんジャマイカ? 分からないことが出てくる度にここで質問するのか?
SQL(Jet)の入門書ってあんまり無いからなぁ。 リファレンス読んでも頭入んないし、Accessのヘルプは腐ってるし。 雑誌のバックナンバーかね。 あ、ちなみに俺は699じゃないぞ。
すいませんが、教えて下さい。 以下の様なテーブルがあるとします。 shop_table +----------+--------------+--------------+ | shop_id shop_name op_id +----------+--------------+--------------+ | 1 AAA | 2 BBB +----------+--------------+--------------+ op_table +----------+-----------------+--------------+ | op_id op_name +----------+-----------------+--------------+ | 1 深夜営業 | 2 カード利用可 | 3 個室有り | 4 禁煙席あり +----------+-----------------+--------------+ やりたい事は、検索ページを作って、オプションから店を検索出来るデータベースを作る事です。 それで質問なんですが、上記の例で店舗「AAA」のオプションが1つなら良いのですが、 仮に3つある場合、shop_tableのop_idフィールドに「1,2,3」みたく複数入れる事は、 正規化の問題やデータベースの設計上、やってはいけない事だと思うのです。 この様に複数のオプションを持つ店がある場合は、どのようにデータベース設計をすれば良いのでしょうか?
は? shop_id op_idのテーブル作れば解決でないの? 1 1 1 2 1 3 2 1 って。 それともop_idを二進数にして組み合わせタイプ分かるようにでもしたいんだろうか。
質問投げっぱなしジャーマン
709 :
706 :2005/09/06(火) 15:17:48 ID:???
>>707 >>708 返事が遅れ申し訳ありません。
まさかこんなに早く返信が来るとは思わなかったので、
一晩待とうと思ってそのまま寝てしまいました・・・。
なるほど、shop_idとop_idを対応させたテーブルを作れば、
解決出来ましたか!それは盲点でした。
最初私は、まさに後半で書かれている組み合わせタイプにしようとしていたのです。
例えばそのオプションがある店は「y」、無い店は「n」としたりとか。
ある店を「1」、無い店は「0」という表記の方が一般的でしょうか。
shop_idとop_idを対応させたテーブルを作るのと、
組み合わせタイプが分かるようにするのでは、
どちらの方が標準的なやり方なんでしょうか?
前者
>>709 op_tableのレコードがあまり多くなく基本的に固定なら後者もあり。
アプリケーションでどんな処理をしようとしてるかを予測しないと判断できないが
前者はデータ構造が柔軟である代わりに実行時のコストが高くなる可能性がある。
製造コスト、運用コスト、保守コスト、拡張性を秤にかけて考えるしかないと思います。
712 :
706 :2005/09/06(火) 16:45:18 ID:???
>>710 >>711 さっそくのお答え、ありがとうございます。
柔軟な構造の方が後々やりやすいと思うので、
shop_idとop_idを対応させたテーブルを作るやり方で
やっていこうと思います。
コストの件は、店舗数も100件以下、オプション数も20個以下程度ですので、
そんなに大きなコストは掛からなそうですね。
どうも有り難うございました。
OracleのTIMESTAMPについて教えてください。 Oracle 10gとVC6.0+oo4oで、TIMESTAMP型の値を取りたいのですが 取得の仕方がわかりません。 動的に取得したいのでTO_TIMESTAMP等は使用せずに取得したいと思っています。 わかる方ご教授お願いします。
715 :
login:Penguin :2005/09/08(木) 10:44:34 ID:Q4ZvqsbO
Linuxで現在使用されているJDBCドライバーのバージョンってどこを見ればわかりますか? またJDBC OCI R8.0.6かJDBC OCI R8.1.7はOracle 10gで使えますか?
716 :
NAME IS NULL :2005/09/08(木) 12:41:59 ID:vKriBljx
>>715 JDBCドライバのバージョンなんて各ドライバ実装によりけりだろ。
大抵はJDBCドライバのJARファイルのファイル名の一部にバージョンが入ってるからそれで判断。
>714 ワロタ
719 :
名無しさん@そうだ選挙に行こう :2005/09/10(土) 18:59:25 ID:D/fqDqyt
MSDEに関する質問です。 MSDE7.0(OS:Win2000Server)で稼動しているシステムを MSDE2000 SP4(OS:WinXP Pro)へアップグレードしたいです。 (クライアント側はAccess2003) DBの移行を行ったところ一見普通にアップグレードされて 動いているようにみえたですが、レコードの削除ができず困っています。 削除は下記の方法でしています。 Dim cnn As ADODB.Connection, rst As ADODB.Recordset Set cnn = CurrentProject.Connection Set rst = New ADODB.Recordset rst.Open "aaaTbl", cnn, adOpenKeyset, adLockOptimistic Do Until rst.EOF If rst!SampleID = Me!SampleID Then rst.Delete End If rst.MoveNext Loop rst.Close MSDE7.0の時には同じコードで動いていました。 クライアントからの接続は[sa]アカウントでログインしています。 表示されるエラーメッセージは下記でした。 [実行時エラー -2147217900 列プレフィックス 'deleted.' は無効です:テーブル名が指定されていません] できる限り調べてみたのですが原因がわかりません。 自分で試してみた事は下記です。 ・既存MSDE7.0からファイルコピーして、MSDE2000でattach ・「buckup database」と「restore database」コマンドで移行 ・新規にMSDE2000上にDBを作成し上記のコードを実行すると問題なく削除できたので osqlを使い、移行してきたDBと新規に作ったDBを比べました(sp_helpdb使用) そこで見えている全オプションを動く方のDBと一緒になるよう変更。 ・コード側を変更し、レコードセットをloopでまわす処理でなく、 DELETEのSQL一発で実行するよう変更。 ↑結果は一緒で、いずれも上のエラーが出てしまいました。 なにかご存知の方がおられたら教えてください。 よろしくお願いします。
>>719 MSSQL7まではいろいろな機能を内部的にトリガーをつかって実装してたから、
deach/attachやbackup/restoreで移行するとその辺がゴミで残る。
MSDEでなくて製品板のMSSQLならMTSの「データベースコピーウィザード」を使うのが安全。
単純な構造のデータベースだったらテーブルを手動で作り直してデータはbcpでコピー。
721 :
719 :2005/09/12(月) 02:00:27 ID:???
>720 レス頂いてありがとうございます。 遅くなってしまって大変失礼しました。 なるほど、そんなゴミが生まれてるんですか…。 そのせいでうまく動かないのかな…。 製品版のSQL Serverではないので「データベースコピーウィザード」 という機能を使えないのが残念です。 お勧めして頂いた方法に近いのですが、 既存テーブルを一度MDBにエクスポートし MSDE2000上で新規DBを作成後、インポートし直してみました。 bcpというコマンドを知らなかったので、さっきネットで調べてみました。 MDBからのエクスポートとどちらが良いか明日 本やヘルプみながら確認してみます。 結果としては、何とか動くようになったのですが テーブルの型確認やリレーションやストアドプロシージャを 手動で作り直しているため、ちょっぴり不安です。 テストばりばり頑張ります。 アドバイス本当にありがとうございました。
722 :
NAME IS NULL :2005/09/12(月) 13:18:56 ID:uBuPD/uF
大学の教授から、教授室にある文献のデータベースを作って欲しいと頼まれました。 が、当方ドシロウト。 論文名・著者名・論文掲載書名・ページ数などのデータを取り込んで、 それをホームページ上から検索出来るようにするには何が必要ですか? ACCESSやEXCELで出来るのでしょうか。 超初歩的な質問ですいません。どうか教えてください。
>>722 予算が無いならLAMP LAPPでぐぐれ
初めまして。 Paradox使用でのSQLについての初歩的な質問です。 他サイトでの説明が理解できないぐらいのレベルなのですが どうか御教授よろしくお願いいたします。 select A.管理番号,A.設置年度,B.布設年度 from A,B,C where (B.作業番号 = C.作業番号 and B.手順番号 = C.起点番号) and (A.作業番号 = C.作業番号 and A.起点番号 = C管路.起点番号) and (B.布設年度 like '%S%') B.布設年度は「S58、H08」などで書かれています。 A.設置年度は「1999」などの西暦で入力されています。 B.布設年度を西暦に変換し、尚且つA.設置年度と合っているかどうかを調べたいのです。 以下の文はAccessでのSQLの文です。 and (substring (B.布設年度,2,1) <> '0') and ((A.設置年度)<>(substring(B.布設年度,2)+1925)) 上記2行のAccessの文はそのままParadoxに持っていく事が出来ません。 どのように変更したらよいでしょうか? 皆様よろしくお願いいたします!
725 :
724 :2005/09/12(月) 16:06:28 ID:???
Paradox使用と書きましたが Paradox 7を使用しています
727 :
724 :2005/09/12(月) 16:33:18 ID:???
申し訳ないです。 質問にも答えていただけないですか?
今後わからないことがあったらずっとそうやって聞くつもりなのかい? 他のページに書いてあることが理解できるレベルまでマニュアルや参考書読んで勉強しておいで
729 :
724 :2005/09/12(月) 16:48:09 ID:???
まぁ、プログラマーらしい答えをありがとうございます。 覚える気はないです。 時間もないです。 仕事を続ける気もないです。 ただ、答えが欲しかったんです。 別場所行ってきます
730 :
722 :2005/09/12(月) 16:52:13 ID:???
>>723 「LAMP LAPP」で検索して、MySQLといったものを見つけました。
これをもっと調べて、身に付けていこうと思います。
教えていただいてどうもありがとうございました。
仕事を続ける気無いんだったら放り出して逃げればいいのに
732 :
724 :2005/09/12(月) 17:35:05 ID:???
釣れた。
かなりの初心者です。 今、SQLSERVERを使ってSQLの勉強をしているのですが、 クエリアナライザを使ってSQLを書いていると「カンマ」とかが、 とても小さくでとても見にくいのですが、 皆さんはSQLを書く時、なにか専用のソフトを使っているのでしょうか?
>>733 クエリアナライザならツールのオプションのフォントで文字の大きさやフォントを変えれる。
もっともおれはメモ帳派だ。
736 :
NAME IS NULL :2005/09/12(月) 22:26:47 ID:NZo0Y7MD
現在、varchar(16)をユーザIDにしているのですが これをindexとしてそのまま使うことは問題ないですか? 何となくサイズが大きすぎるような気がするので、 内部でintのIDを発行して、内部では主にそれを使おうか、 とも考えているのですが、どうでしょうか?
>>724 自分でも、ちょっと興味があったので、調べてみました。
(といっても、オンラインヘルプ読んだだけ。。。スマソ)
ストレートに変換すると、こんな感じだけど、はたして動くかどうか。
and (SUBSTRING(B.布設年度 FROM 2 FOR 1) <> '0')
and ((A.設置年度)<>(CAST(SUBSTRING(B.布設年度 FROM 2) AS INTEGER)+1925))
それよりは、和暦年 -> 西暦年対応テーブルを作成して、変換したほうがいいと思うよ。
>>736 16桁ぐらいなら気にすることは無い。複合キーになるようなら代理キーも検討してみよう。
739 :
NAME IS NULL :2005/09/13(火) 09:16:26 ID:lqztmbt8
データベースを変更できる入力画面を作ったのですが (株)○×△と入力しますが?○×△と表示されます &キーワード使って 置換して登録すると &111○×△と入力するとそのまま表示されます。 データベースに特殊文字を入力するにはどの様にしたら 宜しいでしょうか?参考になるところありましたら教えて下さい。
どんなDBMSか知らんが、Unicode形式じゃないんでね?
741 :
NAME IS NULL :2005/09/13(火) 18:51:05 ID:xpDvzYzM
超初心者的な質問で申し訳ありません 独学でSQL、Perl等を勉強しようとしてる工房です 家にPCが二台あるのですが使ってない片方をサーバにしてLAN構築、linux導入して云々 そういうことができると聞いたのですが具体的にどうすればいいのか分かりません 工房の小遣いで出来る範囲で回答お願いします。
>>741 まずはgoogle検索だな!
google検索って無料でできるんだよ! 知ってたかい?
pcの電源の入れ方 linux導入 lan構築 dbms選び sqlのお勉強 perlのお勉強 鯖建 運用 アナルオナニーの仕方 これ全部聞くつもりなのか。お前は将来大物になるよ。保証する。
>>743 最後のだけで結構です。なにとぞ教えてください。
746 :
NAME IS NULL :2005/09/13(火) 21:12:01 ID:1+a//NRY
RACわからん。 誰か可用性と冗長性の違いを僕にわかりやすく説明してください。
747 :
NAME IS NULL :2005/09/13(火) 21:23:09 ID:QnapzokQ
RDBMS で 2ch のログを管理してる人いますか? SQL で 特定の ID 、トリップの発言だけ抜き出したり。
748 :
736 :2005/09/13(火) 21:26:42 ID:???
>>738 そうでしたか…
ありがとうございました。
749 :
NAME IS NULL :2005/09/14(水) 02:42:30 ID:C2KWFTjA
>>741 LANその他複数PCによるシステム構築の勉強をしたいのか、
SQLとPerlの勉強をしたいのか、まずは分けた方がいい。
SQLとPerlの勉強したいだけなら別に複数マシンいらない。
>>746 「可用性」というのは、システムをどれだけ継続して利用できるか、と
いうこと。「冗長性」というのは、システムにどれだけ重複した部分を
持たせるか、ということ。
可用性の向上のために冗長性を持たせる、などという使い方をする。
たとえばハードディスクが故障してもシステムが止まらないように
ミラーリングする、といった場合、「ハードディスクが故障しても
システムが止まらない」ことが可用性の向上であり、「ミラーリング」
が冗長性を持たせることになる。
751 :
NAME IS NULL :2005/09/15(木) 04:02:34 ID:yZiqGPvl
異なる文脈のために、 同じデータをあえて二つのDBに書き込むことはアリですか? データ量・アクセス量が多くなりそうなので、 クラスタリングを前提に考えています。 そうなるとテーブルの結合が難しく、 また文脈によってデータの分割可能単位が変わってきそうなので、 あえて正規化の逆を行って、 最初から別々に書くようにしようかと考えているのですが…。 DBはMySQLを使っています。
>>751 何をしたいのか、どうしたいのかさっぱりわからない。
>異なる文脈
というのが特に謎なのでわかるように説明してくれ。
join + on と , + whereの使い分けについて教えてください
自己解決しました。
755 :
NAME IS NULL :2005/09/15(木) 10:26:52 ID:UWiaKHfa
Oracleの質問です。 SQL*plusを使ってDBに接続して alter session set NLS_DATE_FORMAT = 〜; を入力して設定しました。 このときは無事sysdateの出力を変えることができたのですが、 SQL*plusを立ち上げなおして接続すると元に戻っています。 接続しなおしても出力形式をそのままにする方法はないでしょうか?
`` ↑ これ何(`w`)?
757 :
724 :2005/09/15(木) 13:24:56 ID:???
>>737 様
遅くなりましたが、返答ありがとうございました。
結果は良好
SQLも仕上がりました。
アドバイス本当にありがとうございました!
>>755 SQL*plusだけでいいならlogin.sql にalter session ... を書いとく。
初期化パラメータ(SPFILEなど)のNLS_DATE_FORMATをいじるのは全体への影響が大きいのであまりやらない。
面倒でもTO_CHARやTO_DATEで毎回形式を指定するのが確実。
>>758 できれば今後はプログラムからも利用しようかと思っています・・・(汗
アドバイスありがとうございます。SPFILEをちょっと調べてみます。
760 :
730 :2005/09/16(金) 23:18:45 ID:???
>>735 お礼が遅くなりました。
誘導ありがとうございます。
スレを見つつSQLの本も買って勉強中です。
文系の勉強ばかりしてきた自分にSQLはもの新しくて楽しいかも。
SQL-SERVER6.5からテーブルをSQL-SERVER2000に bcpで圧縮して渡したいのですが、うまくいきません。 6.5のテーブル〜〜〜〜〜〜〜〜〜 CREATE TABLE "dbo"."ABC" ( "AAA" "int" NOT NULL , "BBB" "datetime" NOT NULL , "CCC" varchar (12) NOT NULL , "DDD" char (65) NULL , CONSTRAINT "PK_ABC" PRIMARY KEY CLUSTERED ( "AAA" "BBB", "CCC", ) ) GO 2000のテーブル〜〜〜〜〜〜〜〜〜 CREATE TABLE [dbo].[ABC] ( [AAA] [int] NOT NULL , [BBB] [datetime] NOT NULL , [CCC] [varchar] (12) COLLATE Japanese_CI_AS NOT NULL , [DDD] [char] (65) COLLATE Japanese_CI_AS NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[ABC] WITH NOCHECK ADD PRIMARY KEY CLUSTERED ( [AAA], [BBB], [CCC] ) ON [PRIMARY] GO これはSQLスクリプト生成でそれぞれ作成したものです。 解凍し、SQL-SERVER2000に取り込む時に、 SQLState = S1000, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]BCP データファイル中で予期しない EOF が検出されました。 というエラーが出ます。 そして、 varcharやchar項目が無いテーブルは普通に解凍して取り込めます。 原因はおそらく、 「COLLATE Japanese_CI_AS」の部分だと思うのですが、 SQL-SERVER2000で、「COLLATE Japanese_CI_AS」がくっつかないで文字列指定する方法、 または、取り込めるような指定のものはないでしょうか? よろしくお願いします。
>>761 bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-m max_errors] [-f format_file] [-e err_file]
[-F first_row] [-L last_row] [-b batch_size]
[-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
[-q] [-C code_page] [-t field_term] [-r row_term]
[-i input_file] [-o output_file] [-a packet_size]
[-S server_name[\instance_name]] [-U login_id] [-P password]
[-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]
[-V (60 | 65 | 70)] [-6] このあたりが互換オプションっぽい。
763 :
761 :2005/09/17(土) 21:02:03 ID:???
>>762 ありがとうございます。「-V」は使ってませんでした。
bcpに関してネットで詳しい所を探してみます。
また、取り込めたら知らせにきます。失礼いたします。
764 :
761 :2005/09/17(土) 23:06:22 ID:???
取込は「-V65」でできました。SQL-SERVER6.5って意味で「-6」でも 取り込めました。ありがとうございました。 しかし、今度は取り込んだSQL-SERVER2000のデータベースを bcpで圧縮してみると、 SQL-SERVER6.5で作成した圧縮ファイルと異なってしまいます。 SQL-SERVER6.5は照合順序がなかったので「-c -CRAW」にして みてもダメでした・・・。どのオプションが絡むか分かる方 いないでしょうか?
765 :
761 :2005/09/18(日) 15:23:22 ID:???
6.5と2000でbcpで作成されたものが異なるのは仕様のようですね。 なんとか2000から6.5への移行もできました。 その時bcpを使う上で一番大切なのはNULLをデータに含ませない事でした。 NULL入ったデータを6.5に渡そうとすると扱いが違うのか、コケますた。 どうもお騒がせしました。
WinXPにOracle9iを入れたら、Database Configuration AssistantやNet Configuration Assistantが起動しません。 Net Managerなんかは立ち上がるのですが…。 どなたか解決策をご存じないでしょうか?
767 :
NAME IS NULL :2005/09/19(月) 01:35:44 ID:M097S8Lp
今、jspを利用して、顧客、メーカー、サプライヤーの枠組みで生産管理システムを 3台のパソコンで仮想的な受注と発注を行いたいのですが、他のパソコンから データベースに接続する方法が分かりません。一応フォーム、データベースは もうできているので、後は他のパソコンから接続してデータを反映する事で 問題は解決できると思います。 たぶんサーバ名を"localhost"にしているためだと思うのですが何に変更すれば いいか、調べてはみたのですが、全く分かりません。分かる方、どうかお教えお願いします。
768 :
NAME IS NULL :2005/09/19(月) 08:45:43 ID:GSfWACCA
Accessを簡単に説明するのに、何て言えばいい?
素人向けデータベース
>>764 bcpはアーカイバじゃないんだから圧縮ってのは変じゃないか。
それはさておき、普通にbcp outしたのなら照合順序にかかわらず
レコードの出力順は保証されないから
単純なバイナリコンベアでは一致しなくて当然。
きっちり確認するならselectにorder byをつけて得られた結果を比較すぺし。
もちろんユニークキーでorder byしないと意味ないぞ。
ER図の領域分割について質問です。 関連比を付け終えて、分割を行うとしているのですが 多対多が多いため、1つの領域に1つの関連または 実体しか入っていません。 これは設計の仕方が悪いからでしょうか? 1対多、1対1を多くして領域の数を減らした方がの 望ましいと聞いた記憶があるのですが…
772 :
NAME IS NULL :2005/09/21(水) 03:14:49 ID:jldCcMev
各社が提供しているクラスタリングソリューションを使えば、 異なるサーバにあるテーブル同士のjoinもできるのでしょうか? クラスタリングが必要になる前から、 joinをしなくても済むよう、いろいろ小細工した設計を考えていたのですが どうしても複雑になるし、データの重複も出てきて、 本当にそうすべきなのか…と疑問がもたげてきました。 まずはシンプルに設計し、テーブルの大きさや負荷が問題になる段階になってから クラスタリングのレイヤをばっさりかぶせてしまった方がいいのではないか…と。 このようなアプローチはどんなもんでしょうか?
>>772 >異なるサーバにあるテーブル同士のjoinもできるのでしょうか?
それは分散DBといってクラスタリングとは直接関係ない。
分散DBはあらかじめ分散することを前提に配置を十分に検討して
設計しておかないとうまくいかない。
クラスタリングはOracleのRACを除いて可用性つまりノンストップで
運用するための仕掛け。
>>773 そうなんですか…やはり難しいものですね…
ありがとうございました
775 :
NAME IS NULL :2005/09/21(水) 14:45:17 ID:8l1h+j+n
Oracleの質問です。 SQL*plusを使っています。 1つのテーブルにPrimarykeyを2つ持たせたいのですが可能でしょうか?
>>775 テーブルにPRIMARY KEY制約はひとつだけ、ただしNOT NULL にしてUNIQUE制約をつければ機能的にまったく同じ。
こちらはテーブルに複数指定できる。
777 :
775 :2005/09/21(水) 15:24:39 ID:???
>>776 様
勉強になりました。ありがとうございます。
778 :
NAME IS NULL :2005/09/21(水) 18:53:31 ID:6GUutCAV
Linterってどうよ?
779 :
NAME IS NULL :2005/09/22(木) 09:13:37 ID:CKvhI0fd
sql*plusを使ってます。 テーブル名 列名 Primary bllod b_ID varchar(3) ○ type varchar(3) 001 A型、002 B型、003 O型、004 AB型 テーブル名 列名 primary human h_ID varchar(3) ○ b_ID varchar(3) not null unique と2つのテーブルが用意されていてhumanテーブルに データを入れていきたいのですが、両方ともunique に設定されてるので血液型1つにたいして一人しか 登録出来ません。なぜb_IDをユニークにしてるのか 素人の私には分かりませんが、 この上記の条件でデータを入れる事は 可能でしょうか?
>>779 >血液型1つにたいして一人しか登録出来ません
そのとおり
>なぜb_IDをユニークにしてるのか素人の私には分かりません
俺にもわからないが考えられるのは
1)humanは血液型の異なる人を一人ずつ登録するためのテーブルである。
2)設計またはテーブルの定義を間違っている。
どちらかは作ったやつに聞くしかないな。
781 :
NAME IS NULL :2005/09/22(木) 17:26:21 ID:3wuTUKRF
MXはどうしたんだ。
783 :
NAME IS NULL :2005/09/23(金) 00:53:53 ID:bThjdX9O
XMLをRDBにうまくぶちこむ方法ってある?ネイティブXMLDB使わずに
>>783 うまくってのは何を期待してるんだ? ただの文字列で放り込んどけ
postgreSQL7.4.8(OSはFedora3)で CREATEUSER foo を行った後(\duコマンドでfooがユーザとして追加されているのを確認してます) psql -U foo としても、パスワードを要求されることもなく psql: FATAL: IDENT authentication failed for user "foo" となりユーザーfooでpostgreSQLにログインできません お助けください。
786 :
NAME IS NULL :2005/09/23(金) 21:45:25 ID:5gsCSW4p
いまの派遣先の会社、DBの項目がNULL許可ばかりなのですが、 NULL許可が好きな人って結構いるんですかね。 比較演算子で引っかからなかったりして、あんまり好きじゃないなぁと 思ってるんですが。
まったくの初心者なんですけど新聞の記事をデータベース化するには何をしたらいいんでしょうか?
確かに、インデックス付けて整理すれば何でもデータベースだ
それではかさばってしまうのでパソコンではどうやって作るんですか?
モニタにマジックで記事書き写して日付ごとに分けて倉庫にしまっておけ
新聞社の有料サービスを使っとけば。
794 :
NAME IS NULL :2005/09/24(土) 09:30:46 ID:9pZ80ukO
CDROMとかで売ってなかったっけ?
795 :
741 :2005/09/25(日) 00:38:47 ID:SPrvL4Es
とりあえずPHP5とMySQLの本買ってきて家のPC使って勉強してます 一応HTMLとJavaは使えるので今のところ理解できてます・・・でもこの先どうなることやら
>795 やる気はあるみたいだから、ちょっとアドバイスしてやろう。 もし本気でデータベースを勉強したいなら集合論を勉強しろ。 RDBMSは集合論でデータを処理するための仕組みだ。 次にテーブルの正規化を勉強しろ。 基本的にJavaやPerlなどの手続き型言語とSQLには大きな隔たりがある。 あとPHPだが、デザインと手続きがゴッチャになるんで勉強用には向かないと思う。 全て分かった上で使う分には便利な場合もあるが。<PHP PerlとCGI::TemplateやFastTemplateを使えば表示テンプレート(HTML)とcgiを分離できる。 とりあえず、実際触るだけじゃなく仕組みや考え方も同時に勉強した方が良いぞ。
797 :
NAME IS NULL :2005/09/25(日) 03:37:22 ID:cTvVPgIJ
DB管理の仕事に今度就くんだけどこの先どのようなパスがあるのかな。 プログラム勉強してPGやSEなったりした人っている? それともDB設計やコンサルって方が妥当? 俺もう27歳だからそうそうゆっくりはできないんだと思う・・・
798 :
NAME IS NULL :2005/09/26(月) 00:01:23 ID:M0eqB0cz
>>796 アドバイスThx!
何かで「最初はPHPとMySQLやっとけ」って読んだ記憶があったので・・
集合論ですか、それは数学分野のになるんですか?
今はとりあえずWindowsマシンで稼動させてますが、いずれはLinuxでも実践できたらと思ってます。
それより先にAccessやるべきなのかな?(;´Д`)
>>798 PHPやAccessは応用分野であって基礎じゃない。
つぶしの効く人材になりたかったら基礎をしっかり学べ。
昔漏れの周りにも「最初はマシン語」とか「最初はBASIC」とか言ってるヤシがいたが、
今マシン語やBASICで食ってるヤシはいない罠。(ちなみに当時のBASICとVisualBasicは別物。)
集合論はもちろん数学の分野。DBは集合論。
プログラミングは離散数学を基礎として勉強汁。
あと、母国語での箇条書きもいい訓練になる。
プログラムを組める事=プログラミング言語で処理を順番どおり箇条書き出来るようになる事。
ソフトウェア技術者に必要なのは、
箇条書き出来る国語力+理論を実装できる数学力だ。
数学力は全部を取り入れる必要は無いが、
必要な時に文献を見て理解できる程度にはなっとけ。
800 :
NAME IS NULL :2005/09/27(火) 19:51:41 ID:VZIJnVmQ
XML文書をDBに格納したいんだけどMySqlってXML文書を格納できないんだよね? MS SQLやOracleはXML対応してるんだけどMySQLが対応するのは当分先かなー?
プライマリーキーとしてUUIDを利用するケースって多いのでしょうか? 何らかのサロゲートキーは設けたいのですが、シーケンスだと 限界値がくるし、UUIDだと重複が怖いし、と迷っております。
802 :
NAME IS NULL :2005/09/28(水) 00:33:02 ID:64Wfu/+M
MySQLで複数のデータベースの特定テーブルの中身を一気に表示させる事って 出来るんですか?(PHPと連携して)
出来ると思うケド
>>804 ありがとうございます。では、すみませんが、参考サイトとか
コマンドとか教えていただけないでしょうか?
ググっても見つけられなくて・・。
807 :
NAME IS NULL :2005/09/28(水) 16:52:52 ID:64Wfu/+M
federatedは複数のデータベースプロセスにまたがった場合の話ね。 単体mysqlプロセス内のデータベースをまたがった場合は、 MySQLではテーブルは"${データベース名}.${テーブル名}"で指定できるので、 select * from hoge.t1, fuga.t1; のようにデータベースhogeとfugaの両方から結果は集められるとおもわれ。
808 :
NAME IS NULL :2005/09/28(水) 21:28:00 ID:OU257jT6
>>806-807 ありがとうございます。が、複数データベースを参照するのって
難しそうですね・・。ポータルサイトなどは、複数データベースを参照して
情報を呼び出しているような感じがあるのですが、実際は違うのかな。。
809 :
NAME IS NULL :2005/09/29(木) 21:12:22 ID:8tceUF4b
ORACLE10gをPersonalでインストールしたのですが、9iにあったEnterprise Management Consoleが 見つかりません。どのようにインストールすればいいのでしょうか?
810 :
809 :2005/09/29(木) 23:10:59 ID:8tceUF4b
自己解決しました。 偶然、DB作成完了時の画面を保存していたため気づきました。 10gはブラウザで見るんですね。
MYSQLでmovabletypeを使う場合、有料ライセンスを購入する必要はありますか?
みなさんSQLエディタは何使っている? おれはosqleditだよ。
>>811 個人で鯖立てて使う分にはいらないんじゃない?
814 :
NAME IS NULL :2005/10/03(月) 13:35:20 ID:472ohr6i
SQLの結果をファイルに出力することは可能でしょうか。 select * from table; > data イメージ的にはこんな感じです。 使用DBはPostgresです。 ご教示いただけますと幸いです。
>>815 すみません。こちらで聞きますね。
誘導有難うございました。
質問です。 ACCESSの機能に「フォームフィルタ」なるものが ありますが、これを使うとフォーム上に作った コマンドボタンが使えなくなります。 フォームフィルタボタンを押し、現在フォーム上でアクティブになっているフィールド(テキストボックス)の 内容一覧を一覧フォーム(別途作成済みで、GROUP BY でまとめるつもり)に一覧として出し、 その別途作成したフォームのListBoxを選択すると、 その内容が元のフォームのアクティブだったテキストボックスに反映される。 これをいくつかのテキストボックスで繰り返して、最後にフィルタの実行をしたいのです。 ご指導お願いします。
818 :
NAME IS NULL :2005/10/03(月) 22:39:46 ID:40BPO2GM
クインティプルマルチ乙、と言われたいんだろうけどsageてるし偽者っぽいな
俺的メモ 1.シングル 2.ダブル 3.トリプル 4.クアドラプル 5.クインティプル 6.セクスタプル 7.セプタプル 8.オクタプル 9.ノナプル 10.ディカプル
テーブルにフィールド数が22個あるんですが、 これって大杉ですか? 1.言語道断 2.なきにしもあらず 3.普通 4.もっと多いのもざらにある 5.その程度で多いと思ってるなんて、自意識過剰 上のどの辺りでしょうか。 ちなみに全て、ID、電話番号、名前、メアド、ホムペアドレスのように、 別テーブルに分けられない項目ばかりです。
822 :
NAME IS NULL :2005/10/06(木) 11:35:16 ID:Vff7nOVQ
PostgreSQLにXML文書を格納したいんだけどXMLサポートしてないんだよね?Postgresって。 Oracle,MS SQL, DB2はサポートしていたと思っていたけど、オープンソースRDBなところでは まだ対応しきれてないのかな。
824 :
NAME IS NULL :2005/10/07(金) 02:15:46 ID:YOxD0VRa
825 :
NAME IS NULL :2005/10/08(土) 09:34:44 ID:hP+tQt2D
長文スマソ 俺の会社の上司さ、どーしようもない教えてクン。 すっごい熱心に見えるけど、教えてクソ。 この間さ、データ追加のSQL文聞かれたのさ。 もう「はぁ?こっちは忙しいんだ!少しは本読んで勉強しろよ!」 と言ってやりたかったけど、 そこは縦社会。我慢して、口頭で「インサート・イントゥー〜」と 教えてあげましたよ。 そしたら、そいつ「イン・・・なに?」とか聞いてくるの。 ああマンドクセというか、転職したほうが身のためというか、、、 もう半分切れそうだったけど「アイ・エヌ・ティー・オー です」 って、見事な偽善者ぶりをかましてやりましたよ。 で、これで終わりと思いきや、またこの馬鹿、 「おい、○○(私の名前)、エラーになるぞ。うそ教えてんじゃねぇよ」 とか言ってくるの。もう、なんて言うか血管切れそう。 こいつが上司じゃなかったら、ボロクソ言ってましたよ。 それで見てみたら「insert inpo 〜」とか打ってんの。 インポはお前だけで十分だよw。頼むから!w。 もう怒りを通り越して、脱力感が襲ってきましたよ。 でも、俺我慢強いから、卑屈になって謝って、教えなおしましたよ。 「すみません。間違えてました。inpoの前にch言うの忘れてました。」
827 :
NAME IS NULL :2005/10/08(土) 23:57:51 ID:M/I+U/hK
DB板とはちょっと外れるかもしれんけど Googleが何億ものページの中で何万字もある文書の中から0コンマ数秒のうちに 該当字句を探し出し、検索結果ページとその件数をカウントして返す。 ってのが、何をどうやったらそんな神業スピードになるの? 数万台のサーバでクエリを処理し、世界中の殆どのページをインデックス化して探し出すとは言っても 速すぎだろ!
828 :
NAME IS NULL :2005/10/09(日) 00:17:30 ID:qXIKHGf+
>>827 以前どっかのカンファレンスでGoogleの副社長曰く、
「検索エンジンとRDBMSの違いだけど、検索エンジンは絶対に即時レスポンスを
返さなければ成らない点にある。その代わりに検索エンジンは返す結果の
精度はRDBMSとは違ってさほど要求されない。」
といっていたのを思い出す。
だから実際には「何億ものページのなかで何万字もある文書の中から検索」なんて
検索リクエストを受けた時にはやってないはず。
829 :
827 :2005/10/09(日) 01:05:30 ID:a0QwCS8f
>>828 確かに。
今「犬ころ」でググってみたけど、出てきた総数の中で実際に先頭ページになってるのは10件だけ。
次ページへのリンクをクリックしてみたら、1ページ目の検索秒数と違ってる。
1回のクエリで全てのページを洗い出してるわけではないのか
830 :
827 :2005/10/09(日) 01:07:32 ID:a0QwCS8f
しかもよく見たら、検索件数で有効なのは毎回、上位3桁だけだ。 数万件もカウントアップしてたらこんなスピード出せるわけないもんな。
831 :
828 :2005/10/09(日) 01:31:42 ID:qXIKHGf+
漏れの妄想の域を出ないんだが、もしかするとGoogleは過去に同じキーワード組み合わせで 検索したときの結果をインデックス経由で持ってきて返しているだけなのかもしれない。 例えば「トマト 臭い」と誰かが検索したとすると、その結果はそれ以前の誰かが検索した ことで発生したジョブを別のどこかで処理(本当の検索)したときの最新の結果が返ると。 頻繁に使用される検索キーワード組あわせほど頻繁に結果リストが更新され、 精度も高い結果を返すけれども、誰も検索したことがない、あるいは 非常に低い頻度でしか検索されないキーワードの組み合わせに対しては 結果リストが作成されない。 従って「ありませんでした」とかいう結果を返すとか。 検索窓からは直結していないデータセンターが優先順位に従って ごりごりインデックスを作っていると考えればそれで納得なんだが。 そうするとさ、GoogleがMySQLのレプリケーションを使ってる(ストレージエンジンは MyISAM+独自改変)という話は結構理解できるんだけど。 以上、妄想、スマソ。
832 :
828 :2005/10/09(日) 01:37:07 ID:qXIKHGf+
妄想ついでにもう1つだけ。 確かGoogle様はMyISAMを「独自のログが出るように改変している」と言っていた。 検索窓はMyISAMへアクセスするわけだがその際のキーワードを Google的フォーマットで別のどこかに記録しておく必要があるので (SELECTなんでbinary logは使えないしGeneral Logを解析するのはパフォーマンスいくない) SELECTのWHERE句のみをバイナリフォーマットでがしがし出力する ログ機能とかをMyISAMに追加して使っているんじゃないかと。 MySQLの話ばかりでごめんね。じゃあさようなら。
833 :
NAME IS NULL :2005/10/09(日) 13:03:36 ID:kn/DBQLw
非常にこまっているので質問させてください。 system表領域のデータファイルは損によりDBが起動できなくなりました。 対応を調べてnomount状態で起動し、リカバリをすればいけそうだとあたりはついたのですが、 そのnomount状態にできない状況です。 set ORACLE_SID=test sqlplus /nolog conn / as sysdba ここでTNSのプロトコルエラーが発生します。 TNS-12560、TNS-00530 環境はwin2k advでクラスタ環境で使っています。 OSのログインユーザはDBA_〜に属していて、sqlnet.oraにもNTSと設定しています。 休日で担当者も捕まらず困っています。 よろしくお願いします。
834 :
NAME IS NULL :2005/10/09(日) 13:20:44 ID:iAVipifm
アプリケーションからの"データベースへの接続"というのが、どういう意味なのかがわか りません。 "open","close"というのは一体どういう処理をやっているものなんでしょうか?
>>834 真面目に答えてあげよう。長文スマソ。
アプリケーションのプロセスとデータベースのプロセスが別々だということはまずOKかな?
例えばJavaならJ2EEサーバというプロセスのなかでアプリが動いているでしょう。
データベースは例えばMySQLならMySQLプロセスがあるわけです。
つまりまず第一に、異なるプロセス間での通信が発生することになる。
プロセス間通信を行うためにはTCP/IPによるsocket通信をまず確立させる必要がある。(他の方法もあるが)
次に認証の問題だが、接続を受けるデータベース側も誰に対してでも利用を許可するわけではない。
TCP/IPによるsocket通信を確立した後、ユーザID/パスワードによる認証を行うのが一般的。
物理的にはsocketで接続したとしても、認証で拒否されればデータベース側から切断される。
socket通信を確立させ、ユーザ認証も完了したら、その次は一般的にはデータベース側が
持っているいくつかの情報をアプリケーション側から取得しにいく。
ここでいう情報とはテーブル上のある行のデータのことではなくて、例えば文字コードは何かなど、
各接続ごとに初期化された様々な変数の値のことだな。
これはデータベースに接続するためのいわゆるドライバが必要とする情報。
大まかにいって"open"でこれら3段階くらいのことをやっている。
その上でようやくアプリケーション側からドライバを通じて"SELECTなんちゃら"といった
クエリをデータベースへ実行できるようになる。
いったんこのようにして接続が確立されると、大抵の場合、データベース側には
その"接続"をハンドリングするためのリソースが割り当てられる。
簡単に言うと、そのアプリケーションからの"SELECTなんちゃら"を受け付けて処理するやつが
サーバ側にも待機しているような感じだな。
"close"ではもう切断するからそのリソースを開放してくれとドライバを通じて
データベース側に通達する。
もしそれを行わないと、データベース側でアイドル時間による自動切断でも行わない限り、
そのリソースが開放されないので問題になるからだ。
>>834 こんな感じで納得してくれるかな? まだわかんねえってのなら後は自分で調べて。
838 :
NAME IS NULL :2005/10/09(日) 19:15:17 ID:eK952QUw
839 :
834 :2005/10/09(日) 22:52:27 ID:???
>>836 ありがとうございます。こんな長文いただけるなんて思ってもみませんでした。
これを基に勉強を進めます。本当にありがとうございました。
840 :
NAME IS NULL :2005/10/10(月) 15:28:07 ID:NmdDN145
CREATE TABLE DIRECTOR ( ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, NAME CHAR(100) UNIQUE KEY ); で作ったテーブルに INSERT INTO director ( NAME ) VALUE ('ソン'); と挿入すると、 ソン ではなく ャ・ になってしまうのです… 防ぐにはどうしたらよいのでしょうか?よろしくお願いします!
841 :
NAME IS NULL :2005/10/10(月) 15:29:05 ID:NmdDN145
↑データベースはmySQLです。
842 :
NAME IS NULL :2005/10/11(火) 01:37:47 ID:vPBIE0Xh
>>840 charsetの設定はどうなってる? sjisなりcp932なりでちゃんと設定すれば化けないだろ。
もしmysqlクライアントじゃなくてなんかのアプリから化けるってのなら、コネクタの文字コードの
設定をちゃんとすれ。
C:\Documents and Settings\Administrator>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.14-nt-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test
Database changed
mysql> CREATE TABLE DIRECTOR (
-> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> NAME CHAR(100) UNIQUE KEY
-> ) default charset=cp932
Query OK, 0 rows affected (0.16 sec)
mysql> set names cp932;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO director ( NAME )
-> VALUE ('ソン');
Query OK, 1 row affected (0.03 sec)
mysql> select * from DIRECTOR;
+----+------+
| ID | NAME |
+----+------+
| 1 | ソン |
+----+------+
1 row in set (0.01 sec)
>842 ありがとうございます! charsetはmy.iniの[mysql]にsjisを指定していました。 cp932にして、テーブル宣言の末尾に default charset=cp932 を付けたらきちんと表示されました。 こういう風な記述あるのですね。勉強になりました。
>>843 [mysql]セクションに書いたやつはmysqlコマンドラインクライアントとかに読み込まれるだけで、
サーバ側のデフォルトの設定としてやりたいなら[mysqld]セクションにも書かないとかな。
845 :
NAME IS NULL :2005/10/13(木) 19:58:16 ID:NQrFsrId
データベースはじめ立ての超初心者です。 テーブルからデータを抽出したときに、連続する5件のデータを取り出したいと思っています。 上から5件分抽出とか、上から6件目〜10件目までを抽出という操作がしたいです。 主キーで取れよといわれるかもしれませんが、 カラムの削除後に主キーに空白が出来てしまうので正確に5件取ることができません。 調べてみましたが、いいヒントが見つかりません。 どなたか解決法をご教授ください。
>>846 だから??
今さらいちいち指摘するようなことじゃないと思う
SQLServerのDateTime型って時分秒まで持ってますが、 日付の部分だけ取り出したいのです。 一度、文字列に変換してから切り取るしか方法がないのですかね?
850 :
845 :2005/10/13(木) 23:22:11 ID:NQrFsrId
「ご教授ください」という書き方が悪かったようなので、改めてお願いしたいと思います。 どなたか教えてください、困っていますTДT
>>850 DBMSによってやり方が違うからそれを書いてくださいね。
852 :
845 :2005/10/13(木) 23:55:59 ID:NQrFsrId
>>851 すいません、焦っていました。PostgreSQLです。
Webサービスに用いるので、+JSPです(関係ないですね)
適切な質問スレに誘導するスレになってるな。専用スレで聞いた方が確かにいいけど。
855 :
NAME IS NULL :2005/10/15(土) 12:46:25 ID:V3e5fevf
Lotus Notes/Domino の話って、この板じゃだめ? ノーツはDBというかグループウェアなんだけど よその板にもスレが無いみたいなんだよね… いいソフトだと思うんだけど。
# アプローチとかインプロブの話もダメなんだろうな・・・
良く分からんがビジネスsoft板の方が許容範囲広そうだな
858 :
NAME IS NULL :2005/10/17(月) 20:52:25 ID:Z522hyyr
超初心者なんですけど VBからストアド使うサンプルプログラムとか知りませんか? データベース勉強中なんですけど、 ストアドについての記述とか どのように使うのかがわかりません…orz
つ[ODBC]
861 :
NAME IS NULL :2005/10/18(火) 11:41:10 ID:y3rb1V7+
質問させてください。 oralceがインストールされているsolarisサーバに対して 別のsolarisサーバのシェルプログラムからDB操作を行ないたいのですが 何かよい方法はありますでしょうか? また参考になるURLなどありましたら教えてください。 お願いします。
862 :
:2005/10/22(土) 12:10:30 ID:???
すみません 今PostgerSQLを用いて顧客管理のDBの設計をしているんですが、 客は法人・個人が混在してるので請求書を発行するにも集計すべき期間、 締め日、支払日などが客ごとに違います (当月締め翌月10日払、25日締め翌々月1日払、年締めなど) こういった場合、どのようなフィールドを用いて集計を実現すればよいのでしょうか?
顧客テーブルに処理ID追加してそれに応じた集計をやれば良いんじゃ中廊下
864 :
NAME IS NULL :2005/10/22(土) 20:44:47 ID:0Jt2gnEY
すみません、DBはもちろんコンピュータ初心者です。 会社で、アプローチを使って顧客管理をしていたのですが、 今後の利便性など考えて、サーバーを使って独自のDBを作ることになり、 付き合いの長い会社に作成をお願いしました。 作り始めてかれこれ1年半以上経ちます。 当初の想定よりだいぶかかっておりますが、 意思疎通がうまくいかず、困っております。 先日も、単純な検索をしていたところ、警告文がでて、 その後、DBを見れなくなってしまいました。 30分後、再起動したので大丈夫だといわれたのですが、 その直後、「ハードディスクが壊れてもうひとつのバックアップ用(ミラーなんとかっていってました) を、コピーするから4,5時間使わないでほしい」といわれ、 壊れた理由を聞いたら、「ハードディスクですから壊れることはある」といわれました。 以前は、私が危機管理対策をしなくてはと思い、バックアップの確認や、 どういった場合に壊れるのかを聞いたときには、大地震で壊れるなど、 確立はかなり少ないし、万が一壊れてももうひとつをバックアップとしてとってあると いわれました。 しかし、大地震などおきていないし、実際に運用してからはまだ2ヶ月くらいなんです。 物だから、壊れることはあるとはいえ、納得がいかないのです。 そこで、自分なりにDBについて勉強してみようかと思ったのですが 何からやればよいのやら・・・。とほうにくれてしまいました。 2chのDBのページにきてもどのスレにいけばよいのやら・・・。 本でも読んで勉強したほうがよいでしょうか。 お勧めの本はないでしょうか。 また、このような事例は頻繁に起こりうるものなのでしょうか?
>>864 どんな環境なのかもサッパリ分からないから何とも言えないが、壊れる時点でダメ。金払う価値無し。
悪い会社に当たったな。可哀想に。
普通RAID組んであるもんじゃねーの
>ミラーなんとか これのことでね?
>コピーするから4,5時間使わないでほしい でRAIDの再構築ってこと? 普通DB使いながら出来ると思うんだけど
>>868 でもHDD壊すようなDB構築する糞システム屋の仕事だから何が起きても変じゃない
サーバ機なら保守入ってんじゃねーの? HDDが壊れるくらい何だってんだ
ソフトウェアで物理的にハードディスクを壊わす方法があるんだ? ウィルスとかクラックなんかじゃなさげだし逆に知りたいなw
すみません Oracle9iで、 カーディナリティの低い列に索引をつけるとSELECT文の 速度は悪化するのでしょうか? 現在、入る値が2種類だけの列に索引つけてるのですが これを外すと検索の速度は向上するのでしょうか?
873 :
864 :2005/10/23(日) 12:33:36 ID:iS3QNop0
864です。ちなみに5時間待った後に「まだ3分の1しかコピーが終わっていないから明日の朝まで使わないよう」いわれ、結局翌昼までかかりました。物理的な故障ではなく、プログラマーが何かやらかしたのではと疑っていて、知識を得て真相が知りたいのです。
>>873 無理。
障害発生させたってことで謝罪と賠償請求しる。
875 :
864 :2005/10/23(日) 12:43:39 ID:???
>>866 、868RAID
ですか。調べてみます。
参考になるかわかりませんが、実際は再起動後まったく使えなかったわけではないみたいで、もしコピー中にまた壊れたら大変だからと言われました。
ログ残るようなレベルじゃないし、何故壊れたか知るのは無理だろ?
>>873 作り始めて1年半といっていたが、引渡し前なのか後なのかどっちだ?
引渡し後なら修理代金はそっち持ちだろう?もしハード保守に入っていて無料だったとしても
サービスが修理レポート書いてくれているはずだからそれで確認。
引渡し前なら、仮に本当に相手のプログラマが何かポカをやらかしたとしても、先方がそれを
否定しているならそれ以上突っ込むことはできんだろうな。まぁ検収確認をきっちりやることだ。
それからな、真相が知りたいなら率直に聞いてみなよ。「原因は何が考えられるか?再発の
可能性はどのくらいか?再発防止のためにはどのような対策をすべきか?」って。
どんな運用すればハードディスクごと壊せるんだろう?
879 :
864 :2005/10/23(日) 13:27:41 ID:???
障害発生時に原因を聞いたら「物だからありえる」、復旧後に原因今後の対策また起こる可能性を聞いたら昨日言ったとおりといわれました。そこが不安なんです。再発がこわくて。
880 :
864 :2005/10/23(日) 13:33:10 ID:???
>>877 いざできあがったら、排他制御はないわ、検索機能があまりにシンプルで使えないわで今にいたるんです。打ち合わせはなんどもしたのですがまさかそんなこともできないとは思わず。もちろん反省はしてます。付き合いが長いからと信頼しすぎてました。
881 :
864 :2005/10/23(日) 13:37:53 ID:???
>>877 というわけで使用はしてますが引き渡しというか完成はしてません。再度原因を報告するよう言ってるのでまた明日詳しい原因を書き込みます。
つーか、DB初めてな業者なんじゃないか? 求めるクオリティに達してないんだったら支払い渋って改善要求すりゃいいじゃん。
>>880 えーとねぇ、あなたがしなくちゃならないのはDBの勉強じゃないし、今回の障害の
真相を探ることでもないよ。
物だから壊れることはある、次にいつ壊れるかはわからない、ってのはある意味
正論だから、それ以上開発会社に突っ込むことはできないだろう。ただ、買ったばかりで
壊れたのなら、「またすぐに壊れたらディスク以外の問題の可能性もあるから本体ごと
交換しろ」とメーカーに釘を刺しておくことは必要だろう。
それから「再発が怖い」のは、今回のように障害が発生した場合に15時間も停止する
ことになることが問題だからだよな?だとしたら、そのことについて何か対策がとれないか
開発会社に相談してみるべき。
いろいろ開発会社に対して不信感を持っているようだけど、相手のあら捜しをしようという
態度じゃあまり良い結果にはならないよ。例えば排他制御にしても、それがないことで
どのように困るのかをキチンと説明して対策を相談する。先方はそれまで聞いた要件
からは排他制御の必要性を読み取れなかったんだろうけども、ちゃんと説明して理解
してもらえばなんらかの案は示してくれるだろう。
それでも「もう納品したから変更はきかない」という態度ならマネジメントに上げるしかないが。
それから、排他制御とか検索機能の話が後になって出てきたところを見ると、自分の
やりたいこと、しなければならないことを整理して人に説明するというところがきちんと
できてないよな?それが今回のシステム構築にも現れているんだと思うぞ。
ここで一度立ち止まって、今自分がしなければならないことを整理してみそ。
>>883 休日に長文書いて諭してあげるなんて、お前良い奴だな。
逃げずにリカバリやってくれてるだけまともな会社と思いましょう。
これからも適当な仕事で搾取し続けたいんだったら保守くらいするさ
>>880 まずオラクルDBじゃないんですか?
日本企業の殆どがオラクルを利用していると
思いますが。
データが破損した時にミラーリングによってデータ
が修復される事をクラスタ構成といいます。
これは一般的だとは思いますが。
そんなに簡単にサーバーが壊れるということはないと
思います。むしろ人的に不正処理をした為、データが
破損してしまったのではないですか?
既存の DBMS じゃなくて、 プレーンテキストだとか独自のバイナリ形式だったりして。
MDBだったり……
ソフト上から物理的にディスク壊れる原因判ったら教えれよ 嫌な仕事の時に(ry
>>864 運用設計が心配です。
今回、障害復旧に設計上の値より大幅に時間がかかったならば
耐障害性に関する設計を徹底的に見直したほうが良いと思います。
あと、障害復旧試験を保守担当者たくさんにやってもらって、
本番運用後に備えたほうが良いと思います。
付き合い長いところでも、仕様はちゃんと決めて設計書にしないと
まずいでしょ。発注側の責任も問われてしまうのでは。
892 :
NAME IS NULL :2005/10/24(月) 13:40:45 ID:mLTZtxah
自分は素人なんですが会社用の雇用者データベースを作りたいと思っています。 そこでリレーショナルデータベースシステムのソースコードが載っているURLを どこか紹介してください。お願いします。m(__)m
893 :
892 :2005/10/24(月) 14:00:26 ID:???
言語はJavaかC++でお願いします。 勉強を兼ねているので一から作りたいんです。
894 :
NAME IS NULL :2005/10/24(月) 14:03:17 ID:0XuOzzwW
group name 1 yamada 1 yoshida 1 tanaka 上記のようなデータがあります。 これを group name 1 yamada,yoshida,tanaka のように取得したいのですが、どのようにすればよいでしょうか。
>>894 前も同じ質問あったな。それはSQLではできない。DBにアクセスするプログラム側でやるもんだ。
892は雇用者データベースを作ることとリレーショナルデータベースを作ることの意味の違いから まず勉強した方がいいな。いまのままじゃやばすぎる。
898 :
864 :2005/10/24(月) 21:42:49 ID:???
皆さん色々ありがとうございます。 ご指摘、おっしゃるとおりです。 今後もそことは付き合っていくつもりなので、 今回の件を教訓にします。 弱音を吐かせていただけるのでしたら、 ・・・疲れました・・・。時間かかってる だけあって、こちらでも欲しい機能説明や 検証や、設定確認の時、抜けがないか 頭と神経つかいますし。あ、お互い様ですね。 最後に、 【原因】は RAIDユニットのハードディスクに問題が起きかけていることが判明 今回のサーバトラブルはRAIDユニット(RAID1)の 1つのハードディスクが故障したため、再起動により 問題が発生していないディスクから読み込んで 運用を再開していただきました。 【対処】 その後、問題が発生したディスクを新品に交換して リビルド(コピー)も完了しております。 今後もハードウェア障害に対してはデータセンタ運用の 利便性を活かして保守要員のスタンバイ体制、交換部品の ストックなど迅速に対応できるようサポートいたします。 だそうです。
仕事とはいえ素人相手にすんのも大変だな
仕事でもなきゃ素人相手にする機会無いな
901 :
NAME IS NULL :2005/10/24(月) 23:01:40 ID:dy5HVbp/
どなたか教えてください。 MysqlCCはいまではダウンロードできないのでしょうか? なんどいってもMysqlADMINのページなっちゃう… なんか間違ってるのかな。
>>901 MySQL CCはもう開発停止になってその代わりにMySQL Administratorが作られたんじゃなかったっけ。
>>894 DBがOracle8iEEか9i以上で、グループ内の人数の最大がそれほど多くないなら
こんな感じ。(グループ内の最大人数=5と仮定, カラム名groupはgrpにした)
SELECT
grp,
MAX(DECODE(seq, 1, name)) || NVL2(MAX(DECODE(seq, 2, name)), ',', '') ||
MAX(DECODE(seq, 2, name)) || NVL2(MAX(DECODE(seq, 3, name)), ',', '') ||
MAX(DECODE(seq, 3, name)) || NVL2(MAX(DECODE(seq, 4, name)), ',', '') ||
MAX(DECODE(seq, 4, name)) || NVL2(MAX(DECODE(seq, 5, name)), ',', '') ||
MAX(DECODE(seq, 5, name)) AS members
FROM
(
SELECT grp, ROW_NUMBER() OVER (PARTITION BY grp ORDER BY name) AS seq, name
FROM tbl
)
GROUP BY grp
グループ内での、出席番号みたいなカラム(なかったのでrow_number()で生成した)が
あれば、ほかの鯖でもできると思う。
cursor使え
■スカラー副問い合わせ (Oracle9i 以降) ・最近の Oracle は何でもありです。 このスカラー副問い合わせは、広く応用できて非常に便利です。 尚、フィールドなど単一行の結果を戻す必要のある問い合わせを 単一行副問い合わせと呼ぶ。 (単1行副問い合わせ、単一行問い合わせ、単1行問い合わせ) 何でもありですに吹いた
固定長と可変長のメリットとデメリットを教えてください。
907 :
NAME IS NULL :2005/10/25(火) 14:59:43 ID:qbW+Z5wM
ER図の領域分割について質問です。 関連比を付け終えて、分割を行うとしているのですが 多対多が多いため、1つの領域に1つの関連または 実体しか入っていません。 これは設計の仕方が悪いからでしょうか? 1対多、1対1を多くして領域の数を減らした方がの 望ましいと聞いた記憶があるのですが…
908 :
NAME IS NULL :2005/10/26(水) 09:17:18 ID:RBVlsyll
ホームページを作りたいんだけど、無料/広告なし/FTP可のサーバーありませんかね?
スレ違い
いや板違いだ
911 :
NAME IS NULL :2005/10/26(水) 15:59:41 ID:amz5aLZz
913 :
NAME IS NULL :2005/10/26(水) 18:49:07 ID:Rxzk71Yi
SQLで 表の特定行を数値(エクセルのセル番号みたいな) で指定してUPDATEする するにはどうすればいいのでしょう。 SELECTならLIMITで取り出せるようですが・・・
SET〜 WHEREは?
915 :
913 :2005/10/26(水) 19:26:39 ID:???
パターンパッチした行ではなくて 上から何番目というふうに直接指定したいのですが・・・ ちなみにMySQLです。
まずその「特定行」をどうやって特定するかを考えないとな。
SQLに上から何番目なんて概念はないよ。 ORDER BY とかで指定しなきゃ順不同だ。
918 :
913 :2005/10/26(水) 19:39:56 ID:???
>SQLに上から何番目なんて概念はないよ。 うーん、そうなんですか・・・ それはそれでめんどくさいですね。
昇順に番号振ったフィールドを追加すればどうだ
920 :
NAME IS NULL :2005/10/27(木) 10:00:23 ID:6Ft8KKgB
質問させてください。現在 Fedora Core 上で MySQL を使用して、 UTF-8 でコーディングされているテキストフィールドを検索してアクセスしたいと思っているのですが、 確かに検索にヒットする行があるはずなのにヒットせずに困っています。 該当文字が入っているフィールドをtitleとすると、 select * from cur WHERE title = "なんたら" と検索をかけているんですが、対象の文字列によって予想する結果が返ってきたりそうでなかったりします。 例えば「こんごう級護衛艦」「はるな」「みょうこう」といった文字列では検索結果が返って来ず、 「劣化ウラン弾」といった文字列では期待する結果を得ることが出来ました。 どなたかご助言をお願いします。
922 :
NAME IS NULL :2005/10/29(土) 22:30:35 ID:Qbf5DQl0
無謀と思うかもしれないけど、未経験でIT関連の世界に入っていくのは無理でしょうか? いま、30歳です。
人による
924 :
NAME IS NULL :2005/10/29(土) 22:53:41 ID:Qbf5DQl0
そうですか、経理関係やろうと思っていたのですが、アクセス使っているうちにDBやってみたいと思いました。
30で満足給料新人じゃもらえる業界じゃないぞ・・・と
mdb内のテーブルの情報を見せたくない場合って 起動時にデータベースウィンドウを見せない設定にするだけだと思ってたんですが 結局、このmdb自体を外部のmdbからテーブルリンク張ってしまえば簡単に覗けちゃいますよね。。 一体どーすれば完全ガードできるのでしょう。。?
マルチ乙 782 名前:NAME IS NULL[] 投稿日:2005/10/30(日) 18:22:57 ID:L7BuJkMv mdb内のテーブルの情報を見せたくない場合って 起動時にデータベースウィンドウを見せない設定にするだけだと思ってたんですが 結局、このmdb自体を外部のmdbからテーブルリンク張ってしまえば簡単に覗けちゃいますよね。。 一体どーすれば完全ガードできるのでしょう。。?
928 :
NAME IS NULL :2005/10/30(日) 21:29:27 ID:sK1jOXZT
隠しオブジェクトにして非表示にしとけw
在庫管理を作っています。 そこで質問なんですが・・・ たとえば、4月のデータを月次更新したあとに 4月のデータを入力したりするのってどうなんでしょうか?
月次更新って何だ? 集計とかはテーブルにデータ持たないのが基本だと思うが。 後から昔のデータ追加修正あるなら尚更。
931 :
NAME IS NULL :2005/11/01(火) 20:03:56 ID:OR9KVHlN
WindowsXPSP2とWindows2000のPCにOracle10gCLIENT(管理者用)をインストール しましたが、XPSP2のPCのみサーバーのOracle10gに接続出来ません。 解決方法知っている方、教えて!
933 :
NAME IS NULL :2005/11/05(土) 12:51:43 ID:BcM35RBG
>>922 余裕です。
IT関連企業にも、営業、サポート、検査、経理部門があります。
しかし、中規模以上の企業になると、技術系以外は中途採用に消極的な感じがします。
934 :
NAME IS NULL :2005/11/05(土) 19:01:32 ID:DQvC5iUD
Access97 dlookupで、ヘルプの使用例にて =DLookup("[商品名]", "商品", "[商品コード] =" & Forms![受注明細]![商品コード]) この場合、[商品コード]がどうも数値型のようです。 では[商品コード]がテキスト型の場合、上の式はどーなる? " や ' や & などの使い方がどーもわかりましぇん
>>935 それはスレ立てるまでもない質問だけど、該当スレがある質問だな。
937 :
NAME IS NULL :2005/11/05(土) 23:08:56 ID:urZZ/Ba6
エクセルVBAでMYSQLと接続する方法を教えてください。 ODBCドライバ使えばできるらしいのですが、 私が持ってるVBAの本にはまるでかかれてません。
>937 もう二度とマルチをしないと約束するのなら 教えてあげてもいいお。
939 :
NAME IS NULL :2005/11/06(日) 01:03:07 ID:Hk0sfG9z
漫画に関するデータベースを作ってるんですが デスノみたいに作・画で著者が二人いる場合のことも考えて book_id, book_title 本テーブル 1, デスノート 2, カイジ author_id, author_name 著者テーブル 1, 大場 2, 小畑 3, 福本 みたいにしてるんですが、この二つをどうやって繋いだらいいでしょうか?
>>939 基礎が全く出来ていないようなのでどっかの解説サイト一通り見てきた方が良いと思う
模範解答は↓
book_id, author_id, author_name 著者テーブル
1, 1, 大場
1, 2, 小畑
2, 3, 福本
>>940 それも考えたんですけど
そうなると
book_id, book_title 本テーブル
1, デスノート
2, カイジ
3, アカギ
ってなったときに
book_id, author_id, author_name 著者テーブル
1, 1, 大場
1, 2, 小畑
2, 3, 福本
3, 4, 福本
みたいになるのが嫌な感じだったので
アカギは読んだことないので分からないが、↓にしたら? book_id, book_title 本テーブル 1, デスノート 2, カイジ 3, 黒沢 author_id, author_name 著者テーブル 1, 大場 2, 小畑 3, 福本 book_id, author_id 1, 1 1, 2 2, 3 3, 3
>>942 book_id, author_id
1, 1
1, 2
2, 3
3, 3
は良い感じなんですけどテーブル名が悩む
俺も悩んだから書かなかった
945 :
NAME IS NULL :2005/11/06(日) 11:32:18 ID:9mjF+X2M
独学でSQLを勉強する際に使えるような、フリーのサンプルデータのようなものはありますか? 数値はスクリプト書いて生成できますが、名前はちと面倒なもので。 あと、性別コードや国名コードはJIS規格で定められていますが、 テーブルやカラムの命名のガイドラインなどありますでしょうか?
946 :
NAME IS NULL :2005/11/06(日) 18:27:07 ID:tE+ucvzZ
採番テーブルって作ったほうが良いのでしょうか? いまは SELECT MAX(番号) FROM テーブル で取得して、これ+1 で採番してるんですが、 マルチユーザーで操作してるとちょっと問題 でそうな気がしてます。 でもすべてのテーブル数だけカラムを設けるのも面倒・・・ みなさんはどうしてますか?
947 :
NAME IS NULL :2005/11/06(日) 21:16:15 ID:LSpGJ9kE
SELECT A,B,C FROM TABLE WHERE C = '1' ORDER BY A SELECT A,B,C FROM TABLE WHERE C = '2' ORDER BY A この二つの結果をUNIONでつなげようとした場合 どうすればいいのでしょうか? ORDER BY がなければUNIONが使えるのですが ORDER BYがある事でどうしてもエラーになってしまいます 教えてください
>>946 巨大なテーブルだったり採番体系が変わらなければいいんじゃない?
採番テーブルのイメージは常に1レコード??
>>947 UNIONした後にORDER BYする
>>946 普通DBMSが持ってる自動採番機能を使うだろ
番号が飛んだらダメというなら使えないけどな。
>>946 俺もユーザが少ないときは同じやり方で採番テーブル使ってる。
マルチユーザの時はこのやり方悩むよな。SELECT FOR UPDATEでロックしてしまうとパフォーマンス心配だし。
シーケンス・オブジェクトは使いづらいし。
いい方法求む。
952 :
MySQL初心者 :2005/11/06(日) 22:38:32 ID:HK0rewxS
if($ken<>''){ } {}内が飛ばされるのはなんで? <> とか '' の意味がわかりません
953 :
939 :2005/11/06(日) 22:51:53 ID:Hk0sfG9z
>>942 の感じでやったんですが
book_id, book_title, author_name
1, デスノート, 大場
1, デスノート, 小畑
2, カイジ, 福本
3, 黒沢, 福本
これでbook_idが同じデスノートの著者を
1, デスノート, 大場/小畑
2, カイジ, 福本
3, 黒沢, 福本
みたいにするのはphpのほうでやるしかないですか?
MySQL4.0なんですけど
954 :
947 :2005/11/06(日) 22:54:47 ID:LSpGJ9kE
>>949 SELECT A,B,C FROM TABLE WHERE C = '1' ORDER BY A
SELECT A,B,C FROM TABLE WHERE C = '2' ORDER BY B
ごめんなさい間違えてました
947の例だと
SELECT A,B,C FROM TABLE WHERE C = '2' ORDER BY A,B
だけでOKなはずですし
>>951 シーケンスが使いづらいなんて言っている香具師がパフォーマンス心配すんなよ。
958 :
NAME IS NULL :2005/11/07(月) 21:18:57 ID:0rK2vedd
>>948 1レコードですね。
>>951 ユーザー少ないときこそ採番テーブルですか?
採番してしまえば採番テーブルのロックははずせると
思うので、ユーザー数の影響はあまりないかなと考えていましたが。
SELECT MAX(番号) FROM TABLE
を使うと、最大番号のレコードを削除したときに
削除したものと同じ番号のレコードが採番されてしまう
って問題があるんですよね。欠番にできない。
>>958 まさか物削ですか?
採番テーブルは、少なくとも対象テーブルへのインサート
のトランザクションを絡めないと、番号が飛ぶ可能性があるので、
でかいテーブルの場合、採番単位を分割して複数レコード構成に
してみたり。
素直にシーケンス使えばぁ? なんか使えない理由でもあるの?
データベースのデの字もわかってない初心者です。 データベースを使用するブログ(MobableTypeなど)スクリプトをFTPでサーバに 設置。数件日記を書いて動作を検証してみた。という仮定。 そのブログを消したくなった。 そのスクリプトやらインストール作業やらで生成されたファイルを FTP操作で消してしまいました。 データベースにゴミみたいのは残るのでしょうか。
テーブルがその消したものの中にあれば消えている。無ければ残っている。としか答えられない。
物理削除のこと「物削」て略すの普通なの? おれ初めて聞いた。少し考えたよ。 8iの頃、Oracleのシーケンスってセッション終わるとカレント値が初期値に戻らなかったっけ? 今は9iしか触れないからうろ覚えなんだけど。(9iはもちろんそんなこと起こらない)
すみません SQL文は通常大文字を用いて記述すると思うんですが、その時キーボードは shift押しっぱなしで入力するものですか? 小指はshiftに付きっきりになってしまいますがそういうもんなんでしょうか?
>>964 そんなあなたのために入力補完機能つきのエディタがある。
Emacs系か、さもなければ秀丸のマクロでもできたかな。
>SQL文は通常大文字を用いて記述すると思うんですが え、マジで? しらんかった
>966 見やすさだね。 好き嫌いのレベルだお。 おいらは、めんどいから小文字派w >964 その昔、アクセルみたいなのを足で操作して shift 状態にする商品があったらしい。 雑誌で読んだんだけど、使いづらいと感想が書かれていた。 どんなもんか、ちょっと使ってみたいw
969 :
968 :2005/11/09(水) 01:37:23 ID:???
>966 あっ、列名やテーブルも含めて全部大文字ってことはしないね。 SELECT hoge FROM t
SQLServer2000 データベースの破損個所が無いかを調べるコマンド又は、方法等はありますか? SQLSeverが立ち上がっているときに、電源を強制的に落とされてしまいましたので、 どこか壊れいる個所が無いかを調べたいと思っています。
971 :
NAME IS NULL :2005/11/09(水) 19:15:43 ID:fbUyFBiv
SQLserver2000で、複合キーに指定できる列の制限値は16個ですが、 これをオーバーさせる、もしくは代替できる方法ってありませんか? おながいします。
>971 16を超えるってすごいですね。 差し障りがない程度で説明きぼんぬ。
>>970 DBCC CHECKDB
>>971 絞込みや並び替えだけに複合キーが必要ならユニークにする必要はなく
分布が偏ってないものをいくつか選んで非ユニークな索引にすればよい。
主キーとしてそれだけの数の複合キーが必要だとすると明らかな設計ミス。
例えば売上伝票のキーとして「年月日+支店+顧客分類+顧客+連番+削除フラグ」
などを複合キーで主キーにしてないだろうか。
本来は単一の伝票番号を付けて主キーとすべき。
974 :
NAME IS NULL :2005/11/10(木) 14:16:42 ID:a+b8wfzT
>>972 >>973 システムうんぬんの大きさが問題ではなくて、
正規化されてないんです、そのテーブル。
動的に収集項目を作りたいらしく、テーブルを動的に作ればいいのに、
それをしないで、あらかじめ、255列のテーブルを一つ作って、
情報Aを格納する場合は、255列のうちの1列目5列目30列目に、
情報Bを格納する場合は、255列のうちの2列目6列目31列目に
それぞれの詳細情報を格納という、なんのためにDB使ってるのかわからん仕様なのです。
それはオカシイって突っ込みたいんですが、そういう立場でもないので、困っとります。
976 :
970 :2005/11/10(木) 14:40:07 ID:???
977 :
NAME IS NULL :2005/11/10(木) 14:57:07 ID:7dODXa2q
>>974 チェック制約か表明でできると思うが
そのプロジェクトから逃げたほうがいいだろう
>>974 そういう用途なら索引は不要な気もするが、ところで主キー代わりの行番号くらい付いているんですか?
物理順に入ってるとか言われそうで怖い。
>>978 SERIALって列があるからそれなのかな・・・。
でも主キーに設定されてないし。ただの列なんですよね。
列数大杉だし、もう意味分からんです。
ちなみに上司に複合キーの上限16列ってこと説明したら、
んじゃ何列か削って16列で抑えて。って言われました。
大丈夫かな・・・orz
>>979 ついでに「正規化」しても良いですか?って聞いてみれば良いじゃない
>>979 キーが見当たらないから全フィールドに複合キーというのはおよそ最悪の選択。
つけないほうがまだまし。
それは本来はシーケンシャルに書き出すログファイルのようなものじゃないのかな。
982 :
NAME IS NULL :2005/11/10(木) 19:45:07 ID:h+BrqFEo
>974 >それはオカシイって突っ込みたいんですが、そういう立場でもないので、困っとります。 ちょっwwwwwおまwwww 上司に16列が限界なんて報告する前に、テーブル別けたほうが良いですよって報告しろよw まわりで DB のこと判ってるのいなそうだから、正に君が「そういう立場」なんじゃねーのwwww 情報Aテーブル 情報Bテーブル 情報Cテーブル ・・・・ データ欲しいときに寄せ集めれば大丈夫ですよとwwww 説明するとき、決して「正規化」だの「結合」なんて言葉使っちゃだめだお。 といいつつも、相当にヤバイ現場であり、君の微妙な立場も想像できています。 進展があったら続報きぼんぬ。
ああ・・・そのテーブルの作り方は、素人にありがちだよ。 おれも昔、顧客がが直々に作ったというテーブルレイアウト見たら、そういう「非正規化モデル」だった。 もちろん、完全に無視したけど、強制的にそれ使えって言われたらきついよな・・・同情するよ。 テーブル設計って、その後のプロジェクトの運営を左右する重要な工程なのに、何かぱっとみ簡単で、よく知らなくても手を出せてしまいそうな危険な部分なんだよなあ。
顧客の作ったテーブルなんて使えないよね、普通。 顧客の要望を良く聞くのが一番。 案外簡単に解決方法が見つかるよ。 982の言ってるように接するのがベストと思われます。
985 :
974 :
2005/11/11(金) 15:16:42 ID:??? 多数の意見ありがとうございます。 どういう理由でこういう構成になったのか分かりませんが (当時の工数的な問題??)、 もう後戻りできないところまで来てるのかも・・・。 現在はVIEWを使って擬似的に正規化してるようです。 本当はもっと詳しく書きたいところなんですが、 この辺で・・・。 炎上したら報告しますw ありがとうございました。