준비)
1) INSERT : 테이블에 새로운 행 추가
- 테이블에 새로운 데이터 입력하기위해 사용하는 데이터 조작어
INSERT INTO TABLE_NAME
(COLUMN_NAME , ..)
VALUES(COLUMN_VALUE, ...);
- 칼럼명에 기술된 목록의 수와 VALUES 다음에 나오는 괄호에 기술한 값의 개수가 같아야 함
INSERT INTO DEPT01
(DEPTNO,DNAME,LOC) -> 칼럼명에 기술된 목록
VALUES(10 , 'ABC','DEF') -> VALUES 에 기술된 값의 개수
2) 칼럼명 생략
- 모든 칼럼에 모두 자료를 입력하는 경우 칼롬 목록 기술 안해도 됨
INSERT INTO DEPT01
VALUES ( 30,'HELLO','BYE')
//문자열 '따움표'
3) NULL 값 삽입
- 암시적 : 칼럼명 리스트에 칼럼을 생략
INSERT INTO DEPT01
(DEPTNO , DNAME)
VALUES (40,'NAME);
//정확히 알고 있는 두가지 항목만 기술
- 명시적 : VALUES 리스트에 명시적으로 NULL 입력
INSERT INTO DEPT01
VALUES (40, 'ABC' , NULL);
- DESC 명령 실행 -> 테이블 컬럼의 NULL 값 허용 여부 파악 위해
4) 서브 쿼리로 데이터 삽입
- VALUES 절 사용 대신에 서브리 이용
- 여러 행을 복사해서 다른 테이블에 삽입 가능
INSERT INTO DEPT02
SELECT * FROM DEPT;
3. UPDATE : 테이블의 내용 수정
- 기존의 행을 수정
- WHERE 절을 이용해 어떤 행의 데이터 수정 하는지 명시
UPDATE TALBE_NAME
SET COLUMN_NAME1 = VALUE1 , COLUMN_NAME2= VALUE2 , ..
WHERE CONDITIONS; // 어떤 행의 데이터 수정하는지 명시
1) 테이블의 모든 행 변경
모든 사원의 부서번호를 30번으로 수정
UPDATE EMP01
SET DEPTNO = 30;
2) 테이블 특정 행만 변경
부서번호가 10번인 사원의 부서번호를 30번으로 수정
UPDATE EMP01
SET DEPTNO = 30;
WHERE DEPTNO = 10; //변경할 행 특정시키기
3) 테이블에서 2개 이상의 칼럼 값 변경
- 기존 SET 절에 콤마 추가하고 칼럼 값을 추가 기술
SMITH 사원의 부서번호는 20번으로, 직급은 MANAGER로 한꺼번에 수정
UPDATE EMP01
SET DEPTNO = 20, JOB = 'MANAGER'
WHERE ENAME = 'SMITH';
4) 서브 쿼리를 이용한 데이터 수정
- 다른 테이블에 저장된 데이터로 해당 컬럼 값 변경 가능
20번 부서의 지역명을 40번 부서의 지역명으로 변경하기 이해서 서브 쿼리문을 사용
UPDATE DEPT01
SET LOC = (SELECT LOC
FROM DEPT01
WHERE DEPTNO = 40)
WHERE DEPNO = 20;
(2개 이상일떼)
형식 1)
UPDATE TALBE_NAME
SET COLUMN_NAME1 = (SUB_QUEARY1),
COLUMN_NAME2 = (SUB_QUEARY2) , ..
WHERE 조건
형식 2) (더 편리)
UPDATE TALBE_NAME
SET (COLUMN_NAME1 , COLIMN_NAME2 ,..)
= (SUB_QUERY)
WHERE 조건
***
부서분호가 20인 부서의 부서명과 지역명을 부서번호가 40인 부서와 동일하게 변경
UPDATE DEPT01
SET (DNAME. LOC) = (SELECT DNAME, LOC
FROM DEPT
WHERE DEPTNO = 40)
WHERE DEPTNO=20;
4. DELETE : 테이블에 행 삭제
DELETE FROM TALBE_NAME
WHERE CONDITIONS;
- WHERE 절 사용해 특정 행 삭제
- WHERE 사용 안할시 전체 삭제 됨
부서 테이블의 모든 행 삭제
DELETE FROM DEPT01;
부서 테이블에서 30번 부서만 삭제
DELETE FROMD DEPT01
WHERE DEPTNO=30;
-서브 쿼리를 이용한 데이터 삭제
***
사원 테이블에서 부서명이 SALES인 사원을 모두 삭제
DELETE FROM EMP01
WHERE DEPTNO = (SELECT DEPTNO
FROM DEPT
WHERE DNAME = 'SALES');
//부서명은 사원 테이블에 존재 X -> 따라서 부서 테이블 참조해 부서번호를 알아야됨
'SQL' 카테고리의 다른 글
데이터 무결성을 위한 제약 조건 (0) | 2023.12.19 |
---|---|
DDL : 테이블 구조 생성,수정,삭제 (0) | 2023.12.19 |
서브쿼리 (0) | 2023.12.19 |
데이터베이스 개체 설계도 (0) | 2023.10.19 |
함수 (0) | 2023.10.19 |