사이트 : https://www.oracle.com/kr/downloads/
Database Express Edition - XE버전
비밀번호 : system으로 설정
다운로드 완료 후 Win - 서비스
위 두개는 실행중이어야 함
사이트 : https://www.oracle.com/database/sqldeveloper/technologies/download/
cmd창에서 파일 위치에 관계없이 해당 명령어가 실행되게 해두는것
테스트 클릭 -> 접속 클릭
ERP란? 전사적 자원관리
Oracle / SAP
-- ANONYMOUS 계정 unlock --
alter user ANONYMOUS account unlock;
-- ANONYMOUS 계정 비밀번호 수정 --
alter user ANONYMOUS IDENTIFIED by 1234;
-- 직원 정보 테이블 --
create table emp(
empno number(4) primary key,
ename varchar2(10),
job varchar2(9),
msg number(4),
hiredate date,
sal number(7,2),
comm number(7,2),
depno number(4)
)
INSERT INTO EMP VALUES(7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-12-1980','DD-MM-YYYY'),800, NULL,20);
INSERT INTO EMP VALUES(7499, 'ALLEN','SALESMAN',7698,TO_DATE('20-02-1981', 'DD-MM-YYYY'),1600,300,30);
INSERT INTO EMP VALUES(7521, 'WARD','SALESMAN',7698,TO_DATE('22-02-1981', 'DD-MM-YYYY'),1250,500,30);
INSERT INTO EMP VALUES(7566, 'JONES','MANAGER', 7839,TO_DATE('02-04-1981', 'DD-MM-YYYY'),2975, NULL,20);
INSERT INTO EMP VALUES(7654, 'MARTIN','SALESMAN',7698,TO_DATE('28-09-1981', 'DD-MM-YYYY'),1250,1400,30);
INSERT INTO EMP VALUES(7698, 'BLAKE','MANAGER',7839,TO_DATE('01-05-1981', 'DD-MM-YYYY'),2850,NULL,30);
INSERT INTO EMP VALUES(7782, 'CLARK','MANAGER',7839,TO_DATE('09-06-1981', 'DD-MM-YYYY'), 2450,NULL,10);
INSERT INTO EMP VALUES(7788, 'SCOTT','ANALYST',7566,TO_DATE('09-12-1982', 'DD-MM-YYYY'),3000,NULL,20);
INSERT INTO EMP VALUES(7839, 'KING','PRESIDENT',NULL,TO_DATE('17-11-1981', 'DD-MM-YYYY'),5000,NULL,10);
INSERT INTO EMP VALUES(7844, 'TURNER','SALESMAN',7698,TO_DATE('08-09-1981', 'DD-MM-YYYY'),1500,NULL,30);
INSERT INTO EMP VALUES(7876, 'ADAMS','CLERK',7788,TO_DATE('12-01-1983', 'DD-MM-YYYY'),1100,NULL,20);
INSERT INTO EMP VALUES(7900, 'JAMES','CLERK', 7698,TO_DATE('03-12-1981', 'DD-MM-YYYY'),950,NULL,30);
INSERT INTO EMP VALUES(7902, 'FORD','ANALYST',7566,TO_DATE('03-12-1981', 'DD-MM-YYYY'),3000,NULL,20);
INSERT INTO EMP VALUES(7934, 'MILLER', 'CLERK', 7782,TO_DATE('23-01-1982', 'DD-MM-YYYY'),1300,NULL,10);
select count(*) from emp;
create table dept(
deptno number(4) primary key,
dname varchar2(14),
loc varchar2(13)
);
INSERT INTO DEPT VALUES (10, 'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS','BOSTON');
create table salgrade(
grade number,
losal number,
hisal number
)
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
-- 사원들의 이름과 연봉을 리턴 --
select ename, sal*12 + comm as "연봉"
from emp;
comm에 null값이 있기때문에 위와 같이 작성하면 null이 되어버리는 값이 생김
-> nvl(A, num)
함수 이용 : a 열의 null값을 num값으로 변경해줌
select ename, sal*12 + nvl(comm,0) as "연봉"
from emp
order by 2;
_
가 하나의 철자를 의미함select *
from emp
where ename like '_L%';
select sysdate from dual;
select ' Oracle ' "원본",
trim(' Oracle ') "ALL",
ltrim(' Oracle ') "LEFT",
rtrim(' Oracle ') "Right"
from dual;
select round(1234.5678, 1),
trunc(1234.5678, 1),
ceil(3.14),
floor(3.14)
from dual;
select 15/6, mod(15, 6)
from dual;
select empno, ename, job, sal,
decode(job,
'MANAGER', sal * 1.1,
'SALESMAN', sal * 1.05,
'ANALYST', sal,
sal * 1.03) "연봉인상"
from emp;
select empno, ename, job, sal,
case job
when 'MANAGER' then sal * 1.1
when 'SALESMAN' then sal * 1.05
when 'ANALYST' then sal
else sal * 1.03
end "연봉인상"
from emp;
auto_increment
, ms-SQL : identity
시작전, SYSTEM DB에서 권한허용 해줘야함
-- 시퀀스 생성 권한 --
grant create sequence to ANONYMOUS;
권한 허용 후 ANONYMOUS DB에서 시퀀스 테이블 생성
create sequence seq_tbl;
seq_tbl을 두가지 테이블에 번갈아서 사용하면 시퀀스가 테이블마다 따로가 아니라 통합적으로 적용되게 됨
이를 이용하여 여러가지로 응용이 가능(테이블을 합쳐서 공통된 순서를 알수있음)
select * from tbl1
union
select * from tbl2
order by 1;
자동 import = Ctrl + Shift + O