Author: switch over

A big outdoor sports lover & A IT engineer.

vi

command movement etc
Mode Change
i カーソル位置の手前から入力モードへ移行  
a カーソル位置の後から入力モードへ移行  
O カーソル位置の上の行に、行を追加し入力モードへ  
o カーソル位置の下の行に、行を追加し入力モードへ  
Esc コマンドモードへ移行  
File
vi FileName ファイル名を指定して、起動 vi -r filename
ファイル修復
:w FileName 名前を付けて保存  
:w ファイルを上書き保存  
:wq ファイルを保存して終了  
:q viを終了  
:q! 保存せずに終了  
:set number 行番号表示  
Cursor
k 上へ移動 5kとすると、5行上へ移動
j 下へ移動 5jとすると、5行下へ移動
h 左へ移動 5hとすると、5文字左へ移動
l(小文字のL) 右へ移動 5lとすると、5文字右へ移動
gg ファイルの先頭行に移動  
10G 10行目へ移動 10は任意の数字
G ファイルの末尾へ移動  
Edit
X カーソルの手前の文字を削除(バッファに記憶) P又はpで張り付け
x カーソル位置の文字を削除(バッファに記憶) P又はpで張り付け
dd カーソル位置の行を削除(バッファに記憶) P又はpで張り付け
P カーソルの手前で張り付け(バッファ内の文字列)  
p カーソルの後で張り付け(バッファ内の文字列)  
u 元に戻す  
yy カーソル行をコピー  
zz 終了(変更されている場合)は保存  
Search/Replace
/検索文字列 下へ検索 n 検索の再実行
?検索文字列 上へ検索 n 検索の再実行
:1,$s/mojiold/mojinew/gc ファイル内の文字を置換え 1=検索開始行、$=検索終了行($は最終行)、
s=置換えoption、
mojiold=検索文字、mojinew=置換え文字、
g=全て置換え(無ければ最初に見付かった文字のみ)
c=置き換える前に確認(無ければ問答無用で置き換え)
:%s/@@@/\\\/g 一括置換 :%s/pattern1/pattern2/g   ( パターン1がパターン2に全て置き換わる)
Editor Customize
set autoindent 改行時に上の行と同じく自動インデントする  
set number 行番号を表示する  
set ruler ルーラー(右下に表示される行・列の番号)を表示する  
set tabstop=数値 タブの大きさを半角スペース数で指定  
set nowrap 折り返し表示しない  
set history=数値 コマンド履歴の保存数  
set backup ファイルを保存する時にバックアップファイルを作成する  
set nobackup バックアップファイルを作成しない  
syntax on | off カラー表示のオンまたはオフ  

SQL Basic

—————————————- SQL文 –————————

データ検索      
コマンド名 説明    
SELECT データの検索    
データ操作文(DML)      
コマンド名 説明    
INSERT 行の新規挿入    
UPDATE 値の更新    
DELETE 行の削除    
データ定義文(DDL)      
コマンド名 説明    
CREATE オブジェクトの作成    
ALTER オブジェクトの変更    
DROP オブジェクトの削除    
RENAME オブジェクト名の変更    
GRANT 権限付与    
REVOKE 権限削除    
AUDIT 監査    
TRUNCATE 表の切り捨て    
トランザクション制御(DCL)      
コマンド名 説明    
COMMIT 更新の確定    
ROLLBACK 更新の取り消し    
SAVEPOINT セーブポイントの設定    
算術演算      
NULL値が含まれていると計算結果はNULLです。    

———————– SELECT文 ————————

SELECT  
■野球選手表■      
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
古田 27 スワローズ 捕手
松坂 18 ライオンズ 投手
桑田 18 ジャイアンツ 投手
中村 5 バッファローズ 内野手
       
SELECT * FROM 野球選手表;
*は全列という意味で、特定の列のみ表示したい場合は列名を書けばよい。
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
古田 27 スワローズ 捕手
松坂 18 ライオンズ 投手
桑田 18 ジャイアンツ 投手
中村 5 バッファローズ 内野手
■結果■すべてのレコードが検索される。   
       
SELECT * FROM 野球選手表 WHERE 選手名 = ’松井’; 
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
■結果■選手名が「松井」だけ検索される。 
       
