SQL 연습

CODEDRAGON Development/Database

반응형


 

 

1

부서(DEPTNO) 평균 급여(SAL) 400만원 이상인 부서 중에서 부서의 부서번호(deptno), 평균급여, 최소급여액, 최대급여액을 구하라. (사원테이블 구조는 아래와 같다.)

EMP TABLE

PK

COLUMN

DATA_TYPE

PK

EMPNO

NUMBER(4)

 

ENAME

VARCHAR2(10)

 

SAL

NUMBER(9)

 

DEPTNO

NUMBER(2)

 

SELECT DEPTNO, AVG(SAL), MIN(SAL), MAX(SAL) FROM EMP

GROUP BY DEPTNO HAVING AVG(SAL) >= 4000000;

 

 

 

생성된 테이블(edulevel) 작업용 임시 데이터 생성(최소 3 이상의 자료 생성)

- 자료 생성시 반드시 테스트: (자료 생성전, 자료생성, 자료생성후의 테스트가 이루어질 있도록 과정별 쿼리 작성및 확인후 커밋)

 

작업용 데이터(임시) 생성 테스트(예시)

데이터 생성

select count(*) from edu_level;

insert into edu_level(컬럼1, 컬럼2, 컬럼3) values(데이터1, 데이터2, 데이터3);

select count(*) from edu_level;

select 컬럼1, 컬럼2, 컬럼3 from edu_level where 컬럼1=데이터1 and 컬럼2=데이터2 and 컬럼3 = 데이터3;

생성작업에 대한 테스트

①과 ③의 결과에 대한 비교를 통한 검증 테스트

④에 대한 결과 테스트

참고사항 : 작업은 쿼리문을 통한 가장 기초적인 생성과 테스트 작업이며 이를 프로그래밍의 단위테스트를 통하여 자동화할 있으며 종합적인 프로젝트 진행시에 이를 적용하여 세부적인 테스트가 이루어질 있도록 한다.

 

 

 

인덱스 적용전의 데이터 조회 결과 인덱스 적용 후의 데이터 결과에 대한 성능 분석

 

기초적인 성능 분석 index 이해

인덱스 생성 조회 결과에 대한 응답시간 : xxxxxx(단위:nano)

인덱스 생성 조회 결과에 대한 응답시간 : xxxxxx(단위:nano)

①과 ②의 응답시간에 대한 결과 비교

 

 

4

테이블 EMPLOYEE 복합 컬럼(AGE, SALARY, NAME) 인덱스가 정의되어 있다.

SELECT 으로 인덱스를 이용하여 효율적으로 수행하는 쿼리문 작성하시오.

 

SELECT AGE, SALARY FROM EMPLOYEE WHERE AGE=30;

 

 

 

5

데이터의 입력과 수정, 삭제에 대한 문법 형식을 기술하고 예시문을 작성하시오

 

데이터 입력 구문

형식

INSERT INTO 테이블명 [(컬럼명1, 컬럼명2.....)] [VALUES (데이터1, 데이터2...) ];

예시문

INSERT INTO dept (empno, ename) values(60, '총무부');

 

데이터 수정 구문

형식

UPDATE 테이블명 SET 컬럼명 = 변경데이터 [, 컬럼명 = 변경데이터....] [WHERE 변경대상조건구문] ;

예시문

UPDATE dept SET ename='총무' WHERE empno=60;

 

데이터 삭제 구문

형식

DELETE [FROM] 테이블명 [WHERE 삭제대상조건구문];

예시문

DELETE FROM dept WHERE empno > 60;

 

 

 

 

 

6

1.부서(DEPTNO) 평균 급여(SAL) 400만원 이상인 부서 중에서 부서의 부서번호(deptno), 평균급여, 최소급여액, 최대급여액을 구하라. (사원테이블 구조는 아래와 같다.)

 

EMP TABLE

PK

COLUMN

DATA_TYPE

PK

EMPNO

NUMBER(4)

 

ENAME

VARCHAR2(10)

 

SAL

NUMBER(9)

 

DEPTNO

NUMBER(2)

 

SELECT DEPTNO, AVG(SAL), MIN(SAL), MAX(SAL) FROM EMP

GROUP BY DEPTNO HAVING AVG(SAL) >= 4000000;

 

 

 

2. 생성된 테이블(edulevel) 작업용 임시 데이터 생성(최소 3 이상의 자료 생성)

- 자료 생성시 반드시 테스트

(자료 생성전, 자료생성, 자료생성후의 테스트가 이루어질 있도록 과정별 쿼리 작성및 확인후 커밋)

 

작업용 데이터(임시) 생성 테스트(예시)

데이터 생성

select count(*) from edu_level;

insert into edu_level(컬럼1, 컬럼2, 컬럼3) values(데이터1, 데이터2, 데이터3);

select count(*) from edu_level;

select 컬럼1, 컬럼2, 컬럼3 from edu_level where 컬럼1=데이터1 and 컬럼2=데이터2 and 컬럼3 = 데이터3;

 

생성작업에 대한 테스트

①과 ③의 결과에 대한 비교를 통한 검증 테스트

④에 대한 결과 테스트

참고사항 : 작업은 쿼리문을 통한 가장 기초적인 생성과 테스트 작업이며 이를 프로그래밍의 단위테스트를 통하여 자동화할 있으며 종합적인 프로젝트 진행시에 이를 적용하여 세부적인 테스트가 이루어질 있도록 한다.

 

 

 

3. 인덱스 적용전의 데이터 조회 결과 인덱스 적용 후의 데이터 결과에 대한 성능 분석

 

기초적인 성능 분석 index 이해

인덱스 생성 조회 결과에 대한 응답시간 : xxxxxx(단위:nano)

인덱스 생성 조회 결과에 대한 응답시간 : xxxxxx(단위:nano)

①과 ②의 응답시간에 대한 결과 비교