豚吐露@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









