PostgreSQL Tutorialをやる
普段は MySQL を使っているのだけど、PostgreSQL を触ることになったので学んだことをメモしておく。
下記のチュートリアルがクオリティ高めでよかった。
To constrain the number of rows returned by a query, you often use the LIMIT clause. The LIMIT clause is widely used by many relational database management systems such as MySQL, H2, and HSQLDB. However, the LIMIT clause is not a SQL-standard.
MySQL などで多くサポートされている「limit」句は SQL 標準ではないらしい。知らなかった…。
SQL 標準としての「fetch」句というものも Postgre にはサポートされているらしい。他のデータベースとのコンパチを考えるなら fetch を使うべきである、とのこと。
あんまり真面目に SQL をやったことがなかったから単に知らなかっただけだけど、self-join なるものがあるらしい。
例のように同一テーブル内に部下-上司の関係をもつテーブルに対してかけることができる。ただ、SQLアンチパターンで見たパターンではありそう。
natural-join もやはり知らなかった。2つのテーブルがあったと仮定して、同じカラム名の箇所を自動で認識して自動で結合してくれるらしい。注意点としては inner join using などと違って完全に自動でやってしまうので、意図しない結合が起きる可能性があることっぽい。ID required していると使えない join かもしれない。
psql
の使い方がいまいちわからなかったけど、このリストを読めば結構わかるぞ。片手にやりたい。