반응형
Backend/db2018. 8. 27. 00:25Sequence Number를 추가해보자.

우리는 DB를 설계할 때 , 자동으로 증가하는 값이 있으면 어떨까 라는 생각을 하게 된다.나 또한 그랬다.그래서 SEQUENCE를 어떻게 설정하고 사용하는지 알아 보자. 만약 EMP테이블 내에 EMPNO NUMBER(4),ENAME VARCHAR(20),이렇게 정말간단한 테이블이 있다고 가정해 보자 EMPNO는 사원번호 이며 4자리 수를 갖는다.ENAME은 사원명이고 , 20byte의 자리 공간을 할당하는 저장소이다. 우리는 EMPNO를 PRIMARY KEY로 설정할 것이고,SEQUENCE를 설정해 줄 것이다. CREATE SEQUENCE SC_EMPNO START WIDTH 1000 INCREMENT BY 1 ; --> 이렇게 해준 이유는 SEQUENCE 를 하나 만들어 줄 것인데 , 1000번 부터 ..

Backend/db2018. 8. 20. 22:35뷰,시퀀스

7. 뷰 (VIEW) : 가상 테이블 ` 데이터 보안 `복잡한 쿼리의 사용빈도가 높은 경우 CREATE OR REPLACE VIEW v_emp AS select empno, ename, deptno from emp; [ View의 장점 ]- View는 데이터베이스의 선택적인 내용을 보여줄 수 있기 때문에 데이터베이스에 대한 액세스를 제한한다- 조인을 한 것처럼 여러 테이블에 대한 데이터를 View를 통해 볼 수 있다- 한 개의 View로 여러 테이블에 대한 데이터를 검색한다- 특정 기준에 따른 사용자 별로 다른 데이터를 액세스 할 수 있다 (1) updatable 뷰 CREATE OR REPLACE VIEW v_emp AS select empno, ename, deptno from emp; *뷰에 데이터..

Backend/db2018. 8. 20. 21:56서브쿼리

서브쿼리 1. 하나의 SQL문장 내부에 존재하는 또 다른 SELECT 문장 2. DML ( SELECT , INSERT , UPDATE , DELETE ) 에 사용가능 # 서브쿼리 사용시 1. 서브쿼리는 ( ) 로 묶는다. 2. 서브쿼리는 연산자의 오른쪽에 위치시킨다. 3. 단일 행인 경우 비교 연산자 가능 ( > , >= , < , 복수 행인 경우 IN , NOT IN , ANY , EXISTS ㄱ. IN : 반환된 목록의 각각과 비교 ㄴ. ANY : 비교연산자와 반환된 목록의 각각과 비교 ㄷ. ALL : 비교연산자와 반환된 모든 목록과 비교 ㄹ. EXISTS : 적어도 한 개의 행을 리턴하면 true , 그렇지 않으면 false 5. ORDET BY에선 사용 못한다.

Backend/db2018. 8. 20. 21:49조인

5. 조인 -하나 이상의 테이블로부터 데이터를 검색할 때 사원테이블(emp)에 사원명과 부서테이블(dept)에 그 사원의 부서명을 출력 1. 두 테이블만 기술 =>Cartesian Product select ename, dname from emp, dept where emp.deptno = dept.deptno; 결과 : 14행 (1) 부서번호로 검색하고자 한다면 두 테이블에 있기에 어느 테이블에서 가져올지 지정 (2)매 컬럼마다 테이블이름 지정 대신 테이블 alias로 대신 *자바에서 불러올 때 단순한 컬럼명으로만 부르기에 alias 지정 필수 ! (3)부서 없이 본인 데이터를 하나 입력한다. (deptno 없이 emp 테이블에 입력) *다시 dept 테이블과 조인하여 확인 -> 입력된데이터 출력 안됨..

Backend/db2018. 8. 19. 18:43그룹

그룹 ( 1 ) ALL , DISTINCT SELECT all job FROM emp; SELECT distinct job FROM emp; ( 2 ) 집계함수 1. AVG : 평균 2. COUNT : 행의 개수 3. SUM : 합계 4. MIN / MAX : 최소값, 최대값 5. VARIANCE : 분산값 6. STDDEV : 표준편차값 # 함수 인자에 DISTINCT를 이용하면 중복되지 않는 값으로 계싼 ( 3 ) 데이터 그룹 1. SELECT columns FROM table_name WHERE condition GROUP BY group_by_expression HAVING condition ORDER BY column; # 출력 컬럼은 그룹핑하는 컬럼과 집계함수만 가능 # GROUP BY 절에 ..

Backend/db2018. 8. 19. 18:20조건함수_연습문제

-- 부서번호가 10이면영업부, 20이면 관리부, 30이면 IT부 그 외는 기술부로 출력 SELECT CASE DEPTNO WHEN 10 THEN '영업부' WHEN 20 THEN '관리부' WHEN 30 THEN 'IT부' ELSE '기술부' END as ALLOB FROM EMP; -- 업무(job)이 analyst이면 급여 증가가 10%이고 clerk이면 15%, manager이면 20%인 경우 사원번호, 사원명, 업무, 급여, 증가한급여를 출력 SELECT EMPNO, ENAME , SAL , job , CASE job WHEN 'ANALYST' THEN SAL*1.0 WHEN 'CLERK' THEN SAL *1.5 WHEN 'MANAGER' THEN SAL*2.0 END as ggg FROM e..

반응형
image