はじめに
社外研修がDBの内容に入りました。
自分の復習用にまとめたいと思います。
研修で使用しているDBは、
OracleDB 11g Express Editionです。
SQLの種類
DDL (データ定義言語)
Database Definition Language の略。
Definitionは定義という意味。
データを格納する入れ物であるDBやテーブルなどを作成や削除するために使用する
■ CREATE
データベースやテーブルなどを作成する
列制約 テーブル作成文
CREATE TABLE samp(
samp_id VARCHAR2(10) PRIMARY KEY,
samp_name VARCHAR2(10) NOT NULL,
tel VARCHAR2(10) UNIQUE,
age NUMBER(2),
dept_id CHAR(2) PEFERENCES dept(dept_id)
);
■ DROP
データベースやテーブルなどを削除する
テーブルの削除
DROP TABLE samp;
■ ALTER
データベースやテーブルなどをの構成を変更する
列の追加
ALTER TABLE samp ADD temp_id VARACHAR2(500);
DML (データ操作言語)
Data Manipulation Language の略。
Manipulationは操作という意味。
テーブルの行を検索や変更するために使用する
■ SELECT
テーブルからレコードを検索する
全ての列を出力
SELECT *
FROM samp;
■ INSERT
テーブルに新しいレコードを登録する
列の挿入
INSERT INTO samp(samp_id, samp_name, tel, age, dept_id) VALUES(1,"noname",xxxxxxxxxxx,20,1);
COMMIT;
※COMMITを忘れると挿入されない。
■ UPDATE
テーブルのレコードを更新する
samp_id行を全部777に変更
UPDATE samp SET samp_id = 777;
COMMIT;
■ DELETE
テーブルのレコードを削除する
指定した全レコードの削除
DELETE FROM samp;
DCL (データ制御言語)
Data Control Language の略。
Controlは制御という意味。
データベースに対して行った変更内容の確定と取消、
または、RDBMSのユーザの権限の設定も行う
■ COMMIT
データベースに対して行った変更を確定する
COMMIT;
■ ROLLBACK
データベースに対して行った変更を取り消す
トランザクションの取
消
ROLLBACK;
■ GRANT
ユーザに操作の権限を与える
ユーザ(USERNAME)にSELECT ANY DICTIONARY以外の権限を付与
GRANT ALL PRIVILEGES TO USERNAME;
■ REVOKE
ユーザから操作の権限を奪う
全ての権限の削除
REVOKE ALL PRIVILEGES FROM USERNAME;
おわりに
SQLは、インフラ時代に使ってましたが上記の分類などは知らなかったのでまとめてみました。
トランザクションで自動的にコミットされるDDLとコミットされないDMLなど
体系的に覚えて使いこなせたらと思います。
誤記等があればご指摘頂けるとありがたいです。