SELECT 選手名 FROM 野球選手表 WHERE 背番号 = 18; 
選手名      
松坂      
桑田      
■結果■背番号が18の選手名だけが検索される。 
       
SELECT DISTINCT 背番号 FROM 野球選手表 
背番号      
55      
27      
18      
5      
■結果■背番号18が2つ重複してるので1つのみ表示される。 
       
SELECT 選手名 FROM 野球選手表 WHERE NOT  背番号 = 18; 
選手名      
松井      
古田      
中村      
■結果■背番号が18以外の選手名だけが検索されます。 
       
SELECT 選手名 FROM 野球選手表 WHERE 背番号 = 18 AND  球団名 = ’ジャイアンツ’;
選手名      
桑田      
■結果■背番号が18で球団名がジャイアンツの選手名(桑田のみ)が検索されます。 
       
SELECT * FROM 野球選手表 WHERE 球団名 = ’スワローズ’ OR  ポジション = ’内野手’; 
選手名 背番号 球団名 ポジション
古田 27 スワローズ 捕手
中村 5 バッファローズ 内野手
■結果■球団名がスワローズとポジションが内野手のレコードが検索されます。 
※優先順位は「1:NOT→2:AND→3:OR」です。 
       
SELECT * FROM 野球選手表 WHERE 背番号 BETWEEN  10 AND 30; 
選手名 背番号 球団名 ポジション
古田 27 スワローズ 捕手
松坂 18 ライオンズ 投手
桑田 18 ジャイアンツ 投手
■結果■背番号が10~30の選手のレコードが検索されます。 
※「BETWEEN a AND b」は「a以上b以下」です。 
       
SELECT * FROM 野球選手表 WHERE 背番号 NOT BETWEEN  10 AND 30; 
選手名 背番号 球団名 ポジション
中村 5 バッファローズ 内野手
松井 55 ジャイアンツ 外野手
■結果■背番号が10~30以外の選手のレコードが検索されます。 
       
SELECT * FROM 野球選手表 WHERE ポジション IN (’投手’,’捕手’); 
選手名 背番号 球団名 ポジション
古田 27 スワローズ 捕手
松坂 18 ライオンズ 投手
桑田 18 ジャイアンツ 投手
■結果■ポジションが投手か捕手のレコードが検索されます。 
       
SELECT * FROM 野球選手表 WHERE ポジション NOT IN (’投手’,’捕手’); 
選手名 背番号 球団名 ポジション
中村 5 バッファローズ 内野手
松井 55 ジャイアンツ 外野手
■結果■ポジションが投手か捕手以外のレコードが検索されます。 
       
SELECT * FROM 野球選手表 WHERE 選手名 LIKE  ’%田’; 
選手名 背番号 球団名 ポジション
古田 27 スワローズ 捕手
桑田 18 ジャイアンツ 投手
■結果■選手名がX田のレコードが検索されます。
       
SELECT * FROM 野球選手表 WHERE 選手名 IS  NULL; 
選手名 背番号 球団名 ポジション
  99 XXX YYY
  999 XXXX YYYY
■結果■選手名がNULLのレコードが検索されます。(IS NOT NULLにするとNULLではないレコード検索)
—————————— ソート(ORDER BY)について ———————————
ORDER BY
■野球選手表■      
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
古田 27 スワローズ 捕手
西口 13 ライオンズ 投手
桑田 18 ジャイアンツ 投手
中村 5 バッファローズ 内野手
高橋 24 ジャイアンツ 外野手
上原 19 ジャイアンツ 投手
       
SELECT * FROM 野球選手表 WHERE ポジション = ’投手’  ORDER BY 背番号 [ASC] ; 
選手名 背番号 球団名 ポジション
西口 13 ライオンズ 投手
桑田 18 ジャイアンツ 投手
上原 19 ジャイアンツ 投手
■結果■ポジションが投手のレコードが昇順に並びかえられました。 
※最後の「ASC」はデフォルトですので、省略しても同様の結果になる。 
       
