-
Notifications
You must be signed in to change notification settings - Fork 0
Oracle
hyukke edited this page May 26, 2016
·
5 revisions
Oracle 社が提供するリレーショナルデータベース管理システム。
> truncate table SAMPLE;
> select SAMPLE_ID, SAMPLE_NAME from SAMPLE where SAMPLE_ID = 1;
> insert into SAMPLE (SAMPLE_NAME, SAMPLE_TYPE) values ('Sample Record', 'TYPE_A');
-
insert into SAMPLE values ('Sample Record', 'TYPE_A')
カラムは省略可能 -
別テーブルから
SELECT
したレコードを挿入することも可能
insert into SAMPLE (SAMPLE_NAME, SAMPLE_TYPE) select ANOTHER_SAMPLE_NAME as SAMPLE, ANOTHER_SAMPLE_TYPE as SAMPLE_TYPE from ANOTHER_SAMPLE ```
> update SAMPLE set SAMPLE_TYPE = 'TYPE_B' where SAMPLE_ID = 1;
- 複数のテーブルを連結した更新は不可
> delete from SAMPLE where SAMPLE_ID = 1;
コマンドラインでデータベースにアクセスできる。
以下のコマンドで SQL*Plus を起動する。
C:\> sqlplus username/password@XE
-
username/password@//ip:port/connection-string
左記の順で接続情報を指定(@
以降はローカル環境であれば省略可)-
username
ユーザ名 -
password
パスワード -
ip
IP アドレス -
port
ポート -
connection-string
接続文字列
-
一定の書式でテキストファイルに記述された大量のデータを、高速にデータベースに取り込むことができる。
データを記述したファイルと、それに合わせた制御ファイルを作成する。
-- 制御ファイル sample.ctl
LOAD DATA
CHARACTERSET 'JA16SJISTILDE'
INFILE 'sample.csv'
TRANCATE INTO TABLE SAMPLE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (
SAMPLE_ID,
SAMPLE_NAME,
SAMPLE_TYPE
)
コマンドラインから、制御ファイルやオプションを指定して、 SQL*Loader を起動する。
C:\> sqlldr username/password control=sample.ctl log=sample.log skip=1 errors=10000000 direct=y
-
username/password@//ip:port/connection-string
左記の順で接続情報を指定(@
以降はローカル環境であれば省略可)-
username
ユーザ名 -
password
パスワード -
ip
IP アドレス -
port
ポート -
connection-string
接続文字列
-
-
control
制御ファイルパスおよびファイル名 -
log
ログファイルパスおよびファイル名 -
skip
テキストデータの先頭から読み飛ばす行数 -
errors
読み込み時にエラーが発生した際に中断するまでの件数
オプションは、制御ファイルに含めることができる。
OPTIONS (
ERRORS=10000000,
SKIP=1,
LOG='sample.log',
direct=y
)
LOAD DATA
CHARACTERSET 'JA16SJISTILDE'
INFILE 'sample.csv'
TRANCATE INTO TABLE SAMPLE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (
SAMPLE_ID,
SAMPLE_NAME,
SAMPLE_TYPE
)
コマンドラインでは、制御ファイルのみ指定する。
C:\> sqlldr username/password control=sample.ctl
日付形式を変換してロードする場合は、制御ファイルのカラム定義にTO_DATE
関数を指定する。
-- ~ ~ ~ 省略
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' (
SAMPLE_ID,
SAMPLE_NAME,
SAMPLE_TYPE,
SAMPLE_DATETIME "TO_DATE(:SAMPLE_DATE, 'yyyy/MM/dd HH24/MI:SS')"
)
SQL ファイルに@
を付与して実行すると、ファイル内の SQL をまとめて実行することができる。
> @sample.sql