20100717tobesetu

38
はじめての オラクル FROM dualってなに~ つかだ あきひろ@akitsukada

Upload: akitsukada

Post on 07-Nov-2014

1.168 views

Category:

Technology


0 download

Tags:

DESCRIPTION

2010/07/17に日本オラクル青山センターで開催された【とべとべ】勉強会夏祭り2010【電設部】 http://atnd.org/events/6067 での発表スライド

TRANSCRIPT

Page 1: 20100717tobesetu

はじめてのオラクル

~FROM dualってなに~

つかだ あきひろ@akitsukada

Page 2: 20100717tobesetu

2アジェンダ

♨自己紹介

♨概要

♨オラクル全体像編

♨導入編

♨小ネタ編

Page 3: 20100717tobesetu

3自己紹介

♨つかだ あきひろ

♨トゥイラー @akitsukada♨ブログ “b6note”

http://bit.ly/akitsukada♨電設部IT勉強会

♨SetucoCMS♨コマンドなんでも読書会

Page 4: 20100717tobesetu

4自己紹介

♨しごと

SIerの新人

OracleDB, DB2, Sybase♨SetucoCMS

オープンソースCMS MySQL, PostgreSQL

Page 5: 20100717tobesetu

5概要

♨Oracle Databaseの俺解釈

Oracle Master対策ではない

多分に私的解釈を含む

♨対象者

初心者

他DBMS経験

&& OracleDB未経験者

Page 6: 20100717tobesetu

6オラクル全体像編

全体を♨ながめて

みる

Page 7: 20100717tobesetu

7全体像編

♨オラクルサーバ(ソフトウェア的に)

インスタンス

☺1サーバに複数インスタンス

データベース

☺1インスタンス1データベース

Page 8: 20100717tobesetu

8全体像編

データベースデータベース

オラクルデータベース

オラクルインスタンス

オラクルインスタンス

♨ 「データベース」が二種類

♨ サーバに1インスタンスで運用も多い

Page 9: 20100717tobesetu

9全体像編

インスタンス

データベース

インスタンス

データベース

♨ イメージ的にとらえる

Page 10: 20100717tobesetu

10全体像編

オラクルデータベース

♨ さらに

イメージ的にとらえてみる

♨ いわゆる「データベース」 に「テーブル」 がたくさん入っている感じ

Page 11: 20100717tobesetu

11全体像編 cf. MySQL♨ 「データベース」

がいくつもある感じ

♨ use database名で簡単に切り替えられる

♨ いいよね、MySQL

MySQL

Page 12: 20100717tobesetu

12全体像編まとめ

♨オラクルサーバ(ソフトウェア的に)

インスタンス

☺1サーバに複数インスタンス

データベース

☺1インスタンス1データベース

1サーバに1インスタンス(new!)

それが俺のジャスティス

Page 13: 20100717tobesetu

13導入編

♨自分のPCにオラクル入れよう

いじりたおせ

でも、お高いんでしょう?

各プラットフォームでのXE導入

XEでも十分いける

Page 14: 20100717tobesetu

14いじりたおせ

♨習得する一番の近道、不可欠

資格勉強にも実践を

♨壊しても誰も怒らない

インストール作業でまた

スキルアップ

♨でも、書籍もいいよ

小田先生ぱねぇ

Page 15: 20100717tobesetu

15でも、お高いんでしょう?

♨それが今回はなんと無料で!

30日試用版

☺あくまでも試用版

☺製品版と同じ

XE(eXpress Edition)

☺使い放題!

☺商用利用までできます

Page 16: 20100717tobesetu

16OracleDatabase 10gR2 XE♨製品版と同じコードを使いビルド

♨軽量

その分容量などの制限あり

♨Windows、Linuxで利用可

♨Western EuropeanとUniversal日本語使うならUniversalで

Page 17: 20100717tobesetu

17各プラットフォームでのXE導入

♨OTN(Oracle Technology Network)でDL可能

♨Windowsインストーラで一発

♨Linux[ Debian、Mandriva、Novell、Red Hat Ubuntuで利用可能](2010/7/17現在)

Rpmとdebが配布されている

Debian系ならapt-getでも

