最近仕事などでデータベースを使い始めたものの、なかなか基本的な操作が覚えられない…。そんな初心者の方たち向けに、よく使用するSQLを、いくつかコピペできる形にして集めてみました!
■よく使用するSQL
ここでは、使用頻度が高いSQLを紹介していきます。
SELECT文
表(テーブル)から、指定のデータを抽出するSQLです。
SELECT[列名]
FROM[表名]
INSERT文
表(テーブル)に、データを挿入するSQLです。
INSERT INTO[表名](列名・・・)
VALUES(設定値・・・)
UPDATE文
表に格納されている値を更新するSQLです。
UPDATE[表名]
SET[列名]= [設定値]
WHERE[列名]=[条件値]
DELETE文
表に保存されているデータを削除するSQLです。
DELETE FROM[表名]
WHERE[列名]=[条件値]
■知っていると便利なSQL
以下では、使用頻度は少ないものの、知っているとたまに役に立つSQLを紹介していきます。
SELECT文(数分前のデータ参照)
Oracleでは、一時的に保存されているデータから、過去のデータを参照することができる場合があります。
もし誤ってデータを消したり、更新してしまった場合には、以下を FROM[表名]の後に記載することで、指定の時間を遡ったデータを参照することも可能です。(あくまで一時保存データなので、遡れる時間には限度があることも覚えておいてください)
as of timestamp (systimestamp – interval ‘[遡りたい時間(分)]’ minute )
INSERT文(SELECT文との組み合わせ)
INSER文は、データを挿入するSQLと紹介しました。SELECT文と組み合わせることで、表に格納されているデータを挿入することもできます。
INSERT INTO[表名A]
SELECT[列名]
FROM[表名B]
■よく検索(SELECT)するテーブルのSQL
個人的になりますが、よく検索するoracle オブジェクトや、ある列名を持つテーブルの検索方法についても紹介します。
DIRECTORY検索方法
oracleでは、DIRECTORYと呼ばれる、ディレクトリの実パスを保存するテーブルがあります。様々な場面で、このDIRECTORYに保存内容を調べることがあるので、紹介しておきます。
(ちなみに、SQL中の「*」は、テーブルの項目を全て指定する際に使われます。)
SELECT * FROM ALL_DIRECTORIES
ある列名をもつテーブルの検索方法
多くのデータ、テーブルを見る際、「あの列名って、どのテーブルに保存されているんだっけ?」といったように、データの保存テーブルがわからなくなることがあります。そんな時非常に便利なのが、以下の検索方法です。
SELECT TABLE_NAME,COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE COLUMN_NAME LIKE ‘%[■■]%’
ORDER BY TABLE_NAME ,COLUMN_NAME