티스토리 뷰

Backend

SQL(Oracle) 기초 팁

Jenny_yoon 2023. 4. 14. 18:03
728x90
반응형

1. SELECT LENGTH(colum1) FROM table1

- 컬럼의 길이 반환

- 컬럼값이 abc인경우. CHAR(10)이면 결과값은 10. varchar(10)이면 결과값은 3.

 

2. 날짜 데이터 타입 종류 (DATE, TIMESTAMP)

- DATE, TIMESTAMP의 차이점 : 연도/월/일/시/분/초는 DATE와 동일하지만, TIMESTAMP은 초의 밀리초까지 반환가능하다.

- TIMESTAMP .예시 15/03/04 00:26:28.5760000

 

3. 제약조건

- 데이터베이스 객체중 하나로 데이터 무결성을 보장하기 위한것이다.

- 제약조건 종류 : NOT NULL, UNIQUE, 기본키(PRIMARY KEY), 왜래키, CHECK 등

 

4. UNIQUE

- UNIQUE 비교대상에서 NULL은 제외된다. (NULL 허용 컬럼과 NOT NULL 컬럼의 값은 중복되도 된다는 뜻)

 

5. 기본키(PRIMARY KEY)

- UNIQUE와 NOT NULL 속성을 동시에 갖고있다.

- 테이블당 1개의 기본키만 생성가능하다.

- 예시. 사번을 가진 직원이 퇴사후 재입사한 경우 사번이 2개가 생길수 있다. 대신 예전사번이 있는 로우의 퇴사일자 컬럼에 데이터가 입력된다.

- 테이블 만들땐 보통 기본키 생성은 필수다.

 

6. 외래키 

- 다른 테이블에서 왜래키로 '부서'테이블의 '부서정보'를 사용중인경우, 해당 '부서정보' 삭제를 시도한다면 오류가 발생해 데이터삭제를 막아 참조무결성이 보장된다.

- 반드시 참조하는 테이블이 먼저 생성되어야 하며, 참조키가 참조 테이블의 기본키로 만들어져 있어야한다. 

 

7. GROUP BY

- WHERE와 ORDER BY 사이에 위치한다.

- 예시. 

SELECT department_id 
FROM table1 
GROUP BY department_id 
ORDER BY department_id;

- SELECT 리스트에 있는 컬럼명은 모두 GROUP BY절에 명시해야한다. (집계함수 제외)

- 오류예시.

SELECT department_id 
FROM table1 
GROUP BY department_id 
ORDER BY department_id, department_no;

ㄴ 정답.

SELECT department_id, department_no 
FROM table1 
GROUP BY department_id 
ORDER BY department_id, department_no;

 

7. HAVING 

- GROUP BY한 결과를 대상으로 다시 필터를 거는 역할이다.

- GROUP BY절 다음에 위치한다.

- 예시.

SELECT department_id, department_no, SUM(total_salary) 
FROM table1 
WHERE department_no > 100 
GROUP BY department_id
HAVING SUM(total_salary)>1000000
ORDER BY department_id, department_no;
728x90
반응형

'Backend' 카테고리의 다른 글

리눅스 사용해보기 - Virtual Box  (0) 2023.03.21
JSP & & Servlet & HTML 의 차이 / 사용법  (0) 2023.01.29
리눅스(Linux) - 명령어 모음  (0) 2023.01.28
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday