コンテンツにスキップ

DDL@SQL

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. DDLとは

テーブル、DBオブジェクトの操作、に関するクエリのこと。


02. CREATE

テーブルの管理

CREATE TABLE

テーブルを作成する。

*実装例*

-- 注文テーブル作成
CREATE TABLE order_data (

    -- プライマリーキー制約
    order_id INT(10) PRIMARY KEY COMMENT "注文ID",

    -- Not Null制約
    order_kbn INT(3) NOT NULL COMMENT "注文区分",
    system_create_date_time DATETIME NOT NULL COMMENT "システム登録日時",
    system_update_date_time DATETIME NOT NULL COMMENT "システム更新日時",
    delete_flg INT(1) DEFAULT 0 NOT NULL COMMENT "0:通常、1:削除済",

    -- 複合プライマリーキー制約 (これを指定する場合、上記のプライマリーキー制約の記述は不要)
    PRIMARY KEY(order_id, order_kbn)

    -- 参照制約キー
    FOREIGN KEY order_kbn REFERENCES order_kbn_data
)

CREATE VIEW

ビューとはある表の特定のカラムや指定した条件に合致するレコードなどを取り出した仮想の表。

また、複数の表を結合したビューを作成できる。

ビューを作成することによりユーザーに必要最小限のカラムやレコードのみにアクセスでき、また結合条件を指定しなくても既に結合された表にアクセスできる。

*実装例*

CREATE VIEW { テーブル名 } AS
SELECT
    *
FROM
    { テーブル名 };


ユーザーの管理

▼ ユーザー作成

CREATEで以下の4種類を作成する。

パスワードは、例えば8文字のパスワードを割り当てる。

CREATE USER "{ ユーザー名 }" IDENTIFIED BY "{ パスワード }";
ユーザーの種類 補足
ルートユーザー root DBの作成時にroot権限の実行ユーザーが自動作成される場合は不要
アプリケーション foo_app
読み出し/書き込みユーザー foo_user
読み出しのみユーザー foo_readonly_user

▼ ユーザー一覧

ここで表示される特権と。

ALL特権は異なる。

SELECT
    *
FROM
    mysql.user;


03. DROP

ユーザー管理

▼ ユーザー削除

-- ユーザー別のホスト名の確認
SELECT * FROM mysql.user;

-- ホストが『%』だった場合
DROP USER { ユーザー名 }@`%`;