'분류 전체보기'에 해당되는 글 144건

  1. 2009.03.14 Oracle 다중 테이블로부터의 데이타 검색
  2. 2009.03.14 Oracle All 함수
  3. 2009.03.14 Oracle rollup, cube 함수
  4. 2009.03.14 Oracle Having 절
  5. 2009.03.14 Oracle Group by 절
  6. 2009.03.14 Oracle 단일행 함수와 그룹함수의 차이점
  7. 2009.03.14 Acura TSX
  8. 2009.03.14 Acura TL
  9. 2009.03.14 Acura RSX
  10. 2009.03.14 Acura RL

----   [A]        [B]
----  | 1 |        | a |   : A
----  | 1 | ---> | a |   : = [(1,a), (1,b) .... (2,a), (2,b) ....... (3,d)]
----  | 1 |        | a |   : ==> "데카르트곱"
----                 | a |   :
----    3    X     4     =  12개
select count(*)
from dept;

select count(*)
from EMP;

select *
from EMP, DEPT;  -- 모든경우의 수(cartesian product)가 다나오게 된다.

select *
from EMP, DEPT
where Emp.deptno = Dept.deptno; -- 이와 같이하면 같은 것끼리 연결이 된다.

/* select deptno, dname, ename, sal -- 이렇게 명시하면 deptno가 어떤테이블의 것인지 불확실해서 오류가난다. */
select E.deptno, D.dname, E.ename, E.sal -- 두 테이블에서 중첩이 없는 컬럼도 테이블명을 명시해주는 것을 권장.
from emp E, dept D                           -- 명시를 안하면 해당 컬럼을 검색하기 위해 두개의 테이블을
where E.deptno = D.deptno;               -- 모두 검색하나 명시하면 그것에 해당하는 테이블만 검색하게 된다.
--//// 바로위 문법은 SQL 1992 CODE, 바로 아래 문법은 SQL 1999 CODE(Oracle 9i 부터사용)
---- inner join (equi-join) : 중복되는 컬럼이있어도 출력값은 변함없다.
select E.deptno, D.dname, E.ename, E.sal
from emp E inner join dept D -- inner는 생략 가능하다.
on E.deptno = D.deptno;
--//// from emp E join dept D 는 from dept D join emp E 해도 무방하나
--//// from절에서 가장멀리있는 부분에 row가 적은것 또는 부모테이블을 적용시키는 것을 권장한다.
select E.deptno, D.dname, E.ename, E.sal -- E.DEPTNO를 D.deptno를 써도 무방하다.
from emp E, dept D
where E.deptno = D.deptno;
---- outer-join (+) : 중복되는 컬럼이 있으면 출력값이 달라진다. (애초에 부모컬럼(P.K)을 사용한다.)
select D.deptno, D.dname, E.ename, E.sal -- D.deptno를 E.DEPTNO로 쓰면 값이 달라진다.
from emp E, dept D
where E.deptno(+) = D.deptno;
--/// (+) 가 있는쪽을 다 보여주고 해당하는 값을 매핑한다.
/* sys계정으로 접속해서 실행해야한다. */
/* 다음 두문장(inner join)은 동일하다. 위는 1992년식, 아래는 1999년식이다. */
select D.department_id, E.FIRST_NAME
from hr.employees E, hr.departments D
where E.department_id = D.department_id;

select D.department_id, D.department_name, E.first_name
from hr.employees E left outer join hr.departments D   -- outer는 생략가능
on E.department_id = D.department_id;
--/// left는 왼쪽의 테이블을 다보여주고 매핑, right는 오른쪽에 테이블을 다 보여주고 매핑
/* 다음 두문장(outer join)은 동일하다. 위는 1992년식, 아래는 1999년식이다. */
select D.department_id, E.FIRST_NAME
from hr.employees E, hr.departments D
where E.department_id(+) = D.department_id;

select D.department_id, D.department_name, E.first_name
from hr.employees E right outer join hr.departments D   -- outer는 생략가능
on E.department_id = D.department_id;
--//////////////////////////////////////////////////////////////////////////////
select *
from hr.employees E full outer join hr.departments D   -- 정규화 하기 이전상태
on E.department_id = D.department_id;                 
------/// (+) left(right)가 없으면 inner(equi) join, 있으면 out join이다.
--/////////////////////////////////////////////////////////////////////////////--

---- non equi-join : 범위에 들어오는 값을 매핑시켜 준다.
------- 연습문제 : emp테이블에서 성명, 급여, 호봉
-------            단. 호봉은 1000미만이면 1호봉, 1000이상이면 2호봉, 2000이상이면 3호봉
-------            3000이상이면 4호봉, 4000이상이면 5호봉
select ename 성명, sal 급여,
    case when sal > 4000 then 5
            when sal >= 3000 then 4
            when sal >= 2000 then 3
            when sal >= 1000 then 2
            else 1
            end "호봉"
