※当サイトはPRを含みます

SQLのチートシート②

テーブルの操作

#三つの列を持つ新しいテーブルを作成する
CREATE TABLE t (
 id INT PRIMARY KEY,
 name VARCHAR NOT NULL,
 price INT DEFAULT 0
);

#データベースからテーブルを削除する
DROP TABLE t ;

#テーブルに新しい列を追加する
ALTER TABLE t ADD column;

#テーブルから列cを削除する
ALTER TABLE t DROP COLUMN c ;

#制約を追加する
ALTER TABLE t ADD constraint;

#制約を削除する
ALTER TABLE t DROP constraint;

# t1からt2へテーブルの名前を変更する
ALTER TABLE t1 RENAME TO t2;

#列c1をc2に名前を変更する
ALTER TABLE t1 RENAME c1 TO c2 ;

#テーブル内の全てのデータを削除する
TRUNCATE TABLE t;

データの変更

# テーブルに一行を挿入する
INSERT INTO t(column_list)
VALUES(value_list);

# テーブルに複数の行を挿入する
INSERT INTO t(column_list)
VALUES (value_list), 
 (value_list), …;

# t2からt1に行を挿入する
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;

# すべての行の列c1に新しい値を更新する
UPDATE t
SET c1 = new_value;

# 条件を満たす列c1, c2の値を更新する
UPDATE t
SET c1 = new_value, 
 c2 = new_value
WHERE condition;

# テーブルの全データを削除する
DELETE FROM t;

# テーブルの一部の行を削除する
DELETE FROM t
WHERE condition;

ビューの管理

# c1とc2から成る新しいビューを作成する
CREATE VIEW v(c1,c2) 
AS
SELECT c1, c2
FROM t;

#チェックオプション付きの新しいビューを作成する
CREATE VIEW v(c1,c2) 
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;

#再帰的なビューを作成する
CREATE RECURSIVE VIEW v 
AS
select-statement -- anchor part
UNION [ALL]
select-statement; -- recursive part

#一時的なビューを作成する
CREATE TEMPORARY VIEW v 
AS
SELECT c1, c2
FROM t;

#ビューを削除する
DROP VIEW view_name;