Data base 21

쿼리 문제 실습5

--1. 직책(Job Title)이 Sales Manager인 사원들의 입사년도와 입사년도(hire_date)별 평균 급여를 출력하시오. -- 출력 시 년도를 기준으로 오름차순 정렬하시오. SELECT TO_CHAR(e.HIRE_DATE, 'YYYY') AS HIRE_DATE, AVG(e.salary) AS AVG FROM EMPLOYEES e, JOBS j WHERE e.JOB_ID = j.JOB_ID AND j.JOB_TITLE = 'Sales Manager' GROUP BY TO_CHAR(e.HIRE_DATE,'YYYY') ORDER BY TO_CHAR(e.HIRE_DATE,'YYYY') ASC ; --2. 각 도시(city)에 있는 모든 부서 직원들의 평균급여를 조회하고자 한다. -- 평균급여가 ..

Data base 2022.11.03

쿼리 문제 실습 4

-- 사용문법이 대부분 JOIN, SUB QUERY 문법위주 연습. -- 1. 최소급여를 받는 사원과 같은 부서에서 근무하는 모든 사원명, 부서명을 출력 SELECT ENAME, DNAME FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.DEPTNO = ( SELECT DEPTNO FROM EMP WHERE SAL = (SELECT MIN(SAL) FROM EMP) ); -- 2. SCOTT보다 입사일이 늦은 사원과 같은 부서에서 근무하는 사원들의 부서명, 이름, 급여를 출력 SELECT DNAME, ENAME, SAL FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.DEPTNO = ( SELECT DEPTNO FROM..

Data base 2022.11.03

쿼리 문제 실습3

-- 사용문법이 대부분 JOIN, SUB QUERY 문법위주 연습. -- 1. 업무(JOB)가 MANAGER인 사원의 이름, 부서명, 입사일을 출력 SELECT ENAME, DNAME, HIREDATE FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND JOB = 'MANAGER'; -- 2. 사원명이 WARD인 사원의 급여, 부서번호, 부서위치, 커미션을 출력 SELECT SAL, E.DEPTNO, LOC, COMM FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND ENAME = 'WARD'; -- 3. 30번 부서에 속하는 사원의 이름, 부서번호, 부서위치를 출력 SELECT ENAME, E.DEPTNO, LOC FROM EMP..

Data base 2022.11.03

쿼리 문제 실습2

-- 1. ALLEN 과 부서가 같은 사원들의 사원명, 입사일을 출력(급여 내림차순 정렬) SELECT ENAME, HIREDATE FROM EMP WHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'ALLEN') ORDER BY SAL DESC; -- 2. 가장 높은 급여를 받는 사원보다 입사일이 늦은 사원의 이름, 입사일을 출력 SELECT ename, hiredate FROM EMP WHERE hiredate > ( SELECT hiredate FROM EMP WHERE SAL = ( SELECT MAX(SAL) FROM EMP ) ); -- 3. 이름에 'T' 자가 들어가는 사원들의 급여의 합을 구하세요. (LIKE 사용) SELECT SUM(SAL) ..

Data base 2022.11.03

쿼리 문제 실습 1

-- 1. 업무(JOB)가 MANAGER 인 사원의 이름, 입사일 출력 SELECT ename, hiredate FROM EMP WHERE job = 'MANAGER'; -- 2. 사원명이 WARD 인 사원의 급여, 커미션을 출력 SELECT sal, comm FROM EMP WHERE ename = 'WARD'; -- 3. 30번 부서에 속하는 사원의 이름, 부서번호를 출력 SELECT ename, deptno FROM EMP WHERE deptno = 30; -- 4-1. 급여가 1250을 초과, 3000이하인 사원의 이름, 급여를 출력 SELECT ename, sal FROM EMP WHERE sal > 1250 AND sal '81/06/09' ORDER BY hiredate ASC; -- 8. ..

Data base 2022.11.03

SELECT

-- SELECT /* SELECT * 혹은 컬럼 FROM [스키마.]테이블명 혹은 [스키마.]뷰명 WHERE 조건 ORDER BY 컬럼; 출력되는 데이터의 개수에는 영향을 주지않는다. * :모든 컬럼명을 의미하는 특수문자 *는 개발코드에서는 사용하지 않느다. */ -- 질문내용? 사원 테이블에서 급여가 5000이 넘는 사원번호와 사원명을 조회 SELECT employee_id, emp_name FROM employees WHERE salary > 5000; SELECT emp_name AS 사원이름, employee_id AS 사원번호 FROM employees WHERE salary > 5000; SELECT employee_id, SALARY, EMP_NAME, employee_id, SALARY,..

Data base 2022.10.17

인덱스

-- 인덱스 /* 책.1)차례 2)찾아보기 목적 : SELECT문의 검색(조회) 속도의 성능향상 인덱스 생성 방법 : 컬럼명의 값을 가지고 인덱스 생성. - 자동생성 : 테이블에 PRIMARY KEY, UNIQUE 제약조건 적용. ( 인덱스명이 제약조건객체이름으로 생성되므로, 인덱스명을 사용 할 경우에는 제약조건객체이름을 수동으로 생성하면 관리가 편해진다. - 수동생성 인덱스 특징? - 컬럼에 인덱스가 없을 경우 : 컬럼에 데이터 조회시 전체테이블 스캔이 진행된다. 예> SELECT * FROM 테이블명 WHERE 컬럼명 = 값; 인덱스 생성지침 ❶ 일반적으로 테이블 전체 로우(레코드) 수의 15%이하의 데이터를 조회할 때 인덱스를 생성한다 물론 15%는 정해진 것은 아니며 테이블 건수, 데이터 분포 정..

Data base 2022.10.17

테이블 복사

테이블 복사 /* 테이블 복사 - 제약조건 복사안됨. 프로젝트를 하다 보면 기존에 있는 테이블을 복사해서 사용할 경우가 발생한다. 예를 들어, 사용하고 있는 기존 테이블의 테이블의 구조를 자주 변경한다면 미리 복사해 만들어 테스트해보거나, 테이블 데이터 자체를 백업용으로 만들어 놓을 수도 있다. CREATE TABLE [스키마.]테이블명 AS SELECT 컬럼1, 컬럼2, ... FROM 복사할 테이블명; */ CREATE TABLE ex2_9_1 AS SELECT * FROM ex2_9; CREATE TABLE ex2_9_bak AS SELECT * FROM ex2_9; SELECT * FROM ex2_9_bak; INSERT INTO ex2_9 VALUES(100, 'MALE'); -- 제약조건으로 ..

Data base 2022.10.17

예제 문제

--1. 테이블명 : STAR_WARS(영화 정보) -- 칼럼 : EPISODE_ID : 에피소드 아이디, 숫자 타입(5), 기본키 -- EPISODE_NAME : 에피소드에 따른 영화 제목, 가변 문자 타입(50) -- OPEN_YEAR : 개봉 연도, 숫자 타입(4) CREATE TABLE STAR_WARS( EPISODE_ID NUMBER(5) CONSTRAINT SW_EPISODE_ID_PK PRIMARY KEY, EPISODE_NAME VARCHAR2(50), OPEN_YEAR NUMBER(4) ); --2. 테이블명 : characters(등장인물) -- 칼럼 : character_id : 등장인물 아이디, 숫자 타입(5), 기본키 -- character_name : 등장인물 이름, 가변 문자..

Data base 2022.10.14