こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL作成ソフト(また、データベース)について

他の質問で、CSVファイルをExcelで直接開いてしまうと最大行数を超えてしまうため、VBAでできないか質問したところメモリ不足や遅くなってしまうため、SQLでやれば簡単だと回答をいただきました。
内容としては、あるミリ秒単位の時系列と数値があるCSVファイルをダイアログで開き、編集の際、1分間隔にし、その1分の間の「1分間隔の年月日と時刻」、「最初の数値」、「最大値」、「最小値」、「最後の数値」、「1分間のデータの個数」を1行とし、若干アレンジし、ダイアログで開き、自動的にテキストファイル及びファイル名が作成され、保存するというものでした。

そこで、無料(無期限)を前提として質問があります。

SQLを作成するソフトというのでしょうか、そのようなもので、
・CSVファイルをダイアログで開けるもの(保存先を特定していないため)
・できる限りポータブル版
・保存する場合も、開くときと同様にダイアログで開けるもの

もし、データベースソフトが必要ならSQLと同様の条件で、そのようなおススメのソフトはあるでしょうか?

また、他の質問では記載していなかったのですが、日本時間ではないため日本時間に直し、2006年までは4月第1日曜日2:00から10月最終日曜日2:00の期間は、月曜日の6:00から土曜日の6:00、それ以外の期間は月曜日の7:00から土曜日の7:00以外のデータを取り除く。
2007年からは3月第2日曜日2:00から11月第1日曜日2:00の期間は、2006年までの場合と同様に月曜日から土曜日の不要なデータを取り除き、西暦に関係なく1月1日のデータは取り除く、ということを考えています。

SQLやデータベースに関して詳しくないため、おかしなことを言っている部分があるかもしれませんが、回答よろしくお願いします。

投稿日時 - 2016-10-11 20:20:05

QNo.9241395

困ってます

質問者が選んだベストアンサー

【補足】2、3日で書けるプログラムなので・・・

 質問者が欲しているプログラムは、多分、2、3日で書けると思いますよ。打ち合わせ、プログラミング、テストの全工程は10日もあれば十分かと思います。

 内容としてはEXCELやAccessの固有機能を排除した純粋なVBAだけでのプログラミングになるかと。であれば、知り合いのVisaul Basicを書ける知人に頼まれたらどうでしょう。多分、A4で2ページは越さないと長さかと思います。

投稿日時 - 2016-10-12 23:06:27

お礼

回答ありがとうございます。

プログラムを作るのにそんなに時間がかからないんですか。
他の質問でVBAで作る方法を質問したときには、VBAではメモリ不足になったり遅くなると聞いて、SQL+C#などのプログラム言語がよいと聞いたのですが・・・。

ただ、自分なりに考えてちょっといい方法を思いついたのでそれを試したいと思います。

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

投稿日時 - 2016-10-13 19:51:44

ANo.5

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

>>正直プログラム自体苦手なんですが、C#はプログラムの中でもかなり難しいんですね。

ええ、C#はオブジェクト指向が流行したあとに出てきた後発の言語です。
しかも、オブジェクト指向だけでは、ソフト開発の効率が大幅にアップできないことが分かりました。
そのため、C#は、オブジェクト指向をベースにしながらも、さらにメタ・プログラミングや関数型言など、さまざまなプログラミング思想を導入しています。

このあたりのプログラミング思想が理解できない開発者、例えばCOBOLプログラマとか、Windowsやっていても、VB6止まりのプログラマだと、C#のコードを視ても全く理解不能だと思います。

ただし、それらのことが理解できていると、C#でCSVやデータベースの処理するのは、極めてお手軽です。

これは、日本からアメリカに移動するのに、ジェット機の操縦免許があれば、とても楽だけど、その操縦免許を取得するのが大変だというのに似ている気がします。

ちなみに最近の仕事では、C#でCSVがらみでデータベースを使うことが多いです。
C#向けのCSVHelperとかFileHelperのパッケージがNuGetから導入可能ですが、これらのCSVサポートパッケージを使うと、本当に楽々でプログラムが作れます。

他チームのプロジェクト会議で、CSV開発やデータベース処理について「前回は、開発に時間がかかってしまった。」なんて声が聞こえてくることがあります。
「C#を使えば、楽ちんですよ」と言いたいこともあります。
が、その方たちは、C#使いではないので、何も言いませんけどね。

>>もう少し簡単に早くできるものがないか考えてみます。

私の場合は、大量のデータ処理(CSVを含む)だけと単純な処理、一回限りの使い捨て処理などを行なう場合、Perlを使っています。
インタプリタですので、コンパイルも不要。DBも不要。
走らせながら、エラーが出たらその都度修正してやればいいって感じです。

投稿日時 - 2016-10-12 23:29:06

お礼

回答ありがとうございます。

