. DB를 사용하기위해 ORACLE로 LOGIN 방법 가. SQLPLUS [Enter] User ID : xxxxxx password : xxxxxxxx 나. SQLPLUS user_id [Enter] password : xxxxxxxx 다. SQLPLUS user_id/password [Enter] ※ 다. 와 같은 방법으로 Login 하게 되면 사용자명과 암호가 노출된다 그러므로 가장좋은 방법은 가, 그리고 나. 이다 2. SQLPLUS 상에서는 Auto Commit이 안된다. 그러므로 중간 중간 " COMMIT "를 수행한다. 3. SQL 문장의 Terminate 는 ==> “ ; ” 4. 한 화면씩 보여주는 기능 ==> set pause on; (설정) set pause off; (해제) ※ 설정..
●VIEW 1) 정의 : 실제 테이블을 여러 관점에서 투영한 가상 테이블2) 목적 - 사용자의 편의- 관리와 보안3) 문법CREATE [OR REPLACE] VIEW 뷰이름[(컬럼명, ...)]ASSELECT문 VIEW TEST ▼TEST1) 영업부 직원 중 사번, 이름, 급여, 커미션을 view로 작성 CREATE VIEW vw_30ASSELECT empno, ename, sal, comm FROM emp WHERE deptno=30; GRANT create view TO scott; -> 보안 때문에 권한이 필요하므로 시스템계정에서 권한 주기 SELECT * from vw_30;□ VIEW 수정하기( job추가) CREATE OR REPLACE VIEW vw_30ASSELECT empno, ename..
위의 사진만 보고 테이블 만들어보기 ↓ANSWER CREATE table POST(post1 char(3) ,post2 char(3) ,addr varchar2(60) not null,CONSTRAINT pk_post PRIMARY KEY(post1,post2)); CREATE table MEMBER(id number(4) constraint pk_member_id primary key,name varchar(10) not null,sex char(1) constraint ck_member_sex check(sex in('1','2')),jumin1 char(6),jumin2 char(7),CONSTRAINT uk_member_jumin UNIQUE(jumin1,jumin2),tel varchar(15)..
● Data Integrity(데이터 무결성)1) 데이터 무결성을 지키기 위한 종류와 방법- 실체(Entity) 무결성a. 중복된 데이터 방지b. Primary key, Unique - 영역(Domain) 무결성 a. 범위 -> 내가 정해놓은 범위의 데이터만 사용될 수 있게 방지 b. Check - 참조(Refereance) 무결성a. 참조 -> 참조 당하는 테이블을(부모테이블) , 참조 하려는 테이블을(자식테이블) 데이터 값이 맞는지 다른테이블에 확인할 때 참조한다.b. Foreign Key Constraint(제약) : Primary key, Unique, Check, Foreign key -> 잘못된 데이터가 들어올때 제약을 걸어주는 역할을 한다. 2) 컬럼의 속성- NN(Not Null) 속성 :..
● Transaction1) All or Nothing!- 일을 완전히 마무리하던지 처음상태로 돌아오는 것2) DB는 데이터와 트랜젝션 로그파일이 합쳐진 형태이다- 데이터 파일 : .dbf- 로그 파일 : .log(DML) 3) rollback : 처음 트랜젝션의 시작 위치로 돌아가는 기능(취소) commit : 트랜젝션이 완료됨을 의미한다.(완료) 4) 동기화 oradata : Database , product : Software 를 의미한다. 데이터 파일 : .dbf, 로그 파일 : .log
● JOIN1) 여러 개의 테이블을 병합하여 하나의 결과를 도출하기 위한 방법 2) 종류- Cartesian Product Join(데카르트 곱)- Equi Joina. 공통 필드의 레코드를 가져오는 방법(중복)b. Inner Join(Natural Join) : 중복 제거- Non Equi Joina. 공통 되지 않은 레코드를 가져오는 방법- Outer Joina. Inner Join의 확장 : Inner Join + 공통되지 않은 레코드도 가져옴b. 종류Left Outer Join : 왼쪽을 기준으로 Inner Join + 공통되지 않은 레코드도 가져옴Right Outer Join : 오른쪽을 기준으로 Inner Join + 공통되지 않은 레코드도 가져옴Full Outer Join : 양쪽의 Inne..
***Subquery 문제1. Blake와 같은 부서에 있는 모든 직원의 사번, 이름, 입사일자 조회SELECT deptno, empno, ename, hiredateFROM empWHERE deptno=(select deptno from emp where ename='BLAKE'); 2. SELECT empno, ename, deptno, sal, comm FROM empWHERE (sal, comm) IN(SELECT sal, comm FROM emp WHERE deptno=30);이 쿼리에서 보너스가 null인 사람도 출력될 수 있도록 수정하시오. 3. 평균 급여 이상을 받는 직원들의 사번, 이름을 조회.단, 급여가 많은 순으로 정렬SELECT empno, ename, salFROM empWHERE..
● Sub Query1) 다른 Query문에 포함됨 Query2) 반드시 ( ) 를 사용3) 연산자의 오른쪽에 와야 한다4) order by 사용 불가5) 종류- Subquery- 상관 Subquery : 서브쿼리로만 실행했을때 실행이 안되고 바깥의 쿼리가 있어야 실행가능, 성능차이 때문에 많이 쓰이지 않음6) 유형- 단일행 : 서브쿼리의 결과값이 하나일때 사용- 다중행 : 서브쿼리의 결과값이 여러개일때 사용- 다중열7) 연산자 - 단일행, =, =, !=, , ...- 다중행in, any, all, exists, not▶ Sub Query TEST 1) scott의 급여보다 더 많이 받는 직원의 이름, 업무, 급여를 조회select sal from emp where ename='SCOTT';select..
● DML1) INSERTINSERT INTO 테이블명(필드,...) VALUES(값,...)-> 필드를 선택해서 값넣기INSERT INTO 테이블명 VALUES(값,...)-> 모든 필드에 값을 넣기2) UPDATEUPDATE 테이블명 SET 필드명=값[, 필드명=값, ...] WHERE 조건문 3) DELETE DELETE FROM 테이블명 WHERE 조건문 ■ INSERT TEST 실습을 위해 system계정에서 계정을 새로 만들어준다. 계정을 만든 뒤 테이블을 만들고 데이터를 넣는다. create table tbltest(id number,name varchar2(10),hire date); insert into tbltest(id, name, hire) values(1, '홍길동', sysdat..
1. 오늘부터 12월 25일까지 몇일이 남았는가?select to_date('2017/12/25') - sysdate from dual; 2. 현재까지 근무한 직원들의 근무일수를 몇주 몇일로 조회(단, 근무일수가 많은 사람 순으로 조회)select ename, hiredate, trunc((sysdate-hiredate)/7)"몇주", trunc(mod((sysdate-hiredate),7)) "몇일"from emp order by sysdate - hiredate desc; 3. 10번 부서 직원들 중 현재까지의 근무월수를 계산해서 조회select deptno, ename, hiredate, sysdate, trunc(months_between(sysdate, hiredate))"근무개월수" from ..