実務でoracleDBを使用する案件に遭遇したため、自分用の備忘録です。
なお、自分の案件で使用したoracleのversionは
v18.0.0 ExpressEdition
となります。
ログイン
まずはDB接続するログインコマンド
sqlplus ユーザー名/パスワード@ホスト名:port番号/oracleSID
設定項目が多いですが、コマンド例は以下のような感じ。
sqlplus admin/adminpass@localhost:1521/ORCL
oracleのポート番号のデフォルト値は、基本的に「1521」です。
oracleSIDのデフォルト値は基本的に「ORCL」のようです。
なお、oracleSIDの値は 「listener.ora」 というファイルに記述されているので確認が可能。
基本的に以下のディレクトリにあります。
Macの場合
cat $ORACLE_HOME/network/admin/listener.ora
Windowsの場合
type %ORACLE_HOME%\network\admin\listener.ora
ファイルの中を確認すると、以下のような形式で記述されています。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = XE)
(ORACLE_HOME = /PCのユーザー名/app/oracle/product/18.0.0/...)
)
)
ちなみに、 使用するoracleDBが「ExpresssEdition」の場合、デフォルトのoracleSIDの値はORCLではなく、「XE」が設定されます。(自分はこっちだった)
ユーザー指定なしのログイン
「/nolog」 を加えることで、ユーザー指定せずにログインが可能です。
sqlplus /nolog
DDL系コマンド
データベース一覧の表示
show pdbs;
テーブル作成 [create table]
idのカラムには主キーと自動採番の設定を追加していいます。
「GENERATED BY DEFAULT AS IDENTITY」で自動採番設定にできます。
CREATE TABLE customer (
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR2(50),
age NUMBER,
);
カラムの追加 [ALTER TABLE ... ADD ]
ALTER TABLE customer ADD (email VARCHAR2(32));
カラムの型変更 [ALTER TABLE ... MODIFY ]
ALTER TABLE customer MODIFY (email VARCHAR2(64));
テーブル削除 [DROP TABLE]
DROP TABLE customer;
DML系コマンド
基本mysqlなどと変わらないですが、一応メモ。
レコード取得 [select]
SELECT * FROM
customer
WHERE
id = 1;
レコード挿入 [insert]
INSERT INTO customer
(name, age)
VALUES
('澁谷', 30);
レコード更新 [UPDATE]
UPDATE
customer
SET
name = '遠藤'
WHERE
id = 1;
レコード削除 [DELETE]
DELETE FROM
customer
WHERE
id = 1;
テーブル一覧の確認
テーブル一覧の確認コマンドはMysqlなどと比較すると、そこそこ異なります。
特定のスキーマのテーブル一覧を確認する
SELECT table_name FROM dba_tables WHERE owner = 'スキーマ名';
Mysqlの show tables; などと比較すると結構長い...
現在のユーザーが所有するテーブルの一覧を表示
SELECT table_name FROM user_tables;
簡単ですが以上です。
今後も追記していく予定です。