본문 바로가기

오라클객체( 시퀀스, 뷰, 인덱스 ) + 트리거, 사용자와권한 , 롤 # 오라클의 객체 *sequence(시퀸스) 고유한 한 숫자를 자동으로 생성함 일반적으로 primaty key 로 사용 공유 가능한 객체! ex> create sequence member_sql; insert into member values (member_sql.nextval,'test'); insert into member values (member_sql.nextval,'test'); insert into member values (member_sql.nextval,'test'); -->결과--> 1 test 2 test 3 test *순차적인 번호를 생성하기 위한 : nextval*현재의 시퀸스 값을 리턴 :currval-->nextval을 한번이상 사용한 후 실행됨 확인ex> select mem..
오라클 시퀀스(sequence) 시퀀스(SEQUENCE)시퀀스란 기존의 테이블에 대해 기본키나 유니크 키를 사용하여 부가하는 일종의 새로운 컬럼처럼 사용할 수 있는 일련번호를 매김하기 위한 하나의 컬럼으로 구성된 테이블과 같다.• 시퀀스라는 객체 스스로만 사용할 의미가 없으며, 기존의 테이블과 연계해서 사용하게 된다. # 시퀀스 개념scott.dept 테이블의 deptno 행을 보면 일련의 숫자로 이루어진 것을 알 수 있다. 시퀀스가 그러한 역할을 하는데 즉, 테이블의 행에 유일한 정수를 부여함으로써 기본키(primary key) 값을 생성하는 객체이다• 시퀀스는 Oracle server에 의해 자동으로 발생하고 증가 또는 감소된다.• 테이블에 독립적으로 적용되기 때문에 다양한 사용자의 접근이 가능하다. # 시퀀스 특징• 유일한 연속번..
오라클 트랜잭션 # 트랜잭션오라클 크랜잭션 개념은 다음과 같은 실험으로 확인 할 수 있다. 터미널(cmd) 두개띄우고 한쪽에서 데이터 수정시 다른쪽에서 수정된걸 볼 수없다.... 1번 2번 한쪽에서 트랜잭션 진행중(데이터 수정등...)에 다른쪽에서도 같은데이터에대한 또다른부분을 트랜잭션진행할경우 수정됨하지만 같은데이터에 같은부분을 접근할경우 ; 엔터시 대기상태로들어감(락이걸림)이상태에서 1번에서 rollback할경우 2번대기상태에서 락이풀리면서 실행됨 => 1번은 새로운 트랜잭션시작(롤백이나 커밋이완료된상태부터...) 롤백시 이전데이터는테이블스페이스의 롤백세그먼트에 이전의 데이터값을 저장해둠! 테이블스페이스 - 세그먼트 - 인덱스세그먼트 롤백세그먼트 테이블세그먼트
오라클 집합 연산자( union, intersect, minus ) # 집합연산자*union:행들의 합집합 같은값은 삭제.순서대로 정리 단, 합칠 두 행들의 데이터타입이 같아야함 두개컬럼이상도 갯수와 타입만 맞춰주면 UNION가능 (두개이상컬럼은 두개모두 같을경우에만 삭제됨 )*union all:행들의 합집합.. 전체출력예제)회사의 사원이름과 고객이름출력select last_name name from s_emp union select name from s_customer;*intersect:행들의 교집합*minus:행들의 차집합
오라클 관계 # 관계 (정리필요) 1:1 - 한남자는 다른한여자와 결혼하고 다른한여자도 다른한남자랑만 결혼한다. 1:N - 한명의사원은 하나의부서에 속하고 하나의부서는 여러명의 사원을 가진다. N:M - 여러개의책이 여러명의사람들에게 팔릴수있고 여러명의사람들도 여러개의책을 구매 할 수 있다. # 일대일 (1:1) #일 대 다 형식의 조인(1:N) 하나의 사원은 하나의 부서에 속하고 하나의부서는 여러 사원을 가진다 이때 사원테이블이 1 : 부서테이블이 다 select o.customer_id ,o.date_ordered-->호출 ,i.product_id ,i.quantity-->호출from s_item i inner join s_ord o-->조인될 주소 on i.ord_id=o.id -->조인될 값* 다(많은량)의 ..
오라클 조인 ( join ) # JOIN # JOIN ( INNER JOIN과 OUTER JOIN으로 구분됨 ) ( 아래가 ANSI표준쿼리 ) ( ()는 생략가능 )JOIN - INNER JOIN - EQUI JOIN ( = ) - NON EQUI JOIN ( >, >= , < ) - OUTER JOIN - LEFT (OUTER) JOIN - RIGHT(OUTER) JOIN - FULL(OUTER) JOIN 만약 INNER JOIN에서 한가지 문제점이 조인을 생성하려는 두 테이블의 두 컬럼에서 공통된값이 없다면 데이터를 반환하지 못한다.이때 사용하는것이 OUTER JOIN이다. (INNER) JOIN - 둘다 일치하는 부분의 레코드를 반환LEFT (OUTER) JOIN - LEFT테이블의 모든것과 RIGHT중 LEFT과 일치하는부분..
오라클 서브쿼리 ( subquery ) # subquery--알려지지않은 데이터값을 알기위해 사용(나중에 변할수있는값) 두 종류의 비교 연산자들이 서브쿼리에 사용된다 서브쿼리는 연산자의 오른측에 나타나야한다. 서브쿼리는 여러 sql문장에 사용가능하다 서브쿼리는 order by절을 포함할수없다 select e.empno,e.ename,m.empnofrom (select * from emp)e, emp m-->괄호안의 데이터 부터 처리후 괄호밖의 데이터에 대입함!where e.mgr=m.empno # 위치에 따른 명칭 스칼라 서브쿼리 - SELECT문에 있는 서브쿼리 인라인뷰 - FROM절에 있는 서브쿼리 서브쿼리(필터서브쿼리) - WHERE절에 있는 서브쿼리 # 반환값에 따른 서브쿼리종류 단일행서브쿼리 - 서브쿼리결과가 1행 다중행서브쿼리 - ..
오라클 함수 # SQL 함수단일행함수와 복수행함수로 나눔 # 단일행 함수 각각 행에적용 데이터값을 조작,인수()를 받아들여 한개의값을 리턴 ,데이터 타입을 변환 # 문자처리함수LOWER(컬럼명 or 스트링) : 소문자로변경UPPER(컬럼명 or 스트링) : 대문자로변경INITCAP(컬럼명 or 스트링) : 알파벳단어의 첫글자는대문자로 나머지는 소문자로CONCAT(컬럼명 or 스트링 , 합칠컬럼명 or 합칠스트링 ) : 문자열합쳐줌 ( 합성연산자 || 해도됨) ( 오라클은 처음이 1번... 0번아님! 즉, index가 1부터 시작 )SUBSTR(컬럼명 or 스트링, m , n ) : m의위치에서 n길이만큼 문자열을 잘라리턴!LENGTH(컬럼명 or 스트링) : 문자열의 길이를 리턴 INSTR(컬럼명 or 스트링, 찾고..