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 | カラー表示のオンまたはオフ |
Author: switch over
A big outdoor sports lover & A IT engineer.
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 | 半濁点 | 丸 |
~ | スワングダッシュ、から |