SQL

Oracleにつないでみましたが・・ コメントが表示されたり、PKが太字になってたり上っ面だけでもいい感じ。 Excelに吐き出す機能が充実してるし、SQLも補完があったりしてすごい!! 山のように機能がある!! CSEから乗り換えかも!!

「>=」&「<=」よりBETWEENを使ったほうが効率的

ということが分かった。 こんなテーブルで20マン件つくって検証。 CREATE TABLE TEST ( START_NO NUMBER(8,0) NOT NULL, END_NO NUMBER(8,0) NOT NULL, NOTE VARCHAR2(20) NOT NULL ) / ALTER TABLE TEST ADD(PRIMARY KEY (START_NO, END_NO) USING INDEX) /…

外部結合のON句の条件

SELECT a.deptno, a.delete_flg, b.ename, b.delete_flg FROM dept a LEFT JOIN emp b ON (a.deptno = b.deptno AND b.delete_flg = 0 AND a.delete_flg = 0)左外部結合で、ON句で左表の条件にリテラルを入れても まったく考慮されないんですなあ。。

WHERE句にリテラルの条件を入れることでクエリをスキップ

オプティマイザはデータベース列ではない定数や変数の比較をまず実行するように、 実行計画を生成する。らしい。 たとえば、こんなSQLがあったとします。 SELECT * FROM A WHERE ・・・ UNION ALL SELECT * FROM A WHERE ・・・ このSQLはこんな内容だったと…

結合インデックスせんりゃく

こんなテーブルがありましたとさ。 CREATE TABLE TBL ( COL1 VARCHAR2(1), COL2 NUMBER(5,0) ) そして、このテーブルを検索するこのSQLを速くしたいと。 SELECT * FROM TBL WHERE col1 = &#39;A&#39; AND col2 BETWEEN 1 AND 333333 TBLのレコード総数は100…

自己外部結合

sql

メモ。MySQL4.1.18 テーブル CREATE TABLE `tbl1` ( `id` int(11) NOT NULL default &#39;0&#39;, `role` varchar(100) NOT NULL default &#39;&#39;, PRIMARY KEY (`id`,`role`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 データ +----+----------+ | id | rol…

LIKE句のエスケープ

DB2でLIKE句の引数で 「%」「%」を使うとこの文字自体で検索できず全件が対象になってしまいます。 さらに「_」が小文字(シングルバイト)すべての一文字にヒット。 「_」が大文字(マルチバイト)すべての一文字にヒット。 これは仕様とのこと(IBM SQL…

きょうのITトレメ

【問題】 「WHERE deptno > ALL (20, 30, 40)」という条件をSELECT文で指定した場合、どの ような行が検索されますか?次の中から、最も適切なものを1つ選択してください。 このSQLを書く意味あるのか?

表から表をつくる

DB2で表から表をつくるとき、ORACLEのようにcreate table test1 as select * from dual とできない。 create table test1 as (select * from dual) definition only のように実行して(表定義だけしかつくれない)、あとからデータを入れる。 create table t…

インラインビュー

DB2でインラインビューを使う場合、インラインビューの名前を[AS〓]でつけないとエラーになる? GROUP BYとかORDER BYを付加したときだけASで名前つけないとエラーになるみたいだ。

文字列変換

OracleとDB2で文字列変換関数の仕様が違うようです。 DB2でDECIMALを文字列変換すると、DOUBLEの文字列が返ってきます。 SMALLINTやINTEGERを文字列変換すると、SMALLINTは6桁、INTEGERは11桁で返ってきます。長さが足りない分はスペースが付きます。managem…

ITトレメ

【問題】 EMP表に設定されているPRIMARY KEY制約(制約名:EMP_PK)があり、FOREIGN KEY制約 (制約名:EMP_FK)によって参照されています。このPRIMARY KEY制約を使用不可にす るためのSQL文について、正しいものを選択してください。【選択肢】 1. ALTER TAB…

Oracle SQL Tuning

Oracle SQL Tuning http://www.atmarkit.co.jp/fdb/rensai/orasql04/orasql04_1.html