rakutoネット
お問合せ 免責事項 Q&A 掲示板 サイト管理 リンク サイトマップ
HOME > 新規作成 CREATE

新規作成 CREATE


CREATE TABLE
新しいテーブルの作成
CREATE [TEMP | TEMPORARY] TABLE テーブル名 (
    カラム定義 [, カラム定義]*
    [, 制約条件]*
) 
CREATE [TEMP | TEMPORARY] TABLE テーブル名 AS SELECT文 
 
-- カラム定義 --
名前 [データ型] [[CONSTRAINT 名前] カラム制約条件]* 
 
-- データ型 --
型名 |
型名 ( 数字 ) |
型名 ( 数字 , 数字 ) 
 
-- カラム制約条件 --
NOT NULL [ CONFLICT 句 ] |
PRIMARY KEY [ソート順] [ CONFLICT 句 ] |
UNIQUE [ CONFLICT 句 ] |
CHECK ( 評価式 ) [ CONFLICT 句 ] |
DEFAULT 値 
 
-- 制約条件 --
PRIMARY KEY ( 名前 [, 名前]* ) [ CONFLICT 句 ]|
UNIQUE ( 名前 [, 名前]* ) [ CONFLICT 句 ] |
CHECK ( 評価式 ) [ CONFLICT 句 ] 
 
-- CONFLICT 句 --
ON CONFLICT 衝突時アルゴリズム

・テーブル名にsqlite_で始まる名前をつけることはできません。
・SQLiteは型がありません。
・カラム制約
    PRIMARY KEY     主キーを設定します。
    NOT NULL          カラムのNULL許可しません。
    UNIQUE              カラムの値がテーブル内で重複しないようにします。
    CHECK              カラムの値を式により評価します。
    DEFAULT           カラムのデフォルト値を指定します。
サンプル
ユーザーのアカウント管理用のテーブルを作成します。
emailが重複して登録されないようにします。
パスワードが4文字以上入力される様にチェックします。
CREATE TABLE account_tbl (
    id          integer NOT NULL,
    flag        integer DEFAULT 1,
    name        varchar(64) NOT NULL,
    email       varchar(128) UNIQUE,
    password    varchar(32),
    CONSTRAINT account_pky PRIMARY KEY (id),
    CONSTRAINT password_chk CHECK (length(password) >= 5)
);


CREATE VIEW
新しいビューの作成
CREATE [TEMP | TEMPORARY] VIEW ビュー名 AS SELECT文
サンプル
マスターテーブルからビュー情報だけを表示するビューの作成。
CREATE VIEW master_view AS
    SELECT * FROM sqlite_master WHERE type='view';

CREATE TRIGGER
新しいトリガーの作成
CREATE [TEMP | TEMPORARY] TRIGGER トリガ名 [ BEFORE | AFTER ]
データベースイベント ON [データベース名 .] テーブル名
トリガーアクション 
 
CREATE [TEMP | TEMPORARY] TRIGGER トリガ名 INSTEAD OF
データベースイベント ON [データベース名 .] ビュー名
トリガーアクション 
 
-- データベースイベント --
DELETE | 
INSERT | 
UPDATE | 
UPDATE OF カラムの並び 
 
-- トリガーアクション --
[ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN 評価式 ] 
BEGIN 
    トリガーステップ ; [ トリガーステップ ; ]*
END 
 
-- トリガーステップ --
UPDATE文 | INSERT文 | 
DELETE文 | SELECT文

・NEW,OLD疑似リレーション
    NEW    変更・挿入後の値を参照できます。
    OLD    変更・削除前の値を参照できます。
サンプル
掲示板で親のメッセージを削除した際にそれに対して返信された
メッセージも削除する作業をトリガーを用いて行います。

掲示板テーブルの作成。
CREATE TABLE bbs_tbl (
    id          integer NOT NULL,
    title       varchar(128),
    body        text,
    parent      integer,
    PRIMARY KEY (id)
);

親のメッセージを削除した後それにぶら下る返信
メッセージを削除するトリガーの作成。
CREATE TRIGGER del_parentbbs AFTER 
    DELETE ON bbs_tbl
BEGIN
    DELETE FROM bbs_tbl WHERE parent = old.id;
END;


CREATE INDEX
新しいインデックスの作成
CREATE [ TEMP | TEMPORARY] [ UNIQUE] INDEX インデックス名 
ON [ データベース名 .] テーブル名 ( カラム名 [ , カラム名 ] * ) 
[ ON CONFLICT 衝突時アルゴリズム ] 
 
-- カラム名 --
名前 [ ASC | DESC ]

サンプル
CREATE TABLEでのサンプルにあるアカウントテーブルの
emailに対してインデックスを作成します。
CREATE INDEX email_idx ON account_tbl (email);



SQLiteコマンド一覧 削除 DROP>>

PHPリング

@PHP.ring Home
<5 <1 Random List 1> 5>

rktSQLite

  • sourceforge.jp

広告


アマゾン検索

サーチ:
Amazon.co.jpアソシエイト

カテゴリ

  •  Templateエンジンのすすめ Templateエンジンのすすめ
  •  SQLiteをやってみよう SQLiteをやってみよう
  •  SQLite SQLコマンド一覧 SQLiteコマンド一覧
  •  SQLite 管理プログラムSQLite 管理
  •  はじめてのEclipse はじめてのEclipse
  •  PHP SQLiteのTIPS PHP SQLiteのTIPS
  •  サンプル サンプル/ダウンロード
  •  リンク リンク
  •  掲示板 掲示板

メニュー

  •  新規作成 CREATE
  •  削除 DROP
  •  テーブル・情報の操作
  •  トランザクションの操作
  •  SQLite特殊 その他

キーワード検索

キーワード



最近のTB

  •  2006/03/13さくらのブログに挑戦[rakutoネットブログ]
  •  2006/01/20レーザーチャートの作成方法[脳内研究所]

Summary

  •     ATOM(XML)
  •     RDF(XML)
  •     RSS0.92(XML)
  •     RSS2.0(XML)

Powered by

  •     PHP
  •     Smarty
  •     SQLite
  •     MySQL
Copyright (C) 2005 `rakuto.net' All Rights Reserved.