from EMP; -- 업데이트 할려면 소스에 써진 모든 값을 다 변경해야 해서 유지 보수가 힘들다.
/*
select *
from salgrade; */
--/// 위 문장과 동일하나 아래 문장은 테이블값만 변경하면 되기때문에 유지보수가 편하다. ///--
select E.ename, E.sal, G.GRADE
from emp E, SALGRADE G
where E.sal between G.losal and G.hisal;

---- self join :
select *
from EMP;

/* 1992년식 */
select E1.empno 사원번호, E1.ename 사원명, E1.job 직종, E2.EMPNO 관리자사원번호,
          E2.ENAME 관리자명, E2.JOB 관리자직종 
from emp E1, emp E2
where E1.mgr = E2.empno(+); -- E1에 mgr은 F.K가 되고 E2의 empno는 P.K가 된다.

/* 1999년식 */
select E1.empno 사원번호, E1.ename 사원명, E1.job 직종, E2.EMPNO 관리자사원번호,
          E2.ENAME 관리자명, E2.JOB 관리자직종 
from emp E1 left join emp E2
    on E1.mgr = E2.empno; -- E1에 mgr은 F.K가 되고 E2의 empno는 P.K가 된다.

'Program... > Oracle' 카테고리의 다른 글

Oracle sum() over() - 누적계산  (0) 2009.03.14
Oracle cross join, natural join, using 절  (0) 2009.03.14
Oracle All 함수  (0) 2009.03.14
Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Having 절  (0) 2009.03.14
Posted by Duritz

---- all 함수 : 해당컬럼을 모두 비교해라. (and와 같다.)
--///// 하위 문법은 Oracle DB 에서는 잘되나, MS-SQL은 문법오류가 생긴다. 그래서 all 함수를 사용한다.
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) = (select max(sum(sal)) -- 그룹함수안에 그룹함수는 한번만 사용가능하다.
                   from EMP
                   group by deptno);
                  
select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) >= all(select sum(sal) -- 그룹함수는 null값이 존재치 않기때문에
          from EMP            -- where 컬럼 is not null을 사용하지 않아도 된다.
       group by deptno);
-------- 연습문제 : sal가 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.                  
select ename, job, sal
from emp
where sal = (select max(sal) from emp);

select ename, job, sal
from EMP
where sal >= all(select sal from emp); -- sal을 비교해서 sal과 같거나 큰것을 찾는다.
-------- 연습문제 : comm이 최고인 사람의 사원명과 직종과 직급과 급여를 나타내시오.                  
select ename, job, comm
from emp
where comm = (select max(comm) from emp);

select ename, job, comm
from EMP
where comm >= all(select comm from emp); -- 해당 컬럼에 null이 존재하면 오류가 나온다.

select ename, job, comm
from EMP
where comm >= all(select comm from emp where comm is not null);

'Program... > Oracle' 카테고리의 다른 글

Oracle cross join, natural join, using 절  (0) 2009.03.14
Oracle 다중 테이블로부터의 데이타 검색  (0) 2009.03.14
Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Having 절  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
Posted by Duritz

---- rollup, cube 함수
select deptno, job, sum(sal)
from emp
group by deptno, job;  -- group by 1차,2차

select deptno, sum(sal)
from EMP
group by rollup(deptno); -- rollup() : 요약값, 그룹지어진것의 합을 구한다.

select deptno, job, sum(sal)
from emp
group by rollup(deptno, job); -- 직종에 상관없이 부서별 합계가 나오고, 부서번호&직종에 상관없이 전체합이 나온다.

select deptno, sum(sal)
from EMP
group by cube(deptno);

select deptno, job, sum(sal)
from emp                     -- cube() : rollup과 동일하나 추가로 2차 컬럼의 종류별 합계도 나온다.
group by cube(deptno, job);  --          cube는 2차그룹이 있을때 더 효율적이다.
/* sys로 접속해서 실행 */
--////// rollup을 사용할때 그룹할 column에 null이 존재하면 결과값중에 실값과 요약값이 구분하기 힘들다.
--////// 이럴때 grouping 을 쓰면 구분하기가 좋다.
--////// grouping의 값이 0이면 실값이고, 1이면 요약값이다.
select department_id, grouping(department_id), sum(salary)
from hr.employees
group by rollup(department_id);

select case grouping(department_id)
      when 1 then '전체부서'  -- 해당 컬럼데이터가 숫자이면 숫자만 가능하나 문자로 입력하려면
      else to_char(department_id) -- 해당컬럼값을 문자로 바꾸면 문자 출력이 가능하다.
    end as "부서번호",
    sum(salary) as "급여합"
from hr.employees
group by rollup(department_id);

