- 締切済み
新人の頃皆さんどうやってSQL勉強しました?
職場で沢山仕様書を読んで沢山のSQL文を作成するしか方法ないのでしょうか 私の職場はプログラムの修正が多いため新規に仕様書からSQL文を 考える機会が少なく、今あるSQL文に項目を追加するというパターンが おおいです。そのため、複雑な仕様のSQL文を経験する機会が少ないです。 しかも、仕様書を作らずメモ書きや口頭でのプログラム作成が多いため 仕様書がなかったり古かったりで既存のコードからのSQL文の勉強 が難しいです。 皆さんは新人時代どのようにSQL文をマスターしましたか? 独学方法等を教えてください
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
基本的に本で独学でした。 当時主に参考にしたのは ・標準SQLガイド(C.J.DATE アスキー) ・SQL92/99標準リファレンスブック(マーチン・グルーバー ピアソン・エデュケーション ・プログラマのためのSQL(ジョー・セルコ) SQL92・99準拠 ・SQLパズル ・Oracle8i&UNIXパフォーマンスチューニング ・ORACLEハイパフォーマンスチューニングSQL編 ・ORACLE9i ハイパフォーマンスチューニング―STATSPACK編(廃版) ・データベースパフォーマンスアップの教科書 基本原理編 あたりでしょうか。「SQLパズル」は「SQLでこんなことができるのか」と驚かせてくれましたが、一方で「何でも無理にSQLで処理するのは避ける」きっかけになりました。 パフォーマンス・チューニングは学ぶと奥が深いですね。OSやストレージ、ネットワークの総合的な知識が求められます。 今は開発ライセンスでOracleを自分のPCにインストールして試せますし、GUIで実行計画が見られるSQL Server の Express版もあります。 実際にSQLを結構簡単に試せるので本を読みながらSQLとその実行計画を確認したりすることをお勧めします。
- nda23
- ベストアンサー率54% (777/1415)
私も同様の経験からSQLをマスターしました。 途中で気付いたことは「論理を組み立てる」 ということです。同業者のなかには力づくで モノにした人もいますが、こういう人達は経験 のある所はできますが、未知の分野になると 知っている範囲からしか解決できないので、 強引な手法を採りがちです。 データベースの設計から、目的の情報を抽出 するための理論と順序を紙に書くことを進め ます。稀に理論が破綻することがあります。 これはデータベースの設計と要求された条件に 齟齬がある場合です。 いずれにしても「論理の組み立て」は重要です。 SQLの意味は「問合せを組み立てる言語」です。 簡単なものを組み上げて複雑な解を得るのは プログラムの基本でもあります。
- aenvgielle
- ベストアンサー率14% (128/893)
SQL文は集合をあらわす言語なので、SQL文をみて集合をイメージする訓練がいいのではないでしょうか。 その集合を他にどんなSQLで現せるか、色々なパターンを考えてみたり、それらがパフォーマンス的にどう違うのかをテストしてみたり、ここにインデックスがあったら効率がよさそうだとか、テーブル構造がこうだったらもっとシンプルになるのにとか、いろんなパターンを考えられると思います。
- IDii24
- ベストアンサー率24% (1597/6506)
SQLというのはすごーく簡単な構文しか無いじゃないですか? 簡単な英語さえ知ってれば覚える必要はありません。そういう風に出来てるのだから。覚えるより調べ方を知る事でしょうね。 SQLで大事なのは構文の効率を考える事。SQLの内部処理を理屈で理解しないと、恐ろしい構文を作る人が居ます。「SELECT * 」を頻繁に使うなど。SQLの命令文はプログラムの塊だという事をちゃんと知りましょう。 そもそもSQLとはデーターベースそのものを管理するデバイス一体の言語だという事。DBAの知識が無いと構文なんか書けても何も意味有りません。 ファンクションにするか、ストアドにするかトリガーにしてルールにするか。DBAとして理解してください。 それとトランザクションをどこで区切るか、ロールバックをしていいのかしないのか。全てはDBの性質、ハードのキャパに結びついているわけですから、本来は業務から入る必要があるわけで、そういう意味でIT屋よりも業務が解る人が簡単に覚えられるように出来ているという事です。 >皆さんは新人時代どのようにSQL文をマスターしましたか? まず昔はSQL自体がIBM製品だけでありそこで覚えちゃいました。でもIBMのハードはOSにDB組み込みなので効率を考えなくてもある程度出来てしまった。 本当に理屈で知ったのはオープンなシステムから。サイベースのSQLSERVERですが、マイクロソフトにライセンスを売る前のSQLSERVERです。UNIXですね。マイクロソフトにライセンスを売ってからはPCでも動くようになり、個人でも使えるようになったので実験しやすくなります。その頃はMSも解説書をだしてましたから。とにかく今よりPCもひ弱だし、すぐDBが壊れるのでおかげでハードに負担なSQL文と言うのを理解できました。 http://www.shoeisha.com/mag/dbm/ 今ならこんな雑誌で全然問題ないと思いますけど。