Help us understand the problem. What is going on with this article?

SQLの種類 備忘録

はじめに

社外研修が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など
体系的に覚えて使いこなせたらと思います。

誤記等があればご指摘頂けるとありがたいです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away