'Program... > Oracle' 카테고리의 다른 글

Oracle 다중 테이블로부터의 데이타 검색  (0) 2009.03.14
Oracle All 함수  (0) 2009.03.14
Oracle Having 절  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
Oracle 단일행 함수와 그룹함수의 차이점  (0) 2009.03.14
Posted by Duritz

---- having절 : 그룹함수에 대한 조건절
select deptno, sum(sal)
from EMP
where sum(sal) >= 9000 -- 여기에 where절에 sum(sal)을 넣으면 어느그룹의 것인지 알 수 없다.(문법오류)
group by deptno;

select deptno, sum(sal)
from EMP
group by deptno
having sum(sal) >= 9000;  -- 그룹함수 조건인 having절을 넣어야 오류없이 실행된다.

------------- 다음 문장을 비교하였을때 두문장은 결과는 같으나 아래쪽이 더 빠르게 실행된다.
------------- 일반컬럼은 having절에 쓰는걸 권장하지 않는다. (그룹함수만 쓰자.)
select job, sum(sal)     -- 이문장은 job의 모든 행을 메모리에 로드시키고 실행한다.
from EMP
group by job
having job in ('MANAGER','SALESMAN');

'Program... > Oracle' 카테고리의 다른 글

Oracle All 함수  (0) 2009.03.14
Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
Oracle 단일행 함수와 그룹함수의 차이점  (0) 2009.03.14
Oracle rank 함수  (0) 2009.03.13
Posted by Duritz

---- group by : group by column (컬럼으로 그룹지어라) , 자동적으로 첫번째 컬럼기준 오름차순으로 정렬된다.
select deptno, sum(sal) -- 부서별 sal 합
from EMp
group by deptno;

select job, sum(sal) -- 직종별 sal 합
from EMp
group by job;

select deptno, count(*) -- 부서별 인원합
from emp          -- count를 하기위해서는 null이 없는 컬럼을 선택해야하는데 찾으려면 시간이 소요되니
group by deptno         -- 대신 *을 사용한다.

select job, count(*) -- 직종별 인원합
from EMp
group by job;

--------------- 연습문제 : 사원테이블에서 성별인원수를 구하시오.
insert into sawon values
(1005,'이영애','8011012234567','2000-03-02');
commit;
select * from SAWON;

select S.성별, count(*) "인원수"
from (select case when substr(minbun,7,1) in ('1','3') then '남'
    else '여' end "성별"
from SAWON) S
group by S.성별;
--------------- 연습문제 : 연령대별 인원수를 구해보자.
select Y.연령대, count(*)
from
(select case when substr(minbun,7,1) in ('1','2')
        then floor((extract(year from sysdate) - (to_number(substr(minbun,1,2)) + 1899))/10)
         when substr(minbun,7,1) in ('3','4')
     then floor((extract(year from sysdate) - (to_number(substr(minbun,1,2)) + 1999))/10)
   end "연령대"
from SAWON) Y
group by Y.연령대

'Program... > Oracle' 카테고리의 다른 글

Oracle rollup, cube 함수  (0) 2009.03.14
Oracle Having 절  (0) 2009.03.14
Oracle 단일행 함수와 그룹함수의 차이점  (0) 2009.03.14
Oracle rank 함수  (0) 2009.03.13
Oracle 변환형 함수  (0) 2009.03.13
Posted by Duritz

--- 단일행 함수와 그룹함수의 차이점
---- Column             함수             결과
----   1  ------------> |단| ---------->  a
----   2  ------------> |일| ---------->  b    : 단일행은 한행에 대한 결과값이 1개씩 매핑이 된다.
----   3  ------------> |행| ---------->  c
---------------------------------------------
----   1  ------------> |그| ---------->  a
----   2  ------------> |룹|                   : 그룹함수는 여러행이 그룹지어 하나의 결과 값이 나온다.
----   3  ------------> |함|                   : 그룹함수는 null이 있으면 null은 제외해 버린다.
----   4  ------------> |수|             
---------------------------------------------
select sum(sal),  -- 합계
    avg(sal),  -- 평균  sum(sal) / count(sal)
    max(sal),  -- 최대값
    min(sal),  -- 최저값
    count(sal) -- 행의갯수
from emp;

---- null이 포함되면 평균치 결과가 null 이 포함되어지지 않는 사람들만의 평균이 된다.
select sum(comm),  
    avg(comm), 
    max(comm), 
    min(comm), 
    count(comm) -- null이 포함되어 있으면 null을 제외하므로 제대로된 값이 나오지 않는다.
from emp;

select avg(comm), avg(nvl(comm,0)) -- null을 0으로 간주해야 제대로된 평균치가 계산된다.
from EMP;

select variance(sal), -- 분산 = 편차^2(편차의 제곱)
    stddev(sal),   -- 편차
    avg(sal)       -- 평균
