豚吐露@wiki
Database
最終更新:
ohden
-
view
Database
◆SQL Server
Microsoft
Microsoft
DBのパフォーマンスについて詳しい
http://www.oracle.com/technetwork/jp/database/articles/tsushima/
http://www.oracle.com/technetwork/jp/database/articles/tsushima/
SQL
SQL
├ DLL テーブル操作
└ DML レコード操作
├ DLL テーブル操作
└ DML レコード操作
◆結合について
結合はfrom句内で『join』によって行う方法とwhere句内で『=』によって行う方法とある。
結合はfrom句内で『join』によって行う方法とwhere句内で『=』によって行う方法とある。
from | where | |
内部結合 | t1 inner join t2 on (t1.id = t2.id) t1 join t2 on (t1.id = t2.id) |
t1.id = t2.id |
外部結合 | t1 left outer join t2 on (t1.id = t2.id) t1 left join t2 on (t1.id = t2.id) |
t1.id = t2.id(+) |
t1 right outer join t2 on (t1.id = t2.id) t1 right join t2 on (t1.id = t2.id) |
t1.id(+) = t2.id |
※inner joinのinner、left/right outer joinのouterは省略可能
両方とも書き方が違うだけで、得られる効果は一緒。DBが明確に性能差を示していない限り性能も変わらないハズ。
where句内で指定する方がシンプルで分かりやすい。joinの方は長く書かなきゃいけんし、使いたくないわ。と思ってしまう。
where句内で指定する方がシンプルで分かりやすい。joinの方は長く書かなきゃいけんし、使いたくないわ。と思ってしまう。
じゃ、なんでコレ同じ機能に2つの方法を用意してるかというと、結合条件と選択条件を明確に区別させるためらしい。
選択条件が複雑でたくさんあるようなsql文の場合、結合条件も選択条件もwhere句内に書いてしまうと何が結合条件で、何が選択条件か分からんくなってしまう。
で、そんな時はjoinを使って結合条件をfrom句の方へ逃がしてやると良い感じ。
まぁ、where句の方で明確に区別付くようにしてあったら、join使う必要も無い気がするが...
選択条件が複雑でたくさんあるようなsql文の場合、結合条件も選択条件もwhere句内に書いてしまうと何が結合条件で、何が選択条件か分からんくなってしまう。
で、そんな時はjoinを使って結合条件をfrom句の方へ逃がしてやると良い感じ。
まぁ、where句の方で明確に区別付くようにしてあったら、join使う必要も無い気がするが...
tips
- 任意のカラム(文字列)に文字列を付与したい
- UPDATE
- entry
- SET
- name = concat('PREFIX: ', name)
- WHERE
- name NOT LIKE 'PREFIX: %'
-
PostgreSQLとMySQLの比較 ちと古いですが...
http://thinkit.co.jp/free/article/0603/10/1/
http://thinkit.co.jp/free/article/0603/10/1/
更新日: 2022年12月09日 (金) 09時41分11秒
- "IS DISTINCT FROM" -- (s1n) 2024-04-15 15:07:56
- 3値論理 -- (s1n) 2024-04-15 15:08:30