개발/OracleDB

[ORACLE/SQL] 테이블 관련 문제 정리

윤_ve 2021. 4. 6. 14:42

1. STUDENT 테이블을 조회하여 이름, 주민번호, 부서번호 1, 성별 몸무게와 부서번호1과 성별로 몸무게가 많은 순으로 누적 몸무게를 구하세요.(단, 성별은 주민번호에서 7번째 자리가 1이면 'M'이고, 2이면 'F'이다.)

 

문제 풀이

case when 사용해서 조건식

sum over 함수로 누적합계를 구한 뒤 부서번호 올림차순, 몸무게 내림차순으로 order by 하면 된다

 

실행 결과

 

 


2. EMP2 테이블을 조회하여 사원명, 전화번호, 급여, 지역별 급여 합계를 구하고 각 사원의 급여가 해당 지역별 급여 합계에서 차지하는 비율을 출력하세요

 

 

문제풀이

 

 

 

 

실행결과

 

 

 


 

3. PROFESSOR 테이블에서 PROFNO, NAME, EMAIL 컬럼만 가져와서 아래 그림과 같이 PROFESSOR3 테이블을 생성하는 쿼리를 쓰세요.

 

 

문제풀이

 

 

CREATE TABLE 테이블명 AS SELECT 컬럼명 FROM 참조할 테이블명;

 

 

 

실행 결과

 

 

SELECT * FROM PROFESSOR3;를 사용해서 테이블을 조회해본다.

 


 

4. 위에서 만든 PROFESSOR3테이블에 CHAR(1) 타입을 가진 CARD_YN 컬럼을 추가하는 쿼리를 쓰세요. 단 해당 컬럼이 추가될 때 기본값으로 'N'이 자동으로 입력 되도록 하세요.

 

 

 

문제 풀이

 

ALTER TABLE 테이블명 ADD 컬럼명 형식 조건;

 

 

 

실행 결과

 

새로운 컬럼이 추가되었음.

 

 


5. PROFESSOR3테이블과 동일한 구조를 가진 테이블 PROFESSOR4를 만드는데 구조만 가져오고 데이터는 가져오지 않도록 하는 쿼리를 작성하시오.

 

 

 

문제 풀이

CREATE TABLE 테이블명 AS SELECT 컬럼명 FROM 참조할 테이블명 WHERE 거짓조건 ;

 

 

 

실행 결과

 

구조만 복사하고 데이터는 복사하지 않았음.

 


6. PROFESSOR3 테이블의 CARD_YN 컬럼 이름을 CHECK_CARD_YN으로 변경하는 쿼리를 쓰세요

 

문제 풀이

 

 

ALTER TABLE 테이블명 RENAME COLUMN 변경 전 컬럼명 TO 변경 후 컬럼명;

 

 

 

실행 결과