-
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'KIC > DB 오라클' 카테고리의 다른 글
day03_3 - 오라클 (숫자 함수, round, trunc, mod, ceil, floor, power) (0) 2021.06.24 day03_2 - 오라클 (문자 함수, initcap, lower, upper, length/lengthb, concat, substr, instr, lpad, ltrim, replace) (0) 2021.06.24 day03_1 - 오라클 (집합 연산자, union, inersect, minus) (0) 2021.06.24 day02_1 - 오라클(alias, 연결 연산자, 오라클에서 '와 "의 차이, distinct, where 조건문 및 연산자) (0) 2021.06.23 day01 (0) 2021.06.23