CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL
例のかーネギメロン大学の講座。第二回は主にsqlが中心。 集約、文字列処理、時刻処理、サブクエリ、Window関数、CTE、再帰CTEなど。
シーケル
SystemR というIBMの試作DBに初めて実装された Structured English Query Language→SEQUELが元になっている。 権利の問題上さらに短くSQLに落ち着いた。私はSQLをシーケルと発音しないし、私の身の回りでも聞いたことがない。andy pavloは「シーケル」と発音してる。まぁ自転車置き場の議論の範疇だし、どっちでもいいと思う。
bag
SQLはsetに基づくrelational algebraではなく bag algebraに基づいている。
- list:orderあり、重複あり
- set:orderなし、重複なし
- bag:orderなし、重複あり
MySQL PostgreSQL SQLiiteの中で一番普及しているのはSQLite
組み込み用途などで強く、10億代のマシンにデプロイされている。
SELECT ~ FROMの間にINTOが書ける
初めて知りました。
- 挙動
INTO <TABLE>
に記載した<TABLE>
を作成- SELECT句の結果をinsertする
select 'test' into test; select * from test;
from区を書くことも出来る。
今までは以下のようなシンタックスで同じようなことをやっていました。
create table test as ( select 'test' )
SQL is not a dead language.
で締めくくられていました。
宿題
一応全部ときましたが、どこにも回答がない(泣) 結構難しかったので力試しがしたい人にはおすすめです。