archive
[SQLD] DML (Data Manipulation Language) 사용 본문
1) INSERT문
INSERT문은 테이블에 데이터를 입력하는 DML문이다
EMP 테이블에 데이터를 삽입하려면 테이블명, 칼럼명, 데이터 순으로 입력하면 된다.
입력을 원하는 테이블명을 지정하고 괄호 안에 입력을 원하는 칼럼명을 지정한 뒤, EMP테이블에 입력될 데이터를 VALUES 키워드 뒤에 괄호 안에 작성한다
데이터 입력 시 문자열을 입력하는 경우에는 작은 따옴표를 사용해야 한다.
특정 테이블의 모든 칼럼에 대한 데이터를 삽입하는 경우에는 칼럼 명을 생략할 수 있다.
INSERT문을 실행하였다고 데이터 파일이 저장되는 것은 아니다. 최종적으로 데이터를 저장하려면 TCL문인 Commit을 실행해야 한다.
만약 Auto-Commit으로 설정된 경우에는 Commit을 실행하지 않아도 바로 저장된다.
SELECT문을 사용하여 데이터를 조회해서 해당 테이블에 바로 삽입할 수 있다.
단, 입력이 되는 테이블은 사전에 생성되어 있어야 한다.
데이터베이스에 데이터를 입력하면 로그파일(Log File)에 그 정보를 기록한다
Check Point라는 이벤트가 발생하면 로그 파일의 데이터를 데이터 파일에 저장한다.
Nologging 옵션은 로그 파일의 기록을 최소화시켜서 입력 시 성능을 향상시키는 방법이다
Nologging 옵션은 Buffer Cache 라는 메모리 영역을 생략하고 기록한다
2) UPDATE 문
입력된 데이터의 값을 수정하려면 UPDATE문을 사용하여 원하는 조건으로 데이터를 검색해서 해당 데이터를 수정할 수 있다.
만약 UPDATE문에 조건문을 입력하지 않으면 모든 데이터가 수정되기 때문에 유의해야한다.
UPDATE문에서 주의사항은 데이터를 수정할 때 조건절에서 검색되는 행 수만큼 수정된다는 것이다
위의 예에서 EMPNO가 100번인 직원이 두 명이라면 두 명의 ENAME은 모두 '조조'로 수정이 되게 된다
3) DELETE문
DELETE문은 원하는 조건을 검색해서 조건에 해당하는 행을 삭제한다
DELETE문에 조건문을 입력하지 않으면 모든 데이터가 삭제된다, 즉 테이블에 있는 모든 데이터가 삭제되는 것
DELETE문으로 데이터를 삭제한다고 해서 테이블의 용량이 초기화되지는 않는다
테이블의 용량의 초기화와 동시에 데이터 삭제를 원한다면 DELETE 명령어가 아니라 TRUNCATE TABLE 키워드를 사용한다.
4) SELECT문
(데이터 조회) 테이블에 입력된 데이터를 조회하기 위해서 SELECT문을 사용, 조건을 삽입하여 특정 칼럼이나 특정 행만을 조회할 수 있다.
사용 예제 | 설명 |
SELECT EMPNO, ENAME FROM EMP; | EMP 테이블의 모든 행에서 EMPNO와 ENAME 칼럼만 출력한다. |
SELECT * FROM EMP; | EMP 테이블의 모든 칼럼과 모든행을 조회한다 |
SELECT ENAME ||'님' FROM EMP; | EMP 테이블의 모든 행에서 ENAME칼럼을 조회한다 단 ENAME 칼럼 뒤에 '님'이라는 문자를 결합한다 ex) 임베스트 님이라고 출력된다. |
(데이터 정렬) SELECT문을 사용할 때 ORDER BY을 같이 사용하여 오름차순 혹은 내림차순으로 출력하도록 포맷팅이 가능하다. -> 회피하는 것이 좋
ORDER BY가 정렬을 하는 시점은 모든 실행이 끝난 뒤 데이터를 출력하기 바로 전이다.
ORDER BY는 정렬을 하기 때문에 데이터 베이스 메모리를 많이 사용하게 됨, 즉, 대량의 데이터를 정렬하게 되면 정렬로 인한 성능 저하가 필연적으로 발생하게 된다.
정렬을 회피하기 위해서 인덱스를 생성할 때 사용자가 원하는 형태로 오름차순 혹은 내림차순으로 생성해야한다.
특별한 지정이 없으면 ORDERBY의 디폴트값은 오름차순이다
오름차순 지정 키워드는 ASC, 내림차순 지정 키워든 DESC이다
(INDEX를 사용한 정렬 회피)
정렬은 Oracle 데이터 베이스에 부하를 주기 때문에 인덱스를 사용해서 Order By를 회피할 수 있다
5) DISTINCT와 ALIAS
DISTINCT문은 칼럼명 앞에 지정하여 중복된 데이터를 한 번만 조회하게 한다
DISTINCT를 사용하면 DEPTNO 값이 중복되어 출력되지 않고 배타적으로 조회된다, 즉 값 하나 당 한 번만 출력되는 파이썬 집합 함수 같은 것
ALIAS는 테이블명이나 칼럼명이 너무 길어서 간략하게 할 때 사용
위의 코드는 칼럼 명을 '이름'으로 출력되게 한다
EMP 테이블 명 대신에 'A'를 사용하고 이를 테이블명처럼 사용
'Data > SQLD 필기 준비' 카테고리의 다른 글
[SQLD] 조인 (Join) (0) | 2023.11.14 |
---|---|
[SQLD] DCL 사용과 TCL 사용 (0) | 2023.11.12 |
[SQLD] WHERE문 사용 및 GROUP 연산 (0) | 2023.11.12 |
[SQLD] DDL (Data Definition Language) 사용 (0) | 2023.11.11 |