0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

やんわり現場メモ#3【Oracle/Linuxコマンド編】

Last updated at Posted at 2023-11-03

はじめに

初心者エンジニアということで優しい目で見てください。
(間違っていたら直したいので教えてください)
今回も参画先現場で得た新しい知識や理解できたことです。

目次

●SQL
・MINUS
・CREATE TABLEでのテーブルコピー
・rename
・ALTER TABLE ADD/DROP
・grant/synonym
●現場でよくでたLinuxコマンド
・cd
・ls
・date
・@ファイル名

SQL

MINUS

二つのテーブルのデータを比較し、データの差分がでたレコードを取得する。

構文/例
-- 構文
SELECT * FROM A MINUS SELECT * FROM B;

-- 例
-- データ
SAMPLE1        SAMPLE2
|number|color|    |number|color|
|1     |red  |    |1     |red  |
|2     |green|    |3     |blue |
|4     |white|

SELECT number,color FROM SAMPLE1 MINUS SELECT number,color SAMPLE2;
-- SAMPLE1テーブルにあって、SAMPLE2テーブルにないデータのレコードを取得する
-- 結果
|number|color|
|2     |green|
|4     |white|

注意点
SAMPLE2にあり、SAMPLE1にないデータのレコードを取得したい場合は、テーブルを入れ替えて再度SELECT分を打つ必要がある。(SELECT * FROM SAMPLE2 MINUS SELECT * FROM SAMPLE1;)

CREATE TABLEでのテーブルコピー

テストデータを一旦移すための避難先作成で使った。

構文
-- 構文
CREATE TABLE SAMPLE2 AS SELECT * FROM SAMPLE1;
-- SAMPLE1テーブルと同一のテーブル構成・データでSAMPLE2テーブルを作成する 
rename

その名の通りテーブル名を変えられる

-- 例
RENAME SAMPLE to DAMMY;
-- SAMPLEテーブルの名前をDAMMYテーブルに変更する
ALTER TABLE ADD/DROP

既存テーブルのカラムを削除したり追加したりできる。
ほかにもいろいろできるらしい。

例)追加
-- テーブル定義
SAMPLE
|number|color|
|------|-----|

ALTER TABLE SAMPLE ADD (text VARCHAR2(50));

-- 結果
SAMPLE
|number|color|text|
|------|-----|----|
例)削除
-- テーブル定義
SAMPLE
|number|color|text|
|------|-----|----|

ALTER TABLE SAMPLE DROP (text);

-- 結果
SAMPLE
|number|color|
|------|-----|
grant/synonym

テーブルを別のスキーマから参照できるようにGRANT文で権限付与し、SELECT文などを打てるようになるが、いちいち参照先のスキーマ名をつけないといけないところ、別名として保存し呼び出す際の記述を簡略化できる。

GRANT
-- Schema1にあるSAMPLEテーブルをSchema2から見えるようにする
-- Schema1上で、Schema2に権限付与
GRANT select ON Schema1.SAMPLE TO Schema2

-- Schema2からSAMPLEテーブルを見てみる
SELECT * FROM Schema1.SAMPLE;

-- 結果
SAMPLE
|number|color|
|------|-----|

見ることはできるが参照するたびに、テーブル名を各箇所に[Schema1.SAMPLE]と書かなきゃいけない
これはめんどいのでsynonymを作成する

SYNONYM
-- Schema2上で、synonym作成
CREATE SYNONYM SAMPLE FOR Schema1.SAMPLE;

-- Schema2からSAMPLEテーブルを見てみる
SELECT * FROM SAMPLE;

-- 結果
SAMPLE
|number|color|
|------|-----|

CREATE SYNONYM A ~~とかで作成すれば、SELECT * FROM A;など簡単にできるが、なんのこっちゃになるので、参照先のテーブル名で現場は作っていた。(多分大体そう。知らないけど。)

現場でよくでたLinuxコマンド

参画前の研修でも学んだが、すべて覚えきれず中途半端になっていたので、特に現場で使用しているのをおまけ程度ですが、まとめておきます。
それぞれのコマンドにオプションありますが、いったんは忘れました。

cd

フォルダ移動

構文
cd ディレクトリ
cd /user/test
ls

現在自分がいるディレクトリ、その中にあるファイルの表示
cdでの移動前に確認することでエラーを未然に防ぐ
そのまま打つだけ

構文
ls
date

現在時刻の表示
テストのエビデンスを作成する際に使用
そのまま打つだけ

構文
date
@ファイル名.拡張子

いろんなファイル実行できるだろうが、現場でsqlのファイルしか使用しませんでした。
cdコマンドで実行したいファイルがある階層まで移動し、上記コマンド実行。
sqlの場合、ファイルの中身の頭に、sqlplus ユーザー名/パスワードをつけていないとエラーになります。
そのまま打つだけ

構文
@ファイル名.拡張子
今回は以上となります!拙い文章でしたが、最後まで見てくださってありがとうございます!
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?