2020-04-01から1ヶ月間の記事一覧
timestamp型を日付まででいいんだよ!!ってとおきに使う関数です。 TRUNC (日付) こんな感じ SELECT TRUNC (SYSDATE) FROM DUAL; 理屈は抜きで!!
曜日関数のMySQL版 date_format(time,"%w") こんな感じ SELECT date_format(current_date,"%w"); 値と曜日はこちら oracle、Postgreと違うので注意! 0 日曜日 1 月曜日 2 火曜日 3 水曜日 4 木曜日 5 金曜日 6 土曜日 理屈は抜きで!
曜日関数のPostgreSQL版 まあ、oracleと同じなんですが to_char(日付,'D') こんな感じ SELECT TO_CHAR(NOW(),'D'); 値と曜日はこちら 1 日曜日 2 月曜日 3 火曜日 4 水曜日 5 木曜日 6 金曜日 7 土曜日 理屈は抜きで!
これの違いってなんでしょう?実は同じでした! NOW()がCURRENT_TIMESTAMPのシノニムみたいです。 理屈は抜きで!
ちょっと前にも書いたかもですが、 曜日について書いていこうかとoracleではこう! TO_CHAR(日付,'D') こんな感じ SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; 値と曜日はこちら 1 日曜日 2 月曜日 3 火曜日 4 水曜日 5 木曜日 6 金曜日 7 土曜日 理屈は抜きで!
日付計算するときって、たまにふと忘れるんですよね。 MySQLで1日プラスするときはDATE_ADDを使います。 明日の日付はこんな感じ。MySQL版 SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY); 理屈は抜きで!!
日付計算するときって、たまにふと忘れるんですよね。 PostgreSQLで1日プラスするときも'+1'ですね。 明日の日付はこんな感じ。PostgreSQL版 SELECT NOW() + 1; 理屈は抜きで!!
日付計算するときって、たまにふと忘れるんですよね。 Oracleで1日プラスするときは'+1'ですね。 明日の日付はこんな感じ。Oralce版 SELECT SYSDATE + 1 FROM DUAL; 理屈は抜きで!!
意外とシステム日付をとること多いとおもうので、取り方を ※というか、自分が忘れがちなので。。。 MySQLならこう SELECT CURDATE();SELECT CURRENT_DATE();SELECT CURRENT_DATE; 結果は全部同じです。 理屈は抜きで!!
意外とシステム日付をとること多いとおもうので、取り方を ※というか、自分が忘れがちなので。。。 PostgreSQLならこう SELECT NOW(); 理屈は抜きで!!
意外とシステム日付をとること多いとおもうので、取り方を ※というか、自分が忘れがちなので。。。 Oracleならこう SELECT SYSDATE FROM DUAL; 理屈は抜きで!!
order by 句とかで 数字を指定すると、カラムの何番目でソート とかしてくれるんですが これは読み替えが発生するので、NG カラム名を指定しましょう! 理屈は抜きで!
Oracleだけかもしれないですが、隠れたカラムでROWIDというものが存在します。 SELECTでカラム指定するだけで抜けます。 そのROWIDをwhere句に指定すると死ぬほど早いので、 是非! 理屈は抜きで!
エイリアスをつけると解析速度が上がるって知ってましたか? なるべくエイリアスをつけるようにしましょうね 理屈は抜きで!
HAVINGってたまに使いますが、 かなり重いんでなるべく使わないようにしたほうがいいですね。 理屈は抜きで!
*って使うと遅くなるんで、 select文を書くときには、*を使わないようにしましょう! 理屈は抜きで!
バインド変数を使うとパフォーマンスは上がります。 oracleでしか使ったことないんですが。 こんな感じ select * from テーブル名 where 検索カラム名 = :バインド変数; 理屈は抜きで!
左辺を関数使っているとINDEXが使えないので注意! 意外とSPLITとかつかうんですが、うまいこと逆転させましょう。 理屈は抜きで!
likeを使うときに、 後方一致とか中間一致を使ってしまうこと。 INDEX使えなくなるので注意ですね 理屈は抜きで!!
nullを条件にするのと同じで、 not in とか、!=もINDEXが使えないなうので注意! exstsを駆使しましょう! 理屈は抜きで!
INDEXを使えない問題です。 nullを条件に使ってるとINDEXを使えないです。 前回書いたかな? is nullとか これは、nvlとかcoalesceで対応できそうですね。 理屈は抜きで!
INDEXを使えない問題です。 or が入っていても、INDEXを使えないので注意 とはいえ使うときはあるんですがね。 理屈は抜きで!
INDEXを使えなくなることって結構あるんです。 in句を使うと実はINDEXを使えないんです。 理屈は抜きで!
もう本当にどうしようもない時は、スペックを上げるのがいいです。正直チューニングを仕事にしている人からすると、負けた感じがしますが、 本当にどうしようもない時や、時間がない時に一時的にスペックを上げるのはよいことかと 安易に上げるのではなく、…
結構キャッシュが効くから早いという話を聞きますが、そのキャッシュっていうのは全く同じSQL文でないと効かないことがあります。 全く同じというのは、大文字小文字や、半角全角や、半角スペースの数とか、改行の数とかです。 つまり、この下の二つはキャッ…
SQL小手先の技 リレーション確認(MySQL) テーブルのリレーション確認のMySQL版こんな感じ SELECT * FROM information_schema.columns; PostgreSQLと同じですね 理屈は抜きで!!
テーブルのリレーション確認のPostgreSQL版こんな感じ SELECT * FROM information_schema.columns; テーブル名で絞込すれば云々はoracleと同じ 理屈は抜きで!!