from emp;

'Program... > Oracle' 카테고리의 다른 글

Oracle Having 절  (0) 2009.03.14
Oracle Group by 절  (0) 2009.03.14
Oracle rank 함수  (0) 2009.03.13
Oracle 변환형 함수  (0) 2009.03.13
Oracle 날짜형 함수  (0) 2009.03.13
Posted by Duritz

2009. 3. 14. 02:45 Car Wallpaper

Acura TSX

자료 출처 :
http://www.carwalls.com
http://www.acura.com

201-hp, 2.4L i-VTEC® I-4. 6-spd. manual or 5-spd. auto with paddle shifters
From $29,160*

동영상 : http://www.acura.com/VideoGallery.aspx?model=TSX&context=photos-videos#/video1

'Car Wallpaper' 카테고리의 다른 글

Alfa Romeo 155  (0) 2009.03.14
Alfa Romeo 147  (0) 2009.03.14
Acura TL  (0) 2009.03.14
Acura RSX  (0) 2009.03.14
Acura RL  (0) 2009.03.14
Posted by Duritz

2009. 3. 14. 02:41 Car Wallpaper

Acura TL

자료 출처 :
http://www.carwalls.com

동영상 : http://www.acura.com/VideoGallery.aspx?model=TL&context=photos-videos#/video12

TL

  • Front engine, front-wheel-drive
  • 3.5-liter SOHC V-6 aluminum alloy engine
  • 280 hp at 6,200 rpm and 254 lb-ft of torque at 5,000 rpm
  • 11.2:1 compression ratio
  • Variable Valve Timing and Lift Electronic Control (VTEC®)
  • Dual-Stage induction system with lightweight magnesium intake manifold
  • Cold-air intake system
  • Integrated exhaust manifolds cast directly into the cylinder heads
  • High-flow sport-tuned exhaust system with dual tips
  • Drive-by-Wire™ throttle system
  • Computer-Controlled Programmed Fuel Injection (PGM-FI)
  • Direct Ignition System
  • Detonation/knock control system
  • Maintenance Minder™ system
  • 100,000 mile tune-up intervals*

TL Super Handling All-Wheel Drive™ (SH-AWD®)

  • Super Handling All-Wheel Drive™ (SH-AWD®) for performance handling and all-season capability
  • 3.7-liter SOHC V-6 aluminum alloy engine
  • 305 hp at 6,200 rpm and 273 lb-ft of torque at 5,000 rpm
  • 11.2:1 compression ratio
  • High-silicon aluminum cylinder sleeves cast directly into aluminum cylinder block
  • Variable Valve Timing and Lift Electronic Control (VTEC®) for intake and exhaust valves
  • Dual-stage induction system with lightweight magnesium intake manifold
  • Cold-air intake system
  • Larger throttle-body (69 mm diameter versus 64 mm in the
    TL) for the Drive-by-Wire™ throttle system
  • Integrated exhaust manifolds cast directly into the cylinder heads
  • High-flow, sport-tuned dual exhaust system with quad exhaust tips
  • Computer-Controlled Programmed Fuel Injection (PGM-FI)
  • Direct ignition system
  • Detonation/knock control system
  • Maintenance Minder™ system
  • 100,000-mile tune-up intervals*

'Car Wallpaper' 카테고리의 다른 글

Alfa Romeo 147  (0) 2009.03.14
Acura TSX  (0) 2009.03.14
Acura RSX  (0) 2009.03.14
Acura RL  (0) 2009.03.14
Acura RD-X  (0) 2009.03.14
Posted by Duritz

2009. 3. 14. 02:33 Car Wallpaper

Acura RSX

자료 출처 :
http://www.carwalls.com


'Car Wallpaper' 카테고리의 다른 글

Acura TSX  (0) 2009.03.14
Acura TL  (0) 2009.03.14
Acura RL  (0) 2009.03.14
Acura RD-X  (0) 2009.03.14
Acura NSX  (0) 2009.03.14
Posted by Duritz

2009. 3. 14. 02:20 Car Wallpaper

Acura RL

자료 출처 :
http://www.carwalls.com
http://www.acura.com

300-hp, 3.7-liter VTEC® V-6 engine and Super Handling All-Wheel Drive
From
$46,680*

동영상 : http://www.acura.com/VideoGallery.aspx?model=RL&context=photos-videos#/video2

'Car Wallpaper' 카테고리의 다른 글

Acura TL  (0) 2009.03.14
Acura RSX  (0) 2009.03.14
Acura RD-X  (0) 2009.03.14
Acura NSX  (0) 2009.03.14
Acura MD-X  (0) 2009.03.14
Posted by Duritz

공지사항

Yesterday
Today
Total
12-04 15:18

달력

 « |  » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31