SELECT * FROM 野球選手表 WHERE ポジション = ’投手’ ORDER BY 背番号 DESC; 
選手名 背番号 球団名 ポジション
上原 19 ジャイアンツ 投手
桑田 18 ジャイアンツ 投手
西口 13 ライオンズ 投手
■結果■ポジションが投手のレコードが降順に並びかえられました。 
※複数の列を指定する場合は、ORDER BY 背番号,球団名 DESC; のようにコンマで区切る。
(背番号・球団名の順にソートする。)
—————————————– 関数 —————————————-
SUBSTR      
SELECT SUBSTR(’ABCDE 12345’7,2) FROM テーブル名; 
■結果■12が取り出されます。
※空白は1桁としてカウントされます。 
       
INITCAP      
SELECT INITCAP(’hanshin tigers’) FROM テーブル名; 
■結果■Hanshin Tigersと表示されます。
       
UPPER      
SELECT UPPER(’hanshin tigers’) FROM テーブル名; 
■結果■HANSHIN TIGERSと表示されます。 
       
NLV
NULL値をNULL以外に変換します。     
       
数値関数(アルファベット順)     
関数名 説明    
CEIL(a) a以上の最小数を返す    
FLOOR(a) a以上の最大数を返す    
MOD(a,b) a÷bの余り値を返す    
POWER(a,b) aのb乗した値を返す    
SQRT(a) aの平方根を返す    
ROUND(a,b) aを小数点b桁に四捨五入した値を返す    
TRUNC(a,b) aを小数点b桁に切り捨てた値を返す    
—————————————- 結合 —————————————– 
等価結合      
 等価条件に基づいて2つ以上の表から行を返します。 
非等価結合      
 イコール以外の演算子を用いて結合します。 
外部結合      
 (+)を用いて結合します。 
同一表結合      
 表をその表自身と結合させます。 
       
■選手表■      
背番号 選手名 球団名 ポジション
18 桑田 ジャイアンツ 投手
19 上原 ジャイアンツ 投手
24 高橋 ジャイアンツ 外野手
55 松井 ジャイアンツ 外野手
       
■出身校表■      
背番号 出身校    
18 PL学園    
19 大阪体育大    
24 慶応大    
55 星陵高    
       
SELECT 選手表.背番号,選手表.選手名,出身校表.出身校
   FROM 選手表,出身校表 WHERE 選手表.背番号 = 出身校表.背番号; 
背番号 選手名 出身校  
18 桑田 PL学園  
19 上原 大阪体育大  
24 高橋 慶応大  
55 松井 星陵高  
■結果■背番号によって2つの表が関連付けられました。 
————————————– グルーピング ————————————-
グループ関数      
関数名 意味    
AVG 平均値を返す    
COUNT 行数を返す    
MAX 最大値を返す    
MIN 最小値を返す    
SUM 合計値を返す    
       
■選手表■      
球団名 選手名 ポジション 身長
ジャイアンツ 桑田 投手 174
ジャイアンツ 上原 投手 185
ジャイアンツ 高橋 外野手 180
ジャイアンツ 松井 外野手 186
タイガース 井川 投手 185
タイガース 福原 投手 180
タイガース 桧山 外野手 177
タイガース 赤星 外野手 170
       
SELECT 球団名,MAX(身長)FROM 選手表 GROUP BY 球団名; 
球団名 MAX(身長)    
ジャイアンツ 186    
タイガース 185    
■結果■球団名、それぞれの最高身長が検索されます。 
       
SELECT 球団名,ポジション,MAX(身長)FROM 選手表 GROUP BY 球団名,ポジション; 
球団名 ポジション MAX(身長)  
ジャイアンツ 投手 185  
ジャイアンツ 外野手 186  
タイガース 投手 185  
タイガース 外野手 177  
■結果■球団名ごとにポジションの最高身長が検索されます。 
       
SELECT 球団名,ポジション,MAX(身長)FROM 選手表
  HAVING MAX(身長) >= 180 GROUP BY 球団名,ポジション; 
球団名 ポジション MAX(身長)  
ジャイアンツ 投手 185  
ジャイアンツ 外野手 186  
タイガース 投手 185  
■結果■球団名ごとにポジションの最高身長が検索されます。 HAVINGはGROUP BYの前後どちらでもOK 。
※HAVINGはGROUP BYの前後どちらでもOK。
————————————— 副問合せ —————————————
SELECT文の中にあるSELECT文
単一行副問い合わせ     
複数行副問い合わせ     
複数列副問い合わせ     
※ORDER BYは副問い合わせを使用できない     
       
