INSERT文により一つ以上の行を作成して、指定した名前の表に格納できます。 INSERT文で指定された値の数は、指定された列あるいは暗示された列の数と同じでなければなりません。
INSERT INTO COUNTRIES
VALUES ('Taiwan', 'TW', 'Asia')
-- DEPARTMENTという表に新しい部署を挿入します。
-- ただし、新しい部署に新しい管理者は割り当てません。
INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT)
VALUES ('E31', 'ARCHITECTURE', 'E01')
-- 2つの新しい部署を一つの文で前と同じようにDEPARTMENTという表に挿入します。
-- ただし、新しい部署に新しい管理者は割り当てません。
INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT)
VALUES ('B11', 'PURCHASING', 'B01'),
('E41', 'DATABASE ADMINISTRATION', 'E01')
-- EMP_ACTと同じ列を持つ、MA_EMP_ACTという
-- 一時表を作ります。
-- MA_EMP_ACTにEMP_ACTという表から、
-- プロジェクト番号(PROJNO)が'MA'という文字で始まる行をロードします。
CREATE TABLE MA_EMP_ACT
(
EMPNO CHAR(6) NOT NULL,
PROJNO CHAR(6) NOT NULL,
ACTNO SMALLINT NOT NULL,
EMPTIME DEC(5,2),
EMSTDATE DATE,
EMENDATE DATE
);
INSERT INTO MA_EMP_ACT
SELECT * FROM EMP_ACT
WHERE SUBSTR(PROJNO, 1, 2) = 'MA';
-- LOCATIONという列にDEFAULTの値を挿入します。
INSERT INTO DEPARTMENT
VALUES ('E31', 'ARCHITECTURE', '00390', 'E01', DEFAULT)
INSERT 文は挿入先の表や、その表の全てのコングロマリット(ヒープや索引などの記録の単位です。)や、文中のその他の表に依存します。準備されたINSERT文の対象表にて、索引や制約を作成したり破棄したりすると、その準備されたINSERT文は無効となります。