やはり、C#は難しいんですね。
Perlというプログラム言語ですか。
自分が必要としているのは、プログラムでできたデータで、データベースは必要ないですね。
一回プログラムを作ってしまえば恐らく、当分プログラムを変える必要はないと思います。

ちょっといい方法を思いついたのでそれを試してみようと思います。

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

投稿日時 - 2016-10-13 20:02:39

ANo.4

【完全など素人ですが・・・】

1、データベース(SQL系)は利用すべきではない。
2、ど素人でもチャッチャと1、2週間で済ます方法を選択すべし。

 私事ですが、60歳定年後にJaveプログラミング学科(職業訓練)に通ってMySQLのコマンドラインツールを自作するのに4ヶ月の猛勉強を必要としました。かってはC言語の習得、Accessの習得にも6ヶ月を要しました。CPMからUNIXへ転身してC/Sシステムの設計とプログラミングを一人でやりきった経験を有していてもそんなもんです。データベースやC#の利用を模索するなんて泥棒を捕まえて縄をなうようなもの。ここは、ど素人でもチャッチャと1、2週間で済ますことができる方法を模索すべきかと思いますよ。

投稿日時 - 2016-10-11 22:39:11

お礼

回答ありがとうございます。

SQLにしても他のプログラム言語にしても習得するのにかなり時間がかかるんですね。
作ろうとしているデータは重要なことは重要なんですが、本来の目的はそのデータを作ることではないため、回答者様がおっしゃるように他にもっと簡単で早く済ませられる方法を考えた方がよさそうですね。

参考になりました。
ありがとうございました。

投稿日時 - 2016-10-12 22:42:51

ANo.3

無料がネックですね。
有償でも良ければ、Accessを買って、
(1)テキストのインポート
(2)更新クエリ
(3)テキストへエクスポート
独学でできます。100万行でも動きますよ。

絶対無料なら、MySQLでできるかどうか。

投稿日時 - 2016-10-11 21:20:37

お礼

回答ありがとうございます。

そうですね、無料が前提です。
Accessは聞いたことがあります。

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

投稿日時 - 2016-10-12 22:35:33

ANo.2

直接CSVファイルを読み込んで、プログラムで処理してもいいんですけど、件数が多い場合は、

1)データベースにCSVファイルを取り込む。
2)作成したプログラムでデータベースに取り込んだデータを順番に読み出して必要な処理を行なう。
3)処理が終わったデータをテキストファイル、CSVファイルに書き出す。

こんな感じのプログラムを作成するほうが多いですね。
それは、間違ったデータがあった場合、データベースを使うと修正が楽だからです。

データーべースから読み込んだ後の処理が簡単であれば、SQL言語のみで可能です。
が、複雑な場合は、わりと作成が難しくなって、C#などでプログラムを作るほうがいいですね。

そして、お勧めなプログラム言語はC#ですが、初心者がマスターするのは、わりと(かなり?)大変かもしれません。

ちなみに、データベースで大量データの処理をSQL言語のみでやろうとした方がいました。
試してみると、24時間処理しても終わらないので、「これじゃあ運用にのせられない・・・」ということになりました。
それで、C#で同じような処理を作成したところ40分くらいで処理が終わりました。

もしかしたら、SQL言語でテストしたとき、データベースが変になっていたのかもしれませんが・・・。

投稿日時 - 2016-10-11 20:55:31

お礼

回答ありがとうございます。

最初にCSVファイルを読み込むのではなく、通常は、データベースにCSVファイルを取り込んでから必要なプログラムを走らせるんですね。
他の質問のときにSQLのことを教えてくれた回答者の方もC#がよいと言っていました。
正直プログラム自体苦手なんですが、C#はプログラムの中でもかなり難しいんですね。
即できるものがいいんですが、かなり時間がかかりそうですね。
もう少し簡単に早くできるものがないか考えてみます。

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

投稿日時 - 2016-10-12 22:31:04

ANo.1

SQLというのは、RDBからデータを抽出する際に使う言語の事。
Wikiでは、データ操作や定義もSQLとされていますが、SQLと区別してDMLやDDLと呼ぶ事もあります。
https://ja.wikipedia.org/wiki/SQL

「SQLを作成する」=「SQLを自動生成する」ソフトは存在しますが、貴方がやろうとしている事とは全く異なる物です。

元の質問を見ていないのですが、VBA,CSV,SQLというキーワードから「ADOでCSVの読み込む」というアドバイスを貰ったのではないでしょうか。
http://excel-ubara.com/excelvba5/EXCEL118.html

投稿日時 - 2016-10-11 20:41:56

お礼

回答ありがとうございます。

「ADOでCSVの読み込む」というアドバイスですか。
URLを参考にさせていただきます。

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

投稿日時 - 2016-10-12 22:21:02

あなたにオススメの質問