<데이터 입력 : INSERT문>
1. INSERT문
- 테이블에 데이터를 입력하는 DML문
INSERT INTO EMP(ENPNO,ENAME) VALUES(1000,'임베스트);
INSERT INTO 테이블명(칼럼명1,칼럼명2,...) VALUES(데이터1,데이터2,...);
* 문자열 사용시 ' ' 사용
* 모든 칼럼에 데이터 삽입시 칼럼명 생략 가능
2. SELECT문
- 데이터를 조회해서 해당 테이블에 바로 삽입
INSERT INTO DEPT_TEST
SELECT * FROM DEPT; // DEPT 테이블의 모든 데이터를 조회해 DEPT_TEST 테이블에 입력
3. Nologging 사용
- DB에 데이터를 입력하면 로그 파일에 그 정보가 기록
- Check point라는 이벤트가 발생하면 로그파일의 데이터를 데이터 파일에 저장
- Nologging 옵션은 로그파일의 기록을 최소화시켜 입력 시 성능을 최소화 시키는 방법 (Buffer Cache 라는 메모리 영역을 생략하고 기록)
ALTER TABLE DEPT NOLOGGING;
<데이터 수정 : UPDATE문>
- UPDATE문을 사용해 원하는 조건으로 데이터를 검색해 해당 데이터를 수정함 ( 조건을 입력하지 않으면 모든 데이터가 수정됨 )
UPDATE EMP
SET ENAME = '조조' // ENAME 칼럼 '조조'로 변경
WHERE EMPNO = 100; // EMPNO가 100인 경우 수행
UPDATE 테이블명 SET 변경할 값 WHERE 조건 값 ;
<데이터 삭제 : DELETE문>
- 원하는 조건을 검색해 해당행 삭제 ( 조건을 입력하지 않으면 모든 데이터가 삭제됨 )
- 용량이 초기화되는것은 아님
DELETE FROM EMP
WHERE EMPNO = 100; //empno가 100인 데이터 삭제
DELETE FROM 테이블명;
* DELETE FROM 테이블명 : 테이블의 모든 데이터를 삭제 ( 용량 감소 X )
* TRUNCATE TABLE 테이블명 : 테이블의 모든 데이터를 삭제 ( 용량 초기화 )
<데이터 조회 : SELECT문>
1. SELECT문 사용
SELECT *
FROM EMP
WHERE 사원번호 = 1000;
SELECT 조회할 칼럼 FROM 조회할 테이블 WHERE 조회할 데이터의 조건;
* SELECT ENAME || '님' FROM EMP; : ENAME 칼럼 뒤에 '님'이라는 문자를 결합
2. Order by를 사용한 정렬
- 가장 늦게 실행됨
- 대량의 데이터를 정렬하게 되면 정렬로 인한 성능 저하가 발생
- Oracle은 데이터베이스 정렬을 위해 메모리 내부에 할당된 SORT_AREA_SIZE를 사용함 (SORT_AREA_SIZE가 너무 작으면 성능저하 발생)
- 정렬 회피를 위해 인덱스를 생성할때 사용자가 원하는 형태로 오름차순 혹은 내림차순으로 생성해야함
SELECT * FROM EMP
ORDER BY ENAME ASC, SAL DESC; // ename 기준 오름차순, sal 기준 내림차순
ORDER BY 칼럼명 ASC/DESC;
* ASC : 오름차순
* DESC : 내림차순
3. Index를 사용한 정렬 회피
- 정렬은 Oracle 데이터 베이스에 부하를 주므로, 인덱스를 사용해 Order by를 회피할 수 있다.
SELECT /*+ INDEX_DESC(A) */
FROM EMP A;
SELECT /*+ INDEX_DESC(테이블명 인덱스명) */
FROM 테이블명 ;
* index_asc 힌트 : 인덱스 영역에서 오름차순으로 스캔
* index_desc 힌트 : 인덱스 영역에서 내림차순으로 스캔
4. Distinct와 Alias
SELECT DISTINCT DEPTNO
FROM EMP
ORDER BY DEPTNO;
DISTINCT 칼럼명
* 칼럼명 앞에 지정해 중복된 데이터를 한번만 조회하게 한다.
SELECT ENAME AS "이름" // ename의 별칭을 "이름"으로
FROM EMP a // EMP 테이블의 별칭을 a로
WHERE a.empno = 1000;
칼럼 AS 칼럼 별칭
* 칼럼 뒤에 AS를 붙이고 별칭을 지정한다* 테이블의 경우 띄어쓰기 후 별칭 지정 가능
'Database & Bigdata > SQLD' 카테고리의 다른 글
[SQLD] SQL 활용 - JOIN(조인) (0) | 2020.08.21 |
---|---|
[SQLD] SQL 기본 - DECODE&CASE, ROWNUM&ROWID, WITH, DCL(Data Control Language), TCL(Transaction Control Language) (0) | 2020.08.21 |
[SQLD] SQL 기본 - WHERE,GROUP,SELECT문 실행순서,형변환,내장형 함수 (0) | 2020.08.20 |
[SQLD] SQL 기본 - DDL(Data Definition Language) (0) | 2020.08.16 |
[SQLD] Docker(도커)로 Mac OS에 Oracle 설치하고 Oracle SQL Developer 설치까지 ! (2) | 2020.07.10 |
댓글