강의노트/sql

관련 글 7
JOIN
JOIN >>>> 카타시안곱 " x "같은 컬럼이 있으면 곱함....(공통점이 존재해야함)SELECT * FROM department, employee; >>>> 4X14 >>>공통점 dno EQUAL JOIN >>>> WHERE절에 " = "SELECT * FROM department, employee WHERE employee.dno = department.dno; >>>>중복배제(14출력)//사원번호,사원이름,소속부서 출력SELECT eno, ename, dname FROM employee, department WHERE employee.dno = department.dno and eno=7788;//테이블과 컬럼SELECT employee.eno, employee.ename, department...
예제#4
//그룹함수COUNT 행의개수SUM 열의 합 AVG 열의평균MIN 열의최소MAX열의 최대 //최근에 입사한사원, 가장 오래전에 입사한사원의 입사일출력SELECT MAX(hiredate), MIN(hiredate) FROM employee;//커미션총액SELECT SUM(commission) as "커미션총액" FROM employee;//전체사원의수SELECT COUNT(*) AS "사원의수" FROM employee;//커미션받는 사원의수 구하기 //널값은 빠짐SELECT COUNT(commission) as "커미션받는사원의수" FROM employee;//직업종류의 개수 출력SELECT COUNT(DISTINCT job) as "직업종류의 개수" FROM employee; //ORDER BY 컬럼기..
연습문제#2
SELECT ename, SUBSTR(hiredate, 1, 5) as "입사일" FROM employee; SELECT ename, hiredate FROM employee WHERE SUBSTR(hiredate, 4, 2)='04'; SELECT ename, eno FROM employee WHERE MOD(eno,2)=0; SELECT hiredate, TO_CHAR(hiredate, 'YY-MM DAY') FROM employee; SELECT ROUND(SYSDATE-TO_DATE('13/01/01')) FROM dual; SELECT manager, nvl(manager,'0') FROM employee; SELECT job, salary, DECODE(job, 'ANALYST', salary..
예제#3
//NULLIF로 NULL값 표현 //같으면null, 다르면 앞에값SELECT NULLIF('A','A'), NULLIF('A','B') FROM dual;>>>>(null) >>>>A //null이 아닌 첫번째 반환식을 반환 //SELECT ename, salary, commission, COALESCE(commission, salary, 0) FROM employee ORDER BY job; //DECODE로 부서이름출력SELECT ename, dno, DECODE(dno, 10, 'A', 20, 'R', 30, 'S', 40, 'O', 'DEFAULT') AS DNAME FROM employee ORDER BY dno;//CASE로 부서이름 출력SELECT ename, dno, CASE WHEN d..
예제#2
SELECT 'Oracle mania', UPPER('Oracle mania'), //대문자로LOWER('Oracle mania'), //소문자로INITCAP('Oracle mania') //첫글자만 대문자FROM dual; //듀얼은 시스템에 내장되어있는 테이블이름 SELECT ename, LOWER(ename), job, INITCAP(job) FROM employee; //출력은 Initcap, 검색은 소문자로SELECT eno, INITCAP(ename) as "NAME", dnoFROM employeeWHERE LOWER(ename)='scott'; 영문과 한글의 길이구하기SELECT LENGTH('Oracle'), LENGTH('오라클') FROM dual;>>>> Oracle 6, 오라클 3..
연습문제#1
•p1) 덧셈 연산자를 이용하여 모든 사원에 대해서 300의 급여 인상을 계산한 후 사원의 이름, 급여, 인상된 급여를 출력하세요 SELECT ename, salary, salary+300 as 인상된급여FROM employee;•p2) 사원의 이름, 급여, 연간 총수입을 총 수입이 많은 것부터 작은 순으로 출력하세요. 연간 총수입은 월급에 12를 곱한 후 100의 상여금을 더해서 계산하세요 SELECT ename, salary, (salary*12)+100 as 연간총수입FROM employeeORDER BY 연간총수입 DESC;•p3) 급여가 2000을 넘는 사원의 이름과 급여를 급여가 많은 것부터 적은 순으로 출력하세요 SELECT ename, salaryFROM employeeWHERE salar..
인사관리(hr, hr) 예제#1
SELECT ename, job, dno, salary, nvl(commission,0), salary*12, (salary*12)+nvl(commission,0) AS 연봉 //커미션의 널값을 0으로 변환from employee; // 중복되는 값을 한개씩만 출력SELECT DISTINCT dnofrom employee; SELECT sysdate AS "오늘날짜"from dual; SELECT *FROM employeeWHERE ename LIKE 'F%'; //F로 시작하는 사원출력WHERE ename LIKE '%SC%'; //SC포함하는 사원출력WHERE ename LIKE '%N'; //N으로 끝나는 사원출력 SELECT *FROM employeeWHERE salary IN(800,1600,3..