본문 바로가기

database/oracle

(23)
oracle 웹에서 확인하기 localhost:8080/apex SQL -> SQL 명령 코드를 입력하고 실행버튼을 누르면 표를 확인할 수 있다.
11. oracle (LEAD, LAG) 특정 값의 위, 아래 값을 구하고 싶으면 LEAD와 LAG을 사용한다. LEAD (칼럼명, 숫자, 디폴트값) LAG(칼럼명, 숫자, 디폴트값) sal 을 기준으로 오름차순으로 표시한 상태이다. LEAD, LAG 함수를 사용해서 이전 급여와 다음 급여의 값을 구했다. 1은 한칸 앞선 수치를 표시해달라는 뜻이고 0은 만약 그 값이 없으면 디폴트 값은 0으로 해달라는 의미이다. 이후 AS로 해당 칼럼의 이름을 간결하게 변경하였다. 다른 칼럼도 가능하다.
10. 서브쿼리(단일 행, 다중 행, 예제) 단일행 서브쿼리 서브쿼리의 실행결과가 하나의 칼럼과 하나의 행만을 리턴해주는 쿼리 (하나의 데이터만 리턴해주는 쿼리) 복수행 서브쿼리 서브쿼리의 실행결과가 하나의 칼럼과 여러개의 행을 리턴해주는 쿼리 (여러개의 데이터만 리턴해주는 쿼리) SELECT 문 안에 SELECT 문이 추가로 들어갈 수 있다. 존스가 근무하는 부서의 이름을 출력해보자. 서브쿼리가 메인쿼리보다 실행이 빨리된다. 스미스가 근무하는 부서의 이름을 출력해보자. 'ALLEN' 과 같은 부서에서 근무하는 사원의 이름과 부서의 번호를 출력해 보세요. 'ALLEN' 과 동일한 직책(job) 을 가진 사원의 사번과 이름, 직책을 출력해 보세요. 'ALLEN' 의 급여와 동일하거나 더 많이 받는 사원의 이름과 급여를 출력해 보세요. 'DALLAS'..
oracle 복습 SELECT ename, dname, loc FROM emp, dept 만약 이런 식을 진행하면 가능한 모든 경우가 나오기 때문에 48개가 나온다. SELECT ename, dname, loc FROM emp, dept WHERE emp.deptno = dept.deptno 여기서 WHERE을 사용함으로써 원하는 row만 추릴 수 있다. (12줄로 줄여졌다.) SELECT ename, dname, loc FROM emp, dept WHERE emp.deptno = dept.deptno AND sal >= 2000 여기서 AND로 조건을 추가했다. 편집은 ED로 했다 SELECT ename, dname, loc FROM emp INNER JOIN dept ON emp.deptno=dept.deptno WH..
oracle quiz JOIN SELECT 칼럼명1,칼럼명2... FROM 테이블명1, 테이블명2... WHERE JOIN 조건 AND 다른 조건 ... 1. emp 테이블과 dept 테이블을 조인하여 부서번호,부서명,이름,급여 를 출력해 보세요! SQL>SELECT e.deptno, d.dname, e.ename, e.sal FROM emp e, dept d WHERE e.deptno = d.deptno; SQL>SELECT DEPTNO, DNAME, ENAME,SAL FROM emp INNER JOIN dept USING(deptno); 2. 사원의 이름이 'ALLEN' 인 사원의 부서명을 출력해보세요. SQL>SELECT e.ename, d.dname FROM emp e, dept d WHERE e.deptno = d...
9. oracle(JOIN) https://tragramming.tistory.com/74 https://pearlluck.tistory.com/46 https://gent.tistory.com/469 JOIN 하나의 테이블로 원하는 칼럼정보를 참조 할수 없는 경우 관련된 테이블을 논리적으로 결합하여 원하는 칼럼 정보를 참조하는 방법 을 JOIN 이라고 한다. 형식 SELECT 칼럼명1,칼럼명2... FROM 테이블명1, 테이블명2... WHERE JOIN 조건 AND 다른 조건 ex) EMP 테이블의 모든 사원들의 이름,부서번호,부서명을 출력해 보세요. SQL>SELECT ename, emp.deptno, dname FROM emp,dept WHERE emp.deptno = dept.deptno ; 급여가 3000 에서 5000 ..
8. oracle (복수행 함수, GROUP BY, HAVING) 복수행 함수 여러개의 row 당 하나의 결과값을 반환하는 함수. COUNT(칼럼명) 해당 칼럼이 존재하는 ROW 의 갯수를 반환한다. 단, 저장된 데이터가 NULL 인 칼럼은 세지 않는다. SQL>SELECT COUNT(ename) FROM emp; SQL>SELECT COUNT(comm) FROM emp; SQL>SELECT COUNT(*) FROM emp ; SUM(칼럼명) 해당 칼럼의 값을 모두 더한 값을 리턴한다. SQL>SELECT SUM(sal) FROM emp; AVG(칼럼명) 해당 칼럼의 값을 모든값을 더한후 ROW 의 갯수로 나눈 평균값을 리턴한다. 단 NULL 칼럼은 제외된다. SQL>SELECT AVG(sal) FROM emp; SQL>SELECT AVG(comm) FROM emp; ..
7. oracle (단일행 함수, 숫자 함수, 날짜 함수, 변환함수) 숫자함수 ABS(숫자) 숫자의 절대값을 반환한다. SQL>SELECT ABS(-10) FROM DUAL; CEIL(소수점이 있는 수) 파라미터 값보다 같거나 가장 큰 정수를 반환(올림) SQL>SELECT CEIL(3.1234) FROM DUAL; SQL>SELECT CEIL(5.9999) FROM DUAL; FLOOR(소수점이 있는 수) 파라미터 값보다 같거나 가장 작은 정수반환(내림) SQL>SELECT FLOOR(3.2241) FROM DUAL; SQL>SELECT FLOOR(2.888829) FROM DUAL; ROUND(숫자,자리수) 숫자를 자리수+1 번째 위치에서 반올림한다. SQL>SELECT ROUND(3.22645, 2) FROM DUAL; SQL>SELECT ROUND(5.2345, 3..