2013/08/19

08-01.データー操作語(DML)【データーの追加、修正、削除】

■INSERT
 -INSERTコマンドはテーブルへデーターを追加する。

--INSERTの文法
INSERT INTO table_name(column1, column2, ...)
VALUES (データー, 'データー', ...);

INSERT INTO table_name(column1, column2, ...)
SELECT column1, column2, ...
FROM table_name
WHERE 条件;

-実際のデーターはVALUES()内へ入力し文字列は''で囲む
-各データーの区別は","
-テーブル名横の()省略時には自動ですべてのコラムをVALUES()内へ入力する。


--INSERT例

--すべてのデーターを入力する場合
SQL> INSERT INTO emp
  2  VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('80/12/17'), 800, NULL, 20);

1行が作成されました。


--入力したいデーターのみINSERT
SQL> INSERT INTO dept (deptno, dname)
  2  VALUES (10, 'ACCOUNTING');

1行が作成されました。


--SELECT文を使ったINSERT
SQL> INSERT INTO dept2
  2  SELECT * FROM dept;
INSERT INTO dept2


■UPDATE
 -テーブル内のデーターを修正(変更)する。
--UPDATE文法
UPDATE table_name
SET column1 = 値(修正内容), column2 = 値, ...
WHERE 条件


--UPDATE例

--変更前確認
SQL> SELECT * FROM emp;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 13-08-19        800                    20
      7499 ALLEN      SALESMAN        7698 13-08-19       1600        300         30
      7521 WARD       SALESMAN        7698 13-08-19       1250        500         30
      7566 JONES      MANAGER         7839 13-08-19       2975                    20
      7654 MARTIN     SALESMAN        7698 13-08-19       1250       1400         30
      7698 BLAKE      MANAGER         7839 13-08-19       2850                    30
      7782 CLARK      MANAGER         7839 13-08-19       2450                    10
      7788 SCOTT      ANALYST         7566 13-08-19       3000                    20
      7839 KING       PRESIDENT            13-08-19       5000                    10
      7844 TURNER     SALESMAN        7698 13-08-19       1500          0         30
      7876 ADAMS      CLERK           7788 13-08-19       1100                    20

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 13-08-19        950                    30
      7902 FORD       ANALYST         7566 13-08-19       3000                    20
      7934 MILLER     CLERK           7782 13-08-19       1300                    10

14行が選択されました。


--社員番号7902の社員の部署番号を30に修正
SQL> UPDATE emp
  2  SET deptno = 30
  3  WHERE empno = 7902;

1行が更新されました。

--部署番号20の社員たちの給与を10%UP
SQL> UPDATE emp
  2  SET sal = sal * 1.1
  3  WHERE deptno = 20;

4行が更新されました。

--すべての社員の入社日を本日に修正
SQL> UPDATE emp
  2  SET hiredate = SYSDATE;

14行が更新されました。

--変更後の確認
SQL> SELECT * FROM emp;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 13-08-19        880                    20
      7499 ALLEN      SALESMAN        7698 13-08-19       1600        300         30
      7521 WARD       SALESMAN        7698 13-08-19       1250        500         30
      7566 JONES      MANAGER         7839 13-08-19     3272.5                    20
      7654 MARTIN     SALESMAN        7698 13-08-19       1250       1400         30
      7698 BLAKE      MANAGER         7839 13-08-19       2850                    30
      7782 CLARK      MANAGER         7839 13-08-19       2450                    10
      7788 SCOTT      ANALYST         7566 13-08-19       3300                    20
      7839 KING       PRESIDENT            13-08-19       5000                    10
      7844 TURNER     SALESMAN        7698 13-08-19       1500          0         30
      7876 ADAMS      CLERK           7788 13-08-19       1210                    20

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 13-08-19        950                    30
      7902 FORD       ANALYST         7566 13-08-19       3000                    30
      7934 MILLER     CLERK           7782 13-08-19       1300                    10

14行が選択されました。

SQL>



■DELETE
 -使用しないデーターを削除する。
--DELETE文法
DELETE FROM table_name WHERE 条件


--DELETE例

--社員番号7902の社員のデーターを削除
SQL> DELETE FROM emp
  2  WHERE empno = 7902;

1行が削除されました。

--平均給与より小さい給与の社員削除
SQL> DELETE FROM emp
  2  WHERE sal < (SELECT AVG(sal) FROM emp);

8行が削除されました。

--すべての行を削除
SQL> DELETE FROM emp;

5行が削除されました。

0 件のコメント:

コメントを投稿

QLOOKアクセス解析