PostgreSQL_2
higeponさんMiyagawaさんがリツイートしてくれた :)
ということで。みなさん、Rebuild FM 聞きましょう。
ツイートlikeしてもらえると嬉しい~
Todays topic is also PostgreSQL
データ検索のSQL文-グループ処理
グループ化した行の検索
..表の行をグループ化して、グループ化した結果を検索する。
SELECT文 GROUP BY句
..select pref from customer group by pref;
SELECT文 GROUP BY 句とグループ関数
..select pref, count(*) from customer group by pref; //各県の顧客数を得る
GROUP BY とグループ関数使用例
..select job, count(job), sum(salary), max(salary) form people group by job order by sum(salary) desc;
グループ化と検索条件 HAVING句
..select job from people group by job having sum(salary)>250;
group byで抽出したグループに対して、検索条件をつけることができる、その場合
には、where句は使用できない。(group by のあとにつかう)
グループ化と where 句
..select job, count(*) from people where salary > 150 group by job;
group化する前にwhere句をつけるといいよん。
データ検索のSQL文-高度な検索
複数の表を使用した検索
二つの表の検索結果をつなぐことができます
表の結合の種類表の内部結合
表の結合には複数の方法がある
表の内部結合
・2つの表に対応する行がある場合のみ、結合結果を表示する
・対応:左のFKに対応する主キー
表の外部結合ー左結合
・左側の表のすべての行に右側の表の行を対応づける
・右表で対応する行がない場合は、nullで表示される
・対応:左のFKに対応する右の主キー
表の外部結合ー右結合
・右の表の(以下同文)
・(同文)
・対応:右の主キーに対する左の FK
表の外部結合ー完全
・全てのレコードが表示される
・相手表に対応する行がない場合は、nullで表現される。
・対応:一方のFKと対応側の主キー
表の自己結合
・検索のために、表自身と結合する場合もある。
表の結合SQL構文
.. 基本構文
表の結合SQL文例ー内部結合
表の結合SQL文連ー左外部結合
表の結合SQL文例ー右外部結合
副問い合わせ
・先に検索しておいた結果を利用して、次の検索を行うことが必要な場合がある。先に行った検索を“副問い合わせ”と
Select * from people where salary = (select max(salary) from people);
主問い合わせ 副問い合わせ
副問い合わせ検索列ー複数行問い合わせ1
・複数行条件
・副問い合わせの結果中のいずれかと一致する行の検索
データ更新とトランザクション
データの更新
データ更新のSQL
INSERT 文
表にレコード(行)を追加する
UPDATE文
表の一部を変更する
DELETE文
表からレコード(行)を削除する
INSERT文ー
.. insert into people values(111,’北条’ ,CURRENT_DATE,3.2);
.. insert into 生徒表(番号、誕生日、名前)VALUES(3,’1998-06-03’ ,’北条’);
UPDATE文ー
..UPDATE people set job= ‘営業’ where code=1000;
基本データ型
DELETE文ー基本構造
..DELETE FROM 表名 where 条件式;
..Delete from people where code=1000;
副問い合わせの利用
..update people set loc=(selec. Code. From store where. Locatin=‘品川’)
Where loc = (select ecode form store where locatiion=‘横浜’);
表の結合(MERGE)
INSERT INTO bank1 SELECT acct, name, deposit from bank2;
INSERT INTO bank1 (cname, sum) SELECT name, deposit FROM bank2 WHERE acct > 700;
・トランザクション管理
ー1つの作業を完了するために、連続して行う必要がある表操作
ー途中で中断すると、データの一貫性を損なう
・トランザクション処理
一連のすべての操作を終わった状態で表の操作を確定する
ー途中で中断した場合は、すべて元に戻す
トランザクション管理を無効にした表の更新操作
トランザクション管理を有効にした表の更新操作
・コミット
ートランザクションの表の更新操作を確定することができる
ートランザクションの表の更新操作をキャンセルすることができる
トランザクションの単位
・コミットやロールバックの対象となる一連の操作
・commit文やrollback文の実行によりトランザクションが終了
¥set AUTOCOMMIT on
¥echo :AUTOCOMMIT on
START TRANSACTION;
COMMIT文
・COMMITを実行すると、トランザクションが確定する
・コミットされたデータは元にもどらない
ROLLBACK文
・ROLLBACKを実行すると、トランザクションを無効にする
・COMMITされていないデータは変更されない
SAVEPOINTとROLLBACK文
・SAVEPOINT文により、ロールバックする場所を指定できる。
..SAVEPOINT セーブポイント名
・データベースのデータは複数のユーザやプログラムが使用する。
・複数のユーザが同時に、表のデータを更新する場合の制御が必要
ロック機能
・他のユーザが表の操作をできない状態にする
・ロックをかけている単位は製品による
最後に、講師の先生から「どこまでできていて、どこまで出来ていないか。」を先輩に報告することが大切だというお話をしてもらいました。自分がどこまで学習していて、なにが分かっていないか。少し恥ずかしい面もありますが、ちゃんと表出させていかないといけませんね。
Listening song..