Oracle DB 1

기본

SQL 데이터 형식


문자열 : java(String), DB(varchar2, char)

정수 : java(int), DB(number(정수자릿수))

실수 : java(double), DB(number(소수점포함 전체자릿수, 소수점 이하 자릿수))

ex ) number(5,2) → 정수 3자리 소수 2자리

날짜 : DATE

CLI(Command Line Interface)에서의 SQL




purge recyclebin; -- 불필요한 table 삭제
desc emp; -- emp table의 column명과 데이터 타입을 확인하는 명령어

set linesize 200 - 200으로  크기 변경
set pagesize 200 - 200으로 페이지 크기 변경

select 5*3 from dual -- 연산같은 기본적인걸 해볼 수 있는 더미 테이블


select * from tab; -- 해당 계정의 모든 table 목록 검색

select * from emp; -- emp table의 모든 정보 검색

select empno, ename from emp; -- emp table에서 empno, ename column 검색

select empno as 이름, sal*12 as 연봉 from emp;
-- emp table에서 empno를 이름으로, sal*12를 연봉으로 가져옴


select distinct deptno from emp; -- deptno 에서 중복 삭제해서 가져옴

select deptno from emp
order by deptno asc; -- 오름차순으로 정렬

select deptno from emp
order by ename desc; -- ename의 오름차순으로 deptno 정렬

select empno, deptno from emp
order by deptno asc, ename asc; -- 정렬 우선순위 deptno -> ename


select sal, nvl(comm,0) from emp; -- comm의 null을 0으로 변경


select deptno, ename
from emp
where comm is not null;  -- comm이 null이 아닌 값들만 가져옴

select deptno, ename
from emp
where comm is null; -- comm이 null인 값들만 가져옴 (null은 = 안됨)
-- 실행 순서 : from -> where -> select

select sal
from emp
where deptno=20
order by sal desc;
-- 실행 순서 : from -> where -> order ->select
-- emp 에서 deptno가 20인것을 sal을 기준으로 내림차순으로 정렬한 sal을 가져와라

where deptno= 10 and job='MANAGER';
where deptno >= 10 or job = 'MANAGER';

where deptno != 10;
where deptno <> 10;
where not deptno = 10;
-- 아니다를 뜻하는 연산자   !=, <>, not

where comm in (300, 500, 1400);
-- 포함

where ename like 'M%' -- M으로 시작하는 모든 글자
where ename like '%M%' -- M이 포함된 
where ename like 'M_' -- M으로 시작하는 2글자

where hiredate between '81/01/01' and '81/12/31';
-- 81년도에 입사한 사람들
where sale between 0 and 10000;
-- 봉급이 0~ 10000인 사람
where ename between 'A%' and 'B%';
-- 이름의 초성이 A~C 인 사람


select ename from(
	select ename from emp
	where comm is null
	order by sal desc
)
where rownum = 1;
-- 내부 select : emp에서 comm이 null인 것들을 sal을 기준으로
							--내림차순으로 정렬하여 해당 ename을 가져옴
-- 외부 select : 내부에서 가져온 ename 에서 rownum이 1인 ename

Discussion and feedback