-
[한기교] SQL 활용 필기(7) - DML (INSERT, UPDATE, DELETE)비전공자 공부일기/:: DB - SQL 2020. 5. 3. 13:10
데이터 삽입과 변경
< INSERT 절 >
ㅁ 단일행 입력
: 한번에 하나의 튜플을 테이블에 입력하는 방법
INSERT INTO 테이블명 [(속성명, ..., 속성명)] VALUES (값, ..., 값)
- INTO 는 생략 가능
- 테이블명에 명시한 속성에 VALUES절에 지정한 값을 입력
- 테이블명에 속성을 명시하지 않으면 테이블 생성시 정의한 컬럼 순서와 동일한 순서로 입력함
ㅁ NULL의 입력
: 데이터를 입력하는 시점에서 해당 속성값을 모르거나, 미정일 때 사용
: NOT NULL 조건이 지정된 경우 입력이 불가능
1) 묵시적 방법
: INSERT INTO절에 해당 속성명 생략
2) 명시적 방법
: VALUES 절에 있는 속성값 대신 NULL 입력
ㅁ 서브 쿼리를 이용한 데이터 삽입
: 서브 쿼리의 결과를 테이블에 삽입
INSERT INTO 테이블 subquery (ex) INSERT INTO SAMPLETABLE SELECT * FROM EMPLOYEE WHERE DNO = 30
- 한번에 여러 튜플 삽입 가능
- 서브쿼리의 결과 집합은 INSERT 명령문에 지정된 칼럼 개수와 데이터 타입이 일치해야 함
ㅁ 질의 결과를 새로운 테이블 생성 후 저장
SELECT 컬럼명, 컬럼명, ... INTO 대상테이블 FROM 테이블 WHERE 조건
단, 오라클의 경우 아래와 같이 작성해야 함
CREATE TABLE 테이블명 AS SELECT 컬럼 리스트 FROM 테이블 [WHERE 조건]
*** 질의 결과로 만든 테이블은
1) 기존 테이블의 속성명과 타입 그대로 적용
2) NOT NULL 조건 그대로 적용
3) 다른 제약조건은 적용되지 않음
ㅁ 테이블 구조의 복사
: 구조만 복사하고 튜플들은 복사하고 싶지 않은 경우
- SELECT ~ INTO ~ 구문 사용
- WHERE 조건에 항상 거짓이 되는 조건을 기술함
---> SELECT문의 결과에 아무것도 조회되지 않음
---> 따라서 내용 없이 테이블의 구조만 복사 가능
SELECT * INTO 대상 테이블 FROM 복사할 테이블 WHERE 항상 거짓인 조건문
ㅁ 테이블의 구조 검색문
- 오라클
DESCRIBE[DESC] 테이블명
- MS SQL --- 저장 프로시저를 수행시키기 위하여 EXEC명령어가 필요
sp_help 테이블명
ㅁ VALUES 이용한 다중행 입력
: MS-SQL 2008부터는 서브쿼리가 아닌 VALUES를 이용해서도 다중행 삽입이 가능
INSERT INTO table1 VALUES (속성값들), (속성값들)
< UPDATE 구문>
ㅁ UPDATE ~ SET 키워드
UPDATE 테이블명 SET column = 값, ... [WHERE 조건] --> 생략 시 테이블의 모든 행이 수정됨
ㅁ 서브쿼리를 이용한 데이터 수정
- UPDATE문의 SET 절에서 서브 쿼리를 이용
- 다른 테이블에 저장된 데이터를 검색하여 한번에 여러 속성값을 수정할 수 있음
- SET절의 속성명은 서브 쿼리의 속성명과 달라도 됨
ㅁ 복수 속성값 변경
: 하나 이상의 속성값 한번에 변경
UPDATE 테이블명 SET 속성1=값1, 속성2=값2, ... [WHERE 조건]
< DELETE 구문 >
ㅁ DELETE문 (데이터 삭제)
: 테이블에 저장된 데이터 삭제를 위한 조작어
DELETE [FROM] 테이블 ---> 테이블 제거가 아닌, 테이블 속 튜플 삭제 [WHERE 조건] ---> 생략되면 테이블의 모든행 삭제
ㅁ 서브쿼리를 이용한 데이터 삭제
- WHERE 절에서 서브쿼리 이용
- 다른 테이블에 저장된 데이터를 검색하여 한번에 여러 행 삭제
- WHERE절의 속성명은 서브 쿼리의 속성명과 달라도 됨
'비전공자 공부일기 > :: DB - SQL' 카테고리의 다른 글
[한기교] SQL 활용 필기(9) - JOIN (0) 2020.05.04 [한기교] SQL 활용 필기(8) - 트랜잭션, TCL (0) 2020.05.03 [한기교] SQL 활용 필기(6) - 데이터 검색 (0) 2020.05.03 [한기교] SQL 활용 필기(5) - 제약조건 상세 (0) 2020.05.02 [한기교] SQL 활용 필기(4) - 데이터 구조 (0) 2020.05.02