豚吐露@wiki

Database

最終更新:

ohden

- view
管理者のみ編集可

Database


MySQL

SQLite


SQL Server
Microsoft


DBのパフォーマンスについて詳しい
http://www.oracle.com/technetwork/jp/database/articles/tsushima/

SQL
SQL
├ DLL テーブル操作
└ DML レコード操作

◆結合について
結合は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の方は長く書かなきゃいけんし、使いたくないわ。と思ってしまう。

じゃ、なんでコレ同じ機能に2つの方法を用意してるかというと、結合条件と選択条件を明確に区別させるためらしい。
選択条件が複雑でたくさんあるようなsql文の場合、結合条件も選択条件もwhere句内に書いてしまうと何が結合条件で、何が選択条件か分からんくなってしまう。
で、そんな時はjoinを使って結合条件をfrom句の方へ逃がしてやると良い感じ。
まぁ、where句の方で明確に区別付くようにしてあったら、join使う必要も無い気がするが...

tips
  • 任意のカラム(文字列)に文字列を付与したい
  1. UPDATE
  2. entry
  3. SET
  4. name = concat('PREFIX: ', name)
  5. WHERE
  6. name NOT LIKE 'PREFIX: %'
  7.  


PostgreSQLとMySQLの比較 ちと古いですが...
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
名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー