DBMS 22

카운터 함수 이용

/* ## 이 값은 comm에서 NULL 을 제외한 평균을 구한다. select avg(comm) from emp; ## 하지만 함수내의 함수를 이용하면 값이 달라진다. ## null 값도 갯수에 포함하여 평균을 구함. select avg(ifnull(comm , 0)) from emp; */ ## 커미션을 받는 사람은 총 몇명인가?? /* select count(comm) from emp; */ ## 30번 부서에서 커미션을 받는 사람과 받지않는 사람은 각각 몇명인가??? /* select count(comm) as comm, count(*) - count(comm) as nocomm from emp where deptno = 30; */ ## 1891년도에 입사한 사원중에서 커미션을받는 사람과 받지 ..

DBMS/Summary 2010.04.21

이중쿼리 이용한 문제 2, 4

## 점원 clerk 에게 지급된 총 월급은? /* select sum(sal) from emp where job = 'CLERK'; */ /* ## 회사에게 월급이 제일 많은 사람과 제일 적은 사람의 이름과 직업은 select ename, job, sal from emp ## ename과 job만하면 누가 최고, 최소인지 몰라서 월급을 적어줌 where sal = (select max(sal) from emp) || sal = (select min(sal) from emp)order by sal desc; */ /* ## 매니저 중에서 월급이 제일 많은 사람과 제일 적은 사람의 차이는 select max(sal) - min(sal) from emp where job ='mgr'; */ ## 커미션이 없..

DBMS/Summary 2010.04.21

DATE format

오라클의 기본값 DD - Mon - RR ( 13 - april - 10) // Sysdate(현째날짜만) Mysql 의 기본값 yyyy-mm-dd (2010-04-13) // now (현재날짜에 시분초까지) , curdate (시분초는 제외) Date Format select DATE_FORMAT(hiredate, '%M %d, %Y') from emp ## 날짜 포맺형식을 제공 %Y : Four-digit year %y : Two-digit year %M : complete month name %b : month name, initial three letters %m : Two-digit month of year (01 ?12) %c : month of year (1 ?12) %d : Two-digi..

DBMS/Summary 2010.04.15

정수형 함수.

Round 함수 (올림을 수행한다) trunc 함수 - mysql에서는 truncate 를 사용해야 한다. (버림을 수행) mod 함수 (나머지 값을 수행한다.) ###### 이에따른 예제 소스이다. ########## /* ## Round 함수 select round(345.3456 , -2) ,round(345.3456 , 2) from dual; */ /* ## trunc 함수, sql에서는 truncate 를 적용한다. select truncate(234.234 , 2), truncate(234.234 , 0) from dual; */ /* ## mod 함수 select mod(3000, 140) , mod(150, 4) from dual; */

DBMS/Summary 2010.04.15

Function ( 함수 )

Single row : 단일 입력 함수이다. Multiple fow : 어러 입력을 받아 처리하는 함수 문자형 함수 - 소 대문자를 조작하는 함수 (Case-manipulation Functions) LOWER, UPPER, INITCAP - 문자를 조작하는 함수 ( Character-manipulation Functions ) CONCAT, SUBSTR, LENGTH, INSTR, LPAD, RPAD, TRIM, REPLACE 소 대문자를 조작하는 함수 (Case-manipulation Functions) lower('Abcd') -> abcd upper('Abcd') -> ABCD initcap('Abcd') -> Abcd ## 예제입니다. /* ## 문자를 소문자, 대문자로 출력하는 함수 selec..

DBMS/Summary 2010.04.15

Oder BY~

select 문의 가장 마지막에 위치하게 된다. 가능한 조건은 ASC : Ascending ( 디폴트로 주어진다. ) DESC : Descending select ename 이름, deptno from emp order by 이름 asc ; ## 별명을 조건으로 줄수도 있다. 이에 따른 예제. /* ## 월급 높은순이고, 만약 월급이 같다면 이름을 오름차순 정렬 select *from emp where sal between 2000 and 4000 order by sal desc, ename asc; */ ## 여기서 알수있는건 여러 조건을 줄수있는것이다. /* ## 사원이름을 오름차순? select *from emp order by ename asc; */ /* ## 월급이 2000~ 4000 사이인..

DBMS/Summary 2010.04.15

Between || IN || LIKE || IS NULL 활용문제.

/* select ename, sal from emp where sal between 2500 and 3000; // Between 문 */ /* select *from emp where deptno in(10); // IN( set) 문 */ ## ★★★★★ Between 문입니다 ★★★★★ /* ## emp테이블에 입사일(hiredate)이 1981년인 사람은? select *from emp ## where hiredate like "1981%"; where hiredate between '19981-01-01' and '1981-12-30'; */ /* ## emp테이블에서 입사일이 1982년과 1987년 사이인 사람은 누구인가? select *from emp where hiredate betwee..

DBMS/Summary 2010.04.14

And || OR || NOT 연산..

And 연산 /* ##커미션을 받는 사원중 월급이 1500이상인 select *from emp where comm is not null && sal >= 1500; */ /* ## 월급이 1500 에서 2500사이인 직원중 직업이 s 로 시작하는 사원 select *from emp where sal between 1500 and 2500 && job like 's%'; */ /* ## 사원이름이 j로 시작하고 입사일이 1980년 이후인 사람은 select *from emp where ename like 'j%' && hiredate like '1981%'; */ /* ## 사원이 LA를 포함 직업에 man으로 시작하는 사원은 select *from emp where ename like '%la%' && ..

DBMS/Summary 2010.04.14

Where 절 ( Between, In, LIKE, IS NULL)

Between ... and .. select ename, sal from emp where sal between 2500 and 3000; // 2500 에서 3000의 사이값을 보여준다. IN ( set ) select *from emp where deptno in(10); // IN( set) 문 (set)에 해당하는 조건이 보여준다. ## ★★★★★ LIKE 문입니다 ★★★★★ ## like는 무조건 조건에 ' ' 를 사용해야한다, 정수든 실수든 ## '%s' 는 s로 시작하는 것이고. '_s%' 는 앞에 한글자는 아무거나 가능 ## ★★★★★ IS NULL 문입니다 ★★★★★ /* select ename, mgr from emp ## NULL == 0 같이 크기비교 안된다. where mgr i..

DBMS/Summary 2010.04.13