お久しぶりです。shintaniです。 今回はSQLの設計書について書いてみます。 とはいっても「正しいSQLの設計書」などとおこがましいことを言うつもりはありません。 「今までより多少マシなSQLの設計書」という程度に捉えて下さい。 このような帳票があるとします。 これに対して、下記のような詳細設計書(SQL設計書)を書いているプロジェクトが結構あるかと思います これでは殆どSQL自体を書いているのと変わりません。 テーブル同士の繋がりや絞り込み条件も分かり辛いです。 これに対し、下記は私が以前関わったプロジェクトで作ったSQL設計書です。 (そこでは ”データ取得図” と呼んでいました) これはE-R図とは異なるものです。 あくまでSQLの結合方法や条件設定などを記述したものです。 この形式のSQL設計書には以下のようなメリットがあります。 ----------------------
以下のような消費税率マスタテーブルがあるとします。 TAXRATE_TBL —————————————————————————————– TAXRATE STARTDATE ENDDATE (NUMBER) (DATE) (DATE) —————————————————————————————– 0.03 1989/04/01 1997/03/31 0.05 1997/04/01 2014/03/31 0.08 2014/04/01 2100/12/31 ※データベースはOracle ※STARTDATEとENDDATEには、時分秒は入れない 上記のテーブルから現在日付に沿ったTAXRATEを取得する場合に、以下のようなSQLを書きました。 【SQL例】 SELECT TA
Oracleでは「(+)」を用いて外部結合することができるが、 外部側のテーブルに結合条件以外の検索条件がある場合、 その条件にも「(+)」を付与するかしないかで結果が異なることがあるので注意が必要。 サンプルテーブル テーブルA col1 col2
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
参考:NULL と DECODE 関数(CASE 式)について、 NVL 関数(NULL を別に値に変換する) NULL のソート ORDER BY NULLS 〜 Oracle 8.1.6 以上であれば、NULL の並べ替えのために NVL,MIN 関数を使う必要がなくなっている。 NULL はデフォルトの昇順ソートでは最後、降順ソートでは最初に並び替えられる。(≒無限大) ORDER BY のオプション指定により、その並び順を変更することができる。 NULLS FIRST NULL 値を順序の最初にするソートを行なう NULLS LAST NULL 値を順序の最後にするソートを行なう 例) ORDER BY ORDER_NO ASC NULLS FIRST 参考: SELECT 文の活用(ORDER BY) NULL の基本的な振る舞い 算術演算 と NULL NULL を含む算術式は
久しぶりに Oracle にテーブルを作ろうと create table文を実行したところ、「ORA-00907: 右カッコがありません。」 と怒られてしまいました・・・orz ちなみに実行したのはこのようなSQLです。 CREATE TABLE USER( USER_ID NUMBER(13) NOT NULL, USER_NAME VARCHAR(20) NOT NULL DEFAULT '', CREATE_DATE DATE NOT NULL DEFAULT SYSDATE ) とりあえず目を皿のようにして SQL文を舐めるように見直したのですが、何度数えなおしてもカッコの数は合ってます。あるえ? とはいえ、受け付けてくれないのでは先に勧めないので、Webで検索してみたところ、なんとこのメッセージ、右カッコが無い場合以外でも出るみたいじゃないですか! 例えば、 DEFAULT句が
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く