20100717tobesetu
DESCRIPTION
2010/07/17に日本オラクル青山センターで開催された【とべとべ】勉強会夏祭り2010【電設部】 http://atnd.org/events/6067 での発表スライドTRANSCRIPT
はじめてのオラクル
~FROM dualってなに~
つかだ あきひろ@akitsukada
2アジェンダ
♨自己紹介
♨概要
♨オラクル全体像編
♨導入編
♨小ネタ編
3自己紹介
♨つかだ あきひろ
♨トゥイラー @akitsukada♨ブログ “b6note”
http://bit.ly/akitsukada♨電設部IT勉強会
♨SetucoCMS♨コマンドなんでも読書会
4自己紹介
♨しごと
SIerの新人
OracleDB, DB2, Sybase♨SetucoCMS
オープンソースCMS MySQL, PostgreSQL
5概要
♨Oracle Databaseの俺解釈
Oracle Master対策ではない
多分に私的解釈を含む
♨対象者
初心者
他DBMS経験
&& OracleDB未経験者
6オラクル全体像編
全体を♨ながめて
みる
7全体像編
♨オラクルサーバ(ソフトウェア的に)
インスタンス
☺1サーバに複数インスタンス
データベース
☺1インスタンス1データベース
8全体像編
データベースデータベース
オラクルデータベース
オラクルインスタンス
オラクルインスタンス
♨ 「データベース」が二種類
♨ サーバに1インスタンスで運用も多い
9全体像編
インスタンス
データベース
インスタンス
データベース
♨ イメージ的にとらえる
10全体像編
オラクルデータベース
♨ さらに
イメージ的にとらえてみる
♨ いわゆる「データベース」 に「テーブル」 がたくさん入っている感じ
11全体像編 cf. MySQL♨ 「データベース」
がいくつもある感じ
♨ use database名で簡単に切り替えられる
♨ いいよね、MySQL
MySQL
12全体像編まとめ
♨オラクルサーバ(ソフトウェア的に)
インスタンス
☺1サーバに複数インスタンス
データベース
☺1インスタンス1データベース
1サーバに1インスタンス(new!)
それが俺のジャスティス
13導入編
♨自分のPCにオラクル入れよう
いじりたおせ
でも、お高いんでしょう?
各プラットフォームでのXE導入
XEでも十分いける
14いじりたおせ
♨習得する一番の近道、不可欠
資格勉強にも実践を
♨壊しても誰も怒らない
インストール作業でまた
スキルアップ
♨でも、書籍もいいよ
小田先生ぱねぇ
15でも、お高いんでしょう?
♨それが今回はなんと無料で!
30日試用版
☺あくまでも試用版
☺製品版と同じ
XE(eXpress Edition)
☺使い放題!
☺商用利用までできます
16OracleDatabase 10gR2 XE♨製品版と同じコードを使いビルド
♨軽量
その分容量などの制限あり
♨Windows、Linuxで利用可
♨Western EuropeanとUniversal日本語使うならUniversalで
17各プラットフォームでのXE導入
♨OTN(Oracle Technology Network)でDL可能
♨Windowsインストーラで一発
♨Linux[ Debian、Mandriva、Novell、Red Hat Ubuntuで利用可能](2010/7/17現在)
Rpmとdebが配布されている
Debian系ならapt-getでも
18XEでも十分いける
♨制限事項
ユーザデータは上限4GBインスタンスはマシンに1つだけ
使うCPUは1つだけ
使うメモリは1GBまで
Enterprise Managerはない
19導入編まとめ
♨自分のPCにオラクル入れよう
いじりたおせ
でも、お高いんでしょう?
各プラットフォームでのXE導入
XEでも十分いける
♨ねむい
20小ネタ編
♨Oracleの文法、方言
これはどう書く?
(主にMySQLと比較して)
21小ネタ編
♨limit句SELECT hoge FROM fuga
LIMIT 1, 30;♨Oracleでは・・・
22小ネタ編
♨ROWNUM擬似列
SELECT結果に行番号を付与
♨SELECT ROWNUM FROM hogehogeテーブルの行数分だけ
連番を取得できる
23小ネタ編
♨limit句SELECT hoge FROM fuga
LIMIT 1, 30;♨Oracleでは・・・
SELECT hoge FROM fugaWHERE ROWNUM <= 30;
24小ネタ編
♨IFNULL関数
SELECT IFNULL(hoge, 0)FROM fuga;
♨Oracleでは・・・
25小ネタ編
♨IFNULL関数
SELECT IFNULL(hoge, 0)FROM fuga;
♨Oracleでは・・・
SELECT NVL(hoge, 0)FROM fuga;
26小ネタ編
♨NVL関数
第一引数がNULLであれば第二引数に置き換える
♨でも、IFNULLもNVLも標準SQLではないので注意
27小ネタ編
♨FROM句めんどいです><ついでにnow関数
SELECT now();♨Oracleでは・・・
28小ネタ編
♨FROM句めんどいです><ついでにnow関数
SELECT now();♨Oracleでは・・・
SELECT sysdateFROM dual;
29小ネタ編
♨dual表OracleではFROM句は省略不可
代わりにdual表が使える
♨sysdateシステム日付を取得する
systimestampもあるよ!
30小ネタ編
♨NVL関数
第一引数がNULLであれば第二引数に置き換える
♨でも、IFNULLもNVLも標準SQLではないので注意
31小ネタ編
♨改行コード('\r\n')SELECT '全\r\n裸';
♨Oracleでは・・・
32小ネタ編
♨改行コード('\r\n')SELECT '全\r\n裸';
♨Oracleでは・・・
SELECT '全' || CHR(13) || CHR(10) || '裸'FROM dual;
33小ネタ編
♨CHR関数
コードに対応するASCII文字を返す
♨逆(文字⇒コード値)はASCII関数
34小ネタ編
♨日付書式の指定
SELECT date_format (now(),'%Y%m%d%H%i%s'
);♨Oracleでは・・・
35小ネタ編
♨日付書式の指定
♨Oracleでは・・・
SELECT TO_CHAR(sysdate,'yyyymmddhh24miss'
) FROM dual;
36小ネタ編
♨TO_CHAR関数
数値や日付を書式指定しつつ文字列に変換する
♨数値を変換する例
SELECT TO_CHAR(1, '000')FROM dual;⇒文字列「001」が得られる
37小ネタ編まとめ
♨Oracleの文法、方言
これはどう書く?
(主にMySQLと比較して)
♨この資料をUpしとくのでよかったら見て下さい。http://bit.ly/tobesetu10akitsukada
ありがとうございました。
つかだ あきひろ@akitsukada