Page 18: 20100717tobesetu

18XEでも十分いける

♨制限事項

ユーザデータは上限4GBインスタンスはマシンに1つだけ

使うCPUは1つだけ

使うメモリは1GBまで

Enterprise Managerはない

Page 19: 20100717tobesetu

19導入編まとめ

♨自分のPCにオラクル入れよう

いじりたおせ

でも、お高いんでしょう?

各プラットフォームでのXE導入

XEでも十分いける

♨ねむい

Page 20: 20100717tobesetu

20小ネタ編

♨Oracleの文法、方言

これはどう書く?

(主にMySQLと比較して)

Page 21: 20100717tobesetu

21小ネタ編

♨limit句SELECT hoge FROM fuga

LIMIT 1, 30;♨Oracleでは・・・

Page 22: 20100717tobesetu

22小ネタ編

♨ROWNUM擬似列

SELECT結果に行番号を付与

♨SELECT ROWNUM FROM hogehogeテーブルの行数分だけ

連番を取得できる

Page 23: 20100717tobesetu

23小ネタ編

♨limit句SELECT hoge FROM fuga

LIMIT 1, 30;♨Oracleでは・・・

SELECT hoge FROM fugaWHERE ROWNUM <= 30;

Page 24: 20100717tobesetu

24小ネタ編

♨IFNULL関数

SELECT IFNULL(hoge, 0)FROM fuga;

♨Oracleでは・・・

Page 25: 20100717tobesetu

25小ネタ編

♨IFNULL関数

SELECT IFNULL(hoge, 0)FROM fuga;

♨Oracleでは・・・

SELECT NVL(hoge, 0)FROM fuga;

Page 26: 20100717tobesetu

26小ネタ編

♨NVL関数

第一引数がNULLであれば第二引数に置き換える

♨でも、IFNULLもNVLも標準SQLではないので注意

Page 27: 20100717tobesetu

27小ネタ編

♨FROM句めんどいです><ついでにnow関数

SELECT now();♨Oracleでは・・・

Page 28: 20100717tobesetu

28小ネタ編

♨FROM句めんどいです><ついでにnow関数

SELECT now();♨Oracleでは・・・

SELECT sysdateFROM dual;

Page 29: 20100717tobesetu

29小ネタ編

♨dual表OracleではFROM句は省略不可

代わりにdual表が使える

♨sysdateシステム日付を取得する

systimestampもあるよ!

Page 30: 20100717tobesetu

30小ネタ編

♨NVL関数

第一引数がNULLであれば第二引数に置き換える

♨でも、IFNULLもNVLも標準SQLではないので注意

Page 31: 20100717tobesetu

31小ネタ編

♨改行コード('\r\n')SELECT '全\r\n裸';

♨Oracleでは・・・

Page 32: 20100717tobesetu

32小ネタ編

♨改行コード('\r\n')SELECT '全\r\n裸';

♨Oracleでは・・・

SELECT '全' || CHR(13) || CHR(10) || '裸'FROM dual;

Page 33: 20100717tobesetu

33小ネタ編

♨CHR関数

コードに対応するASCII文字を返す

♨逆(文字⇒コード値)はASCII関数

Page 34: 20100717tobesetu

34小ネタ編

♨日付書式の指定

SELECT date_format (now(),'%Y%m%d%H%i%s'

);♨Oracleでは・・・

Page 35: 20100717tobesetu

35小ネタ編

♨日付書式の指定

♨Oracleでは・・・

SELECT TO_CHAR(sysdate,'yyyymmddhh24miss'

) FROM dual;

Page 36: 20100717tobesetu

36小ネタ編

♨TO_CHAR関数

数値や日付を書式指定しつつ文字列に変換する

♨数値を変換する例

SELECT TO_CHAR(1, '000')FROM dual;⇒文字列「001」が得られる

Page 37: 20100717tobesetu

37小ネタ編まとめ

♨Oracleの文法、方言

これはどう書く?

(主にMySQLと比較して)

♨この資料をUpしとくのでよかったら見て下さい。http://bit.ly/tobesetu10akitsukada

Page 38: 20100717tobesetu

ありがとうございました。

つかだ あきひろ@akitsukada