- 締切済み
SQL(Oracle)の学習について
これからSQLを学習する人(初心者)にとって最も学習しなければならない重要な部分について、課題を作成する上で考えているのですが、実務で重要な学習はどういった部分になるのでしょうか? 私自身、実務経験がありませんのでいまいち実務で使われるSQL文というのが分からないので、経験のある方のご意見をいただけると幸いです。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- choconamacream
- ベストアンサー率44% (152/338)
サーバ管理者としての経験は全くないので、あくまでソフト開発の観点から回答しておきます。 >一応SELECT文による必要なデータの参照などを課題として考えているのですが、そのほかALTER TABLE~. CREATE TABLE~.なども必要では無いか・・・と考えています。 >権限やプロシージャも知っておくに越したことは無いのですが、初心者が学ぶには難しいかな…と感じてます。 目安としてはやはり「Bronze SQL基礎I」ですね。きちんと勉強していれば短期間で必ず合格出来ますので、可能でしたら受験の方もお薦めします。 認定制度 Bronze SQL基礎I http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&p_org_id=70&lang=JA&p_exam_id=1Z0_017J 上記試験の出題範囲とは別に、実務経験のない方々には是非とも以下の事柄もお薦めします。 ・実際に、自分の開発環境にフリーのRDBMS(MySQLやPostgreSQLなど。)をインストールする。 ・データベースやテーブルを一つでもいいから、自分で一から作成してみる。 ・データ量がごく僅かでもいいから(ほんの2、3行でもいい。)、INSERTやSELECT,UPDATE,DELETEなどを実行してみる。 なぜ、上記の事柄が重要かというと、実際に質問者さんが開発の現場に入った時には、もう既に先輩の方々が効率的にDB設計などをされていまして、テーブルの作成などもスクリプトファイル(sqlファイルなど。)を使ってまとめて一気に実行、ということになります。ただ、それだとDBサーバ内でデータがどのように処理されているのかとかが、なかなか掴めないように思います。(それに、いきなり新人さんなどに対して、お客様のデータとも密接に繋がりのあるテーブルの定義とかを任されることは、まず有り得ないと思いますので。) データの量に関しては、本当にごく僅かでもいいですので、実際に自分でいろいろと試してみることです。自宅の環境下では、もし間違ってデータベースやテーブルなどを削除してしまったとしても、また同じように作成し直せばいいわけであって、誰にも迷惑は掛けないですよね。 DMLの高度なテクニックに関しても、始めのうちはそんなに肩肘張らなくてもいいと思います。実際の開発現場では試験とは違いますので、以下のようなリファレンスブックを一冊用意しておき、分らなくなった時ごとにいろいろと調べながら(ここの過去ログとか・・)進めていく、といった感じですね。 SQLハンドブック 第2版 http://www.sbcr.jp/books/products/detail.asp?sku=4797326611 ポケットリファレンス シリーズ 改訂新版 SQL ポケットリファレンス http://www.gihyo.co.jp/books/syoseki.php/4-7741-1755-2
- joih
- ベストアンサー率35% (37/105)
基本的な SELECT や テーブル結合を習得するだけでなく、 実務でぶつかる課題は何か、というご質問と捉えていいでしょうか? それであれば、こんなのはどうでしょうか。 (1)LEFT JOIN などの外部結合を使用して表示する (さまざまなシチュエーションで使います) テーブルA A 1 B 2 テーブルB A aaaaaaaa C cccccccc ↓ A left join B なら A 1 aaaaaaaa B 2 (NULL) A right join B なら A 1 aaaaaaaa C (NULL) cccccccc (2)縦に並んだレコードを横方向に並べ替える (一覧表を作るときに使います) A 20070801 1 A 20070802 2 A 20070803 3 ↓ A 1 2 3 (3)キーが2つ以上あるレコードにキーがブレークするごとに順序番号を振る。 (画面表示でページ制御をするとき、小計行を作るときに使います) A a 1 A b 2 A c 3 B a 1 B c 2 C a 1 ※難しければ、上位n件の抽出でもokです。 (4)union と union all の違い (5)having句の使い方 こんなところでしょうか。
- kokorone
- ベストアンサー率38% (417/1093)
最初は、何でもいいから、SQLを作成・実行することです。 でも、実務でといったら・・・ 実は、先日まで、社員全員の、ある情報を検索するSQLを作成したの ですが、データ量が膨大であったため、実行時間が10分ほど掛かって いました。あまりに遅くて、システム全体のレスポンスに影響があった ため、SQLを見直したところ、1分以内まで実行時間を短縮すること ができました。 正しい結果を得ることは当然なのですが、実行時間も大切です。 集計関数、サブクエリーなど、覚えることはたくさんあります。
お礼
回答ありがとうございます。 一応SELECT文による必要なデータの参照などを課題として考えているのですが、そのほかALTER TABLE~. CREATE TABLE~.なども必要では無いか・・・と考えています。 権限やプロシージャも知っておくに越したことは無いのですが、初心者が学ぶには難しいかな…と感じてます。