DISTINCT      
以下の記述はDISTINCTと同じ。    
SELECT 列名 FROM 表名1 WHERE 列名 IN (SELECT 列名 FROM 表名2); 
————————————- SQL*Plus —————————————-
SQL文を認識し、実行するためのツール    
●login.sql:SQL*Plus起動時に設定するコマンドファイル 
●COLUMN:列の書式設定や表示幅を定義する 
●DEFINEまたはACCEPTにて変数の事前定義が行なえる 
●UNDEFINE:1度格納したユーザ変数を削除する 
●PL/SQLは「ブロック単位」 
————————————— データ更新 ————————————-
■野球選手表■      
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
西口 13 ライオンズ 投手
中村 5 バッファローズ 内野手
斎藤 11 ジャイアンツ 投手
石井 16 スワローズ 投手
       
①INSERT INTO 野球選手表 (選手名,背番号,球団名,ポジション)
    VALUES(’寺原’,20,’ホークス’,’投手’);
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
西口 13 ライオンズ 投手
中村 5 バッファローズ 内野手
斎藤 11 ジャイアンツ 投手
石井 16 スワローズ 投手
寺原 20 ホークス 投手
■結果■今年入団した寺原投手のレコードが追加されました。 
       
②UPDATE 野球選手表 SET 球団名 = ’ドジャース’ WHERE 選手名 = ’石井’; 
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
西口 13 ライオンズ 投手
中村 5 バッファローズ 内野手
斎藤 11 ジャイアンツ 投手
石井 16 ドジャース 投手
寺原 20 ホークス 投手
■結果■今年FAした石井投手の球団名がドジャースに変更されました。 
       
③DELETE FROM 野球選手表 WHERE 選手名 = ’斎藤’; 
選手名 背番号 球団名 ポジション
松井 55 ジャイアンツ 外野手
西口 13 ライオンズ 投手
中村 5 バッファローズ 内野手
石井 16 ドジャース 投手
寺原 20 ホークス 投手
■結果■今年引退し      

文字記号

 write  code  JIS japanese name reading
 20 空白スペース、ブランク
21感嘆符びっくりマーク、エクスクラメーション
22引用符(ウムラウト)ダブルクォーテーション、ダブルクォート、二重引用符
23番号記号シャープ、井形
24ドル記号ドル、ダラー
25パーセントパーセント、パー
26アンパサンドアンド、アンパー
27アポストロフィ、アクサンテギュシングルクォーテーション、アクサンテギュ、クォート
28左小かっこかっこ、かっこ始まり、開きかっこ、左丸かっこ
29右小かっこかっこ、かっこ終わり、閉じかっこ、右丸かっこ
2Aアステリスクアスタリスク、アスター、掛ける
2B正符号プラス、プラ、足す
2Cコンマ、セディユカンマ
2Dハイフン、負記号マイナス、ハイフン、引く
2Eピリオドドット、点、ぽち
2F斜線スラッシュ、スラ
3Aコロンコロン
3Bセミコロンセミコロン
3C不等号(より小)小なり
3D等号イコール
3E不等号(より大)大なり
3F疑問符はてな、クエスチョン
40単価記号アットマーク、アット
5B左大かっこ大かっこ、ブラケット、しかくかっこ
5C円記号円、バックスラッシュ(英語モードで\)
バックスラッシュ バックスラッシュ(文字一覧から)
5D右大かっこ閉じ大かっこ、ブラケット、閉じしかくかっこ
5Eアクサンシルコンフレックスやま、ハット、サーカムフレックス、アップアロー、べき乗
_5Fアンダライン下線、アンダーバー、アンダースコア
50アクサングラーブアクサングラーブ、バッククォート
7B左中かっこ中かっこ、なみかっこ
7C縦線縦棒、パイプ
7D右中かっこ閉じ中かっこ、閉じなみかっこ
~7Eオーバーラインチルダ、にょろ、チルド
A1句点句点、まる
A2始かっこかぎかっこ
A3終かっこ閉じかぎかっこ
A4読点読点、てん
A5中点中黒、中丸、ぽち
B0長音記号音引き、長音符号、のばす
DE濁点点点
DF半濁点
  スワングダッシュ、から