ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day02_2 - 오라클(산술 연산자, 숫자 반올림, 날짜 설정 및 출력, ORDER BY 절, 다중 order by)
    KIC/DB 오라클 2021. 6. 23. 02:37
    반응형

    [산술 연산자]

    -> 현재 컬럼의 값을 산술 연산을 통해서 변경되어 조회가 가능함

    -> 기본적인 산술 연산 우선순위에 의해서 계산

    select ename, sal , sal + 100 from emp;

    select sal, sal + 100/2 , (sal + 100)/2 from emp;

    select ename, sal, sal + sal*0.1 upsal from emp;

     

    [데이터 와 쿼리의 대소문자 구분]

    -> 쿼리는 대소문자 구분을 하지 않는데 저장되어 있는 데이터의 경우 대소문자는 구분한다.

    -> 저장된 데이터가 SCOTT일 때

               SELECT name, empno, sal from emp where ename = 'SCOTT';   --은 성공적으로 출력

               SELECT name, empno, sal from emp where ename = 'scott';     --은 찾는 데이터

     

    [슷자 반올림]

    round(숫자 or 열 이름, 반올림할 자리 값)

     

    --ex)

    select ename, sal, round(sal/12/5, 3) 시간당임금, deptno

    from emp

    where deptno = 20;

     

     

    [날짜]

    오라클에서 날짜 출력

    -> 날짜 데이터는 홀따움표를 붙여줘야 한다.

    -> select sysdate from dual;

     

    언어 바꾸는 설정 -> 이거 하고 위에꺼 돌리면 됨

    alter session set nls_language='AMERICAN';

    alter session set nls_language='KOREAN';

    alter session set nls_date_format='yyyy/mon/dd;';    -- mon -> 6

    alter session set nls_date_format='yyyy/MM/dd;';     -- MM -> 06

     

    select name, pay, hiredate from professor

    where hiredate = '1990-JUN-23';

     

    select name, pay, hiredate from professor

    where hiredate = '1990/06/23';

     

    (/ 도 되고 - 도 된다.)

     

     

    [ORDER BY ]

    ORDER BY 절을 사용하여 출력 결과 정렬하기

     

    ASC: 오름차순

    -> 모든 순서의 디폴트는 오름차순

    -> 1,2,3,4...  /  A,B,C,D....

     

    DESC: 내림차순

    -> 5,4,3,2...   / E,D,C,B...

     

    professor 테이블에서 교수들의 이름을 조회해서 성 부분에 o이 포함된 사람의 명단을 아래와 같이 출력

    select name

    from professor

    where name >='' and name < ''

    order by 1;

     

    -> 컬럼의 순서는 1부터 시작한다.

    -> Order by 1의 의미는 테이블의 컬럼순서 번호 1을 기준으로 정렬

    -> Order by 1은 디폴트가 asc 이므로 내림차순은 Order by 1 desc

     

    1학년 학생을 키가 작은 순서대로 출력

    select name, grade, height, weight

    from student

    where grade =1

    order by height;

     

     

    1학년 학생의 이름 키 몸무게를 출력하는데 단 작은 사람부터 출력, 몸무게는 많은 사람부터 출력

    select name, height, weight

    where grade = 1

    order by height asc, weight desc;

     

    -> order by 뒤에 컬럼명, 순서 가능하고, alias도 가능

     

    [다중 order by]

    -> order by를 여러 번, 다중으로 걸고 싶다면 순서대로 나열하면 된다.

     

    --다중 order by

    select deptno, job, sal

    from emp

    order by deptno desc, job, sal desc;

     

    -> 부서번호를 내림차순으로, 직업을 오름차순으로, 급여를 내림차순 순서로 정렬

     

     

    [알게된 것]

    - %_ like 연산자랑 같이 쓰자

     

    - where ename >= 'K; 를 해도 KA-- K보다 더 크기 때문에, 이렇게 해서는 K로 시작하는 이름 보다 더 큰 이름을 걸러낼 순 없다.

               -> where ename >= 'L;로 해서 아예 L부터 시작하자.

     

    - 반올림을 위해선 round() 사용

     

    300x250

    댓글

Designed by Tistory.