SQL学び直し9
第六章:関数、術後、CASE式
6-1:いろいろな関数
- 関数は数が多いので代表的なものだけ覚える、他は使う時にリファレンスを見るようにする
- COUNT、SUM、AVGなども関数の一つ(集約関数)
- 文字列を結合する関数はパイプ、カラム1 || カラム2 from…という感じになる、3つでもいける
- EXTRACTで日付の要素を切り出すことが出来る、切り出した後は日付型ではなく数値型になる
- こんな使い方
SELECT CURRENT_TIMESTAMP, EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year, EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month, EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day, EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour, EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute, EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;
- nullを値に変換する際はCOALESCE関数を使う
SQL学び直し8
第五章:複雑な問い合わせ
5-2:サブクエリ
- サブクエリとは使い捨てのビュー
- select ... from (select文を書く) as ビュー名、このビューは保存されない
- fromの中のselect文が実行された後、外側のselect文が実行される
- select ... from (asの後の)ビュー名となる
- サブクエリの中にサブクエリを作って入れ子にすることも可能、内側のサブクエリから実行される
- スカラ・サブクエリとは、戻り値が単一の値(単一行)になるサブクエリのこと
- whereの=や<>の条件などと一緒に使用する
- スカラ・サブクエリはwhere句以外の場所でも利用できる
- スカラ・サブクエリが複数行を返すと、それはスカラ・サブクエリではなくただのサブクエリである
5-3:相関サブクエリ
- 相関サブクエリは小分けにしたグループ内での比較をする時に使う
- 相関サブクエリの結合条件はサブクエリの中に書かないとエラーになる
- 結合条件はサブクエリの中に記述する
今日はここまで。
SQL学び直し7
第四章:データの更新
第五章:複雑な問い合わせ
5-1:ビュー
- ビューを"作る際"order byは使えない、ビューを更新はできなくないが制限がある
- ビューとテーブルはSELECTするだけであれば特に気にする必要が無い
- テーブルはデータを保存・保持している、ビューはデータを保存・保持していない代わりにSELECT文を保持している
- ビューは参照される度にSELECT文を実行し、一時的に仮想のテーブルを作成する
- ビューの実行順序はビューに保持されたSELECT文が実行され、その後にFROMにビューを指定したSELECT文の内容が実行される
- ビューを元にビューを作る、多段ビューも作成できるが、なるべくやらない。パフォーマンスが低下する。
- postgres9.3だけど参考
今日はここまで。
SQL学び直し6
第四章:データの更新
4-2:データの削除(DELETE文の使い方)
- DELETE文は行を削除、TRUNCATE文はテーブル全行を削除
- `DELTE FROM テーブル名`よりも`TRUNCATE テーブル名`の方が処理が高速である
4-3:データの更新(UPDATE文の使い方)
- UPDATE文を使えば、制約に引っかからない場合はNULLへ更新することも可能
- `UPDATE テーブル名 SET 更新内容1,更新内容2...`とすることで、複数列の更新も可能、カンマで区切る
- `UPDATE テーブル名 SET (更新列名1,更新列名2)=(更新データ1,更新データ2)...`とすることで、複数列の更新も可能、カンマと括弧使う
やっぱりUSキーボードよりJISキーボードの方が使いやすい。
慣れの問題もあるんだろうけど、使い慣れたモノを使うのが一番だと思う。
自宅の環境としては、
という無駄に変な環境なので、次期iMacが出たらiMacと液晶1台にして、WinはParalellsとかでまとめたいなぁ。
って夢をメモしておきます。
今日はここまで。
SQL学び直し2
第三章:集約と並べ替え
3-1:テーブルを集約して検索する
3-2:テーブルをグループに切り分ける
- group byとcountの組み合わせで分類ごとの行数(NULL含)が集計できる
- from (where) group byという並びにしないといけない
- NULLもグルーピングされる
- group byを使う時はグルーピングするカラム、集約関数、定数以外はselect句に入れられない
- group byを使う時はgroup by句に別名(as〜)は使えない(出来たとしても標準外なのでよくない)
- group byは結果をソートしない、ランダムに出力する
- whereの条件に集約関数(count、sum他)は使えない
今日はここまで。
SQL学び直し
改めて基礎からSQLを勉強し直そうと思ったので、土曜日にKindleでこの本を買ってみた。
今の所2章まで終わった感じ。
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2013/08/28
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
USキーボードとJISキーボードを行ったり来たりしていると使いづらい
第二章:検索の基本
2-3:論理演算子
- ANDは両辺が成り立つときに成立、ORは両辺の片方または両辺の検索条件が成り立てば成立
- SQLの論理演算は真・偽・不明(Unknown)の3種類がある
- NOT
- ANDとORと()
- where 条件A AND 条件B の条件Aと条件Bが成り立つものを返す
- where 条件A OR 条件B の条件Aまたは条件Bまたは条件AとB両方が成り立つものを返す
- 必要に応じて()を使用して条件の優先度を組み合わせる {where 条件A AND (条件B OR 条件C)}
- ANDはORより先に優先される、ORを優先したい場合は()を使う、条件Bまたは条件Cを満たしてかつ条件Aを満たすものが返される
- 真理表も参照
二週間が経ちました
転職してから二週間が経ちました。
とても忙しく、やることもたくさんあり、学ぶこともたくさんありという状況が続いています。
日々思うのは、過去にやっていたこと、やったことの何かしらの経験が活きているということ。
どちらかというと、いわゆるWEB開発エンジニア的な仕事はほとんどしてこなくて運用系や業務や管理系の仕事が多かったのですが、それはそれで今に役立っています。
かつて2年ばかり今とは全く異なる分野で営業をしていたことがあるのですが、やはりそれもなんだかんだで今の仕事に活きています。
結局の所、経験が活きるかどうかというより、過去の経験を意識的に今の仕事にスライド出来るかどうかが重要なのかなと思います。
その都度その都度、できることは全力で頑張って、どうしようもないと思ったら(腐ってしまう前に)環境を変えるべく転職活動をしていたのですが、その都度自分なりにでも全力で頑張ってきたからこそかなと最近考えることが多いです。
ただ今の環境においては、自分に足りないものが結構多いので、それを早く埋められるように、補強できるように頑張っています。
引き続き、やれることをやれる範囲+アルファで頑張りたい。
個人的にこれおすすめです
PENDENTIF - "Embrasse Moi" (official video) - YouTube